[FFmpeg-cvslog] 10l: reverse the biquad coefficients.

Justin Ruggles git
Sun Jan 23 21:01:55 CET 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Fri Jan 21 20:59:20 2011 +0000| [ff5eded449c32ef46489a9225445801837beb6a6] | committer: Michael Niedermayer

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 at jannau.net>
(cherry picked from commit 98cfadd648bfb2ab48e4c18d832e946a1ba050c8)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ff5eded449c32ef46489a9225445801837beb6a6
---

 libavcodec/iirfilter.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/iirfilter.c b/libavcodec/iirfilter.c
index 832559c..46b4973 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




More information about the ffmpeg-cvslog mailing list