mirror of https://git.ffmpeg.org/ffmpeg.git
vp3: 10l Fix DC-only IDCT for C and ARM too
Originally committed as revision 23359 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
179655b6c6
commit
c0fda017d1
|
@ -377,12 +377,10 @@ endfunc
|
||||||
|
|
||||||
function ff_vp3_idct_dc_add_neon, export=1
|
function ff_vp3_idct_dc_add_neon, export=1
|
||||||
ldrsh r2, [r2]
|
ldrsh r2, [r2]
|
||||||
movw r3, #46341
|
|
||||||
mul r2, r3, r2
|
|
||||||
smulwt r2, r3, r2
|
|
||||||
mov r3, r0
|
mov r3, r0
|
||||||
|
add r2, r2, #15
|
||||||
vdup.16 q15, r2
|
vdup.16 q15, r2
|
||||||
vrshr.s16 q15, q15, #4
|
vshr.s16 q15, q15, #5
|
||||||
|
|
||||||
vld1.8 {d0}, [r0,:64], r1
|
vld1.8 {d0}, [r0,:64], r1
|
||||||
vld1.8 {d1}, [r0,:64], r1
|
vld1.8 {d1}, [r0,:64], r1
|
||||||
|
|
|
@ -225,9 +225,7 @@ void ff_vp3_idct_add_c(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*
|
||||||
|
|
||||||
void ff_vp3_idct_dc_add_c(uint8_t *dest/*align 8*/, int line_size, const DCTELEM *block/*align 16*/){
|
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;
|
const uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
|
||||||
int i, dc = block[0];
|
int i, dc = (block[0] + 15) >> 5;
|
||||||
dc = (46341*dc)>>16;
|
|
||||||
dc = (46341*dc + (8<<16))>>20;
|
|
||||||
|
|
||||||
for(i = 0; i < 8; i++){
|
for(i = 0; i < 8; i++){
|
||||||
dest[0] = cm[dest[0]+dc];
|
dest[0] = cm[dest[0]+dc];
|
||||||
|
|
Loading…
Reference in New Issue