avformat/mpegts: Continue parsing PMTs during duration estimation
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 3 Nov 2014 21:55:07 +0000 (22:55 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 3 Nov 2014 21:55:07 +0000 (22:55 +0100)
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 <michaelni@gmx.at>
libavformat/mpegts.c

index 8e639e0..45e0719 100644 (file)
@@ -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;