diff options
Diffstat (limited to 'libavcodec/celp_filters.c')
-rw-r--r-- | libavcodec/celp_filters.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libavcodec/celp_filters.c b/libavcodec/celp_filters.c index 758c9b0a90..3d983c4f75 100644 --- a/libavcodec/celp_filters.c +++ b/libavcodec/celp_filters.c @@ -84,3 +84,24 @@ int ff_celp_lp_synthesis_filter( return 0; } + +void ff_celp_lp_synthesis_filterf( + float *out, + const float* filter_coeffs, + const float* in, + int buffer_length, + int filter_length) +{ + int i,n; + + // These two lines are to avoid a -1 subtraction in the main loop + filter_length++; + filter_coeffs--; + + for(n=0; n<buffer_length; n++) + { + out[n] = in[n]; + for(i=1; i<filter_length; i++) + out[n] += filter_coeffs[i] * out[n-i]; + } +} |