From: Michael Niedermayer Date: Mon, 3 Nov 2014 21:55:07 +0000 (+0100) Subject: avformat/mpegts: Continue parsing PMTs during duration estimation X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=db0471c40f0fb30355c07cca5fe7317ab6778b5a;hp=a7f25979dd568f4f7253ebb3e30f802c7009fbaa;p=ffmpeg avformat/mpegts: Continue parsing PMTs during duration estimation This way if we by chance run into a valid PMT we have a more complete set of streams, also do not reset streams in case we run into a worse PMT Fixes Ticket4046 alternatively Ticket4046 could be closed as invalid or wontfix as it contains some PMTs which lack the 2 subtitle streams Signed-off-by: Michael Niedermayer --- diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index 8e639e092f6..45e0719df38 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -1803,10 +1803,10 @@ static void pmt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len if (h->tid != PMT_TID) return; - if (ts->skip_changes) - return; - clear_program(ts, h->id); + if (!ts->skip_clear) + clear_program(ts, h->id); + pcr_pid = get16(&p, p_end); if (pcr_pid < 0) return;