[FFmpeg-cvslog] avfilter/af_acrossover: really fix single-pole allpass coefficients

Paul B Mahol git at videolan.org
Sat Nov 28 15:53:51 EET 2020


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sat Nov 28 14:37:06 2020 +0100| [68adb68e96e6ec9003e0601251b8103624088174] | committer: Paul B Mahol

avfilter/af_acrossover: really fix single-pole allpass coefficients

Now LR2, LR6, LR10, LR14 and LR18 have really flat sum.

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

 libavfilter/af_acrossover.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/libavfilter/af_acrossover.c b/libavfilter/af_acrossover.c
index f989ac81d9..33a0812c9f 100644
--- a/libavfilter/af_acrossover.c
+++ b/libavfilter/af_acrossover.c
@@ -211,11 +211,9 @@ static void set_ap(BiquadContext *b, double fc, double q, double sr)
 
 static void set_ap1(BiquadContext *b, double fc, double sr)
 {
-    double omega = 0.5 * M_PI * fc / sr + M_PI_4;
-    double cosine = cos(omega);
-    double sine = sin(omega);
+    double omega = M_PI * fc / sr;
 
-    b->a1 = -cosine / sine;
+    b->a1 = exp(-omega);
     b->a2 = 0.;
     b->b0 = -b->a1;
     b->b1 = 1.;



More information about the ffmpeg-cvslog mailing list