From patchwork Tue Mar 16 20:30:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26418 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 87FB14487CA for ; Tue, 16 Mar 2021 22:31:37 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6C5EB68B042; Tue, 16 Mar 2021 22:31:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B50C868B012 for ; Tue, 16 Mar 2021 22:31:30 +0200 (EET) Received: by mail-ej1-f50.google.com with SMTP id mm21so74300209ejb.12 for ; Tue, 16 Mar 2021 13:31:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=UAljzxoDn8344Q5VxVp5IXa5i3WeB/T9emoU5U+YEEs=; b=Z2/H3EYvFkr3HmbUsinb6bpnYpGClJieY2pnB05q9HaUUwYzorq9zoWHFjm4VH3DT8 UlxXhyVagdX82TUo2e2xSJ01/h9dkIAgaSP+IetBpYbEWVbCD6wcofFjWKh7UAq0qXAb o4vwL8cUozP95Wf1hiuAggPA/fRyNH62D2ZMPcIjCAN4pEN3DNC4q3NXMiu1vj9B9kpG /s1mzZriK6HlD5h33boC/stslP6k5fmv7zqNMjav1qegNo/ak5wxGogIDncgs+ob2no2 GZnmCNvxMUOP0UL8r18Rq0r5xlXO5TT+Uu8WkQaslgnb4vkWY/s6WZkiiI2ViL/9fXxM xuIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=UAljzxoDn8344Q5VxVp5IXa5i3WeB/T9emoU5U+YEEs=; b=KxKyD4Gt1VbuEmPcEFrtbHZGTFq/YUABJbmw3eb+48KHSLT1txTVg10RMZ7RR7PdnH cO55UhC62lbeMruDXtUaVS86vRha33jYfl6ti0188sV5cOYAkTXtiEyzy/AjMT8eD4Lj 76NLNucZ6Zlg2WH0wLxp7eSRi+Vaj7QXAjVUGoLXi/fmLT0Dy9ZhbOwQHn+wPlABNtY7 AMKLnFsgt844z1wYWd8zt/EsDt9gvtgEMmSWGuREckGlrp5/HA2GgNQ4V24dNjiLTFdf BfRBNZxdjacl70xwoS6hECQTEcAKknIhZSgxaWOf9UVwGad+X19mUkGdxsnMgKhBwByE URyw== X-Gm-Message-State: AOAM530nh6TeAj/C34mtBDYQS3J/Vx4mnT5gXgzMYgTqGotVa6WkuMBu 173gLQWLqYi4dtcXk7Oyw7tTH31fb8kimg== X-Google-Smtp-Source: ABdhPJxqcqs/WdtmP54bqu9+YWhWWc823gWmYsYYIuzGbgKiw8LKIkKn0WS4/+OvoDmrrL+mRz1WBg== X-Received: by 2002:a17:906:4107:: with SMTP id j7mr15608533ejk.185.1615926689989; Tue, 16 Mar 2021 13:31:29 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id a22sm10281908ejr.89.2021.03.16.13.31.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Mar 2021 13:31:29 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 16 Mar 2021 21:30:58 +0100 Message-Id: <20210316203100.528950-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210316203100.528950-1-andreas.rheinhardt@gmail.com> References: <20210316203100.528950-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/6] avcodec/utils: Move decoder channel count check to ff_decode_preinit X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- I actually wonder why this flag is not used for encoders. Several of them explicitly check for invalid channel values. libavcodec/decode.c | 5 +++++ libavcodec/utils.c | 8 -------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index cbd41c8cc8..390147908d 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -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); diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 7d4ad113df..77f98c951b 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -671,14 +671,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);