From d09f65c7ec0339bcf3b1a3c579e42a8133740bbd Mon Sep 17 00:00:00 2001 From: Loren Merritt Date: Fri, 4 Dec 2009 15:12:09 +0000 Subject: 1-13% faster apply_filter, 1-3% faster ape decoding on core2 Originally committed as revision 20729 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/apedec.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c index 3a0d172c9e..b8d1e9e254 100644 --- a/libavcodec/apedec.c +++ b/libavcodec/apedec.c @@ -678,14 +678,9 @@ static inline void do_apply_filter(APEContext * ctx, int version, APEFilter *f, /* Version 3.98 and later files */ /* Update the adaption coefficients */ - absres = (res < 0 ? -res : res); - - if (absres > (f->avg * 3)) - *f->adaptcoeffs = ((res >> 25) & 64) - 32; - else if (absres > (f->avg * 4) / 3) - *f->adaptcoeffs = ((res >> 26) & 32) - 16; - else if (absres > 0) - *f->adaptcoeffs = ((res >> 27) & 16) - 8; + absres = FFABS(res); + if (absres) + *f->adaptcoeffs = ((res & (1<<31)) - (1<<30)) >> (25 + (absres <= f->avg*3) + (absres <= f->avg*4/3)); else *f->adaptcoeffs = 0; -- cgit v1.2.3