summaryrefslogtreecommitdiff
path: root/libavcodec/vp56.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2013-03-12 07:28:12 -0700
committerMichael Niedermayer <michaelni@gmx.at>2013-03-12 22:54:10 +0100
commitd85c9b036e65afa05dcc8fbf37813ef4a05db1f3 (patch)
treecdf7469df86a63771fa6a2df5ef9ee4db9be2a95 /libavcodec/vp56.c
parentdb594f65ec4e4a8d85113f309f3d9c31959b48e3 (diff)
downloadffmpeg-d85c9b036e65afa05dcc8fbf37813ef4a05db1f3.tar.gz
vp3/x86: use full transpose for all IDCTs.
This way, the special IDCT permutations are no longer needed. Bfin code is disabled until someone updates it. This is similar to how H264 does it, and removes the dsputil dependency imposed by the scantable code. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/vp56.c')
-rw-r--r--libavcodec/vp56.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/vp56.c b/libavcodec/vp56.c
index 00334d1282..15799b7ba2 100644
--- a/libavcodec/vp56.c
+++ b/libavcodec/vp56.c
@@ -263,7 +263,7 @@ static VP56mb vp56_decode_mv(VP56Context *s, int row, int col)
static void vp56_add_predictors_dc(VP56Context *s, VP56Frame ref_frame)
{
- int idx = s->scantable.permutated[0];
+ int idx = s->idct_scantable[0];
int b;
for (b=0; b<6; b++) {
@@ -692,8 +692,11 @@ av_cold int ff_vp56_init_context(AVCodecContext *avctx, VP56Context *s,
ff_videodsp_init(&s->vdsp, 8);
ff_vp3dsp_init(&s->vp3dsp, avctx->flags);
ff_vp56dsp_init(&s->vp56dsp, avctx->codec->id);
- ff_init_scantable_permutation(s->dsp.idct_permutation, s->vp3dsp.idct_perm);
- ff_init_scantable(s->dsp.idct_permutation, &s->scantable,ff_zigzag_direct);
+ for (i = 0; i < 64; i++) {
+#define T(x) (x >> 3) | ((x & 7) << 3)
+ s->idct_scantable[i] = T(ff_zigzag_direct[i]);
+#undef T
+ }
for (i = 0; i < FF_ARRAY_ELEMS(s->frames); i++) {
s->frames[i] = av_frame_alloc();