diff options
author | Kenan Gillet <kenan.gillet@gmail.com> | 2008-10-24 21:29:23 +0000 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2008-10-24 21:29:23 +0000 |
commit | 4599d22c0cd7fa952bc02375d2899d8c9a31b9ae (patch) | |
tree | 23797fb97eb41bdfd65c7d2fbfdb7c5d1c0562dd /libavcodec/acelp_filters.c | |
parent | 60c25a4beb1d0df699104ecb8a536d9a09703d2f (diff) | |
download | ffmpeg-streaming-4599d22c0cd7fa952bc02375d2899d8c9a31b9ae.zip ffmpeg-streaming-4599d22c0cd7fa952bc02375d2899d8c9a31b9ae.tar.gz |
Split off celp_filters.[ch] from acelp_filters.[ch] for the QCELP decoder.
patch by Kenan Gillet, kenan.gillet gmail com
Originally committed as revision 15680 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/acelp_filters.c')
-rw-r--r-- | libavcodec/acelp_filters.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/libavcodec/acelp_filters.c b/libavcodec/acelp_filters.c index 59db649..94ec947 100644 --- a/libavcodec/acelp_filters.c +++ b/libavcodec/acelp_filters.c @@ -81,65 +81,6 @@ void ff_acelp_interpolate( } } -void ff_acelp_convolve_circ( - int16_t* fc_out, - const int16_t* fc_in, - const int16_t* filter, - int len) -{ - int i, k; - - memset(fc_out, 0, len * sizeof(int16_t)); - - /* Since there are few pulses over an entire subframe (i.e. almost - all fc_in[i] are zero) it is faster to loop over fc_in first. */ - for(i=0; i<len; i++) - { - if(fc_in[i]) - { - for(k=0; k<i; k++) - fc_out[k] += (fc_in[i] * filter[len + k - i]) >> 15; - - for(k=i; k<len; k++) - fc_out[k] += (fc_in[i] * filter[ k - i]) >> 15; - } - } -} - -int ff_acelp_lp_synthesis_filter( - int16_t *out, - const int16_t* filter_coeffs, - const int16_t* in, - int buffer_length, - int filter_length, - int stop_on_overflow, - int rounder) -{ - 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++) - { - int sum = rounder; - for(i=1; i<filter_length; i++) - sum -= filter_coeffs[i] * out[n-i]; - - sum = (sum >> 12) + in[n]; - - if(sum + 0x8000 > 0xFFFFU) - { - if(stop_on_overflow) - return 1; - sum = (sum >> 31) ^ 32767; - } - out[n] = sum; - } - - return 0; -} void ff_acelp_high_pass_filter( int16_t* out, |