summaryrefslogtreecommitdiff
path: root/libavfilter/af_aiir.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-10-19 18:34:50 +0200
committerPaul B Mahol <onemda@gmail.com>2020-10-19 18:42:42 +0200
commitf7379eafd276fd105441367759d4ca45f4c8d363 (patch)
tree25a28447570d6de52ef3513ed02cdcb7123c7b9d /libavfilter/af_aiir.c
parent3e4214109a1ef394af8cc92064deff254989bf09 (diff)
avfilter/af_aiir: fix sp2zp mapping
Diffstat (limited to 'libavfilter/af_aiir.c')
-rw-r--r--libavfilter/af_aiir.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/libavfilter/af_aiir.c b/libavfilter/af_aiir.c
index c5df4b1202..64bd78ad8a 100644
--- a/libavfilter/af_aiir.c
+++ b/libavfilter/af_aiir.c
@@ -877,23 +877,17 @@ static void convert_sp2zp(AVFilterContext *ctx, int channels)
for (n = 0; n < iir->nb_ab[0]; n++) {
double sr = iir->ab[0][2*n];
double si = iir->ab[0][2*n+1];
- double snr = 1. + sr;
- double sdr = 1. - sr;
- double div = sdr * sdr + si * si;
- iir->ab[0][2*n] = (snr * sdr - si * si) / div;
- iir->ab[0][2*n+1] = (sdr * si + snr * si) / div;
+ iir->ab[0][2*n] = exp(sr) * cos(si);
+ iir->ab[0][2*n+1] = exp(sr) * sin(si);
}
for (n = 0; n < iir->nb_ab[1]; n++) {
double sr = iir->ab[1][2*n];
double si = iir->ab[1][2*n+1];
- double snr = 1. + sr;
- double sdr = 1. - sr;
- double div = sdr * sdr + si * si;
- iir->ab[1][2*n] = (snr * sdr - si * si) / div;
- iir->ab[1][2*n+1] = (sdr * si + snr * si) / div;
+ iir->ab[1][2*n] = exp(sr) * cos(si);
+ iir->ab[1][2*n+1] = exp(sr) * sin(si);
}
}
}