diff options
-rw-r--r-- | libavcodec/acelp_filters.c | 5 | ||||
-rw-r--r-- | libavcodec/acelp_filters.h | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/acelp_filters.c b/libavcodec/acelp_filters.c index 2aedbddab3..fb52d0f8c9 100644 --- a/libavcodec/acelp_filters.c +++ b/libavcodec/acelp_filters.c @@ -116,13 +116,14 @@ int ff_acelp_lp_synthesis_filter( const int16_t* in, int buffer_length, int filter_length, - int stop_on_overflow) + int stop_on_overflow, + int rounder) { int i,n; for(n=0; n<buffer_length; n++) { - int sum = 0x800; + int sum = rounder; for(i=1; i<filter_length; i++) sum -= filter_coeffs[i] * out[n-i]; diff --git a/libavcodec/acelp_filters.h b/libavcodec/acelp_filters.h index 167faf72c3..a21fc88a49 100644 --- a/libavcodec/acelp_filters.h +++ b/libavcodec/acelp_filters.h @@ -128,6 +128,7 @@ void ff_acelp_convolve_circ( * \param filter_length filter length (11 for 10th order LP filter) * \param stop_on_overflow 1 - return immediately if overflow occurs * 0 - ignore overflows + * \param rounder the amount to add for rounding (usually 0x800 or 0xfff) * * \return 1 if overflow occurred, 0 - otherwise * @@ -142,7 +143,8 @@ int ff_acelp_lp_synthesis_filter( const int16_t* in, int buffer_length, int filter_length, - int stop_on_overflow); + int stop_on_overflow, + int rounder); /** * \brief Calculates coefficients of weighted A(z/weight) filter. |