mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-25 20:27:34 +08:00
国标推流一直打印 'Already existed a same track' (#3713)
https://github.com/ZLMediaKit/ZLMediaKit/pull/3689 https://github.com/ZLMediaKit/ZLMediaKit/issues/3702#issuecomment-2222326053
This commit is contained in:
parent
9727e03c2e
commit
0eb38635ce
@ -85,6 +85,9 @@ DecoderImp::DecoderImp(const Decoder::Ptr &decoder, MediaSinkInterface *sink){
|
|||||||
#if defined(ENABLE_RTPPROXY) || defined(ENABLE_HLS)
|
#if defined(ENABLE_RTPPROXY) || defined(ENABLE_HLS)
|
||||||
|
|
||||||
void DecoderImp::onStream(int stream, int codecid, const void *extra, size_t bytes, int finish) {
|
void DecoderImp::onStream(int stream, int codecid, const void *extra, size_t bytes, int finish) {
|
||||||
|
if (_finished) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// G711传统只支持 8000/1/16的规格,FFmpeg貌似做了扩展,但是这里不管它了
|
// G711传统只支持 8000/1/16的规格,FFmpeg貌似做了扩展,但是这里不管它了
|
||||||
auto track = Factory::getTrackByCodecId(getCodecByMpegId(codecid), 8000, 1, 16);
|
auto track = Factory::getTrackByCodecId(getCodecByMpegId(codecid), 8000, 1, 16);
|
||||||
if (track) {
|
if (track) {
|
||||||
@ -92,6 +95,7 @@ void DecoderImp::onStream(int stream, int codecid, const void *extra, size_t byt
|
|||||||
}
|
}
|
||||||
// 防止未获取视频track提前complete导致忽略后续视频的问题,用于兼容一些不太规范的ps流
|
// 防止未获取视频track提前complete导致忽略后续视频的问题,用于兼容一些不太规范的ps流
|
||||||
if (finish && _have_video) {
|
if (finish && _have_video) {
|
||||||
|
_finished = true;
|
||||||
_sink->addTrackCompleted();
|
_sink->addTrackCompleted();
|
||||||
InfoL << "Add track finished";
|
InfoL << "Add track finished";
|
||||||
}
|
}
|
||||||
|
@ -57,6 +57,7 @@ private:
|
|||||||
void onStream(int stream, int codecid, const void *extra, size_t bytes, int finish);
|
void onStream(int stream, int codecid, const void *extra, size_t bytes, int finish);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool _finished = false;
|
||||||
bool _have_video = false;
|
bool _have_video = false;
|
||||||
Decoder::Ptr _decoder;
|
Decoder::Ptr _decoder;
|
||||||
MediaSinkInterface *_sink;
|
MediaSinkInterface *_sink;
|
||||||
|
Loading…
Reference in New Issue
Block a user