be smarter about the variable size of the extra SVQ3 data
authorMike Melanson <mike@multimedia.cx>
Sat, 13 Mar 2004 21:26:54 +0000 (21:26 +0000)
committerMike Melanson <mike@multimedia.cx>
Sat, 13 Mar 2004 21:26:54 +0000 (21:26 +0000)
Originally committed as revision 2881 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/svq3.c

index 6a53ed2..1e73a3f 100644 (file)
@@ -767,6 +767,7 @@ static int svq3_decode_frame (AVCodecContext *avctx,
   H264Context *const h = avctx->priv_data;
   int m, mb_type;
   unsigned char *extradata;
+  unsigned int size;
 
   *data_size = 0;
 
@@ -799,12 +800,15 @@ static int svq3_decode_frame (AVCodecContext *avctx,
       extradata++;
     }
 
+    size = (extradata[4] << 24) | (extradata[5] << 16) |
+      (extradata[6] << 8) | extradata[7];
+
     /* if a match was found, parse the extra data */
     if (!memcmp (extradata, "SEQH", 4)) {
 
       GetBitContext gb;
 
-      init_get_bits (&gb, extradata + 0x8, 8*8);
+      init_get_bits (&gb, extradata + 8, size);
 
       /* 'frame size code' and optional 'width, height' */
       if (get_bits (&gb, 3) == 7) {