avcodec/dcadec: make dca_dmix_code() 650% faster
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 23 May 2014 19:59:04 +0000 (21:59 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 23 May 2014 20:08:41 +0000 (22:08 +0200)
This effectively replaces the ldexpf() function call by a multiplication
with a constant.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dcadec.c

index 868e3b6..684294e 100644 (file)
@@ -2107,7 +2107,7 @@ static float dca_dmix_code(unsigned code)
 {
     int sign = (code >> 8) - 1;
     code &= 0xff;
-    return ldexpf((dca_dmixtable[code] ^ sign) - sign, -15);
+    return ((dca_dmixtable[code] ^ sign) - sign) * pow(2, -15);
 }
 
 /**