Mercurial > libavcodec.hg
changeset 11789:2064f8a1691e libavcodec
vp3: 10l Fix DC-only IDCT for C and ARM too
author | conrad |
---|---|
date | Fri, 28 May 2010 07:22:04 +0000 |
parents | b2c0b7034aab |
children | f918fb753b31 |
files | arm/vp3dsp_neon.S vp3dsp.c |
diffstat | 2 files changed, 3 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/arm/vp3dsp_neon.S Fri May 28 07:01:34 2010 +0000 +++ b/arm/vp3dsp_neon.S Fri May 28 07:22:04 2010 +0000 @@ -377,12 +377,10 @@ function ff_vp3_idct_dc_add_neon, export=1 ldrsh r2, [r2] - movw r3, #46341 - mul r2, r3, r2 - smulwt r2, r3, r2 mov r3, r0 + add r2, r2, #15 vdup.16 q15, r2 - vrshr.s16 q15, q15, #4 + vshr.s16 q15, q15, #5 vld1.8 {d0}, [r0,:64], r1 vld1.8 {d1}, [r0,:64], r1
--- a/vp3dsp.c Fri May 28 07:01:34 2010 +0000 +++ b/vp3dsp.c Fri May 28 07:22:04 2010 +0000 @@ -225,9 +225,7 @@ void ff_vp3_idct_dc_add_c(uint8_t *dest/*align 8*/, int line_size, const DCTELEM *block/*align 16*/){ const uint8_t *cm = ff_cropTbl + MAX_NEG_CROP; - int i, dc = block[0]; - dc = (46341*dc)>>16; - dc = (46341*dc + (8<<16))>>20; + int i, dc = (block[0] + 15) >> 5; for(i = 0; i < 8; i++){ dest[0] = cm[dest[0]+dc];