From patchwork Sun Sep 18 20:27:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38036 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp859109pzh; Sun, 18 Sep 2022 13:30:26 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6FD7DgSdQRuTo2de/lPxVrHvgr4t04OY4qognlp2sSqwubBlioMg9E1PpXmqxtA4+B/lV8 X-Received: by 2002:a05:6402:1e8c:b0:44f:f70:e75e with SMTP id f12-20020a0564021e8c00b0044f0f70e75emr12342350edf.405.1663533025902; Sun, 18 Sep 2022 13:30:25 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y8-20020a50eb08000000b0044eedb5a82dsi7597704edp.476.2022.09.18.13.30.25; Sun, 18 Sep 2022 13:30:25 -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=@outlook.com header.s=selector1 header.b=T75s+ngc; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B0C1168BC0B; Sun, 18 Sep 2022 23:28:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074102.outbound.protection.outlook.com [40.92.74.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3952568BC3F for ; Sun, 18 Sep 2022 23:28:29 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VGJXn1Sig2gHV6UEKGDvGp8aR8VbwH+rkGbfDvPV39GPFm7zzmMeq8ObbkcJ7z6L25meK5oCPlz2p9o/CWCJ+qVJToi9ZY9v5CY/3fPSpje4v6hNh0H+fb1iaN+JEU+4NZdOCs6q0ccLbR1RWg+jnQM3FDrrp7fskdNm/b5SDZ0Xx0tmp+S/h0XkndFXEA/pUg/RX3K85pnWgEgxXWPNHlqWbrry1n3sp4QDiBzLGnHu4gE3M3TGU1aRZ22+MkdFcMrL8Svrpc1YSS9/WGEtzrMgiW6jgwaSUZJll8wUz7t9objjfdVpHOK5zxLaB8FgKP5rxTF2QoXms/gFma9hkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+XpNyoDzaFyFkXXGmfiXe+C1rtZh6fxfigXpucB5u6o=; b=iYPNaY1hPkTJBtX3HWkTSOd/CO5nAQV23ogx3RuEbMQ2ZGCFi5aWkMdgkTYReDxw0wMTr4Q5vOnd7J6TlZB1GxR6qN4gwoLkJ9OAJqs3mabmU0V7Cf1ndOntxslI3ETwYfK6S0yWtyItCGkapin+XfEtDIEP3DLXQCalIXvksXD8HIs7W6zsduHMd+zkPnJZdkzI6dTQB9JhBAe+9Xi1+R8IIN8nOJQOOeDjWPMdG1x+xpv4NhSWJESlCjT8oqDnBkYi1PXG12WdoRiLOGqYdVxAAnDWkGJ3N3Yd760B21Qq3XHYfYPcq4HVP8pU2wpr8tL6r6t+mpEbvoWW13Rp3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+XpNyoDzaFyFkXXGmfiXe+C1rtZh6fxfigXpucB5u6o=; b=T75s+ngc1ZC6FkWiXzPSUHjsba7s5/aoEY8Ci+X3/SXzNw0E6eIhbMwLMK8bpVsWmUKZd+xXD842vMDSRMOmuna2zKBBdfsaIred/MV8/V98UqU0R7cI/ne4KD7Bq2Jlnhpg4A//wovXMoLRSB5oYlzVldQIurzYGRY37/3L8u5smam7oxiQDcYOSQoetSTUjQOQHk+SrmmeSVMBKYBNp87PZnabSGAnqprvrMT3oRwuDyHNfbtO5AIJruHeosiEMzMxWwszeLrrDCbNpOScxTEHp3OBhyB2LDqZWHLNVuoMwTofzzKuwUKq7IHNzyzZfwOc/BkbWJakW6K9LtIwLA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PRAP250MB0442.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:278::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.15; Sun, 18 Sep 2022 20:28:28 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785%7]) with mapi id 15.20.5632.019; Sun, 18 Sep 2022 20:28:27 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 18 Sep 2022 22:27:57 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [QwCJ4iZ2VUXyN49C9shaD2S+HXmcROLjNoqDCwfSvMk=] X-ClientProxiedBy: ZR0P278CA0109.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220918202757.2345415-16-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PRAP250MB0442:EE_ X-MS-Office365-Filtering-Correlation-Id: 0853aaf9-9e1c-4870-df49-08da99b45814 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxCM1OeU4RWKrdQhmMVsaYvaayl+l1Ll105SdyNn3b5f1aoRTpZ1pGbc+6isKNWl6egskaW32gw3ZcEa+dGXnjWNnEAfGXjQkZdnN8PA56MmwpG0D+xLh+M/bdEbvyprTL3HihyI0VQdFCOQj/ma3ntmz5EqJYOT1E2k+YcylgOH5hQHY0t7btDiS/XkphOKZEhC4W/T53TLolRwN4k45FZfnqxT39oJIv0LYelGgCGt2/25J+O7jNaxFnoSPx9y8NZDGmQaayzRrCKCwyG4bjzvMzKMn80bpPY6L+NUmpdmdRgNV4AxcN4ngtTHNGXCkN3K9DLHn1U1twzWu0IKWM7w0/3KThKDCk1u0/mvmCN3DoiTEW7vSpf3uYtd/8vRgUuFJIMffnqf0aF3/SrCGkgz+xZs4GSbakXQpVFH61Na0SPF2DZNUgQmphAXzp3pgQBbsGr2czmCBdeLbEdY5f0RtzE48T+cBizWHYQOorOJeLQxIoPiJe+pg6hMh6ZxvP3XIA+La0erPqcZqiEAwMYRqXaU5o7M7Gl/YU9Q2IXYw55CJtYKVeRIJYKdOHNcZOOQRwo3VGzfiRdi/ZtOJrsKNbVpVUJi2c1uDYzfWru9sIYo+52oP+ImfEu7v5MppY97eJ3QU6Z6sY/7oe5wxu++l3ZTRNWQkkRgWM0a8FvdZ3EcPT+pKHgT3ZK9EDbWd2SQydpJwcHMj+ebB7jvO7oVtu5BkzZxEA= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7qq1OoI9ppTktufNBr0oXsm1ISmtvu/Ln+G3/kXQ3ED/D5uineYgcYQ+adc/n8fHi/+XVzsj6+CWMZb/EC6QJcre/131Zr4lJxMzwbB/fe6Z3RWxx0BiPjqB9DsgXl/UnGwdOdwD4fJ1DDcIk8ncPuBx4VOdTvOrxNgsIz4Z53cTULOGPLidkw+uqtc9Ezktf14YpwM6aJOX5yuYWn7Q1KZY2qHYshqqWF1YBrzfcMeKs4cFSCdK43GAAhXokTvrVrRlrGIzm08DLqsD13glEPFMNbSxta0QuzdnNbAxXYSK0r+wpKhKdSttZDg0mw8XnQqx2C4AkZBsidXli7jEPEkv3t8YZdxi62oZUKNfiuZvo0aFpsICRYxeFiaLc+wyry1sETaivRzLo9R8ZiZKlZbq+4BCiIUkT/zwbcHOnXR6rODPD4yCjYdt1RWFlhqXk6tI2AXczRYJLFC+qMVYS7RAeHTWEQLZwCfdqVSEaBlDdEyndeVXfA6YLBuZ1nDKrTVY/giLRzYM/Vk5lR5npuCI6RlLwvFv/dX4PqqcgRGu2tUdbd/0vxBrtrkOGFkOgkRgfU+0/zDZGizpSI30gQEdDqj/8OsN5bn00VBYTEmg8SR6FIDIo2Y2lMquLFBH1HumtOMXmBx6QXW2Sf+mZA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UR2B1EHHIfDT/xulELr3DDB9xqyxvsUSzu5QNeRiHhSm1+7UY5GB0Cq/DrLvurormuPTmEG/7nq1mQtqIMfZnGgYMBiP6gtLRfmrC4CVgNPlhSU72RXmKb8sAN/Wjxm/N3cnxNLmPWFlohpftzVxi88xD35N22x76g40ZZv5oK0V8+SO7h4mus4VIIZVAgA4rVmGopYoke0n+OH7aHTGxk5xm4MdmxpUTavV9FhMpiqgo4r7vSJjVFkwr/NjDctIzKxllWVqRKtN33gluHchmppnWUv1E8nDAKCMDWEeAsdBmfbDtYRsFOVefktvgR4hGSPWdUNRBr3qIZKVPpmPt5L9b38i8CZQLpJd3yT52fjLwtg/L3tH+1/xbz98KHfos5pQKApLyDhdHtkCmLiEHkli8ZaHLE7tlBWR9p+z5phQ8JtoEwZzupH+ZDg7ZSvE/Zg9pvg+nQKFijla575SY8JueK2OA70doahSBvoQzRrCqI3YwmURyQOocLubA9Xhwc0rWLZ5ZX6hrfhe2vht2rNmmvxydnBFThuEvRERlE6eZYFRdJpGHWiIXaLC6EWEecOCQ4rnDVCjxzfsRAKHqPnMVQKpnW55+9VKOKwfeKD2wjDrE+3BSv204d/XuqerxxpRtDHOhDkw6d/g/9VDGk9hf//ecX6l4RYEXEPIehJ2dTVBgwxS0tHuCiLdtLfaNus8WsjoHZB4weFdj0W8/Lt6AZHa+550ss88TPHG3w29vREOEuWh4V8dXnaia5qioBiMBgYq8cqgFM4gYMBYdZU0ttEvy5qubFGIphq0nckVHwqt9p9U4A+gM6nY/TkuMfANTSk+s8CIS9huwGe+AXHKxbEk4QgROZQYfGyKv4mi09cTAe5+A2Khv1ESxDdAma2Lj935W8fJgssTFC7bvuioHEV28TbigoIGUZJ1+K0zlYL+qt9bwLp6KRtkM/AAVjlj6TlrUwczOvyMUiNhG+q8BZnhXRj5RTbsD1//RUelzI4C6LyZ1l+aJkwOQsRgkq3oSrlbvlEgS6c3LM8Qnwjxp1vEds6BZ3Is5UKfTq8piPkwVd2YlRYjR8t17QgwfR4Y8qAbHGhqY2vBhYjAoYmrsUm18XDDsB5L1d31u16AQjXv9BcD1ryMbVXRmv+g7HH1bwceb4L0zftOlGoK9rkiWrIZ3UsSsVs8YOt1YRrQ/UaUc/9zyNdAtTfvy3uctO33M5tH9vP6k+dydzOgyxF5Z6PYlLxAOi5bhJP1lusp7oBCmiu3pQPo4R74g2yB4uEJQRj1ZJlWbKbhWy0xKAfZ8TJ09hh/S+JXnPhY5LQ3lbm11R1ftATMkQBTqRIW X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0853aaf9-9e1c-4870-df49-08da99b45814 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2022 20:28:27.9146 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAP250MB0442 Subject: [FFmpeg-devel] [PATCH 17/17] avcodec/dcaenc: Simplify channel layout check 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: yDQVTOOZI6ay ff_encode_preinit() ensures that the channel layout is equivalent to one of the channel layouts in AVCodec.ch_layout; given that all of these channel layouts have distinct numbers of channels, one can therefore uniquely determine the channel layout by the number of channels. Signed-off-by: Andreas Rheinhardt --- libavcodec/dcaenc.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libavcodec/dcaenc.c b/libavcodec/dcaenc.c index 0996296d8c..46618c13f9 100644 --- a/libavcodec/dcaenc.c +++ b/libavcodec/dcaenc.c @@ -222,16 +222,25 @@ static int encode_init(AVCodecContext *avctx) if (ff_dcaadpcm_init(&c->adpcm_ctx)) return AVERROR(ENOMEM); - if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_MONO)) + switch (layout.nb_channels) { + case 1: /* mono */ c->channel_config = 0; - else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO)) + break; + case 2: /* stereo */ c->channel_config = 2; - else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_2_2)) + break; + case 4: /* 2.2 */ c->channel_config = 8; - else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT0)) + break; + case 5: /* 5.0 */ c->channel_config = 9; - else if (!av_channel_layout_compare(&layout, &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1)) + break; + case 6: /* 5.1 */ c->channel_config = 9; + break; + default: + av_assert1(!"impossible channel layout"); + } if (c->lfe_channel) { c->fullband_channels--;