]> git.sesse.net Git - ffmpeg/commitdiff
vp3: Embed idct_permutation array directly in VP3DecoderContext
authorRonald S. Bultje <rsbultje@gmail.com>
Sat, 9 Mar 2013 17:08:36 +0000 (09:08 -0800)
committerMartin Storsjö <martin@martin.st>
Mon, 8 Apr 2013 09:38:33 +0000 (12:38 +0300)
This makes the vp3 decoder less dependent on dsputil, and will aid
in making it (eventually) dsputil-independent.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/vp3.c

index 3d55c784aad753f7df80443c8e310ebbd0b50e68..18b9cb89bf97f542c48e2eb7a9c2c3ed1f1b5c6f 100644 (file)
@@ -135,6 +135,7 @@ typedef struct Vp3DecodeContext {
     ThreadFrame last_frame;
     ThreadFrame current_frame;
     int keyframe;
+    uint8_t idct_permutation[64];
     DSPContext dsp;
     VideoDSPContext vdsp;
     VP3DSPContext vp3dsp;
@@ -374,7 +375,8 @@ static void init_dequantizer(Vp3DecodeContext *s, int qpi)
                 int qmin= 8<<(inter + !i);
                 int qscale= i ? ac_scale_factor : dc_scale_factor;
 
-                s->qmat[qpi][inter][plane][s->dsp.idct_permutation[i]]= av_clip((qscale * coeff)/100 * 4, qmin, 4096);
+                s->qmat[qpi][inter][plane][s->idct_permutation[i]] =
+                    av_clip((qscale * coeff) / 100 * 4, qmin, 4096);
             }
             // all DC coefficients use the same quant so as not to interfere with DC prediction
             s->qmat[qpi][inter][plane][0] = s->qmat[0][inter][plane][0];
@@ -1698,8 +1700,8 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
     ff_videodsp_init(&s->vdsp, 8);
     ff_vp3dsp_init(&s->vp3dsp, avctx->flags);
 
-    ff_init_scantable_permutation(s->dsp.idct_permutation, s->vp3dsp.idct_perm);
-    ff_init_scantable(s->dsp.idct_permutation, &s->scantable, ff_zigzag_direct);
+    ff_init_scantable_permutation(s->idct_permutation, s->vp3dsp.idct_perm);
+    ff_init_scantable(s->idct_permutation, &s->scantable, ff_zigzag_direct);
 
     /* initialize to an impossible value which will force a recalculation
      * in the first frame decode */