In mpegts demuxer, do not output known sized packet if an unbounded packet
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 28 Feb 2011 00:19:50 +0000 (16:19 -0800)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 28 Feb 2011 00:20:00 +0000 (16:20 -0800)
is already queued. Fix issue #2624.

libavformat/mpegts.c

index 3307685..5743ac8 100644 (file)
@@ -809,7 +809,7 @@ static int mpegts_push_data(MpegTSFilter *filter,
              * a couple of seconds to milliseconds for properly muxed files.
              * total_size is the number of bytes following pes_packet_length
              * in the pes header, i.e. not counting the first 6 bytes */
-            if (pes->total_size < MAX_PES_PAYLOAD &&
+            if (!ts->stop_parse && pes->total_size < MAX_PES_PAYLOAD &&
                 pes->pes_header_size + pes->data_index == pes->total_size + 6) {
                 ts->stop_parse = 1;
                 new_pes_packet(pes, ts->pkt);