diff options
Diffstat (limited to 'libavcodec/lossless_audiodsp.c')
-rw-r--r-- | libavcodec/lossless_audiodsp.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libavcodec/lossless_audiodsp.c b/libavcodec/lossless_audiodsp.c index 32f4c9e..55495d0 100644 --- a/libavcodec/lossless_audiodsp.c +++ b/libavcodec/lossless_audiodsp.c @@ -36,9 +36,23 @@ static int32_t scalarproduct_and_madd_int16_c(int16_t *v1, const int16_t *v2, return res; } +static int32_t scalarproduct_and_madd_int32_c(int32_t *v1, const int32_t *v2, + const int32_t *v3, + int order, int mul) +{ + int res = 0; + + while (order--) { + res += *v1 * *v2++; + *v1++ += mul * *v3++; + } + return res; +} + av_cold void ff_llauddsp_init(LLAudDSPContext *c) { c->scalarproduct_and_madd_int16 = scalarproduct_and_madd_int16_c; + c->scalarproduct_and_madd_int32 = scalarproduct_and_madd_int32_c; if (ARCH_ARM) ff_llauddsp_init_arm(c); |