X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fpsymodel.c;h=76221243cb359928a77d65fae32b0f6ca0fcf326;hb=18e8fac531cb4b7db3d6d36b222c99e3e8968cfe;hp=824eefb79ee1fa2476bef701ec771fea8aafbde8;hpb=4b7685b6c626a159e759a5167af11abef9c7802c;p=ffmpeg diff --git a/libavcodec/psymodel.c b/libavcodec/psymodel.c index 824eefb79ee..76221243cb3 100644 --- a/libavcodec/psymodel.c +++ b/libavcodec/psymodel.c @@ -109,24 +109,20 @@ av_cold struct FFPsyPreprocessContext* ff_psy_preprocess_init(AVCodecContext *av return NULL; ctx->avctx = avctx; - if (avctx->cutoff > 0) - cutoff_coeff = 2.0 * avctx->cutoff / avctx->sample_rate; - - if (!cutoff_coeff && avctx->codec_id == AV_CODEC_ID_AAC) - cutoff_coeff = 2.0 * AAC_CUTOFF(avctx) / avctx->sample_rate; - - if (cutoff_coeff && cutoff_coeff < 0.98) - ctx->fcoeffs = ff_iir_filter_init_coeffs(avctx, FF_FILTER_TYPE_BUTTERWORTH, - FF_FILTER_MODE_LOWPASS, FILT_ORDER, - cutoff_coeff, 0.0, 0.0); - if (ctx->fcoeffs) { - ctx->fstate = av_mallocz_array(sizeof(ctx->fstate[0]), avctx->channels); - if (!ctx->fstate) { - av_free(ctx); - return NULL; + /* AAC has its own LP method */ + if (avctx->codec_id != AV_CODEC_ID_AAC) { + if (avctx->cutoff > 0) + cutoff_coeff = 2.0 * avctx->cutoff / avctx->sample_rate; + + if (cutoff_coeff && cutoff_coeff < 0.98) + ctx->fcoeffs = ff_iir_filter_init_coeffs(avctx, FF_FILTER_TYPE_BUTTERWORTH, + FF_FILTER_MODE_LOWPASS, FILT_ORDER, + cutoff_coeff, 0.0, 0.0); + if (ctx->fcoeffs) { + ctx->fstate = av_mallocz(sizeof(ctx->fstate[0]) * avctx->channels); + for (i = 0; i < avctx->channels; i++) + ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER); } - for (i = 0; i < avctx->channels; i++) - ctx->fstate[i] = ff_iir_filter_init_state(FILT_ORDER); } ff_iir_filter_init(&ctx->fiir);