Mercurial > libavcodec.hg
changeset 11710:8e3a3bc4fb24 libavcodec
Factorize READ_FLIP_SIGN() optimization out
author | michael |
---|---|
date | Tue, 11 May 2010 21:20:33 +0000 |
parents | 6f9b4c452130 |
children | 7ca3795af11b |
files | mpegaudiodec.c |
diffstat | 1 files changed, 17 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mpegaudiodec.c Tue May 11 21:10:55 2010 +0000 +++ b/mpegaudiodec.c Tue May 11 21:20:33 2010 +0000 @@ -1407,6 +1407,22 @@ } } +/* Following is a optimized code for + INTFLOAT v = *src + if(get_bits1(&s->gb)) + v = -v; + *dst = v; +*/ +#if CONFIG_FLOAT +#define READ_FLIP_SIGN(dst,src)\ + v = AV_RN32A(src) ^ (get_bits1(&s->gb)<<31);\ + AV_WN32A(dst, v); +#else +#define READ_FLIP_SIGN(dst,src)\ + v= -get_bits1(&s->gb);\ + *(dst) = (*(src) ^ v) - v; +#endif + static int huffman_decode(MPADecodeContext *s, GranuleDef *g, int16_t *exponents, int end_pos2) { @@ -1538,19 +1554,7 @@ int v; int pos= s_index+idxtab[code]; code ^= 8>>idxtab[code]; -/* Following is a optimized code for - INTFLOAT v = RENAME(exp_table)[ exponents[pos] ]; - if(get_bits1(&s->gb)) - v = -v; - g->sb_hybrid[pos] = v; -*/ -#if CONFIG_FLOAT - v = AV_RN32A(RENAME(exp_table)+exponents[pos]) ^ (get_bits1(&s->gb)<<31); - AV_WN32A(g->sb_hybrid+pos, v); -#else - v= -get_bits1(&s->gb); - g->sb_hybrid[pos] = (RENAME(exp_table)[ exponents[pos] ] ^ v) - v; -#endif + READ_FLIP_SIGN(g->sb_hybrid+pos, RENAME(exp_table)+exponents[pos]) } s_index+=4; }