From 18df366a1857f9a92e158858cf495b61d096c7f1 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sat, 9 Mar 2013 09:08:36 -0800 Subject: vp3: Embed idct_permutation array directly in VP3DecoderContext MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes the vp3 decoder less dependent on dsputil, and will aid in making it (eventually) dsputil-independent. Signed-off-by: Martin Storsjö --- libavcodec/vp3.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libavcodec/vp3.c') diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c index 3d55c784aa..18b9cb89bf 100644 --- a/libavcodec/vp3.c +++ b/libavcodec/vp3.c @@ -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 */ -- cgit v1.2.3