From patchwork Fri Jul 29 21:08:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 37040 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1649:b0:8b:613a:194d with SMTP id no9csp1121112pzb; Fri, 29 Jul 2022 14:09:03 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v7Mz2OAIVxlRWWIiY0EJ4zX9n82zHXH+yKncdJlMpumixjAcuLRvHiq6SWz8MUsGi31Ech X-Received: by 2002:a05:6402:268f:b0:43b:e506:a761 with SMTP id w15-20020a056402268f00b0043be506a761mr5355819edd.250.1659128943295; Fri, 29 Jul 2022 14:09:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659128943; cv=none; d=google.com; s=arc-20160816; b=LoLQOjNpGU7gvkIIpY+MK+aAZGHa/Bg8KD6pFIeA5KuQUJEtRecgWZ28QDR1pQSo4K vtzLDq8sKZeGlomJPXQ5r5AqBuAeSqfgDn9nv539cp21PfgMyJdjpx/aUIaOrat0tVsX Q+BHScvh0ZDRo8jKka7M6PRcTPCXbFzCho0n63GVy0dT/NaUWX1dAvhpyHtYt+0GW+t8 sxpx8MX9ccLM7/j6XfmTP5Bkznuf8aBEX6mG0ICyGRa3QmGXGwwhKYEkJoX/Inj7wiun VEkl87R1tRyuWi6qPltCk/1YuGQ0L+IBkQabhu6ChusPvW/DJwe13/y4gqmpicktiruR WzLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=GX8cAaT5ziWUr9XQzB9ME3Twyfa0yrXErXE16/jmgsY=; b=RwmScjfKO3NaTxIKl35qRaCbPfoCT5qBvy6f8DKNgogPN+Z2OXuK12IuiEUmRITWkp k+aadzS42jULq++i1VW8rxkzfWMWoj5Tm9Nn8rtlRPajqd4wDhyhoieEOK9AamZgrq0n f/TPcWhfr3t1fsw1ojNha2RZ9YWmvttwWPqv20ZmW23egSdmZ/r0/t8hd6Gyz1iKYJaM GNbAf9HZuo3tK9zqJLnculdG8vmVoB4jsCllBb3vlWY0zcgSO5oagP+G8H37QevjDtIz 8617xWItaJNxL9cJe3X9M8UcIrYvhK+BzJ/4JTf+sW8GTgwl5i+LJTGUuWKCMcDHJIlO Aqgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YHl+DRxt; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dn10-20020a17090794ca00b0072ab7bc38eesi4621197ejc.950.2022.07.29.14.09.02; Fri, 29 Jul 2022 14:09:03 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=YHl+DRxt; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 477A968B997; Sat, 30 Jul 2022 00:08:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-vk1-f174.google.com (mail-vk1-f174.google.com [209.85.221.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8D6AE68B867 for ; Sat, 30 Jul 2022 00:08:51 +0300 (EEST) Received: by mail-vk1-f174.google.com with SMTP id t82so2859841vkb.7 for ; Fri, 29 Jul 2022 14:08:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc; bh=ZpHKEhtR6p5tMnuiL7FdDIfZMQF9piUXMdCBwMzbYEU=; b=YHl+DRxtR+JfIQfewR2CvXHEbEPM8rGi9/oqMW4Mhf+0ARk8cbRW2CvLIBVmXUZHCS tcNDC+oukDiSovZ0LutNViJXIuWDdNwSYX6j3ZPbC77lpg8DYQD1dcrD6BYOeELB1HzA u7hAkTxiPWO9XlvkJKCjZFrYqTp2tiV72v5avkiiGvp2SWFPBG6aUk1gtfdfViIe1PFI I2kF1/m70jgzXl557zzQIGRXfygNtOfJBUcjANVMjWFKtq5Ti0JVduxTCl5fpPHBlqHW +IcLzvJdA+/je3CcQk3Uy/454wtyTtlwB7kTFJdzCX/9Qnq5ALEEVW9mGRz9VpPpeUVC 8i6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc; bh=ZpHKEhtR6p5tMnuiL7FdDIfZMQF9piUXMdCBwMzbYEU=; b=ldb8e6goJGHiR8IuuK0FMt2Mx/OUFBDDgOCK4aJy9XxyTODpWYRZ5bw00o9LvB120X lhaCF7VXKIMwRe6eDLKoMEDCvlpdY8AhRyR1mQV9rgnsAhEUU8YnyiuAjwGE/YD6kRxm IXL+ky4kOkBHOuEBRqnXTiHIufzwI1bsNAY744iZ2NEQoOWWfqyhQktfRmizQiHtAFqx RdjCTvC6JDKh5ygTYq74GYS2xXNJkP6M3UV725i6mrfiXiDYFoscmtEVBhPYPGhjpn74 mkIZuK29YkYAuDrGs9fjYVtuV2l7P53pA40DFgH46YEN+O3BPsdLxjkRGcnIF9sjjSFQ ApJw== X-Gm-Message-State: ACgBeo1E67R+gBh03sK9ev/xoY3WsNMqKvR+yTkyys3sRJaDAoNkfdqS Qr/LgZqdd14F0wHnMr2KiRVJURWmopCZZg== X-Received: by 2002:a05:6122:499:b0:377:2c3f:42db with SMTP id o25-20020a056122049900b003772c3f42dbmr28934vkn.9.1659128929589; Fri, 29 Jul 2022 14:08:49 -0700 (PDT) Received: from localhost.localdomain ([186.136.131.204]) by smtp.gmail.com with ESMTPSA id p67-20020a1fbf46000000b00376fce42751sm1669968vkf.55.2022.07.29.14.08.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Jul 2022 14:08:48 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 29 Jul 2022 18:08:16 -0300 Message-Id: <20220729210816.267-1-jamrial@gmail.com> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/alac: don't fail if channels aren't set during init() when extradata is valid X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: J3jYSEtbgDu+ The decoder is meant to use it as a fallback if the value in extradata is invalid. Regression since d199099be. Signed-off-by: James Almer --- libavcodec/alac.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/alac.c b/libavcodec/alac.c index b232514169..8b87d78dd3 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -574,13 +574,15 @@ static av_cold int alac_decode_init(AVCodecContext * avctx) avctx->bits_per_raw_sample = alac->sample_size; avctx->sample_rate = alac->sample_rate; - if (alac->channels < 1 || alac->channels > ALAC_MAX_CHANNELS) { + if (alac->channels < 1) { av_log(avctx, AV_LOG_WARNING, "Invalid channel count\n"); + if (avctx->ch_layout.nb_channels < 1) + return AVERROR(EINVAL); alac->channels = avctx->ch_layout.nb_channels; } - if (avctx->ch_layout.nb_channels > ALAC_MAX_CHANNELS || avctx->ch_layout.nb_channels <= 0 ) { + if (alac->channels > ALAC_MAX_CHANNELS) { avpriv_report_missing_feature(avctx, "Channel count %d", - avctx->ch_layout.nb_channels); + alac->channels); return AVERROR_PATCHWELCOME; } av_channel_layout_uninit(&avctx->ch_layout);