Message ID | 20220615053442.8300-1-cus@passwd.hu |
---|---|
State | Accepted |
Commit | 58df81b02779c9c87cbf5403cfdbb437d5344669 |
Headers | show |
Series | [FFmpeg-devel] avformat/mpegts: remove obsolate hacks for detecting streams with bad PMTs | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
On Wed, 15 Jun 2022, Marton Balint wrote: > Ffmpeg/ffprobe/ffplay sets scan_all_pmts to 1 when finding the streams, that > should be enough to handle files for which some early PMTs miss some streams. > > Fixes ticket #9782. Will apply. Regards, Marton > > Signed-off-by: Marton Balint <cus@passwd.hu> > --- > libavformat/mpegts.c | 12 ++---------- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c > index 6e761c07f1..8a3436f2be 100644 > --- a/libavformat/mpegts.c > +++ b/libavformat/mpegts.c > @@ -2870,16 +2870,8 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet, int64_t pos) > break; > } > if (i == ts->nb_prg && ts->nb_prg > 0) { > - int types = 0; > - for (i = 0; i < ts->stream->nb_streams; i++) { > - AVStream *st = ts->stream->streams[i]; > - if (st->codecpar->codec_type >= 0) > - types |= 1<<st->codecpar->codec_type; > - } > - if ((types & (1<<AVMEDIA_TYPE_AUDIO) && types & (1<<AVMEDIA_TYPE_VIDEO)) || pos > 100000) { > - av_log(ts->stream, AV_LOG_DEBUG, "All programs have pmt, headers found\n"); > - ts->stream->ctx_flags &= ~AVFMTCTX_NOHEADER; > - } > + av_log(ts->stream, AV_LOG_DEBUG, "All programs have pmt, headers found\n"); > + ts->stream->ctx_flags &= ~AVFMTCTX_NOHEADER; > } > } > > -- > 2.34.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 6e761c07f1..8a3436f2be 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -2870,16 +2870,8 @@ static int handle_packet(MpegTSContext *ts, const uint8_t *packet, int64_t pos) break; } if (i == ts->nb_prg && ts->nb_prg > 0) { - int types = 0; - for (i = 0; i < ts->stream->nb_streams; i++) { - AVStream *st = ts->stream->streams[i]; - if (st->codecpar->codec_type >= 0) - types |= 1<<st->codecpar->codec_type; - } - if ((types & (1<<AVMEDIA_TYPE_AUDIO) && types & (1<<AVMEDIA_TYPE_VIDEO)) || pos > 100000) { - av_log(ts->stream, AV_LOG_DEBUG, "All programs have pmt, headers found\n"); - ts->stream->ctx_flags &= ~AVFMTCTX_NOHEADER; - } + av_log(ts->stream, AV_LOG_DEBUG, "All programs have pmt, headers found\n"); + ts->stream->ctx_flags &= ~AVFMTCTX_NOHEADER; } }
Ffmpeg/ffprobe/ffplay sets scan_all_pmts to 1 when finding the streams, that should be enough to handle files for which some early PMTs miss some streams. Fixes ticket #9782. Signed-off-by: Marton Balint <cus@passwd.hu> --- libavformat/mpegts.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)