]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/af_acrossover: fix single pole allpass coefficients
authorPaul B Mahol <onemda@gmail.com>
Fri, 27 Nov 2020 14:33:13 +0000 (15:33 +0100)
committerPaul B Mahol <onemda@gmail.com>
Fri, 27 Nov 2020 14:35:41 +0000 (15:35 +0100)
libavfilter/af_acrossover.c

index 98bd6fe7a913841f99aaf412aa113b8415d0c909..550d4ddbafb1a8b1e9a00ddea3566e66c2b1cace 100644 (file)
@@ -209,10 +209,11 @@ static void set_ap(BiquadContext *b, double fc, double q, double sr)
 
 static void set_ap1(BiquadContext *b, double fc, double sr)
 {
-    double omega = M_PI * fc / sr;
-    double K = tan(omega);
+    double omega = 0.5 * M_PI * fc / sr + M_PI_4;
+    double cosine = cos(omega);
+    double sine = sin(omega);
 
-    b->a1 = -(1. - K) / (1. + K);
+    b->a1 = -cosine / sine;
     b->a2 = 0.;
     b->b0 = -b->a1;
     b->b1 = 1.;