[FFmpeg-cvslog] mpegdemux: move private stream 1 handling out of mpegps_read_pes_header

Michael Niedermayer git at videolan.org
Sat Aug 4 19:49:38 CEST 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Jul 31 19:43:20 2012 +0200| [ce7cf600be62d81cddefb302c2f098672130774b] | committer: Michael Niedermayer

mpegdemux: move private stream 1 handling out of mpegps_read_pes_header

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ce7cf600be62d81cddefb302c2f098672130774b
---

 libavformat/mpeg.c |   28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index d51a693..904399c 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -349,18 +349,6 @@ static int mpegps_read_pes_header(AVFormatContext *s,
     if (startcode == PRIVATE_STREAM_1) {
         startcode = avio_r8(s->pb);
         len--;
-        if (startcode >= 0x80 && startcode <= 0xcf) {
-            /* audio: skip header */
-            avio_r8(s->pb);
-            avio_r8(s->pb);
-            avio_r8(s->pb);
-            len -= 3;
-            if (startcode >= 0xb0 && startcode <= 0xbf) {
-                /* MLP/TrueHD audio has a 4-byte header */
-                avio_r8(s->pb);
-                len--;
-            }
-        }
     }
     if(len<0)
         goto error_redo;
@@ -397,6 +385,22 @@ static int mpegps_read_packet(AVFormatContext *s,
     if (len < 0)
         return len;
 
+    if (startcode >= 0x80 && startcode <= 0xcf) {
+        if(len < 4)
+            goto skip;
+
+        /* audio: skip header */
+        avio_r8(s->pb);
+        avio_r8(s->pb);
+        avio_r8(s->pb);
+        len -= 3;
+        if (startcode >= 0xb0 && startcode <= 0xbf) {
+            /* MLP/TrueHD audio has a 4-byte header */
+            avio_r8(s->pb);
+            len--;
+        }
+    }
+
     /* now find stream */
     for(i=0;i<s->nb_streams;i++) {
         st = s->streams[i];



More information about the ffmpeg-cvslog mailing list