psymodel: dont apply lowpass filters with a cutoff close to the nyquist
The IIR filter numerically diverges in such cases, this could easily be
fixed but would make the filter slower on some platforms
Fixes Ticket2246
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fee5da6b0a)
This commit is contained in:
committed by
Carl Eugen Hoyos
parent
b642e45d8c
commit
088ba9bc3e
@@ -106,7 +106,7 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av
|
|||||||
if (!cutoff_coeff && avctx->codec_id == AV_CODEC_ID_AAC)
|
if (!cutoff_coeff && avctx->codec_id == AV_CODEC_ID_AAC)
|
||||||
cutoff_coeff = 2.0 * AAC_CUTOFF(avctx) / avctx->sample_rate;
|
cutoff_coeff = 2.0 * AAC_CUTOFF(avctx) / avctx->sample_rate;
|
||||||
|
|
||||||
if (cutoff_coeff)
|
if (cutoff_coeff && cutoff_coeff < 0.98)
|
||||||
ctx->fcoeffs = ff_iir_filter_init_coeffs(avctx, FF_FILTER_TYPE_BUTTERWORTH,
|
ctx->fcoeffs = ff_iir_filter_init_coeffs(avctx, FF_FILTER_TYPE_BUTTERWORTH,
|
||||||
FF_FILTER_MODE_LOWPASS, FILT_ORDER,
|
FF_FILTER_MODE_LOWPASS, FILT_ORDER,
|
||||||
cutoff_coeff, 0.0, 0.0);
|
cutoff_coeff, 0.0, 0.0);
|
||||||
|
|||||||
Reference in New Issue
Block a user