comparison vp3dsp.c @ 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 7dd2a45249a9
children 43e39953f4f9
comparison
equal deleted inserted replaced
11788:b2c0b7034aab 11789:2064f8a1691e
223 idct(dest, line_size, block, 2); 223 idct(dest, line_size, block, 2);
224 } 224 }
225 225
226 void ff_vp3_idct_dc_add_c(uint8_t *dest/*align 8*/, int line_size, const DCTELEM *block/*align 16*/){ 226 void ff_vp3_idct_dc_add_c(uint8_t *dest/*align 8*/, int line_size, const DCTELEM *block/*align 16*/){
227 const uint8_t *cm = ff_cropTbl + MAX_NEG_CROP; 227 const uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
228 int i, dc = block[0]; 228 int i, dc = (block[0] + 15) >> 5;
229 dc = (46341*dc)>>16;
230 dc = (46341*dc + (8<<16))>>20;
231 229
232 for(i = 0; i < 8; i++){ 230 for(i = 0; i < 8; i++){
233 dest[0] = cm[dest[0]+dc]; 231 dest[0] = cm[dest[0]+dc];
234 dest[1] = cm[dest[1]+dc]; 232 dest[1] = cm[dest[1]+dc];
235 dest[2] = cm[dest[2]+dc]; 233 dest[2] = cm[dest[2]+dc];