|
|
|
@@ -601,18 +601,22 @@ static int decompose_zp2biquads(AVFilterContext *ctx, int channels) |
|
|
|
iir->biquads[current_biquad].b[1] = b[2] / a[4]; |
|
|
|
iir->biquads[current_biquad].b[2] = b[0] / a[4]; |
|
|
|
|
|
|
|
factor = (iir->biquads[current_biquad].a[0] + |
|
|
|
iir->biquads[current_biquad].a[1] + |
|
|
|
iir->biquads[current_biquad].a[2]) / |
|
|
|
(iir->biquads[current_biquad].b[0] + |
|
|
|
iir->biquads[current_biquad].b[1] + |
|
|
|
iir->biquads[current_biquad].b[2]); |
|
|
|
|
|
|
|
av_log(ctx, AV_LOG_VERBOSE, "factor=%f\n", factor); |
|
|
|
|
|
|
|
iir->biquads[current_biquad].b[0] *= factor; |
|
|
|
iir->biquads[current_biquad].b[1] *= factor; |
|
|
|
iir->biquads[current_biquad].b[2] *= factor; |
|
|
|
if (fabs(iir->biquads[current_biquad].b[0] + |
|
|
|
iir->biquads[current_biquad].b[1] + |
|
|
|
iir->biquads[current_biquad].b[2]) > 1e-6) { |
|
|
|
factor = (iir->biquads[current_biquad].a[0] + |
|
|
|
iir->biquads[current_biquad].a[1] + |
|
|
|
iir->biquads[current_biquad].a[2]) / |
|
|
|
(iir->biquads[current_biquad].b[0] + |
|
|
|
iir->biquads[current_biquad].b[1] + |
|
|
|
iir->biquads[current_biquad].b[2]); |
|
|
|
|
|
|
|
av_log(ctx, AV_LOG_VERBOSE, "factor=%f\n", factor); |
|
|
|
|
|
|
|
iir->biquads[current_biquad].b[0] *= factor; |
|
|
|
iir->biquads[current_biquad].b[1] *= factor; |
|
|
|
iir->biquads[current_biquad].b[2] *= factor; |
|
|
|
} |
|
|
|
|
|
|
|
iir->biquads[current_biquad].b[0] *= (current_biquad ? 1.0 : iir->g); |
|
|
|
iir->biquads[current_biquad].b[1] *= (current_biquad ? 1.0 : iir->g); |
|
|
|
|