aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-06-29 11:19:50 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-06-29 11:19:50 +0000
commit8a1c868ee6f279d93310e590fbc13e54df12a040 (patch)
tree9771073c5804bb2a16c1dafff9448ad1c6a7c1ab /libavcodec
parenta6ce3d3d2d40f4a24184a0693bb6ac2d69ba038c (diff)
downloadffmpeg-8a1c868ee6f279d93310e590fbc13e54df12a040.tar.gz
Add a rounding parameter to ff_acelp_lp_synthesis_filter()
Originally committed as revision 14028 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/acelp_filters.c5
-rw-r--r--libavcodec/acelp_filters.h4
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.