Add a rounding parameter to ff_acelp_lp_synthesis_filter()
authorVitor Sessak <vitor1001@gmail.com>
Sun, 29 Jun 2008 11:19:50 +0000 (11:19 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Sun, 29 Jun 2008 11:19:50 +0000 (11:19 +0000)
Originally committed as revision 14028 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/acelp_filters.c
libavcodec/acelp_filters.h

index 2aedbdd..fb52d0f 100644 (file)
@@ -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];
 
index 167faf7..a21fc88 100644 (file)
@@ -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.