Mercurial > libavcodec.hg
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]; |