diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-01-21 20:59:20 +0000 |
---|---|---|
committer | Janne Grunau <janne-ffmpeg@jannau.net> | 2011-01-22 04:46:48 +0100 |
commit | 98cfadd648bfb2ab48e4c18d832e946a1ba050c8 (patch) | |
tree | 5a4f72d60b9e046651e842cdca16beaf3e28aac6 /libavcodec/iirfilter.c | |
parent | 20ac9de3df9b129a4a312d626fed0e2bbb760200 (diff) | |
download | ffmpeg-98cfadd648bfb2ab48e4c18d832e946a1ba050c8.tar.gz |
10l: reverse the biquad coefficients.
I did not notice that the filter implementation uses a reversed history state.
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
Diffstat (limited to 'libavcodec/iirfilter.c')
-rw-r--r-- | libavcodec/iirfilter.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/iirfilter.c b/libavcodec/iirfilter.c index 832559cfea..46b4973f85 100644 --- a/libavcodec/iirfilter.c +++ b/libavcodec/iirfilter.c @@ -137,15 +137,15 @@ static int biquad_init_coeffs(void *avc, struct FFIIRFilterCoeffs *c, if (filt_mode == FF_FILTER_MODE_HIGHPASS) { c->gain = ((1.0 + cos_w0) / 2.0) / a0; - x0 = (-(1.0 + cos_w0)) / a0; - x1 = ((1.0 + cos_w0) / 2.0) / a0; + x0 = ((1.0 + cos_w0) / 2.0) / a0; + x1 = (-(1.0 + cos_w0)) / a0; } else { // FF_FILTER_MODE_LOWPASS c->gain = ((1.0 - cos_w0) / 2.0) / a0; - x0 = (1.0 - cos_w0) / a0; - x1 = ((1.0 - cos_w0) / 2.0) / a0; + x0 = ((1.0 - cos_w0) / 2.0) / a0; + x1 = (1.0 - cos_w0) / a0; } - c->cy[0] = (2.0 * cos_w0) / a0; - c->cy[1] = (-1.0 + (sin_w0 / 2.0)) / a0; + c->cy[0] = (-1.0 + (sin_w0 / 2.0)) / a0; + c->cy[1] = (2.0 * cos_w0) / a0; // divide by gain to make the x coeffs integers. // during filtering, the delay state will include the gain multiplication |