mpegts: do not return from ff_mpegts_parse_packet() after having seen the first PMT
authorLaurent Aimar <fenrir@videolan.org>
Sat, 8 Oct 2011 21:40:41 +0000 (23:40 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 19 Oct 2011 21:28:05 +0000 (23:28 +0200)
It prevents leaving the AVPacket uninitialized.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mpegts.c

index 1d26c6c..ea4c535 100644 (file)
@@ -1894,10 +1894,8 @@ int ff_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt,
 
     len1 = len;
     ts->pkt = pkt;
-    ts->stop_parse = 0;
     for(;;) {
-        if (ts->stop_parse>0)
-            break;
+        ts->stop_parse = 0;
         if (len < TS_PACKET_SIZE)
             return -1;
         if (buf[0] != 0x47) {
@@ -1907,6 +1905,8 @@ int ff_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt,
             handle_packet(ts, buf);
             buf += TS_PACKET_SIZE;
             len -= TS_PACKET_SIZE;
+            if (ts->stop_parse == 1)
+                break;
         }
     }
     return len1 - len;