summaryrefslogtreecommitdiff
path: root/libavcodec/vp3.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2013-01-18 16:43:04 +0100
committerRonald S. Bultje <rsbultje@gmail.com>2013-01-19 22:04:55 -0800
commitaeaf268e52fc11c1f64914a319e0edddf1346d6a (patch)
tree4596586d2adfda684defde76992d6fb4426b6089 /libavcodec/vp3.c
parent992b03183819553a73b4f870a710ef500b4eb6d0 (diff)
vp3: integrate clear_blocks with idct of previous block.
This is identical to what e.g. vp8 does, and prevents the function call overhead (plus dependency on dsputil for this particular function). Arm asm updated by Janne Grunau <janne-libav@jannau.net>. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Diffstat (limited to 'libavcodec/vp3.c')
-rw-r--r--libavcodec/vp3.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index 0340c22bb2..9417535314 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -138,6 +138,7 @@ typedef struct Vp3DecodeContext {
DSPContext dsp;
VideoDSPContext vdsp;
VP3DSPContext vp3dsp;
+ DECLARE_ALIGNED(16, DCTELEM, block)[64];
int flipped_image;
int last_slice_end;
int skip_loop_filter;
@@ -1458,7 +1459,7 @@ static void await_reference_row(Vp3DecodeContext *s, Vp3Fragment *fragment, int
static void render_slice(Vp3DecodeContext *s, int slice)
{
int x, y, i, j, fragment;
- LOCAL_ALIGNED_16(DCTELEM, block, [64]);
+ DCTELEM *block = s->block;
int motion_x = 0xdeadbeef, motion_y = 0xdeadbeef;
int motion_halfpel_index;
uint8_t *motion_source;
@@ -1571,8 +1572,6 @@ static void render_slice(Vp3DecodeContext *s, int slice)
}
}
- s->dsp.clear_block(block);
-
/* invert DCT and place (or add) in final output */
if (s->all_fragments[i].coding_method == MODE_INTRA) {