[FFmpeg-cvslog] r23359 - in trunk/libavcodec: arm/vp3dsp_neon.S vp3dsp.c
conrad
subversion
Fri May 28 09:22:04 CEST 2010
Author: conrad
Date: Fri May 28 09:22:04 2010
New Revision: 23359
Log:
vp3: 10l Fix DC-only IDCT for C and ARM too
Modified:
trunk/libavcodec/arm/vp3dsp_neon.S
trunk/libavcodec/vp3dsp.c
Modified: trunk/libavcodec/arm/vp3dsp_neon.S
==============================================================================
--- trunk/libavcodec/arm/vp3dsp_neon.S Fri May 28 09:01:34 2010 (r23358)
+++ trunk/libavcodec/arm/vp3dsp_neon.S Fri May 28 09:22:04 2010 (r23359)
@@ -377,12 +377,10 @@ endfunc
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
Modified: trunk/libavcodec/vp3dsp.c
==============================================================================
--- trunk/libavcodec/vp3dsp.c Fri May 28 09:01:34 2010 (r23358)
+++ trunk/libavcodec/vp3dsp.c Fri May 28 09:22:04 2010 (r23359)
@@ -225,9 +225,7 @@ void ff_vp3_idct_add_c(uint8_t *dest/*al
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];
More information about the ffmpeg-cvslog
mailing list