]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
parse all QIS values (we still ignore them though ...)
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 17 Jul 2006 13:09:45 +0000 (13:09 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 17 Jul 2006 13:09:45 +0000 (13:09 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@5778 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/vp3.c

index 2d7bca13e4d8077ab6a315cfae74a27beec18b98..af8d6afc644c06fbe5f027a6e4f7fc864739b84d 100644 (file)
@@ -229,6 +229,8 @@ typedef struct Vp3DecodeContext {
     DSPContext dsp;
     int flipped_image;
 
+    int qis[3];
+    int nqis;
     int quality_index;
     int last_quality_index;
 
@@ -2376,9 +2378,13 @@ static int vp3_decode_frame(AVCodecContext *avctx,
     if (!s->theora)
         skip_bits(&gb, 1);
     s->last_quality_index = s->quality_index;
-    s->quality_index = get_bits(&gb, 6);
-    if (s->theora >= 0x030200)
-        skip_bits1(&gb);
+
+    s->nqis=0;
+    do{
+        s->qis[s->nqis++]= get_bits(&gb, 6);
+    } while(s->theora >= 0x030200 && s->nqis<3 && get_bits1(&gb));
+
+    s->quality_index= s->qis[0];
 
     if (s->avctx->debug & FF_DEBUG_PICT_INFO)
         av_log(s->avctx, AV_LOG_INFO, " VP3 %sframe #%d: Q index = %d\n",