lavc: G.723.1 encoder
[libav.git] / libavcodec / celp_math.c
index b28c51b..8a788f5 100644 (file)
@@ -26,6 +26,8 @@
 
 #include "avcodec.h"
 #include "celp_math.h"
+#include "mathops.h"
+
 #include "libavutil/common.h"
 
 static const uint16_t exp2a[]=
@@ -67,7 +69,7 @@ static const uint16_t tab_log2[33] =
   26457,  27294,  28116,  28924,  29719,  30500,  31269,  32025,  32769,
 };
 
-int ff_log2(uint32_t value)
+int ff_log2_q15(uint32_t value)
 {
     uint8_t  power_int;
     uint8_t  frac_x0;
@@ -87,13 +89,13 @@ int ff_log2(uint32_t value)
     return (power_int << 15) + value;
 }
 
-float ff_dot_productf(const float* a, const float* b, int length)
+int64_t ff_dot_product(const int16_t *a, const int16_t *b, int length)
 {
-    float sum = 0;
     int i;
+    int64_t sum = 0;
 
-    for(i=0; i<length; i++)
-        sum += a[i] * b[i];
+    for (i = 0; i < length; i++)
+        sum += MUL16(a[i], b[i]);
 
     return sum;
 }