summaryrefslogtreecommitdiff
path: root/libavcodec/celp_math.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-09-29 21:21:26 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-09-29 21:44:03 +0200
commit11512367d3c6f67b093b54c532328763c9b815e2 (patch)
treeee8c5e1e0d293a8c4f2917c1aecc85466c2accfe /libavcodec/celp_math.c
parent84f8aef40c7091274ed399a8aeaa933ea76d9476 (diff)
celp_math: cleanup ff_dot_product()
based on code & idea by vitor Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/celp_math.c')
-rw-r--r--libavcodec/celp_math.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/celp_math.c b/libavcodec/celp_math.c
index b78edd1ebd..a00bb3964e 100644
--- a/libavcodec/celp_math.c
+++ b/libavcodec/celp_math.c
@@ -197,14 +197,14 @@ int ff_log2(uint32_t value)
return (power_int << 15) + value;
}
-int ff_dot_product(const int16_t *a, const int16_t *b, int length, int shift)
+int ff_dot_product(const int16_t *a, const int16_t *b, int length)
{
- int i, sum = 0;
+ int i;
+ int64_t sum = 0;
+
+ for (i = 0; i < length; i++)
+ sum += MUL16(a[i], b[i]);
- for (i = 0; i < length; i++) {
- int64_t prod = av_clipl_int32(MUL64(a[i], b[i]) << shift);
- sum = av_clipl_int32(sum + prod);
- }
return sum;
}