avcodec/avcodec: Move decoder channel count check to ff_decode_preinit

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2021-03-16 20:07:20 +01:00
parent 746796ceb4
commit 77616c5fb4
2 changed files with 5 additions and 8 deletions

View File

@ -270,14 +270,6 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
ret = AVERROR(EINVAL);
goto free_and_end;
}
if (av_codec_is_decoder(codec) &&
codec->type == AVMEDIA_TYPE_AUDIO &&
!(codec->capabilities & AV_CODEC_CAP_CHANNEL_CONF) &&
avctx->channels == 0) {
av_log(avctx, AV_LOG_ERROR, "Decoder requires channel count but channels not set\n");
ret = AVERROR(EINVAL);
goto free_and_end;
}
if (avctx->sample_rate < 0) {
av_log(avctx, AV_LOG_ERROR, "Invalid sample rate: %d\n", avctx->sample_rate);

View File

@ -2026,6 +2026,11 @@ FF_DISABLE_DEPRECATION_WARNINGS
FF_ENABLE_DEPRECATION_WARNINGS
#endif
if (avctx->codec_type == AVMEDIA_TYPE_AUDIO && avctx->channels == 0 &&
!(avctx->codec->capabilities & AV_CODEC_CAP_CHANNEL_CONF)) {
av_log(avctx, AV_LOG_ERROR, "Decoder requires channel count but channels not set\n");
return AVERROR(EINVAL);
}
if (avctx->codec->max_lowres < avctx->lowres || avctx->lowres < 0) {
av_log(avctx, AV_LOG_WARNING, "The maximum value for lowres supported by the decoder is %d\n",
avctx->codec->max_lowres);