From patchwork Sun Apr 7 20:39:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47893 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2139451pzd; Sun, 7 Apr 2024 13:40:04 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWCiOWM7a3k3/RhB19ZveWce/IFEFg4t7N+9d7xlr5OjMC8N8AxAZXi+0KOvhXqVRcsxqboZirt/wVRE/sKH4JBqIzVfXnKTiCFpg== X-Google-Smtp-Source: AGHT+IHz3KYQAE4ssaufyJ43eF+/wTbucyInj0puiCP9UCgEZabZ+gokI5o0clkWAoc+XXCeXayO X-Received: by 2002:ac2:514c:0:b0:515:d4bc:c643 with SMTP id q12-20020ac2514c000000b00515d4bcc643mr4618281lfd.3.1712522404311; Sun, 07 Apr 2024 13:40:04 -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 y7-20020a170906470700b00a51b8e92117si1926489ejq.588.2024.04.07.13.40.03; Sun, 07 Apr 2024 13:40:04 -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=nXhMDyAX; 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 3F56068D15F; Sun, 7 Apr 2024 23:39:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2049.outbound.protection.outlook.com [40.92.58.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6F51C68CEEB for ; Sun, 7 Apr 2024 23:39:52 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWt/EZqunnMvedFm0QyU/gmvX0nw8kxdlAstt+miYvhzXs/cTsJ0JSmNfJUkwJWJOxcjHD8qC9TmyLWOmRFTB/HrFZ3o0tOfJGcnc/rKLGeE89JrldfeWiK0iZgTmFuAU/YYcLCx7mBFoRSOuQP4dU72zZDs5ICEdBMiuc+jEFGZiGZNC9K65ZUcqvtKI9MFE/UfLZxGAWKaYB1gdSN+ks+Z0xm8jQ/TDQmlJV62nD/vYUcKSR5ECIvhXNeB/QFw3NhqpdjQJkAL1xoyzZb7W8qAnfwfDJ/CykVcBZdh6tR2dR8r8kpwNZ0TwveYfksT0cp7MGnCRGtBJ20RO/ujug== 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=PybpXk88tFMgBa/A8qfSy67iAGTJOD5fUibouKFzLfk=; b=XeP/3HHjVRe9wnaz5sfmfDom+hfURBCBPn0dEPbgkKfIbqdAi6Swo31fru8QgpT/nwvwKzUR5z0iYaBmsfTsqpoNx+YvpmOC+3SDu89/OijJoqSUsATOEer5yBLdQT+I4OmenT1Ha3526cKjMpbAst1ugeGU03uuOx6aU47ySPusPpKb29l3Nf0hLNd4TJlXCS51QnNVQatRWQEfoAFifCGRvJccbzQh9ua1tUC1IN90BWA/18mcigCzk60RWJ0dKECQcqeyYztnZDFWP+k5CMXd9wgxeEiXSdf7ht3y2s807TzZm3Oie1tfvnMrmxrRqimM18CNnSBtp4GiN7Ta1g== 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=PybpXk88tFMgBa/A8qfSy67iAGTJOD5fUibouKFzLfk=; b=nXhMDyAX85W4SBdGug+sLv3/pLQNun/dXLW0riaiAZg3LiymuBVLWMLkDYDS9aSFNlrJ46Lpez92Y+wdaFZzhoftHK8SJfS+wfivknbAe+dLqBPWJu37Ljdoj9NNMnh7W4+6yG2wggdsil5nZ2de/TZGTibvFoaFx+llX/OOH3m9qPx4DrsJvE5KbKGBLuxCNPZcpsfEp2DnBlGNkytx/rnaGYt3XNTkWQ5kFTD46LFMfJGik32SH+3zXAasxd3UfT2HtDzE6HaOc3Rx38CWTgstfoSGikjtVrNjoZUSbXRkOYUV8SQSgyS4f12Fn2EHa8KZd1Nsa9Z2XKWB3OCVnw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0356.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.53; Sun, 7 Apr 2024 20:39:50 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 20:39:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 22:39:26 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [M1XELcjueu6lpABn6ilz8bCXIAhI4cUkPQ8KJB9xJzU=] X-ClientProxiedBy: ZR0P278CA0189.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407203942.785799-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0356:EE_ X-MS-Office365-Filtering-Correlation-Id: 607b8016-44c2-45bd-7f65-08dc5742def0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nvKyXubSWmboyaxwxywD06WgBVgI2EFNKTYvFMOtJq3m28iFmUQuzdycqF1i9LCA8dPvQgbIaD+gYaPMvjtEn5FtA76J4mToGQx+Edif1Q59imWsuazGtJ4AR41aBocF8XpzhWp5QctCGRGFmUsh7CRSI2OqaYALKWEzm0V+I7LHFzbZNdmZLEVlhutJVwO9udNB1SXvfnJ+kCQsrOK8jHdzQIA+0PtdQmSs2UXnxz36PbS7tfiR7h6lp1Dra6eGeWwlPi/Mhg1c8bEDK6Sy2TZjOxWBV7WQ5XLMRHiQnTui4/4mebaAEAr1QqoCdICQqol0btn4+XyVXggZhqTRtuB/NhHzvOWQDMYXhKATRYOF4X4X1WkbhvBL4k7SsZLMMJeZzTzbW3rRPVx40yXZFVcJZefZo/wR+sMfH0PNI9n6kucGxiJtni8Irg+h4J1jG+4LGSTiYFpNhWQ0cIOL8uFqQcOm+oWuUjG0m72hx9Huc4EkbtysqkoKasQpRkxlSyxmkmqlkiOtUBy2mLMPE/H22GSeqnofvKglcva6BhkXhf6Ofnx6bQqxEIYGPiaf5REzYqjv6Qo2KOhPieP1OdRnhJYj2283tazU0ejrONVWsMHAX+WhFCIcLw61B2pR X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BVQmOcWfWfz+GQlttKaQBp2WnJ3ukw45r3RXBIYExBU3wph6VpZQT69wVdkYN/eEOtc3CrFdn81cFGdPXRLc4Oyc89s7e1JH9Td8j8PmurbFzIQOZLkz+Lk3i59AhkykCS5DwG8nQlZ17J7XQl7PSSLY/JCpU5VaXlDx9jAYqN3RgJ4+ZMrALr0vOZJifYT0RGetrLf1G89HN8rSrdHRcQ6iSWaG/UfCt63/V3JgNZUV3JGp86bctaJI4MBvERptaHHD3DVo4WHAic0IdcZPp8IIiRWYrK6DfDf34Meku70eGEmel0nbuwzFf7R36L0bC6YZGHbkNNksKpMpWEH1jJ8qpI+6IUnxi+vrsqtr2s78nip9wSUXzQzWFv57X7qiSOFUCehrviXvGEDmhpwvAYf/r350h2fyvBgCO+V7FslpY4e1kca9EkzsYXGOG4tyS1gdU57FlvR0GqZWaDP+Kea/ptsMMu62ShzO2+A9+rae3A1+9B6nQnnOfrg1OgBIrjiuRjPMAcYHGGif0NZgzyrL+laK2YCADm6s13mK6oSmWGi5F/QHf88JuXrxeKyt7syLy6XXB6Nt34cYhBJq6LAt287nlrLVFOK32y96W75edYan026l/rRPpyEhb/CLAUSItECF8OF55TyaHGM4pIu5jAqjiN2ncnd/dyY8/zXhHwtRA+jq+Y+3dSZUqK4H72Q86NValYbn0H5J2N8sHIqC6/+aPsfvucPIZT4VIOiEg7xyv738DO9jexeSOyEqW8a4aIg+rDBFkbDC6hM9cGh3PG7PilBLajMjW3f6z3ZXLSK3sb2uwSZTU3B0bLku8udkO6xNV6mZXRX5Z/kghxvuAW0/A24rOKgdb1ZQhBvUHTaUMLznrh7gG3WDjg1Faz+Oo47OcwyEokF+pxfllGDXpArft8qE6MGMVlcWGYsgu5EM+nKrnJKffFkAtuGzkot6X2PIS/3QWlAhMMcT9nGPKg5z+j9uj/rU5eus9xL5LBOdneJu5pmyLTHlj+9BviedZZUyOIHZOtlep2WDo3MsdwajVrqR8jODtnrtp9gfC/ncOy5BqCqtdya27vFqtMJyNn5j+z26sA3mtWKgtQ5nnROwb0m+LDq8EeFPwIfUwnTlVT5osYqLS/gAH1oqqDF+xE0UOkKUCyihTBQuuBTB+A1EoD2wgrwSU6yveaIRSWcCYkxv8yrlGJldix0o+pOqv4rB7AzU5/v8ACxPjlF+IONaIzeTF1kosk14yXgGY6+eIce+K/jCeUGaGP3F8e16O3gA8EFnk+oUWoU0DA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 607b8016-44c2-45bd-7f65-08dc5742def0 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 20:39:50.2577 (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: PR3P250MB0356 Subject: [FFmpeg-devel] [PATCH 01/17] avcodec/ac3enc: Don't presume ch_layout to be AV_CHANNEL_ORDER_NATIVE 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: wUzdP/89siA4 It is perfectly legal for users to use a custom layout that is equivalent to a supported native one. In this case the union in AVChannelLayout is not an uint64_t mask, but a pointer to a custom map. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 7a6bcf7900..dc197c1517 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2192,18 +2192,14 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx) static av_cold int set_channel_info(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + uint64_t mask = av_channel_layout_subset(&avctx->ch_layout, ~(uint64_t)0); int channels = avctx->ch_layout.nb_channels; - uint64_t mask = avctx->ch_layout.u.mask; if (channels < 1 || channels > AC3_MAX_CHANNELS) return AVERROR(EINVAL); if (mask > 0x7FF) return AVERROR(EINVAL); - if (!mask) - av_channel_layout_default(&avctx->ch_layout, channels); - mask = avctx->ch_layout.u.mask; - s->lfe_on = !!(mask & AV_CH_LOW_FREQUENCY); s->channels = channels; s->fbw_channels = channels - s->lfe_on; From patchwork Sun Apr 7 21:09:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47894 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2146845pzd; Sun, 7 Apr 2024 14:09:36 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVwokRP8HGwZqJe/lHGVN5p1t5JPspS9lB9sQgl/J0Q28B3RDgfDJ4wi6hFpHVnpl3yUGFnrTM+qobYgbyksHnYGlIze/UlEd1bhg== X-Google-Smtp-Source: AGHT+IH12MIy5E3+UqUbPWAMz78brvpiyEVtE3u96d1TJNW+28hFehvMD+KJolYU+8Wv4T3YeYwJ X-Received: by 2002:a05:6512:6a:b0:516:c7e0:6493 with SMTP id i10-20020a056512006a00b00516c7e06493mr4518029lfo.6.1712524176518; Sun, 07 Apr 2024 14:09:36 -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 i30-20020a198c5e000000b00515d13604absi1828952lfj.472.2024.04.07.14.09.36; Sun, 07 Apr 2024 14:09:36 -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=AGEWBHvJ; 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 329F668C7AE; Mon, 8 Apr 2024 00:09:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2080.outbound.protection.outlook.com [40.92.58.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EA97468D14A for ; Mon, 8 Apr 2024 00:09:24 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ViX6Hai06VxxJZNm41WYT7nX6ThrDvPJtHooE1hBl+3DlyCmdeQ81ZbbF4OuvAjlju9c8lQVFIlTVU8i1wZFsR9rXFraUsvmiCxPj7zZJV7Fx2Re8PG7c0MxhQSr3oqVyj9ZvU+nMuUW8V770G9K1a3Oj6LTtJWr5L2fYmLbQXupWmILCTIuTSSMQwRYPbbqQ/u/SaE2s+0aeWoNWRvIJXUsGCnS3mEsl76MzfJtru98Lg0bSFCQQsLbM8tGRK3ES7qBWw60pFbTwRaQx9yaxGcWtFX8DoLVwQnIlhdErfxT5xte1zpkTBdN6SqRR93X4Jq2gNS9yJ4r+qhbvPqS6A== 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=QbL1VWNSLVgcEnhvI9inKvhh468YmgdMgdX325ZJSbg=; b=moDdkjWZHPCnz2MNT0CgfhXXdMYKTUqatKaY7PoIcQD/ystlJPMM7BDKvt3Ukr3ws9C1VLpjkyF+4Rm5myUQweBsGT5nKNOJNmXK8vz0WFLyhDAtgE+zWm8qQMIL5Y+mOaeWRmyCjUJfZ3NCHCVohpItW/pgf98pWwrGvfy6UeSLWdDWONGsAvYPdTrz8uo2aeVPTRDcouTHJMJMZWqNOWDScibM0HljbF4p/UpHWA6iYjSTjlZlMvEofQ+P/4rH1SVNSGq4DrDo3D0HIQFYkZw7ppRqRQAMqZWuX5a9HibeOgBDku7rhxG1Jzocn5x94jqhPp9np3mVo6PFKuWyGg== 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=QbL1VWNSLVgcEnhvI9inKvhh468YmgdMgdX325ZJSbg=; b=AGEWBHvJyelm6ddRk3ZR/cGqBK9eR8zeIFztWHz91a+sBZxeDNH/2Ja5JCWKalO8w3MKkXzqm9mQ5wxmcfWhX/cKU4tEhoNMLc7zEEwQT6E5YNQeGR2H/OwCxqIG2uugU2aAR9pGSfDHFBgGIviabFnPorlbUNiUOM37ZHbjOSHzLimxT7Jq0EAMXNrMUybDwJiuDc3lnx47/tmIrZPFugFzwdiD3hLns0CRqOsKcvLaqHSVZN65qYUYJ7zjpWKqknENn7IFN6PdXaoGj1x6YrMOteAvu8dlEIe5qc1GOdDA5e+RXaHtw7V9WcmEQWDCeS7mkzwjsXKRg3o93uGeCg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:23 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:00 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [ofgPuwpn/gNJAQRUlppROxhSUsEQZIeH] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 25b2b45f-2a37-40d5-97bb-08dc5746ffb0 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhuMwvg431uzY1y4FLD5JO0Qb/BNpUCS/+w0tfE5RabOUsBK63Ddu95jh1Vr09hlVxXLFN0EFq8nVNk9vkZnLnob5J7qtgbwzNIubDb8H37l8SccFUqe60P3Y1yU2DZwwJhqSMrLslxrdV09ac0m3pB4HL0jBPQtQR3Y7/13aDXawF5n47/Pm9YUkAt34BvOZgYDEt55iThatgtt5iXqxbtTdvlzSTMG6qwN+HXbuVZBDRxRe2lXQXr5lp+Fdl+buemg9sb3aWki0S1dhM6FgclILFgxnXqI6XLe1SMPxilYubKaKbRPlG10ZsRyk08LQ9S5vrpEBxnD6Q9jLgwpjL6o6EOnia8EYvkNbEQ4Ofh5/J0jy8Kt8pZweXBZVh61ML1FmzC2N0SG/LqaRtTPXTJB0hsnyNa8aAvq1wQUNXEZhMi1d+poOvyjEYGTZuOkOe6XhyNbRaptwCM++po4gUZ/d2SHOrNji17I97fl64rhlvlA0CjkgEmJhuM5hts/4lQTLbDaPa52hccoyCKEWRVv6HAiEbHiQJ4wiWNpWgxQj6Ed8O5SkK+tOuhac7djrSvVNOJw8OLoTiebNGv1rGmInfKk7UdwtG60VJF43Zmq/X+Q8Ew6lX6vcULL24x4c65XGpPeipGkdW3VdxOzycquid6byvTQhjjHmvtZFH0nfMFe9vwFM8FYkVwiJlzjIjdVdfuQMiZab+4eqq1Hg60dzBlHLhEjGhLoYumkqXSVc= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UWyGNlagbL39uP/XrdngUFYOcADQiiqm+O071PfMy4yo96G14HZT86f0Z6pZLpV35Fg0+3y8hktUwUI0mHVvaOPuubYkRmbXZbBPFBk8U/2PXlmrxu0YOAkuCMgRC9+FCuvpgKSEv2lSDe8Xc/YrMeZ4My+Ab5EFZlKcvPAoZLZlQSXiVtl4bo4N+Imm4+HL+BaLseOOWXf+ZknRAHb2cPzfxqU+WIgNCha9auobp8hVj4vPn4A4WM4l/LnGHcB+vvEwlzoFqFuKTwjHfOTKlHvqnhXIPMifghzPs+YHZ1igYo9m5pXwtFLwjbmXSBcSUmBQ/jnDoFze/8btCu3bu75b7ur3CpnByhgozFvi7FsisrF9dnxusSuAnieVNVCIHo0QXIxPgW8+nmxmoF5BgcTlqfpDaj8U7w4zNSGSN8fYHJGsg6UtwKwfLmu/YXqYS/uwUJqS2skBiwegHBWI2uADZlODIwSJDF0fc6dEaJNyBZfME23pAFTN7y/CNwgEU0nYSJV2VC7QeB/C5jaI7Ad9TGp7xTF3y5LNhzVHvN4aOc2vdIoepJSCJBJrgMPkKnKAJxHOV+K9zL4r+o8MTeUXCz6ebEbGpCQSMTcRPZWDAXsVWt74i9NDefxK8hu9 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +oVB8D6gG5Z9/ZHxl9eiD1CIKCoLMWHfKCXRIU3pexBQoqjXykcYQVh3diLI3smDMz9u+dWQiFXWLkRrZNhy2f6rcBLN5MxOBEPjl1i3tbY32IW4dLtwRWrfjTmCYUEplNbOFnjY7YT19Ex1heEwb8ljONU8oW2m0itKf42V0Y7ovpfFMarVlR+hYwVrv0LOUFDxNf4EvUa4RI76TMkZUAqqxYfZlkjLY+oxW81PcZj81z2fcIYKvSBDXNo0iz6aiV2QbbMzQiilUeZ5LicftOaeTXcPG9uW1XtIJVKJtmAE2Kg0shxB9lCFHSoGiiD0Z+r8X9uzTCkDLefv8zTXcD6oADkrQufJZ927ouSl3pHdMij97GGjZWRVKEwYjLM4gHniJb1FBWEQOPMHCh0VpYsoDI2RIq3pfNKueVSx9ah2OLMvooLH+pl2tCHw7m+D0hyTqML8GcdGrPvbUH1eE+OERHh415KoEG7Yd0Zo8zL/mU0moE2oMgRFsY5epc8PpjQtwcVsAfYK5JY0KMIfnuEql1ryPBa8p6JQo4N/fONjGIgW5VjM+Ht1QErc+FF9LD58/usu1FA/UUvE03c09YsHNB/eclrNdPw3Pmidzf1FuF33qWwUsaDUGZwiFkFBuJvSUmW6JzeEoXwSAgtkypxaYDAC32ebahVIztIXp6Sfhh1xiS57zLe4D4sXlrFQx2zW5CBHJkBSuvISfUzRvqK6Fs9o+CWXCzJNY2WNI8PUE1qz0IL7N6kEKzGg0tJHdufp2ro6Kg+5X/QT8HMTFdSniDDj0ghic4f6ViW9JcDU3+6zuV3fLIgozMUdfCo9ZJUz93l8vD/aikOiYZidhmlQ8m7QPWYrfeD0CRJvf9XMl/UEOnlQrcyp1vyAnSN6r/IAymTXqoPur5AeEduWCkeCIG7HS5eAxlAAZ5KUba3YMYbiZBXraYasHKNhQlMd2va6m0m4WUEo6gPU0xDwc0ObuhfSm9YJ/6DhyTc51qxmVFjmCIdfKDhuypbZvkhJhPbTMCFfnPQUOrLUxdUpNoOrPsdV8eHIwXiazuoNc5M32AuHAPpFsW31bYSpcgnQg2Ki+Y2YkvjI6ffaRMXufMDiitw5lU+GhWntkTdMuhAK7A3ORvfKJHo3r+VbBKPsTy4d+SV0MSCHmCvAOD7M6EaUvFPvM7uGmYipc6K7r1oLY36tVCb4qt1d92H/gbWxPToFMZE5x29CfbeCVGArR6Q/CnCwqxuRJUBIikbW8ThC1J0zGXzV1rfazwffWrlHATVvx+AlDzWl1EbUEAQn3Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25b2b45f-2a37-40d5-97bb-08dc5746ffb0 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:23.1325 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 02/17] avcodec/ac3enc: Don't overwrite AVCodecContext.ch_layout 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: FdwlfUND2DKm This is unnecessary (the channel layout guessing code became moot when the channel layouts were enforced generically) and also dangerous, as a custom channel layout mapping would leak in case one was used. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index dc197c1517..f6456b2a22 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2224,9 +2224,6 @@ static av_cold int set_channel_info(AVCodecContext *avctx) s->has_surround = s->channel_mode & 0x04; s->channel_map = ac3_enc_channel_map[s->channel_mode][s->lfe_on]; - if (s->lfe_on) - mask |= AV_CH_LOW_FREQUENCY; - av_channel_layout_from_mask(&avctx->ch_layout, mask); return 0; } From patchwork Sun Apr 7 21:09:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47895 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2146892pzd; Sun, 7 Apr 2024 14:09:46 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU2Ii/IPMiiVmT2G9LdIssaLljRDNVLU1rW+jWKr6jJlp3lxBb4kVB74uVTc0wuA55VQadkW2tRi+qV6H2wkKiORCsMt/u9o9OiXg== X-Google-Smtp-Source: AGHT+IGTnpo9C2FO3KDNb/ZKoGFGf6FeVGKZFoq/5COzDboL4zhOWDcDlRNAn/ZKUKG748j/a8kg X-Received: by 2002:a17:906:412:b0:a4e:fe3:ceff with SMTP id d18-20020a170906041200b00a4e0fe3ceffmr4260087eja.57.1712524185826; Sun, 07 Apr 2024 14:09:45 -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 jg38-20020a170907972600b00a4e2d69e37esi3170012ejc.632.2024.04.07.14.09.45; Sun, 07 Apr 2024 14:09:45 -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=JkV9JPoY; 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 327E468D19E; Mon, 8 Apr 2024 00:09:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2043.outbound.protection.outlook.com [40.92.64.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 08C1668D18D for ; Mon, 8 Apr 2024 00:09:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jaDQTpmB0UZ1Q49YEM0ySyEnwCMOFjxju9u73tzIoBx8vuZP/IFMiPfhOEhFZcSLc3Z8XDRiyu+1HnPAsZQDPV1IrS+Cavup3ZUz6ZRtd0C1vReXgK6bChiBSFZAhwNonH68+8N+zvXGeobTmTBvcCYp3ipxyUCy8iUSkPdn2ZkmmfZQuWy08AeJfFmgHL5YnQyhZgAMgDvvgDkgZNr0kZzRMHlbStx/hAObGtXQ/uPr19Ogu/ErwR8CvlFQ5A6KTWiexEmafGZ0A522/emALrmZFl4Toj5mqYs4mqQyP8/U9mK8+l2FuGeVxV67IlCXOqz3Kb7KN5z7pBcJM6FpfA== 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=hhIbWEHvKINtmXPOlj/2CP46WigqNLmFS2U01juEK7Y=; b=SoCAvaKAbMSHS0lvdiMF19RPJRJz1M1HumvAl5yMaANZ81g0rLBeCES4Huo7nw0NkCackI49UBAc49nKuIyIBZaGoUIUDV6stVXrSJzAuehmBnm6I9i5TseWvCTRew813VOYiswd3y+kScqBHCMBYIYrPE/Qv5O2mGJfNGDsIn9UJg/xayYG067NgIMKPi+6SD3b3D7O2PJyssH+NzSrdn8Mr+dJytlNCZpMc1jNTfCUBuBD34YP8oYpaWe9fOw3AkOEGuIhE9miD/8LUfbz+6v99TzzvNsGS9amDjVOj5IJc3tO9qYuw967hS7VA2xARNDnOj/+D91vrOMRrjmh7w== 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=hhIbWEHvKINtmXPOlj/2CP46WigqNLmFS2U01juEK7Y=; b=JkV9JPoYDGIpdAubh+GtVtzXBup5SZ3WK0j9k+S+OnOXqOgRrbwrZ5L+Q1aQHi9AQXpvjAA6/v++Du+kc0qRIKk19Oin69EJ73d17vOnDplrw+aJvMoNZ0lyDnHJ07+b4bgbgORq2HQBgpiTiG8Z5KCgimNcN0rNEHJU6MRcN+0AvyDW7MssoDMkL+/BdwxT1Q7YCf/UHw+z9dDmJsugEEwaF5TPheiNyXEWZTZMCamGDLADOxQCZWmQyq739f0Q6z8r8RpfVyrvrJDQen3wT2Z/cmBHN/35e5O2m/BGfGsqhun9nKwByNXDXDX2M87XJkslePTncGAWkX2rEWc4eg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:33 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:01 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [BeXUCuzPHS8E931c5uYOBDafI2aWCrgc] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 695110d3-918e-4ed2-995b-08dc574705c2 X-MS-Exchange-SLBlob-MailProps: 9IecXKUgicDNEbE0encsoirT0ZUrgC9mLJcKLLCfi9QrlR/Sf7HXAwFxOXsr7PhBobC+7ZE4hoQZfWdXa8XH3yJP5MTRRZopZ85M7qGDL6tM/SeoazXs6PtR5GHqQ0JfRdXOH9NTmcabSZdLrTfZmlNQwPpOTa+V/E1nb+WRsMOvbRF5FXflOpZrT5qOBvR+rtWHusOeYpxoILzLBNPJU1lnI1gAfhhvhTa+0vVmHjGI4GKDGoS6RqTXMTAexytVIdZ5obR1xtG6y91quhVskk/nwzva0kZGJLJGbd4IY5GLSZJNs2UWyjCF/s1snORe3KvM6XjqFr/SXigAo6pxQfIAUrhmeQE7NAkYkbARKUtPNLyyj9O5g/v4HMi0UNpLU585FMspS+e6iO68ERUhpwW6af0mGFIIVGr6nFj+pprGhjBQfG/JsXxQrW4+UTWOw9MAmuLv56AQyCx6wp9WXFze6RKYYMZBDt3qGGzLbseO6iyHFLhoLFBPBwazlJjh3VlJHmyTFIsie1ufx6ogG639+BmtQxlf0xOhE8x2NepVJFGcTrC5iqkGVazJOa3bKfGEUuuguOLOJDoIXtZJ1ISYxew8A4z1u/UZCoMC/MTotc4AMnrgKvcXDtkb1BUSM2CKuDbSzL/YH3iqj5tyKXdBXHfTRz9zuZgU2d8uIyqDPRvqwpfEuIyoOaNKk2HVoDl6D8NBOK8vRja0UUGqr6jDTWsFFc97Soq4u3NYz7d55dRA4G8Hzw== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pjFrmj4vg308opjCgeHc57VM7GJvvWUfKJlbnPeAu3uwaC/JHIQcCzTE1/V3uhxJt0e6b3uppzPYIUhL67cKmiKasdvTSeorv6FHQTiaXyY5siEiUhnfjFW1WKWGvrytTnpTGVUMTRNyEa/c3eivpoN19qAWh1l3a/LvvId8CjLDFtJZZWwb25e8jgbVnPyC0sYwqfz75+HsaojBTSBkH2Zi07h9b3STqmtVIqENJ95dlAom66STsDYLQPaanABWDPj17AvMKr7xq8yVzbW60xLlvs+bFHMAT9U/wuFjd8Bp9QG+vB5U7jrY7/P7QyOD07xHCXQKuKIN6jUFWZTaCWnZX5otu3R7NzzLxR9/rzjBLAYELXKeu1LNy9nhYRNNRYwtEtMG/5e99v9sILzK4vvHeCmnlkTkhjqj5CorBS4tBMpjEF73US/HmYGUnmHAU/2vvoSTAZ7utuXyFnXdhULR95TXTVVfXQeDXcwz7o18Qes1y/wxI2xf7JfxtRuBBCDQ7gjg+JjnB0ODvZh83SkLalIi/nh+A3aSP+RSA36cmFIUK2KR46H0vQGAMIhnaPHVZloS9o5g7d5QPk6bPBVdWUz0PslQp9534B5VCHnmkLbMnFbNzt2EMHAFEL5y X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5qz9kNXp8ro9uE0WamCZ+ojLW69KdlQvdd7Me8YXRzfqdWxznqOOjbAGND/otmMx2Kua5jfnr8ejgSibdTSB/kd2CU4j8vyrnfPOrA+JNGDbZ7ewimPs7F+jm5dX9fug19JTddzQNvYB3HPszlqau29L+0dVX+CvBbrasSIwLAoGz2o6gRxCBwdHZPiymocAbToC2RbxKrgMH3rQlY2DYMx5DTGlpSMg8E5Ammk1nJjdnHR5uLjWBT+mA4Vc5TcyYB0ogDJB5K9xFqiEvAuo6BWTxnPIHtVxT0Fl5+GUHoJmfyXEpfQ5Z1ER3ozWuzb8z0oS055kr8ikK4WBw6dyy3I4Cq1Tji9R7yUa/miMsSUz9KfmdAml2DJvATXASpvTOeI6YmFD//vzGot0pRZ5LGzhat369XcekHWj7L5gU9h8atcsCEN8slVg6DfjtULwU36/o+1Eo69yG/78LL1vHIMt+Y2M9BPe2XHUhWtt/yWJP/jP4EwMT1wGFaDHHVqsS6GRKiBQFAw29BUiWy3cpLSZCpyyAkhANiAURPfron2HrNGlN+6ml3uchXoJyxRhX9XmybnPrUaZHrHzYCoK22XtWcJm+sW1qMzWM7ng76MH/RTZs+gIoHsc3UKoJem+JJXY4zwONaGVlqfffSdxv3Uce3NrO4oq6TDUm/kWLqPLyQ+r1GoGL5W1bZ3BWW+Bloxt6Fd/iN0VbcNszRwl0f1OBCdJ56G31iFVbbLJhcCbM6++9qWliboRodJyMXVr+lE/2uabPO+8BJawE3DsNqBkehMt/K/FgrnakQzbdIn/9QS0myGd+XZEmFP7HVFnLZKok7ULU8S9i9Hsu00jV+Lk0m7Iu3DiiAykU/FNyT9IvymxjEYxSLzGNdcyNmAxHE/v0dY8VhHRfXPbITylrPRqK9HccHhWQ9aP3mFBAJq3EQoI41pI+W3dPtBVrFRtSTbwnFwmP6j3SvfPUUZK9jyrvMGDsoO8sJjaYnutk98iXquLAeB/8onaMuMLGhY2shnXyIgnH8GF1hBSXyuqZGrn58Wsnyg7V8pMgbkb1BxX8dg7DM3pPdkLvIB+CAmoOJRegweDHdFgwgpPegE8m+NkQDZwMhFC2C0k1AUW+MYxixivmzvvJERI0GN6HdTCdMWY54QhgxhxGlPQ2LIFlkQAPPeIgyW1+dsJpujgGbGRsoKyTuKSzc3j+K/8/Q6vuo6QlUo4NPP4e1YNr6Zo4NRFzc3qg61xYdHOBtUE7sxvvgxEeru+rTGEa40JfeyTY7WVNcNFgH3uCi2WgKWRQw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 695110d3-918e-4ed2-995b-08dc574705c2 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:33.2575 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 03/17] avcodec/ac3enc: Remove redundant channel layout checks 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: sH6CQA6ILfVD These are all checked generically via AVCodec.ch_layouts in encode_preinit_audio(). Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index f6456b2a22..1a65e35161 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2189,17 +2189,12 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx) /* * Set channel information during initialization. */ -static av_cold int set_channel_info(AVCodecContext *avctx) +static av_cold void set_channel_info(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; uint64_t mask = av_channel_layout_subset(&avctx->ch_layout, ~(uint64_t)0); int channels = avctx->ch_layout.nb_channels; - if (channels < 1 || channels > AC3_MAX_CHANNELS) - return AVERROR(EINVAL); - if (mask > 0x7FF) - return AVERROR(EINVAL); - s->lfe_on = !!(mask & AV_CH_LOW_FREQUENCY); s->channels = channels; s->fbw_channels = channels - s->lfe_on; @@ -2217,15 +2212,11 @@ static av_cold int set_channel_info(AVCodecContext *avctx) case AV_CH_LAYOUT_2_2: s->channel_mode = AC3_CHMODE_2F2R; break; case AV_CH_LAYOUT_5POINT0: case AV_CH_LAYOUT_5POINT0_BACK: s->channel_mode = AC3_CHMODE_3F2R; break; - default: - return AVERROR(EINVAL); } s->has_center = (s->channel_mode & 0x01) && s->channel_mode != AC3_CHMODE_MONO; s->has_surround = s->channel_mode & 0x04; s->channel_map = ac3_enc_channel_map[s->channel_mode][s->lfe_on]; - - return 0; } @@ -2234,17 +2225,7 @@ static av_cold int validate_options(AC3EncodeContext *s) AVCodecContext *avctx = s->avctx; int i, ret, max_sr; - /* validate channel layout */ - if (!avctx->ch_layout.nb_channels) { - av_log(avctx, AV_LOG_WARNING, "No channel layout specified. The " - "encoder will guess the layout, but it " - "might be incorrect.\n"); - } - ret = set_channel_info(avctx); - if (ret) { - av_log(avctx, AV_LOG_ERROR, "invalid channel layout\n"); - return ret; - } + set_channel_info(avctx); /* validate sample rate */ /* note: max_sr could be changed from 2 to 5 for E-AC-3 once we find a From patchwork Sun Apr 7 21:09:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47896 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2146916pzd; Sun, 7 Apr 2024 14:09:55 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVoEbwN63+HKe7q7gH4d8ljRhwRA2u0L8PEhTtJrPKSnZwKo+QmKMnMadQDfUX3CZbK9bd3HkwaFdH/Uo7NrC3gt6iE8w0LM/iwgg== X-Google-Smtp-Source: AGHT+IFLQj5U0081BGqlVND78k0tShwhd8L5MQXoqFGlQ0APuk3IqWP2MTrliwjchPCphnhr+iJq X-Received: by 2002:a17:907:72c2:b0:a4e:4ed4:5efb with SMTP id du2-20020a17090772c200b00a4e4ed45efbmr5790930ejc.3.1712524194956; Sun, 07 Apr 2024 14:09:54 -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 gb40-20020a170907962800b00a51c45d1273si1443485ejc.890.2024.04.07.14.09.54; Sun, 07 Apr 2024 14:09:54 -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=GMs545qV; 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 3C84F68D1C4; Mon, 8 Apr 2024 00:09:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2043.outbound.protection.outlook.com [40.92.64.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3238D68D14C for ; Mon, 8 Apr 2024 00:09:40 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gRapEH2PODIO/NN5M0iYfOI9Qtak7K4jKgiutloMKPr+e60KThU0XCHyb0ZA/1R0K+T2JHE+roxXHnV/uDrvWuntzStRoBzDf2K6zLXcipsUJmMI02zlxuMIjDCUNVBzUflJbj9IbivAqE1+IognY56cwwTY2hsweY4JZ4F3E1zjW1duqtLYM2LDdsbiSIy4YHsanifQfel15Bu5R9F0ysoYC2rt9o9fT9WBo7HU5ZNtuYSwPoRixAj7dn09CG2xD2w1+Gu2opft7fFDhJbWNUho2bBAOdqQ4uFNhrPRN0A3iUxlXMSnOMY2L1vq7xfNAWqGRkNKQ+kJELFFRQjRSA== 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=JrAWIpK+Xvx+SRayBmMokI1Hh9Qov2BEG5mz8rMAs4I=; b=Rxq16FNZcwWYo2UF9Q1rnxwzQ17nAvq+czBixGnVUkUhHwHT2i2KjBBt2kevYsbT2dhrNeAx+vebbSctyarwmMCqGal8WT29MscloUxR1LxAYhIOMCEduEq0YUowia6F+XSkVoKy2ylxkY/7/86vaxml9Pku1zRm2PdI5wbcZQT77ja8lTIviS8HVG3itWrNBw/XFoZTEiYYmg57F2Y8uJCbDyvWC0STYi7PU7gvv4DWNdHqJFWZ19hyIpqFSkQDeJFBxnIZ8F8AueEakuEkuKOjrJxrfh1vLM2Kh6cNw1RWnI0N4QwXZWmwZ079L4pc/b03V+G8WhOOWCAgMfieLg== 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=JrAWIpK+Xvx+SRayBmMokI1Hh9Qov2BEG5mz8rMAs4I=; b=GMs545qVPq6yyMluB5VNwjKoij5BCpIA8LF9K9Z3IO2RuZ5CdNxhO89wDnfME0KNlbmbEMsltPxMsKBM3jso8/TtgO0+Ou2sW174mcey/FlDRPanDzyy/eMm9+ngs4cIMvcJfCe6aL8wnRhCPFnsl+/fO1pdeLurCi7PG2GBKel7Tql/L7FMNANXZTl7FIpfbM8PC4b9qeuEo11GexUZggkaQ5ZtF01TAsXSWv9MOJBHkd/nzkE7ppIGLkIR/3iA/XVt837sbtOuD72x0LHsaLobRWeJY4IyqaX1m71elmoMtTxCMfEUreeXIoFckd2g2j2SPyOo0RxFiV8DRbR8LA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:34 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:34 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:02 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [2mBluIW1Qn1yCl8KJ6moi1/lKuARjmar] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a8fb6ce-58f6-40cf-d915-08dc5747065d X-MS-Exchange-SLBlob-MailProps: quCBMN2EvO+2u7sZ7OSLhMIkTSfckR5Uyku0MLan1FsCZgvY8Qx2X6bnK/25h/N+I97GZvPwmbslPlx8CJOYkG128KktNJzdh3mAiiYxR6pOfeIy+1SPV4JluDHxBLKapg4scSkaPSFJzQGmKuH73+GVBGpjHsqB9oOzwY6ov5JPgawjbapAx7I3tCElicRntym2d+62pG9eHmbfmNxtCTS9lWL2pL1nFWH2LSKjBwVW2of2HTg1B6I0z6xCwucz4hMVhxvCjpi6XeYhOG2okqebZJKQ8RhrJVSkOwx61qQtVWqLWQBzakHGfroyu+PCxX3yEG1jE/Q7zYFwvhDj9x7zRcvdnEOZ0EkZSDBMZABwKi/JKfKyXxaR/AfajpvrZzlQRCTi1ytfTeIl53YzpjuwM9RplrmIo1N6yvOpSMv+OR2kam9+sGXGqsLyWcEaI0HCoTnKrA+2j0nAFvYnuFT1r+0ajiZmbJ+zsRX2GFEeESCSpzEMNC3kaTc/WGH+A27qPbAcT/tdWTW85RykWkgCg/F02oJualksA/yO5paUYC31z+nBVfMIOpLRyk+vlRMajFy3/naVu9Ki0zJ07rm4m3NgzHYQQS7QgomWRGOQtKBZgBUHBaLHFxBXLEg3Rdq95hGUSe/Fo3wU39XhLvvjdjaoK7IRnG/p+bhQrdupiROY70pGElwoeVd5OYduLX7nyRLl/dCgJxtM004Ijw== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9AMBJC8Pnz9W+9WVYSk645Ay7p7zTKycvSTPZUuIcqOhVOdf4SD9F9NUrFxM+W74faFzFtGshC24rTyMLAPM/XFbFUrneQNCzljCbBCWxOgqAOa5q1knxF7fB9ECnd5JVu3miEy/22IUD1Qh24Ivkhg2d2OSnmpVRCW2zdnPePkHVWWtcOJMXafh6TXBX35sjVY3ZEltgM+qHYVMqfRr4rgTVeMMwFYNVziCORh50lQh0Z1BW9DMjcKCfxlxs/V94d6AeDDtIY5uUTWBw6VlqB7iP/vQo+w1gbSW99x7kd2bRJBiOaRLLr/iNFrQK84OcRhw5KpUv7k33I3DYuHPpYZI6q2jH/qvASQ2i1/n+MiDu4I72K0K7P/KWPkrr5d1IT6alxMIsfXCaMAJsBv2IB1GR01va/dnxzsTI2rpFcufllFjHaNf+JbT+y+//l5o0WfkYPf+H0fnA6jJ5YrdKoJRpI+ln3picEjT75Bw7ztJzMsEOoPLP1KcaeoYAoaeQ44dwyKWOGNdTwlexpRqswSjDc5L1XtaoZRHB2QBSYQez3dYV5qZaDXZY1frj5W5lmIjCyCRYH6BUGFOeKP/CnWOiaSH/Jf6ZVOGxbc6LYVfABq9aVxWZRp06z1+SXLC X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5YAH9GIoQQ95X1JbfAYxVeHLDEf0FNhlTeZLZB5MD0NL72RcdDm3QOHbqtzJT7VBcVYf+U4ZiWx2ml5WNKg8MyujI4C26X1KV105omS+7fJJfzEJoiD4EOJL0y7DFDSyHztLSeBVbXaE1QjZPdOUsL3VoklvauAUKu0XanlSeqDMZoQa9f06Iz/Cvy7miXVor5UbV1N+k6mN7JrHai76yTZ0vMW0MAw3jpO9vwXwGcBKtKx6arHwi6K+mEqQPzGylNxippFhTrrByOVU5Z49Qlg1AF2JA6WKMvitljNjGAsyVS2wG8284Z4fwGJIzhMgD/jlTjo5f5YfGbp3SdMLgwJDQYNVRjpGqZdcKh3VVo7QULazB4toTuaA/dH3A5deO3Sicuqte2CcBDp4i22m7S2jILmOznCWnJGoCfaU+NjcYQdgVaGliMw//njQJb9IZMlL04/eRx9KcV+nyv0i3beIDnZVixofLv5cPhmEQH/dbVMbtxaCrD8wb4pfZiU4XnnfRrSy3Wg02TAteeIqsQ6TCRLi8BHrO5VaO9huny1+p8wREOm3ywS3obiW4FHPSAxnX4mjfp9GEWcZoNQZEvzMuyz3CVbUgNpQRc0N5Yx3zMUDYCWZp7bjvU5TNrPnWaHPtWIZzrCRb5I4CAmtoDWz4mvBDVXoB/hUdO+hSZ8kTGSdsl1RWn7KWJ0rtPysUktw5YLr547Z9G5gAj8CPbd5jc9ZNqJeNAA1sYi0isARJ9sOabnBvqwUdnN9j8L0dOIcspbRJ2hWvml4KsUKb7EtM7pCFoxKV2Digs2LYDM/Dy/dG0d20KTYX96NqHYCnHvOk1GfeWcuJfFEcU94lJpypILgVoM3KsyTHcFhIkenHPL4aqWQOinzirsxp9lXKH/jkBYFqyKLLx3w5wvg5l7w7rKIcYAIocQS72TIiUUyiDAPNDp2zg8TJtpQePuCf3RVYQoNDUghVBdt4iR6Pga0Qj3nPdU/XDCROIZgZKo9NzfJk6mMKK15oN1aqbSVy0YJ589NlJYpCHBKgR7gfCFqVoeTK/bloj9Fe5vBoVhaDlKG/UwpHwUJm3PRdnGKWR8cyMSnu99gtL7QQJkaU56s/yc28OW99mBISx8a3tjFnMyBhx+OXjLqyRbECOKGHhr+NN7JXeisvW6g/idtRAU65kccIojnURMK4stQdoFm58Om4z07Y+olp8ZlABChkM+CbVijPFr3lFMrK5ezqa+DO9dkezSOeMWPi5825ew3IQk97GyW+N586Ymj4mo0anM015cMms9l0wnVm/7iHA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a8fb6ce-58f6-40cf-d915-08dc5747065d X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:34.3106 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 04/17] avcodec/ac3enc: Use bit-operations for bit-mask 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: Hwm6c9RoHMxD Simply masking the LFE bit is more natural than subtracting if set. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 1a65e35161..31b9474822 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2199,10 +2199,8 @@ static av_cold void set_channel_info(AVCodecContext *avctx) s->channels = channels; s->fbw_channels = channels - s->lfe_on; s->lfe_channel = s->lfe_on ? s->fbw_channels + 1 : -1; - if (s->lfe_on) - mask -= AV_CH_LOW_FREQUENCY; - switch (mask) { + switch (mask & ~AV_CH_LOW_FREQUENCY) { case AV_CH_LAYOUT_MONO: s->channel_mode = AC3_CHMODE_MONO; break; case AV_CH_LAYOUT_STEREO: s->channel_mode = AC3_CHMODE_STEREO; break; case AV_CH_LAYOUT_SURROUND: s->channel_mode = AC3_CHMODE_3F; break; From patchwork Sun Apr 7 21:09:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47897 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2146971pzd; Sun, 7 Apr 2024 14:10:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWsTKDcY/uyKcBMvfUIS6FeK4yL8EkjYLz6eGnOS8eODQgHblK5IZjuIGK7bVdGPnNEBmEyEmR5Zf81kSjGqfbE7M9/x0xLfBHH1w== X-Google-Smtp-Source: AGHT+IFsnnXuy1FuldxCxSFFhcYSqE4Cr6Ehz2uc12+cEFcv5GvS9iSZWVo4h9lyySiTOZmqHSSt X-Received: by 2002:a05:6402:26d4:b0:56e:4069:9ae2 with SMTP id x20-20020a05640226d400b0056e40699ae2mr3855160edd.3.1712524205611; Sun, 07 Apr 2024 14:10:05 -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 z3-20020a50cd03000000b0056e2c9dce26si2934928edi.224.2024.04.07.14.10.05; Sun, 07 Apr 2024 14:10:05 -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=vKlD6vwa; 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 3B9F268D20F; Mon, 8 Apr 2024 00:09:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 44C1868D1B0 for ; Mon, 8 Apr 2024 00:09:44 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z8UJlITu0amuL/KUiBRHpgw0cx8OAmNA8mFrA1I/jHwk9XoiuSvttYtL3sRxjWX6mVyiMOY6IQY40t3ZwEerx3X4TEE3DSWUbT2ShKZweYM0u9euuvLiiMH0bwgR7QVzsA0iWWMGuLMhU3sii6qct0jvhQQmZnCvFj5ZM/3+J5oHoRKTvH0exkRMIJS69M2M+7RUUUlB0+OsjUCA8F+QpBceh93IODkf63nz6VOcs1jV+fStaGGHnJY4Cz5vgU9QYsEFk0s0fU2d/NO7BXToGAg2uFYK0HnjE6/Bsv+TNol6zTd45Uba0+D1EiacJNBExYTzf+Duu3comnVcW67vkg== 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=q6bLqT/aFEOked+FTZniP5zIOz+HXvz18HkXzS+twaM=; b=ThT7x7Jc5Lckbier7d8V5/BFPUYfel4aypcX5eBHrJzm6ozyjxxyLXeBiOvH5FfErMB6F/gY6l1zw5FmvfbvHyQm2nXvlpXBlZMnWfIQz4Eknh2Z7peFJ0SgWx+tDqP3cVq7ygfr8KKIc16KP7QZ6svW77b05acfzhhOGNkkolPJnDtgBhzJFWCx3H29+nr7WjpD5TIYvn6m/JB7Yu9+R6T07ankLLXROEZW/vMWXf45+bDWzbJuZ/L/EIrUMbI78YUD6WUph8c+InE8IxGNADjy9X0jPvnvt+rDzxnHMtybWUAEb63AOFLOW1z9pxzjyklH0KdhCF7OlIcKg11zGQ== 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=q6bLqT/aFEOked+FTZniP5zIOz+HXvz18HkXzS+twaM=; b=vKlD6vwarM2DqP+xn214/WjBvvemP0U0SuL0P8jOP7YTLAr6q7q4iRhMnUmhoZZIL0YbNQDVrpPkuKgoDZ5A/mHPs7kdjnuxSlmQHaCCBimUu/zMo/9RpxR4Ue1bqD5WVQt9mn10sKCz826eGG0T0OmNxDwpmtH+SgYJxCRXod37TYPmWVZyFRShLdvmdwjSCQMzBKMIR19dtW++OzuZ7CRcjI+nE4m2RXm4/PPCNhSEPpwEPQAVtqfDnZpQkShZa27Rv3cri4D7nq6WOZGfaAY0xSCcAj4LxQh5zUQRiOfzw3hWBne1sSoFeOulj2+zp10ByuXf7gV05bg6DbX2/g== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:35 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:03 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [GdFyVuufo3WUhRXy37y0ed3SF3jW9n4C] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 7c11061f-02f9-4d70-0082-08dc574706f0 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhMqBhV6w56iJUMUKhN7VdTY1t0Xz30+aN2XoCx5cpredDZfhAhUCC/F7Cef6m7hglryT2FsjKYxyNt8YxiOmBNoI3sqT3Y6r3HrvcFxID1V0fSI9pAfT4c1SY3XiP6sBfgPTX9waZqh5vgUoRdsLxEIDPRpdzsCFM4Z4EM8htmfHHBW/NwgUkN5nYcDdj58s54+GW/sNN/lAddFkIh/MZsYe7jE5WEYULQpyx7jxtcr58oTTbXvNthuywKtL/N9RO85giXrlBDxB7AddfaRk7FlwhtBRspmYPFdUZVTo9MT6YcIycC3JZ68zKmyvBBbWpIQUHe2iOwQttVK4oqg7UG56LNTRKVssMMFVVAk8O10Wrq3ionB+AlPhrwfuSDbw7iSvbsqtlKqXM1ojRmInnynCG9m81LKDuL/FUq5jq6cP/6c9QG1utLitQzvTmL5fdFvzsKbpoIha8hp0LkbzfQa9guP6JubXz4GFPGy72bFBWFVMdOe0oc5fyv18JaFqOAEDLnIknFTH28FRWluioKKP7ImCDy7fgvyzzqawqObyrIAjvn9n4U7OEJ4yvuyvuo55kI0af3Jc3dvaJ9MfA8cimOIEb9fLzcRgyRPnBAFH/YJi5lvtTAhL3RicvaJsQqqV2wny+qIBpVRUvIQADkE8fk7sTn1r4RpTPd+Lm2VDtXWLgL3XfR16H49E+wOPCr9ktwt1F4WgudI6mMm3p4PoNODRcW2rIxJYZ2IY8ctY= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Qg1sQOA4iwfE9xE/EOc104z/cYn0fl27Kbei8Z0dOB/WPBFjoL2Ui4aeSR78hudJQ8c8mL4ia9O7kIZPGVRhIiM3WIGdk8QH8Ejp+XasApcau51dDgws4kaqzlAj8Tnnd6cdqhGQkyLFk1ivgraZq+ZlQX9yfHQM1MsZ6YS5Oba2o/9i+1fMSsIQGXeYzwIv9a49Jeudkv2HVwhat7Zpvd8O9TCqntC9lQXJQrpqeSgtMFZV/n/k5iTyihVC4wd9e+S72F6dnY07qmjJiYeD1hP1agMyLFtwhzYrvblaxIkqMu0G3OJngd7vJOWERUP7DIPijNOmgrn+tz08xDA8R+P355Vu4e+5S9pj9OgIjdV/r5515u3qSgO3/zwxdPhpZxhsI1izHlyRmyTSdne7SMo4bHpDVibE+5ovkaKZhF9dhtL4F0lqsYmayqGX8tgvGTauTkxsXTggjdkauvbTftNrEVkhdUHti7u4jEcX/5s+MlvV2DHrntua44MB8Nxd/B0Saql8X1ETaH85PtIPcreVHF3ATppoQ0nG9tij7xziTZCRmtsKA8SAPP2FM5N4fuekAYQbU+PfNc2GjcZfTx5JGyqAuPBxRDKpKSqcCBtyG2Uly51YnA/N66nL0J8q X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6V/ZCYaUYUwysLgwYsbnaCip05M8lCftWsP2CWMqyv7DcE5HCLoWlzoyexR1whqO/jXmsA1IuKH7toAHxJua5KiuvF9zJtz5JCO1lQvVqhLLbgSuHWjD1RZTmHyxv4NOYpvwZ9dHRWtgLl4Ohdov3KmHX52zNWC/2EOQqpsgh0sxFZTXdtYmscQt5Uv3wnA+A3CwKGKzdJsXLSQPvCE0zPdiI9peDnWXo22LvvqwDwqfy1m8YLy5SChEIKv09BSuSDLz3cuHjMH33P1M1QE4tydbX6Eq+zfCNqt6LWdkHssdKx5acroEOqL6y01RiKkrzkk9CSFLekFOaa//ibhbNlKjUf6sIaIYZ/fIY+vlsYnm4X9hH6bDzz2nf5KI3tlDL8CYETuQ+gtysNKkZ5xecQF/qgGKysjwDIP3flDaCtYrah6xNlnfJs+EQHUOuzDelW8kZY6HiFMspbwQK1OGyE3dqehcFH1UICXw+JVjZT4rxJRVsoIzwIVGwMZ2TgtY24QuN41oKnZdpYlAsWDEJtRsGV4Vnt/W8swCiO1l3kDbsp/zWYaAvpo0VOpQN5zHHSyhDoNA3rmRqjug5SOy/D5eSda7qAtl6xL7te6mwTTC8IdPoMUfece3KXWGENkzf8mX0medjrj3yANJD+V/BUQ37Ylom33HT/LyDcIQT/YClZn7EOrSFyTlOKkuDntxIF/ZPDvI6p5Om9XYr7d0POJJS5sI7/Tm/M1yfeWuixMa4lpbzCtwP7VEV5yKJ/YA/+Q46dSaVKW/ip8HPp9QzMiOsItUM6rspuiIX6y0MrW6lij2zHiYBsZ1SrJQBdrwzCbYf6x4KY9uPcPmXdZjXKidCHpljWCOvPBjDj8KwE/FJryIdkAAjCYs97WzREgtLwzy+RWTj3V/vFP52Zzo7Ngg3+c5LX9IKbW5J2A3gSCusYANO03+moE0utNQlWVHV+iusKBvkUy1J+QTTCFKqvucD5r6rZgpnf6DIntIm7luomycgZaxMDC1lztwP72JyFiK/6EKOYuQyQdVZiu9UH8LYzQQEkO545hQKrYPc1eCOeB0eQlWS5mCcdylMJxFUXf6KNj8LpNA3S+eifEtgAEfxUcPjwgPXrCKy06/KI1XU12EJ0b7UNDlnP1HrJqCSSXlv0j6H0fgJXjdpFwxLPiLixfMldwtCaXnBrl0niw1k3aw9X4p0a33MGVZWi2qW+R7HhCgdhYF/Iw1uYU72aRa6/JIw5jPniFcCG0prei5Kn2V4rijMlHxUfCp5TTuPGWEhNIeAtFOhrbyGKwhuQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c11061f-02f9-4d70-0082-08dc574706f0 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:35.2028 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 05/17] avcodec/ac3enc: Avoid copying strings 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: ewHmD30ovW7g Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 88 +++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 31b9474822..272d2481d9 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -30,7 +30,6 @@ #include "libavutil/attributes.h" #include "libavutil/avassert.h" -#include "libavutil/avstring.h" #include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/emms.h" @@ -1807,17 +1806,18 @@ static void dprint_options(AC3EncodeContext *s) #ifdef DEBUG AVCodecContext *avctx = s->avctx; AC3EncOptions *opt = &s->options; + const char *msg; char strbuf[32]; switch (s->bitstream_id) { - case 6: av_strlcpy(strbuf, "AC-3 (alt syntax)", 32); break; - case 8: av_strlcpy(strbuf, "AC-3 (standard)", 32); break; - case 9: av_strlcpy(strbuf, "AC-3 (dnet half-rate)", 32); break; - case 10: av_strlcpy(strbuf, "AC-3 (dnet quater-rate)", 32); break; - case 16: av_strlcpy(strbuf, "E-AC-3 (enhanced)", 32); break; - default: snprintf(strbuf, 32, "ERROR"); - } - ff_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id); + case 6: msg = "AC-3 (alt syntax)"; break; + case 8: msg = "AC-3 (standard)"; break; + case 9: msg = "AC-3 (dnet half-rate)"; break; + case 10: msg = "AC-3 (dnet quater-rate)"; break; + case 16: msg = "E-AC-3 (enhanced)"; break; + default: msg = "ERROR"; + } + ff_dlog(avctx, "bitstream_id: %s (%d)\n", msg, s->bitstream_id); ff_dlog(avctx, "sample_fmt: %s\n", av_get_sample_fmt_name(avctx->sample_fmt)); av_channel_layout_describe(&avctx->ch_layout, strbuf, sizeof(strbuf)); ff_dlog(avctx, "channel_layout: %s\n", strbuf); @@ -1842,12 +1842,14 @@ static void dprint_options(AC3EncodeContext *s) if (opt->audio_production_info) { ff_dlog(avctx, "mixing_level: %ddB\n", opt->mixing_level); switch (opt->room_type) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_LARGE_ROOM: av_strlcpy(strbuf, "large", 32); break; - case AC3ENC_OPT_SMALL_ROOM: av_strlcpy(strbuf, "small", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->room_type); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_LARGE_ROOM: msg = "large"; break; + case AC3ENC_OPT_SMALL_ROOM: msg = "small"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->room_type); + msg = strbuf; } - ff_dlog(avctx, "room_type: %s\n", strbuf); + ff_dlog(avctx, "room_type: %s\n", msg); } else { ff_dlog(avctx, "mixing_level: {not written}\n"); ff_dlog(avctx, "room_type: {not written}\n"); @@ -1856,12 +1858,14 @@ static void dprint_options(AC3EncodeContext *s) ff_dlog(avctx, "dialnorm: %ddB\n", opt->dialogue_level); if (s->channel_mode == AC3_CHMODE_STEREO) { switch (opt->dolby_surround_mode) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break; - case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_mode); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_MODE_ON: msg = "on"; break; + case AC3ENC_OPT_MODE_OFF: msg = "off"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->dolby_surround_mode); + msg = strbuf; } - ff_dlog(avctx, "dsur_mode: %s\n", strbuf); + ff_dlog(avctx, "dsur_mode: %s\n", msg); } else { ff_dlog(avctx, "dsur_mode: {not written}\n"); } @@ -1870,12 +1874,14 @@ static void dprint_options(AC3EncodeContext *s) if (s->bitstream_id == 6) { if (opt->extended_bsi_1) { switch (opt->preferred_stereo_downmix) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_DOWNMIX_LTRT: av_strlcpy(strbuf, "ltrt", 32); break; - case AC3ENC_OPT_DOWNMIX_LORO: av_strlcpy(strbuf, "loro", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->preferred_stereo_downmix); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_DOWNMIX_LTRT: msg = "ltrt"; break; + case AC3ENC_OPT_DOWNMIX_LORO: msg = "loro"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->preferred_stereo_downmix); + msg = strbuf; } - ff_dlog(avctx, "dmix_mode: %s\n", strbuf); + ff_dlog(avctx, "dmix_mode: %s\n", msg); ff_dlog(avctx, "ltrt_cmixlev: %0.3f (%d)\n", opt->ltrt_center_mix_level, s->ltrt_center_mix_level); ff_dlog(avctx, "ltrt_surmixlev: %0.3f (%d)\n", @@ -1889,26 +1895,32 @@ static void dprint_options(AC3EncodeContext *s) } if (opt->extended_bsi_2) { switch (opt->dolby_surround_ex_mode) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break; - case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_ex_mode); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_MODE_ON: msg = "on"; break; + case AC3ENC_OPT_MODE_OFF: msg = "off"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->dolby_surround_ex_mode); + msg = strbuf; } - ff_dlog(avctx, "dsurex_mode: %s\n", strbuf); + ff_dlog(avctx, "dsurex_mode: %s\n", msg); switch (opt->dolby_headphone_mode) { - case AC3ENC_OPT_NOT_INDICATED: av_strlcpy(strbuf, "notindicated", 32); break; - case AC3ENC_OPT_MODE_ON: av_strlcpy(strbuf, "on", 32); break; - case AC3ENC_OPT_MODE_OFF: av_strlcpy(strbuf, "off", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_headphone_mode); + case AC3ENC_OPT_NOT_INDICATED: msg = "notindicated"; break; + case AC3ENC_OPT_MODE_ON: msg = "on"; break; + case AC3ENC_OPT_MODE_OFF: msg = "off"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->dolby_headphone_mode); + msg = strbuf; } - ff_dlog(avctx, "dheadphone_mode: %s\n", strbuf); + ff_dlog(avctx, "dheadphone_mode: %s\n", msg); switch (opt->ad_converter_type) { - case AC3ENC_OPT_ADCONV_STANDARD: av_strlcpy(strbuf, "standard", 32); break; - case AC3ENC_OPT_ADCONV_HDCD: av_strlcpy(strbuf, "hdcd", 32); break; - default: snprintf(strbuf, 32, "ERROR (%d)", opt->ad_converter_type); + case AC3ENC_OPT_ADCONV_STANDARD: msg = "standard"; break; + case AC3ENC_OPT_ADCONV_HDCD: msg = "hdcd"; break; + default: + snprintf(strbuf, sizeof(strbuf), "ERROR (%d)", opt->ad_converter_type); + msg = strbuf; } - ff_dlog(avctx, "ad_conv_type: %s\n", strbuf); + ff_dlog(avctx, "ad_conv_type: %s\n", msg); } else { ff_dlog(avctx, "extended bitstream info 2: {not written}\n"); } From patchwork Sun Apr 7 21:09:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47902 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147203pzd; Sun, 7 Apr 2024 14:10:48 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWt6jSFXu9n3/59k115QMO7jENjxkG3xiNmwT28KlplNM3WE/F9MAUvb9ryYz6c7pPIo87dX6U3Af6LupLeYAGYactcFfdtpDq2TA== X-Google-Smtp-Source: AGHT+IFJvhEmbakPbukxsE7nNGlHS/NLqtj05zL0lQHCiTZuxz9PFagkseL9rbJ0oqYfMXyB/+pk X-Received: by 2002:a50:d59c:0:b0:56e:297b:ad61 with SMTP id v28-20020a50d59c000000b0056e297bad61mr5274027edi.35.1712524248384; Sun, 07 Apr 2024 14:10:48 -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 f6-20020a056402354600b0056e5bc5fc9bsi444982edd.370.2024.04.07.14.10.48; Sun, 07 Apr 2024 14:10:48 -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=bE6NFDWZ; 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 9E47268D26C; Mon, 8 Apr 2024 00:09:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2043.outbound.protection.outlook.com [40.92.64.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 56ECC68D1FC for ; Mon, 8 Apr 2024 00:09:45 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GiOSLjbnqLi4dsLE16TKbRDqi3Z/O1qrtP0edgNJ0cLwOwnZj7QD3EqiM/4f1Mut/bNuwLhnnShyztCAbNhRdKcuZ8Fhpm6qQZCU0+d2d/WgunoexKHyl7vug4hSmIF8OOLZU03SdLvaxEEW3zh9bSY1Zc/1IpxknqwGWI4CTaSxo1Bu7BHelBCgMaukny3GBvWkqtLhMBcItEWW4gzoJYeQXsvpARBvbnh1b4gk1dcKlBEn6NpynpK4GVBJipGRlEIJyDpJLc6W+8x0Yt3bXir9V2Ir8XiGRb5pfgZfcdo19XQJBCSziN/G2kGuQNRr7Taks0g1dp1nVbxCpZ875g== 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=gIMh+fEyHBE7oyDUJpK/5wNtpOyIKdBMzElnhDBgp6o=; b=doBS4mg+7xN7eam63BFrQyQKE7QhgR/0twN5lmklzChETTN4Rys1gH5/SOTJ0xj6jwI8p+eUiA7SgQWi80D8auCUg9gNippZ9NrNbNvZHxUUpoBXB6JXamqw1+hpmBmpjIneg1NjPuARIRCodSG4Gvy9t4GNjPfk4YEyI8zBXKob3wdsSpQz7V55QSWWBwduISxayC+acU4XlqdWzR8Xvx4beVj15lW+pO/VHJyp1GQGpn6shFpaQY3nTbHPMb3XcEJKY/Ha1k3eqUPXEbJF240J5yF8FxzAIbhDMN9LS5lYKBpwyDjYLP9gWLXKerFKlDPcN2t+kTRFZr31agXQpA== 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=gIMh+fEyHBE7oyDUJpK/5wNtpOyIKdBMzElnhDBgp6o=; b=bE6NFDWZvIpqve48X39/XYS6yqCOh9bDUuvoUpgwKAH3P8tlL3qNX6S6CtxlNT//Dn51yhvb3R1KwzOiGuNNFZyB7iFWqhoC9ap0NS94rOcAUI+V2huxHymE4R2Gc7vplbYL6fbiPPU9nHa/r2VQg9DGGpGFEUOhvAMR8+tQIlVVuCr1En9+RzF1cu/OP+sA3RxgehIof3S0FCMPkUua+NlJpJ6pcgDRq9JZeabNsMYqwoHZqgfPLg9uKItB8IAObVZbr/QsFY9WT7eB3mhS7mzyrJK+dLYLJyE6u5W+ohDEaQnrz5hBPPwSQgDyGvMfR+6oAzscMSliXzRVCaoS5g== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:36 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:04 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [/63Ddt2EnwleobBVi8kl05sX1HVzZRDy2zkZGamV5Po=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: e72d09a5-224a-422e-f7a2-08dc57470778 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhVMs6zbTOyCRaZDQ3mc5g1xwy2uSr09F21VqoZ3MgvAwYeXTSSw2uzhWomH6cpcaAV2GGGtquTpVbFueuDY9utX2+SmwK0uZlTqHjZIcCed2ez+TT1LTsA8eXwhvbMjj7zYqVdVlif57QVg1Ci01cx0BF5w7nPaURAGuyAkmBh8wRVnmyVxXHNKSOGUAWYfP7waxuehbDh8Ahhk28/NRVfU84uJeRSOhWxo498PpZTFbnMrRONVUgVOxeW4bOkd5s6tSRsWo4LEjsBNyWaSEeuTm2LGO743lLc6AmHs2gyDLzmn0giWbfoZfggW3fRFG37uEj0AvfQTMTmRP5XJuUNpdpjWCcA9Xv7qByrCEcVUxjeds2Bmmlblz9M25L1hGTwXl9OELH4KPPJEPnUkacTZWfE30pR17z8wdQ06OLPwlShcSCIH8qkiEXmSQP2C5sS1GO79kp1UmPKMhlYWsTUMrXhD3HXSBibAUYHB07wc2awAETGDX+pe6oRO0L1TFhx2IGH6NmOjCYPWXzVtyLk5DRTFkhH36+H/UrdDZZJs3JlotaB8nIWJspXCV78SM4DhrpXAIt/DIp23jVADPJtCrhufyw2aXb0xeSWrFe0eFNNU56x7cXw3lCyqvP+5gYm4dsCCv97RwgbyLsjY/D9Tdj3Wp5iN0clP7nky5ick9KFKjOFFYlIo/Ejb6rPQiSavNGQCJLJ7lWkX5kvviESChD+pcRHYbF4Yyr7y4FdQE= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jJqN0f9EMAby8ILKZlKp5GJ1svl9JbS4y3pJ7gdAil7wiCKQHU0TnbGA7SBr4PwfJSRusrOsMiaOHDVBRDnAf3u6aBUR4Bs7CThT+LFYlDyo7c2OOuCZi8+xzgitwn6pOpWD5jFosCNyIduO0WR/77784WbIFRR51ha3kNYeo5Y3i8ijB5jsr/fRXMa2VIHKDlyXG0E8yi740Tq+VD1JvA2GYL6mDaF5dBlPCmyU4rwPNePmzeaAhntQBtTbrt4qz5lVKMtbjnLS7DFPX5BFBilUMmux6Fl4QJNDhAQs8T8kzyLHyGLePvRdQ61BPkkZK7/D7XS3WFsJp9G0LayCMXlYWB6V+nKAJ8wiTSH+somS7w5Xsy+Unamjr6Uy4lV4Ta3CrpNTXB9TZC3PeK4m/5dHvYaPpUJR2XRh4tOe9nRGZy/nlQ7IW9D752Irwfs/QNk835jIpQvFvoA/OCLWS8kQsPHL3DOMFfarT/db/1SKQ8io6teUQp3Ife69bOAET2XgFG+0uyIIxa05Hw8qI5ppWlo1JRYLD7WyWycfF6v2l5ZeuQflGaWjgNIdyZ2AT7iieBa/mEsafOtt+zf95dl3tJoGmPLr8TtQ7qUg0qFyTUFC58Kr2HeZDS8TERVd X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1EXw490HJQ+Obuw88DFfEJVtezl7YyMobsajWcU7LfBt6HADo5i8qOsJiaA/IKeT5tb6Ucxqz7Gn1ws6yse4Ruzah44/FmuVp8NhD/ek0Tok5AbSV386br1HA3NjyQ8Cj9vj0jNKAhZ8HW90ZBA4SXwxInLnTIPdBPulnmdHG1E42CYCfXsGECb44IL0RwIxYrj8QkR9CI+hJRTLwqVf17yrtmMTwNAhvnlXCTUy1wJZmf9VQMPaLizz0T9CaMMCWFq0n5hONmqfGx/EWMp7M4qQfi42ylwlfrRokNNg7TTz8CF65C/ochEXi+ZMiJqJK4dU7kmfSIwdxBknV9XUj47q+zeoR7W5X9MF9SgJzy4klxxGj66S78TnoMx1R2b6VMUlltFO0JSHPAvEafGJ39EluImDAJ5/o1bLyy0AaPGHSUkkO3zRh50GEyiWvDNGHc+nm2bZkDQYqScfNfGeDeFYaC8GdiARrPZWIEtQepOyYHgl4ez0nCgi2YaiZSY9G0JQTUv0U2TbqrhC0ogkA2eVJLKIRkMn3phUq96cmJL6kMwBeJaTpZROUI6ZEzpPSJSuzNZpUo9X/m8/KWZz1T30VRz5ybLAfZnrcdMWbX/tphtOXNSL5z0OxieITi8lyTubuf1vJGKHIl/GGFvTHqYktrFgcMirXsW6eFOcvQgnv22PWn532JQP6qdburPY+PDo2RTS3H0l1R5eHwPELmHXtpmX9dy63NKTnrFkxk8TgHSQCghJPhc/JL1nko1Mz5N6lL35Clr32ivmZEWx5l7qcFCV6sOvRfGWKVpXULEKx0Qt98pJxBNoznt18jMtc1WDioCG+aQUJ+5yhYeBZUfu4l5SYJIWJ89upfe51oAeaWPeVrVUEi79EJwmSc4ZiZQmpOfeqdCd7rI3wofmb/IkTMKdaKllJNPDLiYpTeocjVLsY79GtY2SRg6kXe05bnCnt6ZtQftqLY4SFuPToJa7ao+WDuIMYuM/Ofmkw3LFv4QaWsGIpTgquuUpoymiX+CJJ7w8Gy0gxHllXYSioW4zaQIbcikHawzaQWQj7OkGWjYwwI0sSQZOVY0PNuoHP4BCLrAWCpS8wBMOOdbZ6/rANsF3nOqP2ZH8pw+5dkCmFT5TpT64HHy5HENYd57xK3kErPUYG122a6jI3+XmIzN+g2NHB6L95jSmrUyaO89xuir1Pq4cT41rHBKER962rmHenYbA7SsQxWywtGmUd8g2FCDhjZnRsLPR9KK+1XivzsbuF0o2Tit69O8041bf1sPg4We2kLrMB49LLbItqQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e72d09a5-224a-422e-f7a2-08dc57470778 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:36.1901 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 06/17] avcodec/ac3enc: Remove always-false sample rate 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: EfOqP+T70+BW encode_preinit_audio() already checks that the sample rate is among AVCodec.supported_samplerates. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 272d2481d9..32aaf89ec1 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2246,10 +2246,6 @@ static av_cold int validate_options(AC3EncodeContext *s) if ((ff_ac3_sample_rate_tab[i % 3] >> (i / 3)) == avctx->sample_rate) break; } - if (i > max_sr) { - av_log(avctx, AV_LOG_ERROR, "invalid sample rate\n"); - return AVERROR(EINVAL); - } s->sample_rate = avctx->sample_rate; s->bit_alloc.sr_shift = i / 3; s->bit_alloc.sr_code = i % 3; From patchwork Sun Apr 7 21:09:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47909 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147456pzd; Sun, 7 Apr 2024 14:11:43 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXSIiCHDYVgkSYUlkRk6c1FrhD+JYJBf+uOehmTFVF2OArMLgqD5eWdqfU19h5hro6TOHeunlBLlfTYwbZOUYzyzSgXYgydfH5ryQ== X-Google-Smtp-Source: AGHT+IEAAIwjHjnmDLtLBplygP9j30D7bpYNw2tPoVJ4TPAY2C/1vybBGR3y3VKq426FZWNRGOiA X-Received: by 2002:a19:8c4f:0:b0:515:b9c2:9545 with SMTP id i15-20020a198c4f000000b00515b9c29545mr4707007lfj.60.1712524303352; Sun, 07 Apr 2024 14:11:43 -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 sa42-20020a1709076d2a00b00a51c7ecfa3bsi1181332ejc.489.2024.04.07.14.11.42; Sun, 07 Apr 2024 14:11:43 -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=UceX1Uy4; 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 01DAF68D1E6; Mon, 8 Apr 2024 00:10:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2106.outbound.protection.outlook.com [40.92.58.106]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1CCB268D265 for ; Mon, 8 Apr 2024 00:09:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F7Z1DB7gzDXjLiqYFMRLbwTMKoDNjzRKTpfnx/a55teAtiKanhbo0bF1IgxRR9osvs12hLCuPz3JtxAQqrQTu6VQYr+WH8ZxI0A2xPf1FN7LxnO4c4wdG6CU3yyNY9xKHvvDnh/4ehxvaJcIRIY/Q0qwv2d4/i4mkqk0tB7ElC2NVS8t8pzU7gdg8MfDHq7dGHTEBSYJ7kpdY8IDTmycsfS5xs+bLYW7qhENBZxYbampV6wXXW0GfHBSn5h6z/fXen6YG8ET6x3+IkVOALBGiSakEJwrFmz1wpjngPMLzx0YXIhkLLKbKYbrbD/ShwQLFg+HChWBE9xLd636k1Bukg== 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=jRTwocHRPymmux4bYkrzRiL11fE8wT1djHrUUc8iRiQ=; b=GbNX5QkE+ppa4bYhYVZ1+RmWf4nQ38UJUH1qdhluNGoCJOC9mGM+pNjNMStX0wQI5xn9A91dcX0SgSb3Vdnn6UDkwZNG46YeBJV0qkyYHk5EhFlHt0yK0mGcCg2uQXJ3LyKevcOjfRJi5vG7mq9Elw7+rUb7Dt8qim9BXMeT5wtAflxdaogrnamI5cUEscAx7gWHSnFhXpBi6JWLq0h1jexyCXlccU0pT1J9ykH7K3D3oQd46sicJuh/2xHnhhDJX9VHksFuA8tyG+ROwNPggDyrogLtcK0u7TQm/wt7DnKtWA6fnGZfTHfodKe0ku+DEEgpB3WtQcelD2lTf4gP8w== 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=jRTwocHRPymmux4bYkrzRiL11fE8wT1djHrUUc8iRiQ=; b=UceX1Uy4U8CbofTC44CtF41wlHDU/oHstF/Ibf/Ngz0e7eXEXR++Xp+qvgy4sJzjqCPKfX9mV/vYL48GhZlUYnq031Ra5td7Ti76xxX6dR7Df60pDi5ePKdm3/AIuM3PN2s6TcYU3/2G5HAPMD5Lk56JM+cikr51ROZqIkUPYHjoqOgeBrmsb4ZN3AuBWTB//GYglqBo4I/BUzIv7cRvjeC5CSB4MGR1Gwof+7D4pUFsGRPkQGznukrv1ZhEwXc+7aObzxYGt813d2b/Z1JhT2M28Ere4mksNCCItSUMSun9ika3IssZDRak45jtWwHEma+fTRgiGRwok7rLKXy/2w== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:37 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:37 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:05 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [Wer4PepgfN75pwG+w/YqJ9zM8oSyuWUSOEDlyvMU1Tw=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-6-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 57ae1227-450c-4954-a28f-08dc57470815 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhvX/tL61IpNS/sUy20Tstht0xKBsnbt4DpNdKFhzkYgFFJURfR0MxqFsYOw/Z0qK1gWlL7mDdSBX/gatlLjHxXoMf7r91CTjovKQrrvKmwLVxMDGwMthV2gsTR8fLuQu/1k0BnIcMago2uPsXTJE1hKeLqftq9+LvXx6hpAVUjgPaqSfSkMGBh3HTMCwlrKqeYlwtd8noMnaWDlLW9B0njrcbwfO8Y4KauX04DePt6G/RnKCf/yMAIiodrLlnxq+d+sQwo4YaspVxFVWrlzHfnrrGGzMQbjPI5t9SlbimldAmdn1xb+ybiQ8m+r6LnyizAS5G6v94Jijq4olmbRwjjc3jQk2Y/9apuwZCap90fDp5w0HSQlqIndcG5uZGcU0l0FNUielxMSEZpVtsMdIVh2U2Qcfh3vz+U2yP7VQs8Oivu7wCpypl0YG4/Ahds2wOsM85Jupa70whd/tKdOouaiLKTL81r1jYecDvhVGMb5tgo2fk7+Ur0sz4gJThNrG7tfK8SHyydveY71jhEIGvr8tHmpeLnV6M0XY3TncPufyri2nT16imw9tck7JgMSRWyvIOGvMgwx8fOQNckgMF4lfobQv29gRQIKPFoIMBalt6H1XBZjX5QQF7kz4AoxL6nJKGVNGF/vNEUJpjK7cn2vsywfcuAE75by71s3GhvkZQhoTdQ760YvOAt+aFzwrhwtmr8k5s6cFjmVxXd8hzybfYs9Rr9jO93ofhrqHhxCQ= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: djhZE2BHwU4zFt6h7JKb4+ux3yKVWYIIiYEIOB2CFEL4Ba0fJ3UZ+55+yfnSeYOgs8zWd+ZxddO1Kw8t3Ql402KC454+UQp3yMw23UhWSufvUjTM8Cmkqqjc1PJ9j6kOUrFi2Msy4PQpmiYRWyJJgVqRLCGfWrTVSe1rhZYthE8WLkouWk5lMEtlmLIF84+KySIAZ/fadGZ0k1zYW0JI+LRrZDvreGwNJjIF396KM3hSZw/6jPkaebaTfbPRtBxVZPAzLbmmt0OH4WIZdzWDyqC+Rn5PEToHIr9DzW15JusQU8djC1i1gZyULImDyvtlKNQA9bUvAsfrqV7X4bDVpmiw30qlg5q56vBXoaahtkRSpBlqEyD8+58nlyQGrgF2fOul0p2s1jd3nNs5fV83hHDtd9mhNtO7xGk9mgON5M0LakkPmsRSB8mfFHdO9BV56Xxut87qSqssyG4S5f9xsRdKLYXw0QP0GvXZ5Y761ST8EWwCT7pLYHM1j2Pm4pIVPX9L672T/E4M3SCyFycIsBvNdOebn+A/JJfPGMvDjk8VWM4Z11jSVUj1g9mB0VEVSYzwPUnLQaTY1d/sMpVo7JvYVwKl6yGqXG1neHhQT3U= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QQ1nAG5Hmj8eZVi1guIULD9HxWq8h9CASipt7QHp8SjVhpqlYol/2U4nk9emVeFF1Vq31xUGyY3PqYdmReqRHJjGFoJNTNCurwRTkYmtSEWUhkpDdSKD/wayRCM4ZqvhYlHBSAIzSrk14+cfI9R5S/XsexnGxvxWMrWusmKavM8hkm01vXsfMWdWkKLdy5OvNUfQtAmczzq01X+quT8K2eeciKve/+Se5i1wOf8vDia4kCpSpKgjx5HqEy8TvQcu3OS+wynpPQPcWKxeNu8QEFCsB0wYHoh3GawRdVGtC59Gs8mileXZt+7jfUjog77+0aaq8USm3hBTH9lCPRSOBfir9sVHpvNQ7y6ldNt5+38TQtyFPsLMVm6v2VHll7mP3qAJ+qf23YQqcBM2Ds2Ek2EbLlSPUROUps1RijeqvcdtGr9l5Dggfwew2P5tD2PDgkQeXEYRr9o80QmlyzRuQTbvO02Jt59YhWwrSKeR/1huLz41BA4RZcR+69BmrDAMv/6Ovom+LIR/Z2geE/QrgfcDtQLNHRqAg/+VfcOL3TtbhZ49eykj5d0kaWOI+MvG8mJgYPDA+nt677WgCWXlFYyyz6eVOc7D6pUyZiBhfk2NcclI/oOx5ggHY4gIIJ1e0zmVVZvWiIms0IWdkihZsBmTLa9jvhwDsQc/yvEWcIxiur3StKBPxhttAN5NuLJRNJzdV1knbPfMF+q2TKinRrpVZowlCv71El3Ij9RRXmvCrTbS3zau8yFK4LDP3TFXe8wnqMwqsUj/Kxts4ELhUTLWacAXVinVr47ZzseErZ8dYr+/AdvAlpWnKHYZqorvYkEqe/1yfohUyHKHI7naB0vjIXNoWMyDUMKS11kMd+QBApcEfNnxn4RRHEgQLHRX6dCwHPT30YV27ddPNenOktNS8E3qD1gVKqt1MiCZ1/o5PerZJCtJ1uLq+xjshg34BRYlEjHNMg/D1xPTIlTe64BWiAHs3JreIXk7BHGGM7Kel2aio9h628BC6OUJDbrnouppIvC7SoBDBxaYE5GKlrVGk7gYbL5BMpAqOM7W2PrOzS/1CSB4W3UZUAGQytcSKjitj95W/oiQbhrMOfjk38cVuRA/ugwZIUAaKTuFXaZAbMho47y3IGoyD+WhiYwaVZXh1M7/UFO6UhM8NCtat+jOTt31npuB6xr+IyZ7s2CJg7xG3awyGbNxn+vP9hb3pDG61apAf7CLoQBYNBTGVQ2hVIbLQK+20NuGIQkNoftJJGRYBAc6tvu6DjPdcuy1kHgZ7b1OKTLHbvPkcUcFsQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57ae1227-450c-4954-a28f-08dc57470815 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:37.1316 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 07/17] avcodec/ac3enc: Remove disabled code for RealAudio variant of AC-3 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: AZwLD7s6BkAE Implicitly disabled by 4679a474f06c229b10976d7f0b4eee0613c2715a. Given that no one has ever complained about this, this commit removes the now dead code. Signed-off-by: Andreas Rheinhardt --- doc/encoders.texi | 3 +-- libavcodec/ac3enc.c | 43 +++++++++++++------------------------------ libavcodec/ac3enc.h | 2 -- libavcodec/eac3enc.c | 9 ++------- 4 files changed, 16 insertions(+), 41 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 8dd709186e..c08e40ee45 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -144,8 +144,7 @@ If this option is unspecified it is set to @samp{aac_low}. AC-3 audio encoders. -These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as well as -the undocumented RealAudio 3 (a.k.a. dnet). +These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366. The @var{ac3} encoder uses floating-point math, while the @var{ac3_fixed} encoder only uses fixed-point integer math. This does not mean that one is diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 32aaf89ec1..12bd3b25f3 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -874,8 +874,8 @@ static av_cold void bit_alloc_init(AC3EncodeContext *s) /* compute real values */ /* currently none of these values change during encoding, so we can just set them once at initialization */ - s->bit_alloc.slow_decay = ff_ac3_slow_decay_tab[s->slow_decay_code] >> s->bit_alloc.sr_shift; - s->bit_alloc.fast_decay = ff_ac3_fast_decay_tab[s->fast_decay_code] >> s->bit_alloc.sr_shift; + s->bit_alloc.slow_decay = ff_ac3_slow_decay_tab[s->slow_decay_code]; + s->bit_alloc.fast_decay = ff_ac3_fast_decay_tab[s->fast_decay_code]; s->bit_alloc.slow_gain = ff_ac3_slow_gain_tab[s->slow_gain_code]; s->bit_alloc.db_per_bit = ff_ac3_db_per_bit_tab[s->db_per_bit_code]; s->bit_alloc.floor = ff_ac3_floor_tab[s->floor_code]; @@ -1812,8 +1812,6 @@ static void dprint_options(AC3EncodeContext *s) switch (s->bitstream_id) { case 6: msg = "AC-3 (alt syntax)"; break; case 8: msg = "AC-3 (standard)"; break; - case 9: msg = "AC-3 (dnet half-rate)"; break; - case 10: msg = "AC-3 (dnet quater-rate)"; break; case 16: msg = "E-AC-3 (enhanced)"; break; default: msg = "ERROR"; } @@ -2132,18 +2130,8 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s) } /* set bitstream id for alternate bitstream syntax */ - if (!s->eac3 && (opt->extended_bsi_1 || opt->extended_bsi_2)) { - if (s->bitstream_id > 8 && s->bitstream_id < 11) { - if (!s->warned_alternate_bitstream) { - av_log(avctx, AV_LOG_WARNING, "alternate bitstream syntax is " - "not compatible with reduced samplerates. writing of " - "extended bitstream information will be disabled.\n"); - s->warned_alternate_bitstream = 1; - } - } else { - s->bitstream_id = 6; - } - } + if (!s->eac3 && (opt->extended_bsi_1 || opt->extended_bsi_2)) + s->bitstream_id = 6; return 0; } @@ -2233,23 +2221,18 @@ static av_cold void set_channel_info(AVCodecContext *avctx) static av_cold int validate_options(AC3EncodeContext *s) { AVCodecContext *avctx = s->avctx; - int i, ret, max_sr; + int ret; set_channel_info(avctx); - /* validate sample rate */ - /* note: max_sr could be changed from 2 to 5 for E-AC-3 once we find a - decoder that supports half sample rate so we can validate that - the generated files are correct. */ - max_sr = s->eac3 ? 2 : 8; - for (i = 0; i <= max_sr; i++) { - if ((ff_ac3_sample_rate_tab[i % 3] >> (i / 3)) == avctx->sample_rate) + for (int i = 0;; i++) { + if (ff_ac3_sample_rate_tab[i] == avctx->sample_rate) { + s->bit_alloc.sr_code = i; break; + } } s->sample_rate = avctx->sample_rate; - s->bit_alloc.sr_shift = i / 3; - s->bit_alloc.sr_code = i % 3; - s->bitstream_id = s->eac3 ? 16 : 8 + s->bit_alloc.sr_shift; + s->bitstream_id = s->eac3 ? 16 : 8; /* select a default bit rate if not set by the user */ if (!avctx->bit_rate) { @@ -2297,7 +2280,7 @@ static av_cold int validate_options(AC3EncodeContext *s) parameter selection */ min_br_code = -1; min_br_dist = INT64_MAX; - for (i = 0; i < 19; i++) { + for (int i = 0; i < 19; i++) { long long br_dist = llabs(ff_ac3_bitrate_tab[i] * 1000 - avctx->bit_rate); if (br_dist < min_br_dist) { min_br_dist = br_dist; @@ -2313,8 +2296,8 @@ static av_cold int validate_options(AC3EncodeContext *s) } else { int best_br = 0, best_code = 0; long long best_diff = INT64_MAX; - for (i = 0; i < 19; i++) { - int br = (ff_ac3_bitrate_tab[i] >> s->bit_alloc.sr_shift) * 1000; + for (int i = 0; i < 19; i++) { + int br = ff_ac3_bitrate_tab[i] * 1000; long long diff = llabs(br - avctx->bit_rate); if (diff < best_diff) { best_br = br; diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 1cb1aac4b2..dad53cc4bb 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -256,8 +256,6 @@ typedef struct AC3EncodeContext { uint8_t *ref_bap [AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]; ///< bit allocation pointers (bap) int ref_bap_set; ///< indicates if ref_bap pointers have been set - int warned_alternate_bitstream; - /* fixed vs. float function pointers */ int (*mdct_init)(struct AC3EncodeContext *s); diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 527f77e33a..5deda083c3 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -134,13 +134,8 @@ void ff_eac3_output_frame_header(AC3EncodeContext *s) put_bits(&s->pb, 2, 0); /* stream type = independent */ put_bits(&s->pb, 3, 0); /* substream id = 0 */ put_bits(&s->pb, 11, (s->frame_size / 2) - 1); /* frame size */ - if (s->bit_alloc.sr_shift) { - put_bits(&s->pb, 2, 0x3); /* fscod2 */ - put_bits(&s->pb, 2, s->bit_alloc.sr_code); /* sample rate code */ - } else { - put_bits(&s->pb, 2, s->bit_alloc.sr_code); /* sample rate code */ - put_bits(&s->pb, 2, s->num_blks_code); /* number of blocks */ - } + put_bits(&s->pb, 2, s->bit_alloc.sr_code); /* sample rate code */ + put_bits(&s->pb, 2, s->num_blks_code); /* number of blocks */ put_bits(&s->pb, 3, s->channel_mode); /* audio coding mode */ put_bits(&s->pb, 1, s->lfe_on); /* LFE channel indicator */ put_bits(&s->pb, 5, s->bitstream_id); /* bitstream id (EAC3=16) */ From patchwork Sun Apr 7 21:09:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47898 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147021pzd; Sun, 7 Apr 2024 14:10:14 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCV2gFsvnQ9U1iiddhb7b4iliPxajqNgcOeX8mpMeovMp7vrgRlm/tOQNBZrGxYxw2K6Vhq69ewuFuD3Ok6/YwkaMy+vRTZFF0uoag== X-Google-Smtp-Source: AGHT+IGO6npBMiesN5sTd+CXh8VcRhgUCgSq9Piz60xXfjBI0TNE2odbNdM52O9sOjxsMbHfyZUH X-Received: by 2002:a50:cd13:0:b0:56b:b6a2:2048 with SMTP id z19-20020a50cd13000000b0056bb6a22048mr5652205edi.24.1712524214682; Sun, 07 Apr 2024 14:10:14 -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 z3-20020a50cd03000000b0056b9efb2407si3051782edi.432.2024.04.07.14.10.14; Sun, 07 Apr 2024 14:10:14 -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=S17Mu8Mf; 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 3531A68D1C0; Mon, 8 Apr 2024 00:09:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 99B7668D1B0 for ; Mon, 8 Apr 2024 00:09:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nqyf1DUDaMtgU1/Ads1+yq9Dcl9hW3lh2N+yDpOIF9MzS7c7h5mslBdRYK6rOSq/4Bg6Kz6W8HsWxripViP/cdNswyRBHzzgbfA2M0CuSuv/AAgFluVS1nqTW/w2Re1s0ZycdolpwDhSnbldf2KKJZCQilYGKG82ynmqnwcl2WY4pDhrJ03yEbaou1HN5eED8reQsj4LDAsL6yyDN6vfuGxpa7IgxWd+Pq61xShawmeGCO5FmdnJhBO7tK9HEQ3yvCb5QbDcF/V30iDfBFKM7sth8Riwc/Bc60mVMa2kIcw3V4M7A4q8pPV5fEqX/saup8m9mDPVOM/3vCXzTmR01Q== 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=cZZ/26sMi0K+fewJFMhi/nxM7nrLx7MQ4ctwPi/+nvo=; b=mneudttqSfoz8CWRQYd2QqqCmJRl8Nm3rLtMC+Kgwd2FkSdlHTrEkq9RatEdsCAHnDTUKSdyJXs8daN0E8sfGTGY4KwfVGgiVQAO7pzb31CymEo7BnYzytaalq2Dm4fmSdhuqcnjr8YGaYGk5waFgcyGVByNIJTuDWvzNl+HdnW6V4onFADbZpugr67qpnYjnMSNIc0rjESmwsQInqPMHTaftiVhi2bxbFe80ExnYrpaI3OmJZThWfeZShTCSxOyNBY4P1ICSqP5jJLvhbadGc3krHgFkUrsEcgwMLgp8VCiSl8BC+tshMmW75glTj2mAgDJYo2lET3HI9BvnQ6cjA== 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=cZZ/26sMi0K+fewJFMhi/nxM7nrLx7MQ4ctwPi/+nvo=; b=S17Mu8Mf5YAARD3xX2yKpR+CrK85d3GJzKdZeKzGkMltnUW5qe9jfNXMT/B3dz4iiHccp4ycbS5YgqYYlF6ucQNuDT4X3xRBWxFSCy4jXNwwRwJw7xWnbhJdxVVmnzY1VMnuRvqGIVsynCwMXPD3+4g3MHlQcSCNAMQel5/HM7++4TV3waNyHSbDm6jJ7EfAloddiJLyHrscT9c+nj2OQgYckZctBYdwtYnfupG9a1wKcpaS3N27Z+5ARfZsDh8fn342aU5sC5cym2yGcM+1PDW/Lz5l5sJ2R1gUMM0rmbJ/tc9SsCpA8ycBanvlVr93Dq3Q0MZ2HVCLcO/VPiuHgw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:38 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:38 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:06 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [7pz+Ekxb20y9e0k29ZbZWdV2rTVCHedWT9/bTMuIgrI=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: e163d367-aa9d-49cd-f1b2-08dc574708a1 X-MS-Exchange-SLBlob-MailProps: quCBMN2EvO+2u7sZ7OSLhMIkTSfckR5UA0Z6p4tebnK/X/kOv7UpD7lSpKQf4Dshc5oJsQYCOnzgjx9VFcjMOzYgXOBSqbrPh6vqO0eq3G1XK40cohg9oEprI72LMBZrDdhGRQBDaoRp0orOEnTFZmM4WKzAaTUEV5KlJG3x0AANo0WAxqCmHfh1qnr9XdCnyEHoy4fBkKZoT2VxV/BlOuwQkWZrxtRLNJkEMY14rJJZyGCz1/CKgsslUdoXDv7QGEw6z/0ImAJI8Nn23pzVYVx9BwuAPs8Q9IKiN4Qb/Vpx6/bKFnoFX02uj0Uq4L/BDDD0A8jtD6Sl3DkhfUQBxIhgbeqHUBUD0RyHz38rOOqhWxFWcck2KzctvhK2h+IXc4nc+vxjcZs37YSqjf1H2T57fovqJUC+yrem4qeYOAifls7psRW9RV8koikfdcr89kkfD3Vd6YrYZvJmuHXHi+Jf5Oe/lQOfuiEsCOqB5PbLchWvQ9QX9PmH9R9n13iX0Wx8unIgoxhw7DH4fLn/z9DwyFgUbtYKSnbyiCN0Px8SpmHyCGLGvFzna4Et0FLyuy2n+Hk7sHVXLclbK2BQqzSSaswar50qFi1Bwc8LNcVl6k5yx4gpODAft1ui0GZVVjFZCN6uUe0mrugu7x4d3CAJywp1wZRUiRXoT2zH7zW/uKoMWeRKM5y6jde6TWXhaDOIn2CPM92+yGhJRBg1xw== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XvSgoe2ffcSCz9dKRCdK24Ae8lwXnV2w09Ohx6SHIIY1Wz8rg0OkIvylceT/vIlj1mfyToNZDk8yf4KcFcL7sKp7MYMcbcbML8fd/1gtEGu6JLIRqDYRVD4kALCM2iCiWR89m5pWAYWugnJXZlwXtYXXvuJYInQ6JmSnBjrceQXR4usTG14TefwNPkfh+5UB538+5SsBYpSCbwetjUQYWQfsPYir5PIedfBJsejpfjWa0K8djz6/GExTUSmpN/rDB0WqXGesTugwVe9+0+J5VfjUGIY+DzmaVzJX8O8MLaYXaMpudedLHZAwEvqZ4zdagWG6lRZj8w3bYmLx/WXJb1WxRHKLv3bURTiscgEI0d7UcitIw4tGi+MGDUjEcmcZuS2/m1YS+pPNzrj/Jqlt36/ipTKzpoI3FCp7ZvT7ggEQUd5FxpFu4QCj0LQba7iI+GKlSdwg3s8gadgbxRD5QBo1sYJ30sb8crCdgQvQS06Knmfw4WY1LCh1osE1hHutiBhE5sPDi3mhCPW7LjglYaf4D9mX+b9wv0GYeb7tcMGhmJ/Ft7G+Tose1dBiFP5NJBAqyxxGaDaagxGnRiUFmqgSfAHGvOLCPM3XTRFB+e0+JGUrp4OAXQaoX1ZKePh2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UD8OATgkQzSlYsCKZ3zw4F6TWcQpiUS/fu9vaurLRuq49UX8u2CaTj54I8sc82AD3eRnwMsLjUOH3p02yGwUYkqhkygoB4QNhT+CmcdoHhnkPNXmnm2gbrfAtmWcHu0jh7vozYEc6+h3SCgNXt356sRX9mzrAVzM64nMiO5sWD162v26FWghQ6CgJPKvcMIXVSUC5y62ALbz+1G/NTs27n4q7VCFpRwH4VjOBc5j8XOGubC1XTDHOTE02BapUZvsbl5Gzzb4V9hMepd3Kskw1+HkICqWo/DYLIsvHfzXig9YC8zc2PLtWbAI0t/t0FSYfIIanFGMBu/6eDjPcubSqcHkCyDLJ7olk0ch5iQ78/YJJi2xikLCY34Cqjs53i6l4kh4r3wICtip1cZrrYEYbNdqAQbtt44rgO/c0xDofQXTjRg0I2UE6+ejXGYDxRTxyQNYO8PT6rmUpqL7wrjCulT7m0r7ndgC+aZd7MXyYL0q2IW92v0FJz4FHB3/t20Si9wPAuud3DH2lhRknjleVyKVk9Hf4uh7TnnAO6oOcb3JPZAmKuZnzCbBrlcUz1h3zx3OoPj9MDb4iAOWUz7mh0NMAo3ieDCk4FsPjy5XHgVWpl7fXAguXYAww8k47wJ8Upu1k7XiW+/Su9SXyUBqqafG+KLxBw/odTCfKrt1K6yR5twr4dXHyVPK63B0bQSDInQKSePHf1WgleNrGEviSPMHJI3gjxRdpgA5nM4DY43JXP0NrggXp5580SkoYXR+nbA81Vskm+taIzdoHTXwPcAylWj/vgC4vsMChL2d3XE/LrDr3X7VLX+Xzxxy5AYjvEleMInD6IQpuO4HkveprPosHvjBi9miTtlRGbH0N0mwukjwc2ANDwvqRTqj7coutUZDptxm7+nucmIlvv1hzNF5pglf75E1Aeik6aVZqEPXSc8C0VUGG7vlkc2gkl8eff/apx4JiA+YmczXtRXtNsH9S7da4GFabmrXsLlnkFmrDI+J9Cx070vqz6i9Dp/Yf4m6lGeeNfg3P1sfj2+tnhjAbWZFNtWI0KFBEJybEmbfsFNn9mtQ4XT1g/XTwTgiOYX73m1GxoeNTqnFKX1SdVkASJ+8QR0Uq3wrWOXVwx6z/2I6wh6lepccaTRD3mU9AVk+zVfAg5aC1jKkyeNIzIFviK2XXXg+GScQM7Gmyf2yhqRl9ZtiSlBshG1sLefk0sX2SiqzGFlt57Vw5kcudig1nHGVz/AOtX5ih94RdtwkBmnBeej//dXYJCLSzwU7ujZ8fLBVYed9hyFOlfXqDA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e163d367-aa9d-49cd-f1b2-08dc574708a1 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:38.0630 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 08/17] avcodec/ac3enc: Use common encode_frame function 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: gSqHgSBMtNhJ This is in preparation for sharing even more stuff common to the fixed and floating-point encoders. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 8 ++++++-- libavcodec/ac3enc.h | 16 +++++----------- libavcodec/ac3enc_fixed.c | 3 ++- libavcodec/ac3enc_float.c | 4 +++- libavcodec/ac3enc_template.c | 6 ++---- libavcodec/eac3enc.c | 2 +- 6 files changed, 19 insertions(+), 20 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 12bd3b25f3..c19837e88f 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1769,12 +1769,16 @@ static void ac3_output_frame(AC3EncodeContext *s, unsigned char *frame) output_frame_end(s); } -int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr) +int ff_ac3_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, + const AVFrame *frame, int *got_packet_ptr) { AC3EncodeContext *const s = avctx->priv_data; int ret; + ret = s->encode_frame(s, frame); + if (ret < 0) + return ret; + ac3_apply_rematrixing(s); ac3_process_exponents(s); diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index dad53cc4bb..1a51423ac1 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -49,7 +49,6 @@ #if AC3ENC_FLOAT #include "libavutil/float_dsp.h" -#define AC3_NAME(x) ff_ac3_float_ ## x #define MAC_COEF(d,a,b) ((d)+=(a)*(b)) #define COEF_MIN (-16777215.0/16777216.0) #define COEF_MAX ( 16777215.0/16777216.0) @@ -59,7 +58,6 @@ typedef float CoefType; typedef float CoefSumType; #else #include "libavutil/fixed_dsp.h" -#define AC3_NAME(x) ff_ac3_fixed_ ## x #define MAC_COEF(d,a,b) MAC64(d,a,b) #define COEF_MIN -16777215 #define COEF_MAX 16777215 @@ -256,6 +254,9 @@ typedef struct AC3EncodeContext { uint8_t *ref_bap [AC3_MAX_CHANNELS][AC3_MAX_BLOCKS]; ///< bit allocation pointers (bap) int ref_bap_set; ///< indicates if ref_bap pointers have been set + /** fixed vs. float function pointers */ + int (*encode_frame)(struct AC3EncodeContext *s, const AVFrame *frame); + /* fixed vs. float function pointers */ int (*mdct_init)(struct AC3EncodeContext *s); @@ -282,14 +283,7 @@ void ff_ac3_adjust_frame_size(AC3EncodeContext *s); void ff_ac3_compute_coupling_strategy(AC3EncodeContext *s); -int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr); - -/* prototypes for functions in ac3enc_template.c */ - -int ff_ac3_fixed_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr); -int ff_ac3_float_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr); +int ff_ac3_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, + const AVFrame *frame, int *got_packet_ptr); #endif /* AVCODEC_AC3ENC_H */ diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index c399d6cd09..4a24cce833 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -102,6 +102,7 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; s->fixed_point = 1; + s->encode_frame = encode_frame; s->mdct_init = ac3_fixed_mdct_init; s->allocate_sample_buffers = allocate_sample_buffers; return ff_ac3_encode_init(avctx); @@ -116,7 +117,7 @@ const FFCodec ff_ac3_fixed_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), .init = ac3_fixed_encode_init, - FF_CODEC_ENCODE_CB(ff_ac3_fixed_encode_frame), + FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index 24960f318b..e0907fed05 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -104,6 +104,8 @@ static av_cold int ac3_float_mdct_init(AC3EncodeContext *s) av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + + s->encode_frame = encode_frame; s->mdct_init = ac3_float_mdct_init; s->allocate_sample_buffers = allocate_sample_buffers; s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); @@ -120,7 +122,7 @@ const FFCodec ff_ac3_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), .init = ff_ac3_float_encode_init, - FF_CODEC_ENCODE_CB(ff_ac3_float_encode_frame), + FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c index 45dbc98804..2e0fb9e85a 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -371,10 +371,8 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s) } -int AC3_NAME(encode_frame)(AVCodecContext *avctx, AVPacket *avpkt, - const AVFrame *frame, int *got_packet_ptr) +static int encode_frame(AC3EncodeContext *s, const AVFrame *frame) { - AC3EncodeContext *s = avctx->priv_data; int ret; if (s->options.allow_per_frame_metadata) { @@ -402,5 +400,5 @@ int AC3_NAME(encode_frame)(AVCodecContext *avctx, AVPacket *avpkt, scale_coefficients(s); #endif - return ff_ac3_encode_frame_common_end(avctx, avpkt, frame, got_packet_ptr); + return 0; } diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 5deda083c3..1ee140f13a 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -252,7 +252,7 @@ const FFCodec ff_eac3_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), .init = ff_ac3_float_encode_init, - FF_CODEC_ENCODE_CB(ff_ac3_float_encode_frame), + FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, From patchwork Sun Apr 7 21:09:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47899 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147075pzd; Sun, 7 Apr 2024 14:10:24 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUieCZrZofnRYkfoyl8NiLNzozVwxi6+ioeqdVbEdgiiTKeDqJ2OlokJlr87ddU+mNrJxEFrL/ZznO+TRIWyLZq1JCZzsJKNxtkWg== X-Google-Smtp-Source: AGHT+IG3LgYTFkj6f27h3yn96boBtM2JVT8buCzZzQ+lD3bhZlgHE+D2KACS7vsb/aJofuxVwQd1 X-Received: by 2002:a50:bb65:0:b0:56e:34c5:c482 with SMTP id y92-20020a50bb65000000b0056e34c5c482mr4261332ede.27.1712524224120; Sun, 07 Apr 2024 14:10:24 -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 s26-20020a508d1a000000b0056e2374a397si2919421eds.108.2024.04.07.14.10.23; Sun, 07 Apr 2024 14:10:24 -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=XlMEI2+s; 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 0F4D968D24D; Mon, 8 Apr 2024 00:09:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C205668D1D1 for ; Mon, 8 Apr 2024 00:09:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cRlVTDKO+Cn94fUObt5Q6s1WPEpjCoKL4QMYfzbiFP4bT4Z4f2FhQnDvPjDHJZlvAvKHN4+WLTwgWqLyb0DQTGzzIzbl9cNh/Nwk4Dz/IBiCmiJgcPPJWey5Ms4+wb3j8DPc+xHUozL1bOYkSoiBANsvwnKQUvOkOxJY9mu8wGsO0YYnMFECfua2j76ofK8AeulF8yFLuIkN1QmNwRHXYqjq0JgBrXLr2QsBimWusm+8GoK42TAW2U7awtfemDSbta3shBitWwwmwzezhtNoBekpzBx5aVwfrOXwn0FY6rGTTy/dRjway1i4zNQTcvPrMhppis0NCeBqPP+nTEyoHA== 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=4ut52leKLptUC+yDsmX46D8UWWkIMxiz6w/CLmClh4M=; b=FXLX5OOvY4MYhL7kCKvQCh5K4m5N61HA0fjhUk6GlgY74HScg8BZSL26JQpx+UzefcRZqczDeqMNeKLulx5lOONly39U278cNAFDbqvwThWKRwzVBne8eY07BbcaX2ePXoQ+mvekR2VKqKrS93MO4RWdN8GlHTCjl7hiojDYAjP+/Pbn1KhfWpYsa0PZ0SArrjF+HDu1eGSiXwVsP6MdUZI7dJtM72MggU3/9JgH5mIawT4f8TKyvghYfbJnoiqciwQ/TR9MZAFAaOJZ37h4EbGKt41qzCoPXJRydwd7s2fEFOXs6MtohM3BPC35lDt2l590vBdfCu265RBNo9Ap+Q== 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=4ut52leKLptUC+yDsmX46D8UWWkIMxiz6w/CLmClh4M=; b=XlMEI2+sh+hj8RsDGLXXbVhPG+z0x1uDpaTwur7yla7iafvlkJ+yUUasLIAfGZVPPBAIh/uzMh5TPPHt7BpPw0SFG9WJmxdIi7PNv7lR2jlVVaHTk22Mc5HqK3jq871bXfnPMbY3culXCZASQAa/0MaKTIhWxmUrQMuZWL+Lg+IAfnoJwQcgkC04gDhhmBkwfTvwBugNtjCvJFDSHiB6dCerFive2MzOpQzO/AuDVBWd6NuZ+NC3AEv1Hxh+gimB9gfTBNI9ffT8bTK33DX61lKTMfuQAF12ZgKDRuP+Y0DVIWs+b057rkvn/tf0X/yCzLoHJ/DP90QAMWliiasJWA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:39 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:39 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:07 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [8cusl8JHIf3t8PBIxPN0Sz1Er6/HTovRSj8FKqku0EA=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 625f302d-e2cd-4530-874b-08dc5747092f X-MS-Exchange-SLBlob-MailProps: 9IecXKUgicDNEbE0encsoirT0ZUrgC9mflO0OxM9h9gG4aliL1uhn8QbDTKEusfEDDOIFLqXQdMbbhCWmnm5WsgBtW1VLpRZik+1ddxJj4m/BMkaOAm+SzFlsSxlxsMcRVRzn9HiFRus/w/xWcySt7DQ7lQ2Eb/7XZr8MFMvwaMSjFMq9N5G3u87pe6o5M3C0CmRkyfukl8qGgBV0/RWuntrBhSeMK68PGDfS2ynoKthzMnyv2Wajb+AqUZtHOaQZ6W6RzARu+P/NQ8FtZx1IHA3FP09RnWlNdVeJOwrJwE7TPB7+nIshRjkM3gRhMRMsbTA+qc0PrBNGI70elN7aw+0Zm4NPTFa3OA8qo8b5paX6gNOvI4ob/VNOe8ImfMipseEaTidbmZbv0Oa3tT1xqFtBZfy6C1YlJAeFZDylSIZtBLoNRnY1ofIZAGvygb+OWODEwSp4/7ewqry8VYkEMbNr5cplehey0l5mUTaLLKfVLUbxRDERZwmgpXu2HNxtuy8cCqz5K9DHJIhiILU6dnPYKBxxN5AH+ZP7yuGw19nd1XD8fzLiI+P4p3aO6v7atMQC5Muilt5NqfqfAqZVHPS6zuBZ+nagKugaoC3aXPOukNuCMUM7y/wTRt4PK8SSEzSJavA/35/p7XbSRxmIzt6T/6u3/wi6OxXsz0NMO5KFpic5JJcOXs0DBiYsS7/Fcgo09EKZkxdyCN4wGAbyhBKfQwWZxTHC8jvo8IfV3TOG87bR6Ydfg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rYWJVSk0UlV6WfvHejvqDyAW3JlRsSYILUUeZgwr6Q5xRyp/X/EjeLNtuiFlBU6YjTlQG0hVQbmYLPWFyjMmxNTzfkvWafIRHy9x5ew0ZU8Chl3Aklp2FF3qbviRCI9/6NXaon0IBDsTa84nIw1U0ZkdtnGQuqBqQNi0xE5rPWp+uJv/35g9TKZD4wRI/DfaL4vMISDxsq4cuEWNQhlSQqMmAUYheSO8AEukyrJztKvqqTolrLmZozsoBnu2FDakbDRQ7Q4s+DVdDkEyFxJMfTR6CB/MYGqu8TxGCxTe7581clX2EYPJ4UBE6NHyeRK/MkOvFtdR4TjGgEptID2ufpJafzOh60F+w5lSSY00t3n+XgYWY3W2VEgtOJKwgr/PKy6zb4LTpxBU8CLnkIWSMLjUWVG9ueW9BKtQTxJwCt5pgHj/ugjArGditDNNZL7QtS96KIVnaEakSeWsaHqIfHILP74ThbnNxDbcF2HPdMDaEF1gc81ipw5MD72Fe39Bg1JHzb3jkWr6dSb1CuzEPytpd+CklSl4BDLvrNKfhrF6gyuOTk6s0Dx7O+nSz7mYaa3IIPPzWpjub4itK4TbIs2VMzc94QSndJlNBKy2ZQ0= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EChsElj7Ml+iQwKYeEBSC8fY4KAxxnkMNNJwsxXkMHz1Oby8+i/+r6sR5lggl/WqBv0UPUttC0sZsrmVxeTxfoAQRxIxinegiDTlhgItU8SDZ6QgOcpL/8wj0ZuswmmNHYM7sdR1iJjHrM6N/Cv/Hef3b6OU65Ghazia7nd2h8PetmNvCIl/U/llMm6i+ubd5ShUGFrLy7yhvbZFqhtYr7/F69e1vcezs3zXceMZJ4/bVBzhO2R9bnwCN2tk6Az2L0g0rjvo72NCiP0zEMlMX6HYEGjxP73esl2V6qQuVB7WAbiJWzjt/Y0XflUWmofxHQk3dbC4RVt3xMRxz+c4wW0KCiFEeOFrnPe6GhySSTZSN9MsRxjus+xQZop+eAYamv9NcReISNaqimChhljk6vGaeYoZKeVFMrZNh8FGDuNv3Nblar4A9jhDC1Gq347vqjMEck+aJBSBUx35LKqG3n60idQmuqj39Cn/F+vcShzCWRI8wUIyhWJelyf9y6Q3Ah83iFQfKjgdfwF7hcoLC4w5TQzWqIxFt84F67zm0/ACBZhcMqhydQnm3S4yxOvF2BLn74aL0raaTRHouhByL8+Hv0SA7TjHBCTKhj7jvDo1zcoQFNMgH0sYzVqMCelaq3uOunI2kKsoU3INaw1D4sgqxsVs4e8zLf97mD7iQ4YXracY7PpKvfey/UQOqBr8Yu8GJLFwcqFDF55vqRX1m//pmWXfv2MoKVAknSd6mqx6U0ORTO2X8JSxDh9a3/9RxQKJxAwZ4spIyxSnmfXSt/e9yPrcK+IFmpEDTw8wEpuEmyUHaDUzf6BC+/EY09EjiB4sC0F2c5oJa1BpIIsD4aQ+/OYd2rLSINPmaHCzcyDobt3jC6M9f1zzhYuE2qECgdfXopP97nsifJfC4aRW/nyWAp2de+CN9kbQc+gvFXSgWkKSbJlnnYUkYjYJkByEJuwtfFKdQP/K1abbtmf97rG0A3TopYHUvPDa4srDA1UQ0tfhUvd4kSai7+ArQCZJrX51jLyz7KbSoHZ8Ud5ok8LBX4AIK/X1nDsjKeiKQkyhjsUuzBd2+ROwNl9qVeRG0c08vZVy4dw0Zs8TvpYourvEB4efPGFDaErjVyKLbdIkH7C5r0I+cJjGFObQL5HgxT5/E9P5ynqR5l7enN5u5GY4C83Wvy0JnrHuBXwiRVaDHGxofGQHkUZCtIdj+GO6x3nWlCF6LhkEYzKS04B0E2lwXWkrN5oSANVmlj3xlc006jBlFiavTma6UvyY4D/ZWpg93ZUSgQE2e8pAZPSsJA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 625f302d-e2cd-4530-874b-08dc5747092f X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:38.9967 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 09/17] avcodec/ac3enc: Move ff_ac3_validate_metadate() upwards 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: NJpLb8WL9COt Will avoid a forward declaration in the next commit. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 420 ++++++++++++++++++++++---------------------- 1 file changed, 209 insertions(+), 211 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index c19837e88f..1f05436720 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -273,6 +273,215 @@ static const int8_t ac3_coupling_start_tab[6][3][19] = { }; +#define FLT_OPTION_THRESHOLD 0.01 + +static int validate_float_option(float v, const float *v_list, int v_list_size) +{ + int i; + + for (i = 0; i < v_list_size; i++) { + if (v < (v_list[i] + FLT_OPTION_THRESHOLD) && + v > (v_list[i] - FLT_OPTION_THRESHOLD)) + break; + } + if (i == v_list_size) + return AVERROR(EINVAL); + + return i; +} + + +static void validate_mix_level(void *log_ctx, const char *opt_name, + float *opt_param, const float *list, + int list_size, int default_value, int min_value, + int *ctx_param) +{ + int mixlev = validate_float_option(*opt_param, list, list_size); + if (mixlev < min_value) { + mixlev = default_value; + if (*opt_param >= 0.0) { + av_log(log_ctx, AV_LOG_WARNING, "requested %s is not valid. using " + "default value: %0.3f\n", opt_name, list[mixlev]); + } + } + *opt_param = list[mixlev]; + *ctx_param = mixlev; +} + + +/** + * Validate metadata options as set by AVOption system. + * These values can optionally be changed per-frame. + * + * @param s AC-3 encoder private context + */ +int ff_ac3_validate_metadata(AC3EncodeContext *s) +{ + AVCodecContext *avctx = s->avctx; + AC3EncOptions *opt = &s->options; + + opt->audio_production_info = 0; + opt->extended_bsi_1 = 0; + opt->extended_bsi_2 = 0; + opt->eac3_mixing_metadata = 0; + opt->eac3_info_metadata = 0; + + /* determine mixing metadata / xbsi1 use */ + if (s->channel_mode > AC3_CHMODE_STEREO && opt->preferred_stereo_downmix != AC3ENC_OPT_NONE) { + opt->extended_bsi_1 = 1; + opt->eac3_mixing_metadata = 1; + } + if (s->has_center && + (opt->ltrt_center_mix_level >= 0 || opt->loro_center_mix_level >= 0)) { + opt->extended_bsi_1 = 1; + opt->eac3_mixing_metadata = 1; + } + if (s->has_surround && + (opt->ltrt_surround_mix_level >= 0 || opt->loro_surround_mix_level >= 0)) { + opt->extended_bsi_1 = 1; + opt->eac3_mixing_metadata = 1; + } + + if (s->eac3) { + /* determine info metadata use */ + if (avctx->audio_service_type != AV_AUDIO_SERVICE_TYPE_MAIN) + opt->eac3_info_metadata = 1; + if (opt->copyright != AC3ENC_OPT_NONE || opt->original != AC3ENC_OPT_NONE) + opt->eac3_info_metadata = 1; + if (s->channel_mode == AC3_CHMODE_STEREO && + (opt->dolby_headphone_mode != AC3ENC_OPT_NONE || opt->dolby_surround_mode != AC3ENC_OPT_NONE)) + opt->eac3_info_metadata = 1; + if (s->channel_mode >= AC3_CHMODE_2F2R && opt->dolby_surround_ex_mode != AC3ENC_OPT_NONE) + opt->eac3_info_metadata = 1; + if (opt->mixing_level != AC3ENC_OPT_NONE || opt->room_type != AC3ENC_OPT_NONE || + opt->ad_converter_type != AC3ENC_OPT_NONE) { + opt->audio_production_info = 1; + opt->eac3_info_metadata = 1; + } + } else { + /* determine audio production info use */ + if (opt->mixing_level != AC3ENC_OPT_NONE || opt->room_type != AC3ENC_OPT_NONE) + opt->audio_production_info = 1; + + /* determine xbsi2 use */ + if (s->channel_mode >= AC3_CHMODE_2F2R && opt->dolby_surround_ex_mode != AC3ENC_OPT_NONE) + opt->extended_bsi_2 = 1; + if (s->channel_mode == AC3_CHMODE_STEREO && opt->dolby_headphone_mode != AC3ENC_OPT_NONE) + opt->extended_bsi_2 = 1; + if (opt->ad_converter_type != AC3ENC_OPT_NONE) + opt->extended_bsi_2 = 1; + } + + /* validate AC-3 mixing levels */ + if (!s->eac3) { + if (s->has_center) { + validate_mix_level(avctx, "center_mix_level", &opt->center_mix_level, + cmixlev_options, CMIXLEV_NUM_OPTIONS, 1, 0, + &s->center_mix_level); + } + if (s->has_surround) { + validate_mix_level(avctx, "surround_mix_level", &opt->surround_mix_level, + surmixlev_options, SURMIXLEV_NUM_OPTIONS, 1, 0, + &s->surround_mix_level); + } + } + + /* validate extended bsi 1 / mixing metadata */ + if (opt->extended_bsi_1 || opt->eac3_mixing_metadata) { + /* default preferred stereo downmix */ + if (opt->preferred_stereo_downmix == AC3ENC_OPT_NONE) + opt->preferred_stereo_downmix = AC3ENC_OPT_NOT_INDICATED; + if (!s->eac3 || s->has_center) { + /* validate Lt/Rt center mix level */ + validate_mix_level(avctx, "ltrt_center_mix_level", + &opt->ltrt_center_mix_level, extmixlev_options, + EXTMIXLEV_NUM_OPTIONS, 5, 0, + &s->ltrt_center_mix_level); + /* validate Lo/Ro center mix level */ + validate_mix_level(avctx, "loro_center_mix_level", + &opt->loro_center_mix_level, extmixlev_options, + EXTMIXLEV_NUM_OPTIONS, 5, 0, + &s->loro_center_mix_level); + } + if (!s->eac3 || s->has_surround) { + /* validate Lt/Rt surround mix level */ + validate_mix_level(avctx, "ltrt_surround_mix_level", + &opt->ltrt_surround_mix_level, extmixlev_options, + EXTMIXLEV_NUM_OPTIONS, 6, 3, + &s->ltrt_surround_mix_level); + /* validate Lo/Ro surround mix level */ + validate_mix_level(avctx, "loro_surround_mix_level", + &opt->loro_surround_mix_level, extmixlev_options, + EXTMIXLEV_NUM_OPTIONS, 6, 3, + &s->loro_surround_mix_level); + } + } + + /* validate audio service type / channels combination */ + if ((avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_KARAOKE && + avctx->ch_layout.nb_channels == 1) || + ((avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_COMMENTARY || + avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_EMERGENCY || + avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_VOICE_OVER) + && avctx->ch_layout.nb_channels > 1)) { + av_log(avctx, AV_LOG_ERROR, "invalid audio service type for the " + "specified number of channels\n"); + return AVERROR(EINVAL); + } + + /* validate extended bsi 2 / info metadata */ + if (opt->extended_bsi_2 || opt->eac3_info_metadata) { + /* default dolby headphone mode */ + if (opt->dolby_headphone_mode == AC3ENC_OPT_NONE) + opt->dolby_headphone_mode = AC3ENC_OPT_NOT_INDICATED; + /* default dolby surround ex mode */ + if (opt->dolby_surround_ex_mode == AC3ENC_OPT_NONE) + opt->dolby_surround_ex_mode = AC3ENC_OPT_NOT_INDICATED; + /* default A/D converter type */ + if (opt->ad_converter_type == AC3ENC_OPT_NONE) + opt->ad_converter_type = AC3ENC_OPT_ADCONV_STANDARD; + } + + /* copyright & original defaults */ + if (!s->eac3 || opt->eac3_info_metadata) { + /* default copyright */ + if (opt->copyright == AC3ENC_OPT_NONE) + opt->copyright = AC3ENC_OPT_OFF; + /* default original */ + if (opt->original == AC3ENC_OPT_NONE) + opt->original = AC3ENC_OPT_ON; + } + + /* dolby surround mode default */ + if (!s->eac3 || opt->eac3_info_metadata) { + if (opt->dolby_surround_mode == AC3ENC_OPT_NONE) + opt->dolby_surround_mode = AC3ENC_OPT_NOT_INDICATED; + } + + /* validate audio production info */ + if (opt->audio_production_info) { + if (opt->mixing_level == AC3ENC_OPT_NONE) { + av_log(avctx, AV_LOG_ERROR, "mixing_level must be set if " + "room_type is set\n"); + return AVERROR(EINVAL); + } + if (opt->mixing_level < 80) { + av_log(avctx, AV_LOG_ERROR, "invalid mixing level. must be between " + "80dB and 111dB\n"); + return AVERROR(EINVAL); + } + /* default room type */ + if (opt->room_type == AC3ENC_OPT_NONE) + opt->room_type = AC3ENC_OPT_NOT_INDICATED; + } + + /* set bitstream id for alternate bitstream syntax */ + if (!s->eac3 && (opt->extended_bsi_1 || opt->extended_bsi_2)) + s->bitstream_id = 6; + + return 0; +} + /** * Adjust the frame size to make the average bit rate match the target bit rate. * This is only needed for 11025, 22050, and 44100 sample rates or any E-AC-3. @@ -1930,217 +2139,6 @@ static void dprint_options(AC3EncodeContext *s) #endif } - -#define FLT_OPTION_THRESHOLD 0.01 - -static int validate_float_option(float v, const float *v_list, int v_list_size) -{ - int i; - - for (i = 0; i < v_list_size; i++) { - if (v < (v_list[i] + FLT_OPTION_THRESHOLD) && - v > (v_list[i] - FLT_OPTION_THRESHOLD)) - break; - } - if (i == v_list_size) - return AVERROR(EINVAL); - - return i; -} - - -static void validate_mix_level(void *log_ctx, const char *opt_name, - float *opt_param, const float *list, - int list_size, int default_value, int min_value, - int *ctx_param) -{ - int mixlev = validate_float_option(*opt_param, list, list_size); - if (mixlev < min_value) { - mixlev = default_value; - if (*opt_param >= 0.0) { - av_log(log_ctx, AV_LOG_WARNING, "requested %s is not valid. using " - "default value: %0.3f\n", opt_name, list[mixlev]); - } - } - *opt_param = list[mixlev]; - *ctx_param = mixlev; -} - - -/** - * Validate metadata options as set by AVOption system. - * These values can optionally be changed per-frame. - * - * @param s AC-3 encoder private context - */ -int ff_ac3_validate_metadata(AC3EncodeContext *s) -{ - AVCodecContext *avctx = s->avctx; - AC3EncOptions *opt = &s->options; - - opt->audio_production_info = 0; - opt->extended_bsi_1 = 0; - opt->extended_bsi_2 = 0; - opt->eac3_mixing_metadata = 0; - opt->eac3_info_metadata = 0; - - /* determine mixing metadata / xbsi1 use */ - if (s->channel_mode > AC3_CHMODE_STEREO && opt->preferred_stereo_downmix != AC3ENC_OPT_NONE) { - opt->extended_bsi_1 = 1; - opt->eac3_mixing_metadata = 1; - } - if (s->has_center && - (opt->ltrt_center_mix_level >= 0 || opt->loro_center_mix_level >= 0)) { - opt->extended_bsi_1 = 1; - opt->eac3_mixing_metadata = 1; - } - if (s->has_surround && - (opt->ltrt_surround_mix_level >= 0 || opt->loro_surround_mix_level >= 0)) { - opt->extended_bsi_1 = 1; - opt->eac3_mixing_metadata = 1; - } - - if (s->eac3) { - /* determine info metadata use */ - if (avctx->audio_service_type != AV_AUDIO_SERVICE_TYPE_MAIN) - opt->eac3_info_metadata = 1; - if (opt->copyright != AC3ENC_OPT_NONE || opt->original != AC3ENC_OPT_NONE) - opt->eac3_info_metadata = 1; - if (s->channel_mode == AC3_CHMODE_STEREO && - (opt->dolby_headphone_mode != AC3ENC_OPT_NONE || opt->dolby_surround_mode != AC3ENC_OPT_NONE)) - opt->eac3_info_metadata = 1; - if (s->channel_mode >= AC3_CHMODE_2F2R && opt->dolby_surround_ex_mode != AC3ENC_OPT_NONE) - opt->eac3_info_metadata = 1; - if (opt->mixing_level != AC3ENC_OPT_NONE || opt->room_type != AC3ENC_OPT_NONE || - opt->ad_converter_type != AC3ENC_OPT_NONE) { - opt->audio_production_info = 1; - opt->eac3_info_metadata = 1; - } - } else { - /* determine audio production info use */ - if (opt->mixing_level != AC3ENC_OPT_NONE || opt->room_type != AC3ENC_OPT_NONE) - opt->audio_production_info = 1; - - /* determine xbsi2 use */ - if (s->channel_mode >= AC3_CHMODE_2F2R && opt->dolby_surround_ex_mode != AC3ENC_OPT_NONE) - opt->extended_bsi_2 = 1; - if (s->channel_mode == AC3_CHMODE_STEREO && opt->dolby_headphone_mode != AC3ENC_OPT_NONE) - opt->extended_bsi_2 = 1; - if (opt->ad_converter_type != AC3ENC_OPT_NONE) - opt->extended_bsi_2 = 1; - } - - /* validate AC-3 mixing levels */ - if (!s->eac3) { - if (s->has_center) { - validate_mix_level(avctx, "center_mix_level", &opt->center_mix_level, - cmixlev_options, CMIXLEV_NUM_OPTIONS, 1, 0, - &s->center_mix_level); - } - if (s->has_surround) { - validate_mix_level(avctx, "surround_mix_level", &opt->surround_mix_level, - surmixlev_options, SURMIXLEV_NUM_OPTIONS, 1, 0, - &s->surround_mix_level); - } - } - - /* validate extended bsi 1 / mixing metadata */ - if (opt->extended_bsi_1 || opt->eac3_mixing_metadata) { - /* default preferred stereo downmix */ - if (opt->preferred_stereo_downmix == AC3ENC_OPT_NONE) - opt->preferred_stereo_downmix = AC3ENC_OPT_NOT_INDICATED; - if (!s->eac3 || s->has_center) { - /* validate Lt/Rt center mix level */ - validate_mix_level(avctx, "ltrt_center_mix_level", - &opt->ltrt_center_mix_level, extmixlev_options, - EXTMIXLEV_NUM_OPTIONS, 5, 0, - &s->ltrt_center_mix_level); - /* validate Lo/Ro center mix level */ - validate_mix_level(avctx, "loro_center_mix_level", - &opt->loro_center_mix_level, extmixlev_options, - EXTMIXLEV_NUM_OPTIONS, 5, 0, - &s->loro_center_mix_level); - } - if (!s->eac3 || s->has_surround) { - /* validate Lt/Rt surround mix level */ - validate_mix_level(avctx, "ltrt_surround_mix_level", - &opt->ltrt_surround_mix_level, extmixlev_options, - EXTMIXLEV_NUM_OPTIONS, 6, 3, - &s->ltrt_surround_mix_level); - /* validate Lo/Ro surround mix level */ - validate_mix_level(avctx, "loro_surround_mix_level", - &opt->loro_surround_mix_level, extmixlev_options, - EXTMIXLEV_NUM_OPTIONS, 6, 3, - &s->loro_surround_mix_level); - } - } - - /* validate audio service type / channels combination */ - if ((avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_KARAOKE && - avctx->ch_layout.nb_channels == 1) || - ((avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_COMMENTARY || - avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_EMERGENCY || - avctx->audio_service_type == AV_AUDIO_SERVICE_TYPE_VOICE_OVER) - && avctx->ch_layout.nb_channels > 1)) { - av_log(avctx, AV_LOG_ERROR, "invalid audio service type for the " - "specified number of channels\n"); - return AVERROR(EINVAL); - } - - /* validate extended bsi 2 / info metadata */ - if (opt->extended_bsi_2 || opt->eac3_info_metadata) { - /* default dolby headphone mode */ - if (opt->dolby_headphone_mode == AC3ENC_OPT_NONE) - opt->dolby_headphone_mode = AC3ENC_OPT_NOT_INDICATED; - /* default dolby surround ex mode */ - if (opt->dolby_surround_ex_mode == AC3ENC_OPT_NONE) - opt->dolby_surround_ex_mode = AC3ENC_OPT_NOT_INDICATED; - /* default A/D converter type */ - if (opt->ad_converter_type == AC3ENC_OPT_NONE) - opt->ad_converter_type = AC3ENC_OPT_ADCONV_STANDARD; - } - - /* copyright & original defaults */ - if (!s->eac3 || opt->eac3_info_metadata) { - /* default copyright */ - if (opt->copyright == AC3ENC_OPT_NONE) - opt->copyright = AC3ENC_OPT_OFF; - /* default original */ - if (opt->original == AC3ENC_OPT_NONE) - opt->original = AC3ENC_OPT_ON; - } - - /* dolby surround mode default */ - if (!s->eac3 || opt->eac3_info_metadata) { - if (opt->dolby_surround_mode == AC3ENC_OPT_NONE) - opt->dolby_surround_mode = AC3ENC_OPT_NOT_INDICATED; - } - - /* validate audio production info */ - if (opt->audio_production_info) { - if (opt->mixing_level == AC3ENC_OPT_NONE) { - av_log(avctx, AV_LOG_ERROR, "mixing_level must be set if " - "room_type is set\n"); - return AVERROR(EINVAL); - } - if (opt->mixing_level < 80) { - av_log(avctx, AV_LOG_ERROR, "invalid mixing level. must be between " - "80dB and 111dB\n"); - return AVERROR(EINVAL); - } - /* default room type */ - if (opt->room_type == AC3ENC_OPT_NONE) - opt->room_type = AC3ENC_OPT_NOT_INDICATED; - } - - /* set bitstream id for alternate bitstream syntax */ - if (!s->eac3 && (opt->extended_bsi_1 || opt->extended_bsi_2)) - s->bitstream_id = 6; - - return 0; -} - - /** * Finalize encoding and free any memory allocated by the encoder. * From patchwork Sun Apr 7 21:09:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47900 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147109pzd; Sun, 7 Apr 2024 14:10:32 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXQ2lvz31yht+UCJ6IbVIG3AI7aKqyXGOwfeRcIH7DewKicOd9lD9t9F/KO2C98JDpw3OVYHZ1wFJUwsUY28HLVtW/PiHlfSTBn3Q== X-Google-Smtp-Source: AGHT+IGmxSMFP0Afdg7xHPU5IdBsVLMvYDiqaSFvc2vdIxwnXlglARHkjkpvKsdEd5ksLGhTTk7a X-Received: by 2002:a50:c05e:0:b0:56e:5b2:2d2a with SMTP id u30-20020a50c05e000000b0056e05b22d2amr6327579edd.3.1712524232181; Sun, 07 Apr 2024 14:10:32 -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 d17-20020a50f691000000b00568bc639c51si3143457edn.1.2024.04.07.14.10.31; Sun, 07 Apr 2024 14:10:32 -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=J7CElsJv; 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 122B768D18D; Mon, 8 Apr 2024 00:09:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7DF868D1D2 for ; Mon, 8 Apr 2024 00:09:49 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iDOYbw5ku4NTHvzecM7ZRRWyt1Pzzjj4GpQP6OqSlWTbQ9bsAbOkuPHSkMOSRPJk1XW3JS89VIMmovnc8OW1PQdOZNXvFfH3zQU8IVlKCN+gVaL4Stv3eWEY68uatO/1IY5DJ/mBB5vLNgxI9Qd4sKdS/+S86EZAQbHYBNWjj8s2OP/GLMIEJJj8BGYw6fXu4JqfZYPeV9BI4V2UgAT/9UcF+PKSTeJlszDMdQJjpDe/MBQjOeO1Cb+8UIibxsVPgaiIDB9NJ+sVf0qhv1W7v4TG5azCd3J8jLP/Z61UmO4GxPYZqaO3n+T+Dr5CfruNI1TMCY3+uyQMCnO3K8o/UQ== 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=R1Sjj2n3ibAajZI++huhzjdwvkYyQX+ZX4UVn5LsEQ8=; b=E/kNpI/+oD0Z2BThbfqxKOYt+UJv2n4RKsgk/czsOtzc+qwxL0I8zYR9OctrYAmLP1A9RWWpV7xAVpkB9/9sU2ap97ZVNpww6H6g1Kpm5+16sWQaAEuztuTMWNDMles9axGoI7RluojQyV9SElpxnMYXj539AhVaIDWpO6NReCwENsr959DdiSXqB+8z7Kd0neayuDarOtvjE7Exgb6u2lRFCETkYwxokicF25lAy6nVk4yuEDXsThfFz6yveJdKi4hYnx19TXBXSQKAfEJ8h73dBsHsZ/9ym/ksmK61AlEIV/Ybb0vkq6V1tWWHi5KGP4Aa8AeWSq/e8FpFhoPquQ== 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=R1Sjj2n3ibAajZI++huhzjdwvkYyQX+ZX4UVn5LsEQ8=; b=J7CElsJv8XEeA2xc3l5W9eLHukiDzybu1dsyrRJpwauGXVAc6gNO6Dsdl7ULzsdL5pBUaSxcsorSlV6IZB3fuq9ZPhTq/paSXXKMQ+wjw2OBKifdbzijf3xUT+giD0Eb8jgCRS30WhbKERyVVO+Xe7PtceXKFFJy6Dwa3QNqH5zq/I6gNZVPOGBN+3PWauQFxEvaYYM6ft4YP+rbYrIBIyH56WH956C4IuWtVMs8O8npx7NPWxEHWNTTB0F8Cn5I2kpA47tCZTh75arvEuxtDA5b9mT9e90XtwGaQn9K9xLgA7SI7rTrwp4bbFqtc0P9Y258FKu7dvPMMKWqYagZWA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:40 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:40 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:08 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [AbX5fBCPX2lfJA14aGix+dbSc5ZFv0pqtocUdKcwxnM=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-9-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: dccfed32-b82a-4296-d9c9-08dc574709d1 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhHlEvF8L3gR4A8HukG/i0GNN8xlztWsBlcN06n40p9meoLyQJMd1zWlaKobekQGieJ8aNNNVo17QVfTRG+0LEaQZmThfKlRkU6DdMvC6cKlaH8Hk9ORbjumE28FEQzeDYhRjW6KYYJ7t2C0ttfAw9rVtbDF25bWXn5NcFjLo4M+etnQrKTHghKXXpcD31hbGm5WCellf0GSsgrxgdZ1VLbDHgH2+ExgRTO/RTPtdAUWpPWNyj9lTfgr+84y+iYJl4e7xCtiPh8VmZ+Fe1TBZ9GbqgWhXZTRjp6THM56itUR4Bpi9hXCO1HsB3zeD9zHFEVCylTsm5oFK9h19OxU6pFd45TJuPkTxfoLH1fcY/FQVbO9XHM+KL2TRedAthSSEKgk/g9em05Q4xKc8SAWAooHMYOYRqGAm11/Io8Y2XiDrtvx/kRmdaD/CkN3BOVD1mJT+KmMH9xRhOYvcyZyUqAgA5zkLpt8ovBl14b2S783VOqbv5RItf9qcQdrQeslLhDpeO0wApExGlDRrlqpbDCPrYi30Cdi25J1I9j8gZzJDSA4HSUUXlGes7k/pFGsdLr2EyfPzy1UOX/SGzU9Ab6dVBRweJaWzKIGEr5buldpIW59dwA+zbRgwT0xIosXzZT1DU07zHL/WyNWk/LDFAohz8pNUZHYohY+4WsZEYonuURSXlwMpUCMFGKH4ZdQ3ozs43qahU53pxg/qytKL6oxMapKrtr8mEfftDZXWaiBU= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EpjTbvCZyFLVRFbnmiV0VbxHxLdvwAUoNeTDCJLKSdNJQvxj70BT/0gi6yd4JKJPj7AK5yvofCNplN3i0KkQZJJ8J3NAq0TFxEom15k4ORZkw/Zv0SBmdlsO/IzdRPwoX+jkMbTiXlTS+DNRYyyk5V3JlHReb18C10AZJQS+MXVexktG97CSMeEv0V9ahiCmMNjoHP4Oqu/QnVj0NHuooaCDW3kJIMr9STm0jTGxDXt6pYFhMzN2aTegBNwuu9285GyghUXajjeeAeWEOec3+P4tyPPYyUesAWBPBS208ppiM4Q+AOHm0BZhCzk4fLR+pvDEyj1bLph8nNsTLSlLVUO7uBbpBoWhC8/StBTehp2R7f2AiLHpn2dWenmU32o7fJ5lwQcey2VpiBguPjmmVXVBpOilgEPSLZLEAcjRds1ctrdv8pJeyOuwlbHBvwVO2+dSrlT67LYk/40PtdRiwfA3G99O1gCm9mag5BWPmRWp+u1G4Z9GAwZowMnutYRkK0Zd4XfI+8AHj8CXlaESZ3HG5zS8XEfUY64aAxG14qGi/ktxEdpjKb5+ceV4yjTWmprQFB7JhqcoUFWGLfsJoZPyPneYUB7h5/Cl4Fhpi6gX/EDbH8eVtcV6+49ojDvO X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: OBJ70V+BdGXw9kgYNv8PWqTeNU9wZfIwFNFXQll35vIGM2TV61ceDW4CiwdJaq2wcL0oOspPJsihEapmgDiLFK3oHqSxbF4BTzuEIiryWD7BXJQYnnRCcuFfI9NczfuTOWWllV+V0hWA6HzQcyNqlMwnvwY5E7k4j8M8pCGdbda6+lBI+tDfErQC9I0AzxzBhngvxRmBo69WpQyjY/BZp2GgXhMZdwJ9PHR4HywnVgsq41s7xapIt0nRvICwOJvrfeaBEUwLBUA5rxyAns+xW53VvVmdvw5oEvNhsVJAqAXusLhnE9j1prTBv11BZYqagbxosq0yAsn527b/j4EXNNI3T68+nouep+7YLoWFjroIr7czAt4OvFNg2ogxVD0qM90pPHFOO7ENeXlq0g/pC3AK8RBY829xhJW871iLbM2KhQUsqWz+jqSe1KFWbXne0frefsSs/rUXO3ka8xuXjBY9oUMdU6JnqjSo3jpslBwOV4ashSPFZqJ7Y8lQzcgKm7HHNLA+3fjiB5ObLRHP2ymIpEhBhmII4J6/xEZX18QkL+svc1baEASF+jXI8WWWpCs3n7cb1wqFhOvbeoQR4FVRHqJIPfC9tlUe5MZZSPV6r0suHccdAkRj+RSeGUTCtodgPk0Qs4JCNXQMpKckP5QJcclIkfu2jM9Xf/qHVzyATioGDizBpvnTCwSqIS/gm6gP/JZFeh6AHN8jcs8UYBBf5pCsZAVVbI0ZILoVj6zKHl02cpl0UhpmnOGbfCY2n1MGSuxpahaaT/TEz1YooRApuPGm7mKWJZXy3uBSa2d94qA3gSK04TpdW7i7sNxP+coGQoa38XVvlkP+Csc73xZLhNKluEi7b/0Y7F/Xz71zbn3EZcJF49FRziJHAfoJ+PD0LDNJDF5eZ7YqMGkaG6e7inmWqZHSS49tLx4MJrq1aWn43xzUe8WrvVrTdKYfGq278IuU5VZuGeRAqjOrceWWJ9e6aDVN6a28YTzcZ2WlJLeVy8+W4WzDwrhDNdJBGn8sI63uf0KqB2loexhtgUEGx7HmrJGXxN64lQuOhkSCzySNJQA+M1dwSX4RlegqRCp/Rvhy8m9zs7EoBHXBQoDFK2dB/YJpuVBhcPZGeZQB5UztNBCiLt8PFPvHvjs0gV/vbmvU4wfL7/Nkk13RWF+8xmE57V+jGVTer8WUe5TEeOnE4LXmdaUoypXYrMCsRlronmQtOpEsvl9/nxfVaQEb7IGcFydHqUNL6Cmw0univVjbuly7GVaysLHQ/Vvqk1cTZZ5hT2/jePEVilN0RA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dccfed32-b82a-4296-d9c9-08dc574709d1 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:40.0646 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 10/17] avcodec/ac3enc: Share more code between fixed/float encoders 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: R7QcijVs3vMM Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 19 +++++++++++++------ libavcodec/ac3enc.h | 5 +---- libavcodec/ac3enc_template.c | 15 +-------------- 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 1f05436720..ef1ac381c1 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -315,7 +315,7 @@ static void validate_mix_level(void *log_ctx, const char *opt_name, * * @param s AC-3 encoder private context */ -int ff_ac3_validate_metadata(AC3EncodeContext *s) +static int ac3_validate_metadata(AC3EncodeContext *s) { AVCodecContext *avctx = s->avctx; AC3EncOptions *opt = &s->options; @@ -488,7 +488,7 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s) * * @param s AC-3 encoder private context */ -void ff_ac3_adjust_frame_size(AC3EncodeContext *s) +static void ac3_adjust_frame_size(AC3EncodeContext *s) { while (s->bits_written >= s->bit_rate && s->samples_written >= s->sample_rate) { s->bits_written -= s->bit_rate; @@ -1984,9 +1984,16 @@ int ff_ac3_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, AC3EncodeContext *const s = avctx->priv_data; int ret; - ret = s->encode_frame(s, frame); - if (ret < 0) - return ret; + if (s->options.allow_per_frame_metadata) { + ret = ac3_validate_metadata(s); + if (ret) + return ret; + } + + if (s->bit_alloc.sr_code == 1 || s->eac3) + ac3_adjust_frame_size(s); + + s->encode_frame(s, frame); ac3_apply_rematrixing(s); @@ -2327,7 +2334,7 @@ static av_cold int validate_options(AC3EncodeContext *s) if (s->cutoff > (s->sample_rate >> 1)) s->cutoff = s->sample_rate >> 1; - ret = ff_ac3_validate_metadata(s); + ret = ac3_validate_metadata(s); if (ret) return ret; diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 1a51423ac1..3dc8acfd91 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -255,7 +255,7 @@ typedef struct AC3EncodeContext { int ref_bap_set; ///< indicates if ref_bap pointers have been set /** fixed vs. float function pointers */ - int (*encode_frame)(struct AC3EncodeContext *s, const AVFrame *frame); + void (*encode_frame)(struct AC3EncodeContext *s, const AVFrame *frame); /* fixed vs. float function pointers */ int (*mdct_init)(struct AC3EncodeContext *s); @@ -277,9 +277,6 @@ int ff_ac3_float_encode_init(AVCodecContext *avctx); int ff_ac3_encode_close(AVCodecContext *avctx); -int ff_ac3_validate_metadata(AC3EncodeContext *s); - -void ff_ac3_adjust_frame_size(AC3EncodeContext *s); void ff_ac3_compute_coupling_strategy(AC3EncodeContext *s); diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c index 2e0fb9e85a..56ce36c012 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -371,19 +371,8 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s) } -static int encode_frame(AC3EncodeContext *s, const AVFrame *frame) +static void encode_frame(AC3EncodeContext *s, const AVFrame *frame) { - int ret; - - if (s->options.allow_per_frame_metadata) { - ret = ff_ac3_validate_metadata(s); - if (ret) - return ret; - } - - if (s->bit_alloc.sr_code == 1 || (AC3ENC_FLOAT && s->eac3)) - ff_ac3_adjust_frame_size(s); - copy_input_samples(s, (SampleType **)frame->extended_data); apply_mdct(s); @@ -399,6 +388,4 @@ static int encode_frame(AC3EncodeContext *s, const AVFrame *frame) #if AC3ENC_FLOAT scale_coefficients(s); #endif - - return 0; } From patchwork Sun Apr 7 21:09:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47901 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147147pzd; Sun, 7 Apr 2024 14:10:40 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXU8OJLAPWnCh9OjQB/QSwUo/vb5ngffkCpgQQv8WDPSpvyEW4fw8RzYTL3lJGGL4o96/DngA3BPOkfWlv8ooN38SVGF60cxiVk0w== X-Google-Smtp-Source: AGHT+IGsPGnKHEjGZmV5uCTBv1h9IPLo1WCeIOIU7UoZpNi2LN7J9eURxy5wy80G4ZmcHkGFuMXe X-Received: by 2002:a50:bb05:0:b0:56e:2393:cee4 with SMTP id y5-20020a50bb05000000b0056e2393cee4mr4094167ede.9.1712524240490; Sun, 07 Apr 2024 14:10:40 -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 d38-20020a056402402600b0056e5c50cff0si399348eda.549.2024.04.07.14.10.40; Sun, 07 Apr 2024 14:10:40 -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=DVY2eNGW; 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 36B1468D260; Mon, 8 Apr 2024 00:09:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3B4DB68D1FA for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nxsmVUHUXEpXl0oXpI0QArfKezzWCsEBqkFZEpUJdt2gXvvZ4tjda+9PrdcWjkGIuWX61X1EDzRXuNcpNNn5omMxHitJYCosbsrFOalO8YmJbLpFahsh/hoe56rK64zGFaM0fZWbkvvZIePb9+Zrl1SUnH80C6GYaasb/xI7IgP0UW/fykwpU3JgwnCzO5G8D6UG4mrLCxYgPEvPrlOmqFbD/9ixAH+MxuYDzpynxZREZCNTZpfkVBLCKP4M0j/TX8NuZIV10c3mJ5jma4ly3wrxF7atTNEfgoL28yPa2qSwCdK/T75fih7TPk5SXkOJtJdPdRxjHebiDnR0MtwIgA== 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=HikW2ws8MYHTRM2dIl2BIxWK36NAFBv72oYhI+9hO5g=; b=kSdIZiSwJ1D6AlkgXuSt3TkKFUBalvDqzBQKEnuHnUlCutu4GYSexK271FwH0dv0waGkIMNioRb3gOH7o0mTpntQTRNFlFRhE+2AFOSsHChyL3VJrRSTIHA8T57ezFLKlxzV9Wp/2XScM8i+TDLIoNTuXLOb1yKmeANi0QDiajSJHNF0yCyQzEAz8yugeUDuV0V+KCv/xnzOFQrPdcfAcxR6D+aCBE6aZcMJuB7+eJJn5FY2vTy0E60QR8ngMv3I71z2o/5MUoRmHewqTnGL6l2QT3DKJjRq/M1rrBIY/o1K6ddCexa2H7I4MbDwnuAx0O4AoCMiX1NZyThUDmXAUw== 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=HikW2ws8MYHTRM2dIl2BIxWK36NAFBv72oYhI+9hO5g=; b=DVY2eNGWAH4y785C9xTYsy99pQnbdQtkDO5utEH5cGY+pWrONRgO4C53BFZuFMKNJxOzBG5JZTRoL+3RG9L95pcappzsJih482lJVHYoVPqmMGRL/Y8n9aEY0O2BHMq8iYj8/zQRic0Y1y84hRpKpb0u6AmjE3xj6oz4gynpaELQxGBUnuRlfdKaVhHRJ8Z0xUmQQTLDyrYtqpOUNOD+xBCiImKeH6WWgr+Gs8c6Cn7BXJ8c+qOxX/vyxloIcXhIWfUThFRJ8rmdq0na+x00TMSFUz+y/UBf5a7tZQowevl0eYXpAjyT+L4GKKtHQBKIyPc8V2B38hQpnkS8nbDhcQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:41 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:09 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [SLKbiZyLXG6GYN48B3d0F+KXSY6jfZeCF8mc/vzmu5I=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-10-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 8fe989c5-e9ab-4d90-71a1-08dc57470a64 X-MS-Exchange-SLBlob-MailProps: 9IecXKUgicDNEbE0encsoirT0ZUrgC9m/DQLIsMWdOZIbPvW0IBb8XzLj2O0S+D/PJgRooTYCtIJAmZYcB8Jc2M5/lTURX6dMjJIbUrBFGq2te0wpmY43Gz3Q1T6tIyyROC6EAl5V1LdeOkiPR7TVP9B3vQ9YFCh30J0URzuWDoZXS6Wq7x8lQH4lzihdrLSaUbenGK1NAH5XWrCok6qbTZ9Q9Dj4uqjsbB7Ncvddv9gFIZjGwSVr1QgBi4Ivu6tetb3KWmypvYr0hOt6jtHQJpYWBMFJ5S0fFkT+6iXkFg9HmsKR3lIAEEYu9k9yU0bk3/xn6vzpBVIY7i8K5L0ytSf8NKUmeOM59EzwmYPr28tD1bj/wCOZqLXNUqThBTzjMLd4LmK0CPlABk+/IRcKW9ZBQTQRSekTJB7eVuogZHc5FwBndhHgwemyo/F0NAy8vmn4lD9mG3dclObNHTrfkU9GgWFYrxHQEo0LTyFZXG5rArsmMjjsdPuUF9Rteq3LtsRncqEccs5HuNGjl1AXa3Oa/Io/RrEsWhqgt5LVsPfUAkaGhGZWTXahmMifERN4/7NSgha89NWZRSwhxwU7YfuJqBRDBPvSxlF1WuNWaWlG5pdtXhFY2nrsuGRJ9W4iZozOQR0+BPPxKX7LUA2ffSEZ/IrTOw1zX81dXCx3nfRJKCgoIuRSt6RfbKwQ4HpgsbmCKYHrPcSdxDda6DDv/Ga2YlbjzQhLIiJWCW/N0V5kkoyCYMFUw== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YFT45dDPJT59Ze1V5LIANq/6gxpL21/Df9LGbYZ2FDv+z3s7dubPlwuWVOyVXWyt946eJMSsSZDMIYG548V7EY5PEQfzeD4eEbSJanjdkUfIu+LUE+UZ3VF9lweo35QAyYvDZgFd5iQjRAZ9yrslb3S1x+ASLTBM+exSm8EvTwFnYLGu26Y7/NZiT9rDqCLGuzbB25M5ruq3mz7S1ZheuwMsFWkWZttVZXajKgKIkSszoCgy32gt9Tlwpq/HtuDMTqDGk/yKfmOJlsMsfCG13Z8Au2tN/7DV6uC+6RcHQliv3qlAdoxFnzdv3cOVf7ZQD3CP/MjPHtEnQGym9rdqmESwY5zjpAnF6eVvqWwmlPmuGxByh65biBwtPaH7ESBEoBHY8GkbcEvgwLJARHmaJ1pvEEBSbSyn5fy5ue2uTrs+AUEBWI/BgNMG4lEym6TDLLBapuaIt8RyN4f8mS2px3nx/UzmINhodslWrQNeAB3PlYagRh9+hqWYHXRBQqAp8oynDh2+t0heS9kyRKxqDcluMLk+Tf5pNrvxLqXs8FpUTMKTqMO+nz7P26w3b2rKdpPIr/b+he88tp1nKncXGHxpYZw9TiAoP+mwwEQGYRak/6gMPj0KbwqHCzMvi9Fh X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: R5a4Rp8GYSZw9S0TZAmuZC/cecC1AyouLrfTMzChkhvig602N1UhihYEwQocXFZi9AbqFn7oqAic6rxjmvM5OOw5h9rF/80tD2D3xa2L144YKbnCbXzs/dsKHneW+Qn/h7B1TvLzLY8A56sDA7tPF0t4bJJjJUcCpNcZg8dHwAt80sfh2d2uMlbSzCqnc5e8+n3RZ7RWae6DTF082HKzjL7nYzUAMl/JAIZyNYiJYyVWGTjoJ0Ri1+ICk0OOPNLX1p9QZ4zNSlNtkY4fKLCQXRwvba+OPHQ4dd9PV0mOJu1Htl8AgXCZ845Ztf4d+EkGOnqMCloZzMsAYtD6mWIUCddztFx50PaAgSvC08V6/sfMsps6m89vmuAuyhqf/JrRGY45nlcnRQWraQ7UERuVsmK55N9tUwgeYGCtmNtytvri9H19RL2ULgEIFqi2vp/yoelaZkitbu8e79LxHNem4Vjxt/obb4TEHc6b+/s+h6PVPh5bxQt7HPpTxH/OAiOo5fbzdSAkL1C271Rqud9N5/+ar8tmcWXyQRAwLnVPa3MgfW8yQBCBmURmrPJ0aaKWachczcXiCvNK6EFLXsWILTl0g9ksSlws+CfpvJPCxd4g67jOAtBZ2ccgtw1FNCyJeX7uJv+AfjDzvdyUJty6QYoBOISJpNtra0bpWd3v/rAyTLBBP2AcZsFh7h29XBWZxm4T4IFWFbfm50BCbxpq1VWJFeenr2sqt9Kkuvs0PF28oHwfflV7Y2JhMD6t0W/ZzEDuAFDYgLQEGTNO1J+qbt+cfnNmDZLPJi5wGwktK2N322E/ss1LplCZJVcZdrGOV/ntJsKvcXDmIwzmj30azBLRa06Crzw/6HJbF21Qdy2ZFmQUzxZSOnfyscbqAycdMuU+pY9bcytz/AR5pShjCycAZu+/s4Z62X2mM4izhibSIHpNPNmLLj1UGoKMPEkC5jhRM63i5DtFM/dOXlflmMtLpzb6pSvdIhta09mkz2HyGqtpuxqSyHaDV9uVroPsGvbn1y59t2j1RswNMRku2jiJldlJankNx60NS0I2ufmonk4BqCf2HMJmf14V+hue8l3+995HPviB+oJXNckLgXabWRoxHetXCWsw0tZosrkIqJI/b5lEOQ0GYAUPOXNwlMK18H3EY5nD2PTZEjkIcB3zeJMfMlHZ7bxK3D2IZQWsni/cN4ga5TQSy1feHphEf7i9eDPxtTtXd//tmdyZVHF5mzFcV9eq222iurR5z8tA1gEj9aI4cbDYvMAMvWyfTqCkbHoe9xCWV/Z9TpGhtw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8fe989c5-e9ab-4d90-71a1-08dc57470a64 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:41.0177 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 11/17] avcodec/ac3enc: Deduplicate allocating buffers 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: TLW+IyTGoZbp These allocations only depend upon sizeof(SampleType) (and this size is actually the same for both the fixed-point and the floating-point encoders for most (all supported?) systems). Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 16 +++++++++++++++- libavcodec/ac3enc.h | 7 ++----- libavcodec/ac3enc_fixed.c | 1 - libavcodec/ac3enc_float.c | 1 - libavcodec/ac3enc_template.c | 32 +++++++------------------------- 5 files changed, 24 insertions(+), 33 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index ef1ac381c1..681b227d3d 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -52,6 +52,9 @@ #include "ac3enc.h" #include "eac3enc.h" +#define SAMPLETYPE_SIZE(ctx) (sizeof(float) == sizeof(int32_t) ? sizeof(float) : \ + (ctx)->fixed_point ? sizeof(int32_t) : sizeof(float)) + typedef struct AC3Mant { int16_t *qmant1_ptr, *qmant2_ptr, *qmant4_ptr; ///< mantissa pointers for bap=1,2,4 int mant1_cnt, mant2_cnt, mant4_cnt; ///< mantissa counts for bap=1,2,4 @@ -2429,10 +2432,21 @@ static av_cold int allocate_buffers(AC3EncodeContext *s) int channels = s->channels + 1; /* includes coupling channel */ int channel_blocks = channels * s->num_blocks; int total_coefs = AC3_MAX_COEFS * channel_blocks; + const unsigned sampletype_size = SAMPLETYPE_SIZE(s); + + if (!(s->windowed_samples = av_malloc(sampletype_size * AC3_WINDOW_SIZE))) + return AVERROR(ENOMEM); - if (s->allocate_sample_buffers(s)) + if (!FF_ALLOCZ_TYPED_ARRAY(s->planar_samples, s->channels)) return AVERROR(ENOMEM); + for (int ch = 0; ch < s->channels; ch++) { + s->planar_samples[ch] = av_mallocz((AC3_FRAME_SIZE + AC3_BLOCK_SIZE) * + sampletype_size); + if (!s->planar_samples[ch]) + return AVERROR(ENOMEM); + } + if (!FF_ALLOC_TYPED_ARRAY(s->bap_buffer, total_coefs) || !FF_ALLOC_TYPED_ARRAY(s->bap1_buffer, total_coefs) || !FF_ALLOCZ_TYPED_ARRAY(s->mdct_coef_buffer, total_coefs) || diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 3dc8acfd91..8d6cb3b3de 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -232,8 +232,8 @@ typedef struct AC3EncodeContext { int frame_bits; ///< all frame bits except exponents and mantissas int exponent_bits; ///< number of bits used for exponents - SampleType *windowed_samples; - SampleType **planar_samples; + void *windowed_samples; + uint8_t **planar_samples; uint8_t *bap_buffer; uint8_t *bap1_buffer; CoefType *mdct_coef_buffer; @@ -260,9 +260,6 @@ typedef struct AC3EncodeContext { /* fixed vs. float function pointers */ int (*mdct_init)(struct AC3EncodeContext *s); - /* fixed vs. float templated function pointers */ - int (*allocate_sample_buffers)(struct AC3EncodeContext *s); - /* AC-3 vs. E-AC-3 function pointers */ void (*output_frame_header)(struct AC3EncodeContext *s); } AC3EncodeContext; diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index 4a24cce833..b8a4d88a42 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -104,7 +104,6 @@ static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx) s->fixed_point = 1; s->encode_frame = encode_frame; s->mdct_init = ac3_fixed_mdct_init; - s->allocate_sample_buffers = allocate_sample_buffers; return ff_ac3_encode_init(avctx); } diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index e0907fed05..77a7725f31 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -107,7 +107,6 @@ av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx) s->encode_frame = encode_frame; s->mdct_init = ac3_float_mdct_init; - s->allocate_sample_buffers = allocate_sample_buffers; s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); if (!s->fdsp) return AVERROR(ENOMEM); diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c index 56ce36c012..3646e1dcaa 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -31,8 +31,6 @@ #include #include "libavutil/attributes.h" -#include "libavutil/internal.h" -#include "libavutil/mem.h" #include "libavutil/mem_internal.h" #include "audiodsp.h" @@ -40,23 +38,6 @@ #include "eac3enc.h" -static int allocate_sample_buffers(AC3EncodeContext *s) -{ - int ch; - - if (!FF_ALLOC_TYPED_ARRAY(s->windowed_samples, AC3_WINDOW_SIZE) || - !FF_ALLOCZ_TYPED_ARRAY(s->planar_samples, s->channels)) - return AVERROR(ENOMEM); - - for (ch = 0; ch < s->channels; ch++) { - if (!(s->planar_samples[ch] = av_mallocz((AC3_FRAME_SIZE + AC3_BLOCK_SIZE) * - sizeof(**s->planar_samples)))) - return AVERROR(ENOMEM); - } - return 0; -} - - /* * Copy input samples. * Channels are reordered from FFmpeg's default order to AC-3 order. @@ -68,13 +49,14 @@ static void copy_input_samples(AC3EncodeContext *s, SampleType **samples) /* copy and remap input samples */ for (ch = 0; ch < s->channels; ch++) { /* copy last 256 samples of previous frame to the start of the current frame */ - memcpy(&s->planar_samples[ch][0], &s->planar_samples[ch][AC3_BLOCK_SIZE * s->num_blocks], - AC3_BLOCK_SIZE * sizeof(s->planar_samples[0][0])); + memcpy(&s->planar_samples[ch][0], + (SampleType*)s->planar_samples[ch] + AC3_BLOCK_SIZE * s->num_blocks, + AC3_BLOCK_SIZE * sizeof(SampleType)); /* copy new samples for current frame */ - memcpy(&s->planar_samples[ch][AC3_BLOCK_SIZE], + memcpy((SampleType*)s->planar_samples[ch] + AC3_BLOCK_SIZE, samples[s->channel_map[ch]], - AC3_BLOCK_SIZE * s->num_blocks * sizeof(s->planar_samples[0][0])); + AC3_BLOCK_SIZE * s->num_blocks * sizeof(SampleType)); } } @@ -91,11 +73,11 @@ static void apply_mdct(AC3EncodeContext *s) for (ch = 0; ch < s->channels; ch++) { for (blk = 0; blk < s->num_blocks; blk++) { AC3Block *block = &s->blocks[blk]; - const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE]; + const SampleType *input_samples = (SampleType*)s->planar_samples[ch] + blk * AC3_BLOCK_SIZE; s->fdsp->vector_fmul(s->windowed_samples, input_samples, s->mdct_window, AC3_BLOCK_SIZE); - s->fdsp->vector_fmul_reverse(s->windowed_samples + AC3_BLOCK_SIZE, + s->fdsp->vector_fmul_reverse((SampleType*)s->windowed_samples + AC3_BLOCK_SIZE, &input_samples[AC3_BLOCK_SIZE], s->mdct_window, AC3_BLOCK_SIZE); From patchwork Sun Apr 7 21:09:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47903 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147231pzd; Sun, 7 Apr 2024 14:10:56 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWG2HKjf+ynqiGpgDHcbZahq6VJXCWPMcrcxOlTrE+zeqrkC9Nu+iTGdrdWJ3N55s8zx2wqFJLLn5gIvpjbvcnGwJS6qmwvLYWfBw== X-Google-Smtp-Source: AGHT+IGk7ijM42MJq2VKHJdl7P97Al5ScT9qIe55JJN3CBUYCRI5J8b/xvrIm4+k3M5E5wExSSFV X-Received: by 2002:a17:907:7dab:b0:a51:92df:6a29 with SMTP id oz43-20020a1709077dab00b00a5192df6a29mr6219250ejc.1.1712524256287; Sun, 07 Apr 2024 14:10:56 -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 gn41-20020a1709070d2900b00a51d83c1af6si194018ejc.126.2024.04.07.14.10.55; Sun, 07 Apr 2024 14:10:56 -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="p9dxhqQ/"; 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 CFC0668D23E; Mon, 8 Apr 2024 00:09:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6682B68D20F for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=asxEI5ZRw8cwJ+kgkErZo3Eos3IRh/EIVsYzjEmJT0Q+28eaBOaB+j+94pv9pXWlDeZsgqM8k4AepTo0aKcni5m4yzIU29VVKL4t3ZWMVUCZIhHmM7zKi4ND9peFMK/2pWEi87L6jvkqKm41Cra87UtaIpUTnt5m5Mq7HK01ekXNq230uR4Lip1p5EeXPfgyhZy5IvmAoKz6YqAOdw5f5Y4zgdK1xZO+ryzLQyeGbnlvoreh9nd8MiVnkZwp5MzMkPx1IY4CklB3NPT1IMQEdvTKdCl/5VOiXzYdLjEGdC4gwnbeuRkm1soAUlqS8SbqKA6vlBzYK22WAOJFRlt89w== 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=FNPxaTwXtihT2uDNqAhKpO7xkelB4uLUqyLKBTvZgC0=; b=YLkwauaxucz2nAcYsLvNnTDRQOAUVlawU4SFv/6FelrX6Kga1bdoHmbq7NR9ajoQeLNIwGH3KV3Q036ZASlWSTXQqj2PEzZ9nU7hbOYXq8TZsK2V6wF7glbNYv+VdN/5EOa2dnJpswygi/HQQZd/Z5PQvBdQO7StlXepmD2tp2+LHZvvRQqG2VlMwrnUngS0K7Wr1BPo5WnVSc/hUVL/ZEBANagQE+f4UuzEsyuarYQ4+RNZLmxMVv0rbESyVvd8ZMOnJEsjD7iz0qW9cndlTtd067qEFWAGHXerJUTM9wdnI5TTdqgXVHPCrXpccN2/ySyKEnOdsWhnWVk02jM62Q== 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=FNPxaTwXtihT2uDNqAhKpO7xkelB4uLUqyLKBTvZgC0=; b=p9dxhqQ/VPAeuaU7rDg+TMDPvXelP0VTQxsdkzk3Hg5pbXfB25AOEwqInfR9NkSZBaF4nP86jalWkNH4bTdn+KdY5Lg+HzyD9SSVHBJYgBq4wdzrJRORMqL6rUbbd67lTA72Qt6fSK+DtwfywJeilf7n1Y//HR8LFp8VRPFCGyF0+1/8VRPEv31PRMeLhwyyPT1Fd+l/dKBsCtlYw/8QlnTuF4R4EdXhyR37m+3DknxNkRh3I7tZ8DuSOzaLyX56K7jYbQwKVCjjpI+293G0cGmkrpY+2vKTFVY7iiSjrFuO9uH8SxUn+5JekNXFWr7mAG85ZWfDF5xUT5mkBmYzZA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:41 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:10 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [ztGGLhVWvBabczOmFmbZxNiMK7QCHFtHt6h1AlqBlgE=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-11-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 4cf1efc4-8647-4e3f-2b86-08dc57470af3 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhd5zciuXZEen9o1o3fXLwnZBageyMAdX8gYyebmY2CLKzYdA7Y7zu9p5N82MsgxHtcr4r7th21btDZ2gQB3XGkXb8YgA7AFSBkFIoaV6FR9j0IYrOC8zkZFMq9NN0fDTPGnZqy88bWlR9au0pXe5Y9lGYzVPA5TyJ1Q2WdvVFFZ75xc7BTaVJEBhvWT2fs1qA6ysxrxnBMC8CskTK4Z3YIqYZXdVmqf22TE2pt4Pw2dtNDOIVvnRRbjRumJkPTnuzBJ1ycvcZJtVI0nEO1VZt/o+bcsUKb1RykVv+JZkNvfDwDExBNt4JHT+grCWR7oSnTKjFAoQ0GzLIfj4xbdc0IAD0Z0AP2wuPV+tmDn0fRPrEXE8UNOlfj/j105YsuZowWrKFFGdJqolwtD7wKkK0/OJazsHyQWUGk031z4eDA4VxNvXjZXB3osxBQuCg7i8IEr+GscIvHYes2Jhem3yvqBFeXqjfsEntfKx/7g7FH+N0c4FlQ3j5ihjknp/vbEaCxd81Riz60TnV8EH7k47gqqMFOAuxuFaWaGLgk6+dVG8fJkuLhrOSpwW8YjyNEsp98JYcBZAkPJ5KcLLHKPNbEg46rNZbF/zzHHk93sBSMbVG2EqsW1jcPNdIzUHQ6RSaxAccslUd/b2WHOBCqC/tRFkqh0Cwv1+mJ1N9SXhN6kcTN3qE5Ap6l08wcT4/rNaKVRJ4GasyZHvufdd+86XQcwoPGI/3SiRgLxwybkk/KHs= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vAB8F9N/T3GxpgNXQi8tnx3z9ecd2u1tp8HwITpfIYzqXmp2ucqbfBtQR3rQunrwGYOS9jltMQKHTPLvuCVld4YxdMHXAuOEswWSPxdKs93kW14grVLJZRBfHyUD8faSStnYCKwyKWjNJK4CYIeo5l89LCAUU76CPfttxkgJpu708dJRnmQEZ70bF7P+1sYiSHFl8Kg3e8pqSsBhE9G40VE5OUNz8ibh8B55YXIvGsixen8Byi1tcgfLuS8nWMZ2+A42NJww/C5Jj88xRcG3ynSV+V3mYwl5CrzGWpRd7vn4kwlkzWL5XtPPocF0hSQb9s6EvA86FlY9iepRw8dbKZVelzi6Tj7pDK935h4MGTyXL/3v0Ti9k+XJdUG3DGkqhGakhy6mJJuvH3YVA1xGLkdrucFSRIj1PyEoOK5f/sDSKe1spICzF0dUrhofHNBTQgJNBC4Yi7Ca6L0PbJVNvrbh/g6nDtwabCpuO8zIXIZB3+Rx1dtcVxj5d3KLgm1vsaoQhPrDhPuYZAvkl9srvmB7ATtRxMd3Ggk1vm/UPbt83hUtYgZT+KIijpAETEU/FR8P0o/ru/Em9/LsTkrdkkX/CKPdpysMURI0Llha81qBt0t8XQeq1fhBMzWVS8tD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Vujb3ifAyp9EqcxoipL0OyPqnJ7KRFCU8SV2+iLTBmREVAWBWARPIycb6/obh2DVpJIkT2M0kjEyxrVMeYKElTWFKRwImuGI99G7pM/hUMlYtN8qASb3Sogm0R0MYbuXgWwpwi5n9Sshn2FG6EkWlv21XDbwEb4SSb0uTHOyyZ9YHn3et4UAlGbYHe0Dl8/Y1oCuBb96l9Q/6awDikl+VgpC5Hlqk+I3Xp/OZRkYcCVhp4Ip2iViJsykiidd22PtTBl/8+6a37oy1nDzQ6o4Flv2Xajetv+13DzNFwZcaTUjm7KLYtPlQggxBA9nE6KKuYIWeyx6FLWCSMoi0hzWAxlzcHuE/fl7ya/aVO2G1K3SuI+u+i+4mplK+R9rimsbqhZH3ivF9DcVkXQxQ9mvm9XofLWjoAmscycz/IFwKBQtwMHfAfoL0hCZWp4qVtn4LPX/rDw8gYhqvFl6GHayQzJ5FAXk0jstaAreOiHbfC2WZZI54enR8RbpphoZCS4yx9ZRAKhMfqckanRiPyiJi3V1IhVZPyGLGsngDqEmWGxhL7uXeZxgMPCFtSclza0lDxg6YCQnv3ibCaMZl3nngZsXk+n7bnKa6TyvktDDZzBj5MF5gDIDR5wimRRhkONaDMIdBDqm9eyMRlF5RcMfqRLdrBzdee541Ew21TOMw7DJxmoyfiW8WMOG2ZTOjWwjmkECPYqFLAIFwDOl2UemHuty3uyB+PVI4yTVe/yGP+vV5BqycPOR+aE2vkQjOwFLXPTkxi1DijvnMcnQ08rXAvzGUfSp2v11vUWvF5+j0+HmIVRn4Qz5PsMAwmI+YpWz41YsCfk6aqiSeryR4OQD3ZG5PiooXMOVlGOx23Bqzt1I/gS1Yl3elhBND132+gCm4aeg1wYHE/bHUp1feTu8ZwipBU5h8dr4NDsys2CcbDd0KAP/dBwXCaodOKnZr/VbBkRaGqr5LuhJeDErwqx3n3IKTKjKVtvxk9cYt5ImZHidX2rOlYLIDOfyk0HouXLbUfLwaBSW9WAU+PkaqcExgMydr7B7+a6nDjaatfibSffRpUygefT+z8aD5ZYuD0P9GQbL2B2nE2Z8weDYsF0BZ1fpeEE2fTl9/iR34llGGYNv0itzdym9bnJuQXiBB/F2p7AabAfm074/8HzDZfdLi0Ixsdm+S2U5TamQD3QnETE0l05eS2eHdlCwzHOSFtLZrAzPKlEgV/zjJtEALBBb2gFzqKWYszuF2OX1eLJGLKYsNoOZll4/ruaX44/9URrSPTtoCdPb38RJOaDV0+M+aw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cf1efc4-8647-4e3f-2b86-08dc57470af3 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:41.9405 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 12/17] avcodec/ac3enc: Deduplicate copying input samples 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: tjhdp2FMk2LK These memcpy operands only depend upon sizeof(SampleType) (and this size is actually the same for both the fixed-point and the floating-point encoders for most (all supported?) systems). Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 25 ++++++++++++++++++++++++- libavcodec/ac3enc.h | 2 +- libavcodec/ac3enc_template.c | 27 +-------------------------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 681b227d3d..7adb1c444a 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -503,6 +503,27 @@ static void ac3_adjust_frame_size(AC3EncodeContext *s) s->samples_written += AC3_BLOCK_SIZE * s->num_blocks; } +/* + * Copy input samples. + * Channels are reordered from FFmpeg's default order to AC-3 order. + */ +static void copy_input_samples(AC3EncodeContext *s, uint8_t * const *samples) +{ + const unsigned sampletype_size = SAMPLETYPE_SIZE(s); + + /* copy and remap input samples */ + for (int ch = 0; ch < s->channels; ch++) { + /* copy last 256 samples of previous frame to the start of the current frame */ + memcpy(&s->planar_samples[ch][0], + s->planar_samples[ch] + AC3_BLOCK_SIZE * sampletype_size * s->num_blocks, + AC3_BLOCK_SIZE * sampletype_size); + + /* copy new samples for current frame */ + memcpy(s->planar_samples[ch] + AC3_BLOCK_SIZE * sampletype_size, + samples[s->channel_map[ch]], + sampletype_size * AC3_BLOCK_SIZE * s->num_blocks); + } +} /** * Set the initial coupling strategy parameters prior to coupling analysis. @@ -1996,7 +2017,9 @@ int ff_ac3_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (s->bit_alloc.sr_code == 1 || s->eac3) ac3_adjust_frame_size(s); - s->encode_frame(s, frame); + copy_input_samples(s, frame->extended_data); + + s->encode_frame(s); ac3_apply_rematrixing(s); diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 8d6cb3b3de..271f0eb8eb 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -255,7 +255,7 @@ typedef struct AC3EncodeContext { int ref_bap_set; ///< indicates if ref_bap pointers have been set /** fixed vs. float function pointers */ - void (*encode_frame)(struct AC3EncodeContext *s, const AVFrame *frame); + void (*encode_frame)(struct AC3EncodeContext *s); /* fixed vs. float function pointers */ int (*mdct_init)(struct AC3EncodeContext *s); diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c index 3646e1dcaa..b0f9e69ee8 100644 --- a/libavcodec/ac3enc_template.c +++ b/libavcodec/ac3enc_template.c @@ -38,29 +38,6 @@ #include "eac3enc.h" -/* - * Copy input samples. - * Channels are reordered from FFmpeg's default order to AC-3 order. - */ -static void copy_input_samples(AC3EncodeContext *s, SampleType **samples) -{ - int ch; - - /* copy and remap input samples */ - for (ch = 0; ch < s->channels; ch++) { - /* copy last 256 samples of previous frame to the start of the current frame */ - memcpy(&s->planar_samples[ch][0], - (SampleType*)s->planar_samples[ch] + AC3_BLOCK_SIZE * s->num_blocks, - AC3_BLOCK_SIZE * sizeof(SampleType)); - - /* copy new samples for current frame */ - memcpy((SampleType*)s->planar_samples[ch] + AC3_BLOCK_SIZE, - samples[s->channel_map[ch]], - AC3_BLOCK_SIZE * s->num_blocks * sizeof(SampleType)); - } -} - - /* * Apply the MDCT to input samples to generate frequency coefficients. * This applies the KBD window and normalizes the input to reduce precision @@ -353,10 +330,8 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s) } -static void encode_frame(AC3EncodeContext *s, const AVFrame *frame) +static void encode_frame(AC3EncodeContext *s) { - copy_input_samples(s, (SampleType **)frame->extended_data); - apply_mdct(s); s->cpl_on = s->cpl_enabled; From patchwork Sun Apr 7 21:09:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47905 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147308pzd; Sun, 7 Apr 2024 14:11:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXyBOrDaTa4G56GkFcAHBioOPOM0cQ871qJ6+Nv+bsE25fBuzawpCF7rhgvtiZwu0GuD2FhUmGiBY7Rw9RjzMTjjHqmW+BgecgdrA== X-Google-Smtp-Source: AGHT+IFrg553tYVCTwS2lSpgnyiLL8qAyNHwh6MU0aRVh2x3f//c7hYncSEG4IrWMJ20xTR0ThY6 X-Received: by 2002:a19:e019:0:b0:513:c428:9daa with SMTP id x25-20020a19e019000000b00513c4289daamr4466336lfg.0.1712524271692; Sun, 07 Apr 2024 14:11:11 -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 ht13-20020a170907608d00b00a51c4b75c5csi1465865ejc.24.2024.04.07.14.11.11; Sun, 07 Apr 2024 14:11:11 -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=JgzXXSsf; 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 E56D768D25B; Mon, 8 Apr 2024 00:09:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2043.outbound.protection.outlook.com [40.92.64.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A192268D20F for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MQjzs7h0OCkC7aLfIuZzGvszD3Vo3IVChvcOKYiX+qYOpTP78D73SNuKkjik23PGlUGT2ezFs8xF8X9lMszLDhiDkCjSAufft8F1/KEKXc5h81dhQ0TKt120tdF5C7aGdGM4K9RcDrxFF1bLfEQeGyQhf35Yvp4D9o62xxXKI7PNOmLmn50EDEYBr7fBRsPMNd4ShHwmu9PM4zNLmp9iT8t+q/BAFcpd6j8kNTOE7iHxsfmW/VZFLHhd1heCFPZQg9c2C5WCiJCUcL7kBonywGl5NKQP0PKpH2Ihw6Wx+jKrmQJmZwmqgcvBSZ/n7B9c6w2AhijAwVrw5PYgFEFPwQ== 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=E3mKpf2QIdSg9pKmUIK/hMGBNN2sOzYsz0q8Z0BtZlM=; b=ACaIznvbq7VHEi5qXvuILiwGHhv5kNsck1DGRBV5XjTgeLoE7N082CvZc42z6nWFDwbqh+JQ4IZjA0zzQqiE6+BFUYduLhNEfCBIC+oYRKMCL1rcX2NONBnWqg5WshKK9BACXweVvUR0acN7GI05DDMUW9Nsqf8NpUUzXxGTCk9+Cjn7QJI6QjMM7QTUmwJ3IlzHpIctIWe5181ptcag/EZi/N5zvR7urtfL2ni8M0TZln8QVnPF+obptz8xPdcOLuSE+rT0rsTa26SVxknqFYVVwj+mcBY78cnFvzrX2ierW7Lu5kXZDHA5qT1EDTEsZ3OtJY1uQkOhVHgTCo2K/g== 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=E3mKpf2QIdSg9pKmUIK/hMGBNN2sOzYsz0q8Z0BtZlM=; b=JgzXXSsfAhMEnA5HIgGLVRU+jlzz5rVBCwhYcVwfBQaDI1HJqtPmxRDflmZeXg+q3fkzxbNUjdTSW3A3fD5IfQH6xC+yQaTGJdeoWtu57LM7Ial9VEhwPe758lectI1ELjYIWdQWJRZE7Eif5Xcc8RnRcLWSz+eAsNylTa8VaMRBSLCwqgXrxx4bGmVF2R8F5J/jGtsdyQ5wiM/MbLbNDf1Gy15vPNKoUGzz3J+WVLln3EOK2HYoKWNbLTwy/LZCfHW3afpR7RJY4Bn0NUr0HL0liTu37fDeIcYjtNBbzv2NLPBK5hwEINq/hJtTDHhZZV8hQ2vEGSPwrpKR9Ql2CA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:42 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:42 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:11 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [6a1MgrKFtdhtguL4dZr28RLa5mHpmhUHuA3nmhVzhLE=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-12-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 054fda4a-481f-471b-4075-08dc57470b7f X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhVkp8A+4G3uzsGlX9MP+N8ZwNXJ058TqUlG4cxX4G9HUjzbPOl/uYfQUuKtkx0T+RatPXkPcqXSS+jsS5VOfs5JlENpaWfQbIrkfEMD6Cfci4TatnDE6ubXMBzKhltUjUkyw+b82iPQiAhbgqB9O/oBuA6EjDy2gfLeVdFfbAsA2A5cSPIRcj6LAXKKejz7eLbh3Y8wzEn0P2LGPrWsCNHIKmzcoKG7pfUfIBKJu5HGkm7TPUAGp8C490FfcvaEw1BRDWgG+3cT2V9nCwE2y2gFrAbgZcAJOx/htJUSLaUFd9ljlzPi5dAeIi8//zsHmPaV7806rZvtfBwJ7GNIs9IixLn/Dh/bdsGoqcflFqyTRcFu3AdStkx04T58jofrgzs6FHis8l8CPurJV6B+Gcr7aF0tmEIX8k0qM3piXxkAZXCLXGUn409dH1+soTjoLXOZ8UMsCYEuo19r4Ok/bPQBQb+pNhPWmNuR8BdQEiDTbl7jQh95JtcfMKv4W6sy8iXsDit4jpezvASeUlbIhKsrfd+Xf9KE2dwBIkvCKR5jirS1+2A/EMiP/xgAtmE0q1WB1hQngnnX160xpwN4WMawKvmGk4uCmlktSjWf+b29qR7JySm2xLU5e3Oqst5rBxxu0cKffLcL8wIAtLzJDFXIYCfGdwx/UFyzZplZq6qiyC6PD22ma3kOoTsQUCPDhGzduxjnenW/E0FP+GaXZCj8x3c6wM6XBZjNqgbOz6LUk= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SnzgPZ+4R64YfhdAdNGDRh6lQLVFyYN0m9epQdgmtY1JZ3ort/2I+eEQKvw0GGXbCC2R4amXxzlBX9L4F85ahwKYpoUhqYenewhLcq0ZFIvrRMymI7UihyEUPXQMInbRf7i85AzSf8DJaJ+aJERxX+WtwE5kPPBaeQn/qdHiKQrg471rlxZ0XEvxyaJCGepfrEoT1qUSg/JK28hrb9JU/Zj+GipRFmo3bkkbpnWLPvbKe2eCDgoORJq2VS3AOldMVknZMdGJqhNkKBlMiHEJ/06sYP4Y4KHUfi+2b/4aoJD4TkNjpw1mkCVHGi67BC6AYg9G+WAKq0fZA2iFRNtwYINr0Wk8BT1vUTXURWhR+gUsx8QSkNlPo5v7cS2xeKXa3lo3eOcSjAHFrhI7iqsTq9fYDGdMeyQkXa081m5CYFkY/tTadWbal21M6AaXcWltOoCJwKCqNcjyoPQXB+AT+aFBwn1o74h/CdWoT0bj0tCnvxTOL6tZQOHbuH0zRdRtQFJK1zaBnVRfFgEskxB+aJap8++BQ6DnvtRdmVAD/V6wISUQ7h9mBTd2UZuwBJHAnZXotuYmeAi1Q62C8dwGa7K3SCTNdago6oDZjG5Nva+jLr3dO1griEzvi80dI/Bl X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: z+902gXmjcKZG+c0q/IfGRNqaBrCS5Q/WRG1SR/l8lw1+/PvJjul/BC7t2ikGXHixG9ayvIbtzcDrZSdsJCYEgPpaJ8ADFKW3/rgrP1XB/aF8uSeu+H0gNv+LGj5uoOLpD1CrnmFz2B9i4Nc36hoSOVzi0f4B6HMFDlG4zVnUMmnmGDSEXFJ7f4EJzs4JQS/KJUf4atHOnmTXmz8Gm3pjFg0Aabr1HvbWrn4AphM1izHmzDcn6PsamOZlGPGE2yv1lnmCqw/zITKc7eYVmIb44b6/3/IovHqvh8hcqvwX7FU/yP817R0CkCJH4c6YzARtO4sGszs2oKk437luoq/QQ6FVbLvkDEkhU0Ob1Ij2dIfrch4y4QKTmZGebbtz3GdV7aYH6x5BY+Y9mwI/l5kN003GzO/f4FkgUe49J5V+MqPZQ19+dtRJ5ChpT3tIVF9ZP9E+G2YkJviwWYMgi7HuKVutqVLMUqI96cqsJ5Yhy1LYxNPjNJCmXaE5BgYSZA6Pdrx0EdS/WkHOH7vsEzREdD6HFgOXtGdATbewb5zTi9kPV+zJVpc0vz1sBVPAu4D3CbcV8f7TceIU6sA/BzLcjOg6pXVqEQ1sAbjja9epCoyW5nt/Kr6GfJtJBFrUpDA97zYXEdZZej8ozHSU5gGPXZL8KxAH7Xafo57zTOQVN+aQBZL9xcmnFvNI1WuEQTmgSOK+tQOQUBI84kKLEEdPffQ+kGn7IVaYIinUvBj0MDoGiQXNaVQwL884CTv2S08eVUqcFqvsvyxuCRQYgDfICX2IZjx1psccUMsHpuzbVi8ao3sz0nR0p4nqAyOM6uHKh2ewzGt096kav1xP14IExKnHSw4rguy5Snm/Bn2BVQmEIrHeMFugQy0OkCjf9kdcitp94y+7IFc1ytpinR6peygh6tsH7ZhiKOg08lteu1vt09PHKEygLQ+zJnLdQRFBbsc+jpPdtfP5Eg3Qna/r6nZ1k5cGf6435IEr3LZCv+9CbKzeyrXrO8sRn3jbomUVsBh3CC7UhbFZscE7ba3xWcjM/tOVG0KcaDjIv6BJuOnCFIdsX2q3UEPn4Kh1JVHbBVzKknSCSNQb2ZTnbTUmRImb1kblUvIsdDv29ESwat135amsq23ZpDfT+j/KjSPxijwX66P3FbsXyM58vXYjlJeQakSwM3Y76DCj8oP45bqYgylErF14gSG8OtPrNTGbAe0v7A1h+ZewDwmneFdnD4D79Avh7jrbN2qQbUHF/zuGdPluGWbXDHVCXVYfAlNnm+MB9P0zpBEvCgYD7f7hA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 054fda4a-481f-471b-4075-08dc57470b7f X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:42.9153 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 13/17] avcodec/ac3enc_float: Remove uninformative error message 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: a4LA7r4FYTPo AVERROR(ENOMEM) is enough. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc_float.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index 77a7725f31..cbe87dc5fe 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -88,10 +88,8 @@ static av_cold int ac3_float_mdct_init(AC3EncodeContext *s) { const float scale = -2.0 / AC3_WINDOW_SIZE; float *window = av_malloc_array(AC3_BLOCK_SIZE, sizeof(*window)); - if (!window) { - av_log(s->avctx, AV_LOG_ERROR, "Cannot allocate memory.\n"); + if (!window) return AVERROR(ENOMEM); - } ff_kbd_window_init(window, 5.0, AC3_BLOCK_SIZE); s->mdct_window = window; From patchwork Sun Apr 7 21:09:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47904 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147270pzd; Sun, 7 Apr 2024 14:11:04 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVLl9M+Z9REogKgfmfrZujXShLeRY6ZJ84FmEiuU4XPZFsHAKgbyun5vyTZVVy5cjDOknOAnOQH6UiNKpvL1138HiQ8ium7XlDAIg== X-Google-Smtp-Source: AGHT+IH3HqwdvrXLfRxEeYloS0uaBTrhVwb37cVFgJNsMFnphhRfgcjToZvPWtJKAVmDAhKWWXxe X-Received: by 2002:a19:f70a:0:b0:513:e14d:15e1 with SMTP id z10-20020a19f70a000000b00513e14d15e1mr5035481lfe.57.1712524264117; Sun, 07 Apr 2024 14:11:04 -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 qb34-20020a1709077ea200b00a4f92b9ecb9si3099860ejc.925.2024.04.07.14.11.03; Sun, 07 Apr 2024 14:11:04 -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="qAd/8qlp"; 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 C54E968D1A1; Mon, 8 Apr 2024 00:09:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A20868D1FC for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QwyCoIiDFOeFvwPfu05JC8te+iR7PSgw4l+c8nwQqKjr6MssmsFSnYItBoPLSbP4NIO/KCOviMbKjK3v8NRXE/7zZzlq6n3UEKxDC/N48Kb4cnpQMoSETTVcVLybZUZKAZLUvLllufLLpDiD3lmQGlQYoHBsKU5s5sngsAklWGdKQUEUcAgzQQ8iTezUeHgLbH9Vt6Kku9TIH1ybOiWQgCIjWRQv0qrkpC3oATGjLq34GkmqynYcH4qKmdNWmpEHJtkOjcn+e9BABHPY7AJT9vIWwTAxu9iy++R9bYQ/1y0dffHUU4UinYH565/UTfMewbm5Jc/gsyd4MTuKqOC5Kw== 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=IY7CaAz2X3IpAK29njgd21gyOlVowQjPpBSHX+wTXwc=; b=I6c+vXV+T1yj3aU3O6Bh7koUYg7bI/dLYEo94CRzYpxqKWRyVH0qGKL752qSIM+CEq+DTxP34bxgdK7TUM0s6MlSW02qMZe4bY1z2MS8DL2PD4n4khOxOcoLHwykOanL9s/2ydKzh/On8Y7pjVn+/vTkadvOIE/D/2MnoJIreG+SM0BdvkZkfIGtQnc0W8s9Bwprqs/1wh2GH5WYAH6W2Z1Uq/HY5PRaOxj30AOIYX5zIC7jOFB0viaMlAlpeN+n00VWvDgHra4aFBxjK48oo7aKugJ9ALmxpVeQ5MYIKYvS4f5jplKXLZD+WN65dKHfhCAo096kxlFSkGJWF+Ytyg== 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=IY7CaAz2X3IpAK29njgd21gyOlVowQjPpBSHX+wTXwc=; b=qAd/8qlptw1WEM5NO+rnfgQx7Yx6D4Mw238ehrKYheje+lWx12BRp6xoA2lpj4CwTvjlPTXvheignIAXxnC5MGIdKVl1CRSkB7dl7i7YSYvPrpfwR1omANGg8jXqIYZrEcTcQW+mBiLkzOtyho8E5PXab+3ArlpRF1jk4nXZenz2BSBbfolT11QWCP6BqhJsWjyo0jGIm8ulVh0H2WAnxL4Ap3aM1QIUCCn/tgbz52T1e5daHizdKu5dp/qfnx07JjlhEGqC2DYIOI3eClJQAdCTjnLskMxAuAwspZSbWHttcRM8Kp+KnLiFkYk8cC8+sZs8SbplvyoF9CJcdKJ9gA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:43 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:43 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:12 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [9Jv6JCFJc71aL63MeA6li+QAwbVG5qfDF9oRgavZV58=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 04718342-64d7-4f83-3734-08dc57470c1b X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhRxL5N15o06XEGJCM6YXe3AA4WI+tpH+p52jdpX1ai5KXKIQpefgYGKXo8mvD8lJWOz8nA1DmHPfbzc7l46LbYjA1p+Q7LJyv0tapYNmpHNYI/LgHz+4u0EFoZY7ccQHGm9CWYxYG1zSE/gCX+gmP8UpkR8r34ld/NDAVB+XhG0Jjg6SDezgmIEatTsgp9WhSLmRF7Wr/QFAV/Qa0Ag63lBOHHende46Vs/y8rJfd6hisO+LxYp2yB5RWnoL8GlTT+Ktn4coKQJiDLsGajPvvwCICygl6XkVv2kDNakU/O6BijQunn2pwIYuvKa2+niiyYd2Bk1ib5Yle5hI1NNIYnA7gSFhCMLDZIJpwIEpSfCIPk+1SBiJJOLazvCazLfwPT7osyP0k1Q1n+EvA4aY7UP0fyFFVLX/CS7Qw3SEjbgFsy1R1kdk0r9wJFuUAd84K4unyR8sFDA/V1j9pfD8i9oJwdFyLbMDxHk2puvskTVGiaLT65h1MHV8GHbz9kS8Tu519iD2jyYNRmZm96/OnXq4HkeA4QAU3Y/n+wzzpz8fJukM/xdKgfQG+t3CUe73ZNWRr864LshC9ZpLQquDKErqBxdQVYHk3dV55kNq2ZTQ56Lca+tEcywmL/PY1r3BiSH3JQDwBa2PrAjnci33QT/IcBiJomm+nxHXhFReB6Xat9MKjbM/EIXR8tD7nJKlJPKo51u6kt4QkSDTg37LmjrKV5Cn4hS/LDWshUxUcnPc= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EMKVPra1w1UQ/J6XMFQ+EvAIanOL1CxrTWzhDfkEXH3j11zgLdkmblSNPZgS9cQUNF1ADDiZgK8LQ7SSbrgMGjHFTK+yNlSihNjGE7HkGFLHGohIKNyX4b43UNAfpxl4yQ6RM6oGExiGKDRXSvx3uY+9gGU5uxWkuUH9cpogQMDpTL55LrDiPLqkkc8bVSvPmSNmWLA5hTdA7rNTQ22J9uKm9FTJ513KpFSgSNY3z25wcfFjPCIn9DzXdgU2KYL0N/OUA3YXveSln5SUvSe4Xfhkb0UK1bYp5eKxkA83nozb74oUXPXq4yAi5XLOLhFrGgcMIajQ3NTLVocOUYuC+X9m4pjlekRieVDIFmGhHwDhRfxhMGU7lyOSxvrvfbs+KZjSQSTndCpcQevk9cK/BuQZ3peXyUuFSiaPqLT2+sXYhQOFlJHeWirRifaujukHxKe42/wNRKtN5YiDnGU24GLVrWtT7TZq0HvHkis0oXHGuq4dXVPO+rGph2lpPHNWV0OW+hJFv1KkDm41H/nVx8ilrDsJ39N+uwv72ngU/bItMvOhEXZxoHYnsBX+fecOKYFYYpUGSYnjQFfk93pJDNg2kcintdyIl1L7+INNireW+d3m7ZeUVQWX+DKqFJa3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8RvTKe8VpHI+9BEqtbqp1EgBmTtOBl14c+qWxsxws0v73hG1wlya5Jc5ovWLvoZRWwc66hhNEKLadPjyCRmaSdm+t/Fe0QjTkGeHf4JART04AJ8g5nK5dath8K4TKY7auJdkIDPs3wLlRG6Leu2CA9GnZyg6+r9AXCzook7MIDIIfh5n3LX8cAMR4ogWqofvwXTVYyd1/mM29gcQqX9A48X82JQj+R7IhSqb7aaFuGYvFn/Vo58hquPAhjmF6TLkn22Opskx0hqP3V/mV+ytvvaJ/nrSQzy0pA/yvfLVzn870cXFUl4wWP4CPBDIdQBpr0Or6OLZ/CrBdZjzHpzIeSFe40B+jNNfrl/JclupuQp9mWd9LPGPUydSneiqdhvIMxR6KevFicwgVSZYbSiVmNUvZSVYfqVtxt10lM1Wo+d6p+iqF4mBp9aQuR+E5HNaQvwayuF7lR/WnEsttXvaovQJo8/qv9+dwy8VXvNGQee82zpBWQn3tYR4DDS0uefm7exlb38Yvc/xh6Mlb4+kXUUh4qp6E7vismRS5/kXWbWqI5V3K+fJstKlE4neBcXmZnT1EfZM06FsoiVtY4kGh3BxL50yXLRRvaSAqwenM+qDIMa3kr9UMy/D6TMx2Zuu96DnrHXFXlo2NYKdhZyglQKcmcx5R8eGBwAMnXSN2Q36EPe5hpn1LXpSwWAfEH7aZRzszC7Xy+b7mpaUetys0ucHXZtcyqphS2IFTHhg6U7ZGuWM1YSVhY0SmMkywzNzo67PB7d8HgRNRui7dT8fOpCnwEKT/5DLpvAISSzjekA+8NpxOoGLn9wAA5tl9ASnKxWMWWsPTXEUV0GbsUKs+TpKxdMxu9xlwAdOuTXamAsGClgAB6AHqwwuC/KMsucNinxIfl3Hp/j+ISxy4mTZxPvVu8Q8jr0RVffbtH89HCHYuvDOBG/VnuP3iH+egq4GUqk6Pgcb9m49Pvr6LG7wVD+P/Dznu8pNLH0WIiEp8jje0ctIH51BXWJLWCisXc6zhMopC0cQxUFDbZa9HYbU6fSS/DmN1msMU01Kna7q0Fs/CjUsNvYSg/rWzBhomkzgW7YmqnJl7V6SoX/NMe+jZPmZPL4ARAOD/AfzlW46uvv+mMQgTjk8SDYfKPPlB+ji8RecWftr9Q6VmLLtKmvob8U2E+R9WnJ7XAKY4kHbq5jSvqPoKNghY2TH7VVREeLHXpnb7n6Ltz6EVzwOE8CUUiy74LECPSWHgAVGOwGK6OWw/LMWOxwczuGAVuRMADOUAGv8cmemnfbPVCqC+uMobg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04718342-64d7-4f83-3734-08dc57470c1b X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:43.8632 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 14/17] avcodec/ac3enc: Avoid function pointers to initialize MDCT 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: CqSz0udcZNd0 Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 4 ---- libavcodec/ac3enc.h | 3 --- libavcodec/ac3enc_fixed.c | 12 +++++++++--- libavcodec/ac3enc_float.c | 7 ++++++- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 7adb1c444a..8ad89b6a84 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2589,10 +2589,6 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) bit_alloc_init(s); - ret = s->mdct_init(s); - if (ret) - return ret; - ret = allocate_buffers(s); if (ret) return ret; diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 271f0eb8eb..227744d27f 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -257,9 +257,6 @@ typedef struct AC3EncodeContext { /** fixed vs. float function pointers */ void (*encode_frame)(struct AC3EncodeContext *s); - /* fixed vs. float function pointers */ - int (*mdct_init)(struct AC3EncodeContext *s); - /* AC-3 vs. E-AC-3 function pointers */ void (*output_frame_header)(struct AC3EncodeContext *s); } AC3EncodeContext; diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index b8a4d88a42..d2f4cecd72 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -74,7 +74,7 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl) * @param s AC-3 encoder private context * @return 0 on success, negative error code on failure */ -static av_cold int ac3_fixed_mdct_init(AC3EncodeContext *s) +static av_cold int ac3_fixed_mdct_init(AVCodecContext *avctx, AC3EncodeContext *s) { float fwin[AC3_BLOCK_SIZE]; const float scale = -1.0f; @@ -89,7 +89,7 @@ static av_cold int ac3_fixed_mdct_init(AC3EncodeContext *s) s->mdct_window = iwin; - s->fdsp = avpriv_alloc_fixed_dsp(s->avctx->flags & AV_CODEC_FLAG_BITEXACT); + s->fdsp = avpriv_alloc_fixed_dsp(avctx->flags & AV_CODEC_FLAG_BITEXACT); if (!s->fdsp) return AVERROR(ENOMEM); @@ -101,9 +101,15 @@ static av_cold int ac3_fixed_mdct_init(AC3EncodeContext *s) static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + int ret; + s->fixed_point = 1; s->encode_frame = encode_frame; - s->mdct_init = ac3_fixed_mdct_init; + + ret = ac3_fixed_mdct_init(avctx, s); + if (ret < 0) + return ret; + return ff_ac3_encode_init(avctx); } diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index cbe87dc5fe..cfd233da09 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -102,12 +102,17 @@ static av_cold int ac3_float_mdct_init(AC3EncodeContext *s) av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + int ret; s->encode_frame = encode_frame; - s->mdct_init = ac3_float_mdct_init; s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); if (!s->fdsp) return AVERROR(ENOMEM); + + ret = ac3_float_mdct_init(s); + if (ret < 0) + return ret; + return ff_ac3_encode_init(avctx); } From patchwork Sun Apr 7 21:09:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47906 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147335pzd; Sun, 7 Apr 2024 14:11:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVDbiMl3oNmfu34vGk0BPdK2ctvPddOLPWrg9Af8cj19kvp5/M6FvpRjP+dgfiInqel3oLkCT6e6FRe1MY6qdA26Yz9OR6k3rBveg== X-Google-Smtp-Source: AGHT+IEaIZ6OAxqA1xuQIu1ff/Bk72aw8cKrmOtwfnR9nQlMPcxX2IM9PuJ26e9P3cE3G4Ixr3lO X-Received: by 2002:a17:907:981:b0:a51:ab0f:57cb with SMTP id bf1-20020a170907098100b00a51ab0f57cbmr6699304ejc.11.1712524279219; Sun, 07 Apr 2024 14:11:19 -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 ka8-20020a170907990800b00a51d9d7ba8dsi119264ejc.865.2024.04.07.14.11.18; Sun, 07 Apr 2024 14:11:19 -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=TQ4DrD8L; 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 D4ECC68D28B; Mon, 8 Apr 2024 00:10:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AF2F668D217 for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KK7znZe1NuBAhteeEZjhETSx36jxyhVhp6c81h1g7tALjNV38JulOyaWj+f9OhXe425a0StQ4iXtQuAyAlqSg4GPeffiYamMKj419cHirxCa9r4uVF0wrpfUIpk19mer0LknQHfAyw8MvS7rS50CJIlWEen2ejDAoNY0ePN2CaoG9YXDWo8ZfhJOzbQqy9Dw2YSX5jHiXSBJdrFJ1Bi8VBaWXB6Q8++XJNZlQ+JLI+JxOV5PrbnNAUhS7AeChXRuH1e/+60M8CEIBwmRTiHF9CUho2fX8QrPZBuyR+FVfhk2+9xW8GleTB7j+KTzJZAGhnIThlklM1hWR0/X4PixmA== 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=pl5NiK36Xoea/Ui1C5S9yM7W7BAnP7yd7oGLLl9cVOA=; b=jESUYZb4ZDw7m50czZmGqZu91kfMWx9UHaqiSjerVyn5wRQwVbWdu4wJJDLI0hzdCaXkLkwAgRYThLtEcov6G5TDEEjSP3Po0S1yB850OEyl08ykRsmjjCUWeeQbrXCClVW5G+OOJY244FLYa/bMsp3knD9ETkfVDHx9ehF4OmINAWFqHGgzGG+0OdiQbVXLJZH5CN0AEIHXbMLI9h7zu2CF+PNHDjn/NNURGn/rdNLCqOQavuWKem9pQbSlqQsveIvS/3G+DXirDxFw5oeGegYPRZc5qq8iQ5C9/Rn9iA2j+Qh2GGGKOBGnlG4jAemMcOvfK8HbD+o3ziFefOqWEQ== 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=pl5NiK36Xoea/Ui1C5S9yM7W7BAnP7yd7oGLLl9cVOA=; b=TQ4DrD8Lnh5mxiOtAS14xfbdSUjncOsYfnWB5/Z7KxbISKEttVOmQAcS5gbEzpz3IqfcOSUZ2R8CQgnhKjaD0Fl1zCbdURi+f9NS5BGEpvM54jhHwHVr2uzO++NJ2k4+aB431syKKD+BLi9EVlc3j0rnjOkcVXBkd9P5AqTnP4JJML/d3WywjBj0Grb3gSiUx/jB7lY5b6VLyx9xjY3rWN+6bvPt3sTit8GxT8j1bhnmlOH/tC2ZsPYj/nFnZffj1T4HpCYf9QW4pojl7M71v0ORbuWHHGzNa6c4P0ZBYAnUUx21zeTw15N8KhLK3MlbDtClrbqoD761EMYjG5YVmQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:44 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:44 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:13 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [iPxG3PVjn+vAKObVh1TL8aOow0FufQVZjFOr2Lb3vJ0=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-14-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 65815d69-2a94-4290-888b-08dc57470c9c X-MS-Exchange-SLBlob-MailProps: quCBMN2EvO+2u7sZ7OSLhMIkTSfckR5UDgfYLoq90h1Za5OCCXwtm9B/7WjNIlrvzyN8GUcooIYgsRun5vimHiY0Oy0YMIlA3zB+bIgdu6DRyIRgEELjIY/lI/NWJQuWqVqvoeh00yeuoCh91k+DjF5kTLg0LfprcPyHrwbxSQDSyNsjBXAqQbhYUsG74t7MULl9dXp5EliE8lMcLNOzsmMwQCVJsE6SgKS8vSNXN73WoGv4uCFyEv5oP6B3MmoryoNCwek2B1YCoWoEiRiAb31gh2p0SVe6IwnFgGn6i3GVFvXhiawsAUCuzNPHZPZf7GIUjzwcwZIwiyDTPjNIA2bhG1MKs/S+ln4eIbfqKGXcHZhuL47zteOhjGepPaFrEWhkbwzh6iftZL2D2YUlj7vB97adNq4GtqUi6dDHy3qthtNQGXR0W/ZWfppN0VI589c5vpLa6hvFRWZGu+ZRlHwN1lFhqXgfOvIMYCxTRxOpGREeIAtnamqpsyujXYNuadwP0slXU7n0w23xwX7h7LAWhE+SFFzpe7x8nWYhwYmvtiLtKXhNrtUjyrMeO+pkxPIzSs3bD9m1JdTIhzA3cYIWmBT8+BQ1woKrLMdQm03PJKWC/1RDcKg6tfP9mNjUntd+Joz8/wDLfazM+UgWgw2T0kvKNaT3XQJWnP3q6Je6CKCchtvF1tEZ10kslre13RUhE3QP3vA3/esU5Tyhgg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nsZ1ti3Af/uQN01WuhixpPjN0aH0PvXQxsX8wQFyjlxNJEmzdI57HjVVowG2qk00P2jjhz7Da1G1B4+n2AJaf+7v/NMQmjc9m7U5w4XWWxkwHdADFRhlerVOFUJ4Hrml/mKzEfD2Oiw7rKzQY0K1pX1qmfj4Zgo3wfs8TquZXWkMftF6/OIFAbJBmsEoOsutSnaYs4+yRWmJQDcm016+jdVojwmJOiWN0SFjrEOA04rs3nrYTKhZQUGPkjMRXbOH6lo3b/L7OW2Y5GkVLyJ7Y9I4/K4MtkgujSUzVMpcENIb7mTz+dQ+2fhMCt39vvaOuaBbjPBKhl4SC0Jw+pxVHirIFoEExsfaMSSkfqEI/pEXdRH1HEZnYg6KT77N878g6EUSHVIxj7tKAdyM5+hh6ra207xW0RoB2C+oZvPqKit1RPjveFTPC5swrFJeccZVye6oBafgd+rnSJLm23EyzfiHKtMIgOrX2GEgQlyCWt9x5GUZhPKedMEAbrbLKKZ9qkj/b+g40twAHt7jX1wLtO1bMAefyojtj1XXDKOczl2JAtLweW9oqUkSgksjyCJH0afKVGXtR2cmO49bG+gAj9rXybIH5XvMMq2yo7tM11Daml/GQ3+4H+E/tHC5Va7d X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jh6j+vsAjU6ucPXTBStZ4Ju/flT+5CJVltOsggJU+eDTyPAd0lEDyula6VRYcbbKbYwEd6dvgqXTTBdWxXUui4Q6K5oyXxVltA9uUPZfwboUfwKRqRBIlsI6ndYr0dleC4pkkiox1YO5tC49uTVbsobtAtQ8QhhgfjaPbeA7p1LUthEu5W0y0AZr74v+o/MdAbCcub8i+fF9HwUEqHfdThxO8aOKOH9+189lt7yyz/a1VA5VLI6NPZFPDrIU4coOprOjhDR+S5+QOlw0/VeBspSQArx0hXDjc3MkPrNdsQnn9goatdoBZBNYfvm1j62HX59+ICPPFCDr/6rVya0Ivn3Zl+ajsM5pEYmnm2GxccF3LYzVNX4MxsCPlAJKMjdrC9lT0QYiIUh4gGSJxxC66YNXXgcTxMO+TkQ/cGG2n62lPegVvoBKpkGOrt+ntseS5qD19C7whBma+izj8d3qg2omT09UNqqQSDxxylX/wM6lNbm1rY9IF8oGEYQJKUD8stfaBXFRLStWisA57dU7Hq5ysnVrIkBvIo6uOTJ2Y2NjB1mfU74k5BFg000xMlDjJ1Al5jdUdTHbn+XhJWQbINcZMRLQmSwZC88egO+/pOiuDMGLIm6OEancnWjz6RBoDVX8cCbGxd1uyE+GtxhbVwFfDFn21t7GLHSfv0EQYq4cHFd/EvU3V9eK9zGlanG/rqj7WQQZ3Ht7ealbQYvJqruu2fTVU2mx5spddnjRIex6I6C27VNJUcSnvxqlpZ8c2Gw4gst3dtbkcgEO7BbrctGkBB1dKKIh+OOrn/sbJhk0Tc7aKmbaKCUYNqkomrqbbhwGbxQVUXacF0P1/ZDBiE+kZl2lsA8n33ivv/GRJDBs3ku0DS7jUt1yxPu+30mWnstgqEf+o29n6veyqlXsV2XVk/4KIj60Az1O2pVrIhQWIigLqaaSiyPdBaHGBhmz65JwzrO0LeHWoWP3X0f1w9j0T7vi72sD1qVFevRCj+tyE7SYL2paU7OQ4+9SsrrAVw9PJWlEZcFJIjZ5EHP8DfcDGA0sWAxgkpSModZiXmwaJnjRypX3cXocr9aRRN2ZZOl4Xq/QisaSn5Bb0iKe8G4aS5Em4boDFS6UIuRk9HSiCY92x0uDqjRxFNWFADWh/KSkVKma880bQVL3ooyim3CeLd29Zzu8OKi41OqfZyoa2hjR39EB5Pe73s9EDz7x19nUU7JsqWpk44I9H85TObBjfWxnURiOCyTJFGVyeWHeRY0YndywUrL9U3SYp5FatVLOE1gtjq1qbID+6QGZCA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65815d69-2a94-4290-888b-08dc57470c9c X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:44.7324 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 15/17] avcodec/ac3enc: Move EAC-3 specific initialization to eac3enc.c 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: +pKlwgPeNAqf Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 8 +------- libavcodec/eac3enc.c | 26 ++++++++++++++++++++++---- libavcodec/eac3enc.h | 10 ---------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 8ad89b6a84..f520e72fc0 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2554,8 +2554,6 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) s->avctx = avctx; - s->eac3 = avctx->codec_id == AV_CODEC_ID_EAC3; - ret = validate_options(s); if (ret) return ret; @@ -2578,11 +2576,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) s->crc_inv[1] = pow_poly((CRC16_POLY >> 1), (8 * frame_size_58) - 16, CRC16_POLY); } - if (CONFIG_EAC3_ENCODER && s->eac3) { - static AVOnce init_static_once_eac3 = AV_ONCE_INIT; - ff_thread_once(&init_static_once_eac3, ff_eac3_exponent_init); - s->output_frame_header = ff_eac3_output_frame_header; - } else + if (!s->output_frame_header) s->output_frame_header = ac3_output_frame_header; set_bandwidth(s); diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 1ee140f13a..c957174a70 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -27,6 +27,7 @@ #define AC3ENC_FLOAT 1 #include "libavutil/attributes.h" +#include "libavutil/thread.h" #include "ac3enc.h" #include "codec_internal.h" #include "eac3enc.h" @@ -47,7 +48,10 @@ static const AVClass eac3enc_class = { static int8_t eac3_frame_expstr_index_tab[3][4][4][4][4][4]; -av_cold void ff_eac3_exponent_init(void) +/** + * Initialize E-AC-3 exponent tables. + */ +static av_cold void eac3_exponent_init(void) { int i; @@ -122,8 +126,10 @@ void ff_eac3_set_cpl_states(AC3EncodeContext *s) } } - -void ff_eac3_output_frame_header(AC3EncodeContext *s) +/** + * Write the E-AC-3 frame header to the output bitstream. + */ +static void eac3_output_frame_header(AC3EncodeContext *s) { int blk, ch; AC3EncOptions *opt = &s->options; @@ -243,6 +249,18 @@ void ff_eac3_output_frame_header(AC3EncodeContext *s) put_bits(&s->pb, 1, 0); } +static av_cold int eac3_encode_init(AVCodecContext *avctx) +{ + static AVOnce init_static_once = AV_ONCE_INIT; + AC3EncodeContext *s = avctx->priv_data; + + s->eac3 = 1; + s->output_frame_header = eac3_output_frame_header; + + ff_thread_once(&init_static_once, eac3_exponent_init); + + return ff_ac3_float_encode_init(avctx); +} const FFCodec ff_eac3_encoder = { .p.name = "eac3", @@ -251,7 +269,7 @@ const FFCodec ff_eac3_encoder = { .p.id = AV_CODEC_ID_EAC3, .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(AC3EncodeContext), - .init = ff_ac3_float_encode_init, + .init = eac3_encode_init, FF_CODEC_ENCODE_CB(ff_ac3_encode_frame), .close = ff_ac3_encode_close, .p.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, diff --git a/libavcodec/eac3enc.h b/libavcodec/eac3enc.h index 7d6155975d..0523de411b 100644 --- a/libavcodec/eac3enc.h +++ b/libavcodec/eac3enc.h @@ -29,11 +29,6 @@ #include "ac3enc.h" -/** - * Initialize E-AC-3 exponent tables. - */ -void ff_eac3_exponent_init(void); - /** * Determine frame exponent strategy use and indices. */ @@ -46,9 +41,4 @@ void ff_eac3_get_frame_exp_strategy(AC3EncodeContext *s); */ void ff_eac3_set_cpl_states(AC3EncodeContext *s); -/** - * Write the E-AC-3 frame header to the output bitstream. - */ -void ff_eac3_output_frame_header(AC3EncodeContext *s); - #endif /* AVCODEC_EAC3ENC_H */ From patchwork Sun Apr 7 21:09:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47907 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147379pzd; Sun, 7 Apr 2024 14:11:27 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX+zemBQvPWIzvNMYfxOSY8eWX+Yi2CbaXrTWnKCBQvNd1XCxaFDTWvYt8ogtJOi6Vd+vEFcV106Bz6KojfKTptOGRswlwgaZQJDw== X-Google-Smtp-Source: AGHT+IEw7fB2k8gnN7h4FdxBORH8YGS2iGI60LSrWez2BQdX0dw4zLrMuuLI5h6tnzIPVg/SqLdq X-Received: by 2002:a17:906:6a1a:b0:a4e:4278:8a01 with SMTP id qw26-20020a1709066a1a00b00a4e42788a01mr6079612ejc.11.1712524287071; Sun, 07 Apr 2024 14:11:27 -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 dr20-20020a170907721400b00a4e8e3cef51si3105517ejc.236.2024.04.07.14.11.26; Sun, 07 Apr 2024 14:11:27 -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=iu52gS1r; 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 CC2A668D292; Mon, 8 Apr 2024 00:10:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2043.outbound.protection.outlook.com [40.92.64.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C5DEA68D1FC for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GzpVufFVdN8SPM0gGf+BVjJ0osmBbFJ9p6UD+F6QFVnpj5q8qxXwLYsFxKb/sowd1pq6FEQ3cDXCCTWuRNYXWexlxFfxTRVJ1OSOLa9CDjVBfzZ6ngS6WmoJbYHd2+tlTmVOHc+sx+yesl+J4hqemJ5vsxQnU0bzvQsnxv6kMzC08ESwHHCXsZFeOs6SlOF3l0Yp0a/JhwntutppeXpBwN30+Vrp2RCL2RgxHs2yPmujfjX+KddK61vC/3vVCVgmc3wNkCiaRlM68ZrVuffLhlwSlKYwXrBRbJV4nZZ0z8SD7eBgwyQ82DZ88fgKK70X7OnRyjNKyMYL59QvJVHyEg== 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=EayljZj/HypV/+pY1T+jCxKRfgvciz2vhmSFjhphzis=; b=U5b55PflI9OPSpCUoFV85nyPyf5iVz+6djQf22NeNeQtn/5k4Kwh3p2Uwkr3kqBliOJ9qNLmKJcL5XtIXMV0+MaVK6uZo35cZ3cBH/K0wZgEP6vMlkGlnrRCkrK+UsyOhvv/Mn+zQ30Udvut70fx9QnYI/hhEpjSoXkJb5fx6sB6rbXZ/q3oKDxNDWTGKXXxodQ0a712x5ZBlwnVrRRahop7sgxJQEZQrPMinXK2At9PEyRkJ2ib8A2aU+RODuY9OPl19ECnsLaG6UNtLG5a1q6EsipJerYKiOdVFuiTvfZqq3q3y6EPCeYcwATJM4hfv3krsug4HgbOov0ygQGAdw== 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=EayljZj/HypV/+pY1T+jCxKRfgvciz2vhmSFjhphzis=; b=iu52gS1rn36qb1m3K6984aC4kj/zDqOL6Fv9jsw5g6TSRMLcBrTwU9mK/83keDUifFkxfotTcGdRVWDHUCOwbO6hynLuJMXQBg9nZdiZUDxIsxai5gs4HdP0tuDcbbpik4jpW+jx1Iuq4M7RGYtSXoW0QDUrzIX+cXW6vzca1M+anIY1UtaBO9tXQ/NJOs7BRhk/8saKYQc6sirRkNtlSudXKd1kzoT+oW9h3nnS+E60zBY+/DGWu3cLsmADJ4AXvvftD8i/CgJ0QV7ry9dmTjVTREGRUrKfMupvLKbDcWTYeKy/IZOXEp4oghyDvI2wZIb469xIRdwOrcbkDce1bw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:45 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:14 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [SVStuiAfzAOsNorFcMhaCNP7UfO3YeMiatJOHVdK7Ow=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-15-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 0406d06c-0833-473b-23f1-08dc57470d24 X-MS-Exchange-SLBlob-MailProps: 9IecXKUgicDNEbE0encsoirT0ZUrgC9m66YWS3aH0G7UdId6l2jJGzSaJ6eA1yMszHnR5Z8zRi7BlXr5H0rTyuBeKZRXGt6w/lyMGqUaihVaqAckxqOMz9xqcVchLFnqpCf7XUBTgIigev2mAOv4/XHUBUvof2e081q1kgLARQoKZbwosXL3akRf884hvmVqcQdiegCQcVVsZLeW3UNfSzEdBYqpEOrN4oo60npHbKQzBaWQ7PniJiUxvk1DBA3O2skth6UAKSrp7PaUGiIDMX4/9oRVI2e21G+EVpDXqg4lF0niuJAH0zGSVYvds+ZwvRoyJnWUZpTQLO1uvkYqg2/68PgotDdd3qNR3aH4qp0woSpB52UIFVVYvcRZTpjvnj9Fv+UmzrcwrCgSAncOwu5vWpiDkeEw5YwOdvfKKXtdDxCXZcVDMQVbp+Fsiy9G8C5IRDHbUQLCLJP6HdzDgKQQwV7aHeYRd1b3kipApe1seASohBOQn11cnGiW4xpMQxkBhkh2Jf69qvug+l4sAi0x5lcsX/+sybq41Q11uLgUmr/nRfgfmuLGeIjmL/xhv+rkw/GpNdeM1N61RBeXYaX9dwZS+u4ZekdFRl9fzB9kqG9knreF6nCld9cTuBerNOiE39yUuXBTjqa1txrAjJr7dYL9XUKMCx0eXtmA0H0jMfUKozFp9pLHcP7UKhqRETw7qZlAmUCpjXMgHiLiYpwbN/gu+EvddbWNxbDHMamJR4B8LViwNg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tUVIojI0iOWBRtR+YRMpqc0izqZ47n6M6ezmiT2Nshgp26jeq0lc9g22yD1w6nBnYbTtC+hyMYuKpqoQBIhQNoas2Mk6PB0p/fIbQbUSAHwytji/hQQ2aIMfsTS0OVyhxpxJlf5gWeoV6DbrrBX93WsHTzlKK7Xy3QFIg13v5W7vhFAh1NoaMZPFgQESGfmIUvo3ISfgdHX2N7HOC4QZBiubfT6EmdGH4Toj4VNs5fyuGrvonjlD+juyoS+GJPkeXMMNnm1jsMYamVvawByW8EX1xP4BKklb4GFSV6xUZX4QyQ6rGbv2UYwX+QVKtS80loJLPDTPmM3vb2PQKdDwuNybpc37VTBq6JO2glhKumzmZCllMz5jJnDPnBAAypBsg4c9m+6i9UvMdM4KkLBblbEKWy9nK2ga0RRIYvxSbaV/y5uSUCFHmqzZFfRuOQkmXBiliCY1OJC9eVaVcq5bhhmUirMsWrC4NZzQUXmka4heuAzSbM+BQO9FGdNce9HOpDQKpA+dC+3CTRCXw/63u5NuzcJX0Z3TX7uWYDdgMr8CF5AOs2kSi5LxpRSp5467QlyEGNKwdV6+vG7Mzi8oFi7fjHJqPKREatfN52Y8eaSv3JxINxMUxwYW/Hk6McQW X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rE2YHtQJLXcHeByR/HAGm2egoC2iOCzb/F7tcIvIJ3iiPZkSiqlSdZyEAqjfW+7WNd63IY8LNlmVN97RVE1+5xcELtlZ7KHP3wNnwCfKQPDg73kRpGCEYcV06Qd7N3Z5cnGNXikHRBdjlQCY7kTcGaufzS/JHq1QhbBYdXtVG6H0FjbLU3xZIk3607oLb9Y8aymk/OUT/ojORWIzEzBrAg2J3a+N3JW//Rm5n9wHFpvBlv0NYCILjymxjfEXu9RRq/os9o6g2zZkoTRlHsKPvTb597lfhaaB1pOn/h2C2lDtq2O/9m4uBpRBeUEn1WXX7jzwmtMdouqtd8Lq/eIlGR/xSkGC4ALBppxHkw1DEo25Ivwy1uSjRx+X/QZw6EgSP6Qi6PnH50zt2fNyiB83w7H9lOvq3lMHAU2fVDU8CnqVV/gJljJemicV3BVfqquQQM8i63e9LUezen+4401wD0Fw+L44kn/BDV77QiDNmi7Nk5p+bnV9tkBdK1qnK6ieJ9uxPSIGlx37EnaVIjXobGuwoF0MCow2uKw4XKb49reCB5IAqlJjiAvokFiiwlZ42x6nu6AuismFoNS1JD4eufEC1DZ7Wt5EAufu1phUSLLHn8HXhpDkMwv7QMJDJcO2EZOqwpXhMla0vpfmCYD3ZrNf6AptTNx0OdIK/2MD8P+Von+i76+N4sfb0cdoKnSkvBc/1O5ZAkl3oWsmxAPphFEgBsopX27Cvq/8fdFcqpAWJ6y4rnNTskC57XqJm1aulU1wYq0w2qrzJbEQ1uvkAJWMPvKF6hTElNooerX8MfLSvoCke2oYPuutaM5FRkrFAZI3yVcGnY8mhbvmp1W7LM6LAoNYiz7A6GJ8+ggnlQfjnR0aiiyrRzk2fJOM348whKBAhikKiUM16Iyg5XOOqDUFLl4gIgYCne7qOy0QBLwack8YWZ7fpEIG/V1ymunrHfQVMoQUHCyL0VjhpN5ASFe2vpt8C4/Ta6T7bVbjJ3EPnUZlIx3LwIseptiITMHLwnYOxzBpWpPEWHXhT8/JeFXVy1fZOd8EPMIEWtpzCZgCfMCfvVU2S4mnPqJyjhPCvtZ1WPcihV4Dhd5SMnmY8Fql2h43UxsLsGNYx/Z4X9D0JXqVTPq6oWMyMzWVobUuLhd5ll5+qUJFcxb6IRgHUHvmuaO4C2LnVXcX4WQ7KfRDB7diakAXkjrkEMYGc0CDrne9yF8mjMd8bJQwrOxwm9qTJFp2/es+TppzN/LdSsaBkTTVouKbgoSMAgQ0K/DH1WlHhHS/UKgoGaiw7z1HwQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0406d06c-0833-473b-23f1-08dc57470d24 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:45.6189 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 16/17] avcodec/flacenc: Avoid shift where possible 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: wrlPIJbPip/X Signed-off-by: Andreas Rheinhardt --- libavcodec/flacenc.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index e29be5822b..3a9578f5cd 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -525,11 +525,10 @@ static void copy_samples(FlacEncodeContext *s, const void *samples) { int i, j, ch; FlacFrame *frame; - int shift = av_get_bytes_per_sample(s->avctx->sample_fmt) * 8 - - s->avctx->bits_per_raw_sample; -#define COPY_SAMPLES(bits) do { \ +#define COPY_SAMPLES(bits, shift0) do { \ const int ## bits ## _t *samples0 = samples; \ + const int shift = shift0; \ frame = &s->frame; \ for (i = 0, j = 0; i < frame->blocksize; i++) \ for (ch = 0; ch < s->channels; ch++, j++) \ @@ -537,9 +536,9 @@ static void copy_samples(FlacEncodeContext *s, const void *samples) } while (0) if (s->avctx->sample_fmt == AV_SAMPLE_FMT_S16) - COPY_SAMPLES(16); + COPY_SAMPLES(16, 0); else - COPY_SAMPLES(32); + COPY_SAMPLES(32, 32 - s->avctx->bits_per_raw_sample); } From patchwork Sun Apr 7 21:09:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47908 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147418pzd; Sun, 7 Apr 2024 14:11:35 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXKGuvocb+vq6jjrNgzupLmOdHwgoi92ogTJmSZGiRLM3/SsSpeueRVAcyYsps9ZSRNdzHNEU33imF50Yu7gf04UcDLjlCYnKWbqA== X-Google-Smtp-Source: AGHT+IFhzC1o91IVKMBlhusVpFe3tA6DZxtkyGcQvDhomtT/NaN6lRrIGOtoLBCkp4N4IiehM5Al X-Received: by 2002:ac2:592c:0:b0:515:c8da:c96d with SMTP id v12-20020ac2592c000000b00515c8dac96dmr4898877lfi.19.1712524295008; Sun, 07 Apr 2024 14:11:35 -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 dz17-20020a0564021d5100b0056e214c14ddsi3165781edb.350.2024.04.07.14.11.34; Sun, 07 Apr 2024 14:11:34 -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=FC1DRrjU; 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 0E35168D2A1; Mon, 8 Apr 2024 00:10:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D391468D20F for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LvvyRFWJowQ9O7W6h/YEf8X2pII/DvouHJhdEzDEVWbTCdV0JjAtb8iQehf5kzQ9URYtWHVGzEtl1uyYrCNhFXYvbOWG3DYPi5clW6dQ6xQPlF0UYNsTJV0XkCUHYpG/92He7AhWkwZ6nNHPPCu8CcqX/8M/CHVg8BedDU3KQKs4MGo4Kwdm5Vrvt9XF2bS3d1+Vg8gw1Ln5zoUucxUrONU3dABMCy6AfsZFcpsvzQUruPSGn0fRFcprAS/qar33fuGH5Wq8TzNWNrJXDaR0sdJOwQEBRRp7fkbCrIkl4NGnlRxBmW7csdJaIOGwHV8xTzCHrlEQ29u+9BYG3teMqg== 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=Yi+oxSb1B1LL0I052SlUedzIAq9fOtHxwLzJ4Zos05c=; b=lmEO3ds7CuwDRKmYEPMcpQwVzHkzpxrGsFzErgVqBlgIdFQLhHXKJI07Cdsd1PUXdEqA4+xHNlObQPK0XfKGWvLZhT0pDi9bV4NID6MXh9ScavNvrIFYPce/Z35lRFwKODQqny2EEG+5rLAjRdEfMsJxmDnUHPvcor44SioFH7SBD09bywKuAgpzdyT8tqs8YQe3geQIieVmFu0khVcSumHBZO4KdZINDcCLYE1MBl/xlJ0vUC1tOtKZ6fhRE5FQsSt/Y8cKxBQzFsOCXglRNuAfhbdueazb22ZCsua/iB2lLFIR00Vj9FOJrsQoBF3W6qh1m2dWmVJJMtaU3vJ6fA== 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=Yi+oxSb1B1LL0I052SlUedzIAq9fOtHxwLzJ4Zos05c=; b=FC1DRrjUpVCKQQoTnN+1SkLJRB12GqUDUKYWKrqZDize8QBZIUvNXpbKXyb5vhPcCx33er7CzFdKep5EaeJ63b6Y+d88pri8ZPI0vY3wMFF7X94QPFxLNXeoaSklZYIl6dhlbr8+t1WqnDbvkJ44NwDHLTE/Ou7L09S+6cdEmx+wRF4PB5AC03tff0TqLHop4T2k77xNv2mLm2vNue/vavJjyyPZEdFeyzoElpFxepurIrzhpVexQF1+6QOVDlL+URMCU5EO3mzOvAeAT8Rlgb9yNKpvly58JqJ02VqTV+T4P80BgLdmlAsiXNwGbG0GhJ0Asy3qwJMjNqsb2YtYDw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:46 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:15 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [e2myuZ962xGpRS+lEJPtbhIp4MJTb07HxXbdq6ITBZg=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-16-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 6eb21c6d-f16c-4410-d5d3-08dc57470db7 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNh7MVdu5BJ6iCaQHmMtTkGSXy+1jVBHyvvo9lKIiGBdb3YIR05pFXp/tbIuxfnR5cbgozOKmyyf9Wf6oxB+MypJgvTKp1D/AfcFjmbp2JoRPZpWkUGi9ZC2rX2CAwsyjak58+nZxvjez9QEBtmGh/L7hY3k+D5TTFQKTgddy3V8Xn8z+STwm/rWpsPBWdrh3Swsf7om6jEcfi/ImD04TwFOKBUCrLXlP4fwl3xzfEHPIA81OiC59XMrCl6fsYUcVJdG3iuBlvt+4PwPZ1YHUSNHmcQYSJIQZp6VepH5vjIJRJLtomhZqZ99NWyR3LQhlSKBK5YsByGkfoD6i+0JGi4SCoeTRyn0JgctiV7YjtfsymuMPZ5dCGgF0RZaxrJ6l3Il6bQkB4lLtY7jT75+XApktpmJl/joBK1RXOoswSkhq1nLN8IgDRaV15bN8hUaWt6yPblQP9supJ6dP9g3NBBhBeQsrNEUfbTlOhVxdzyTdhd2+Z/ovUeVPcJwffI3AqUO826FvZvARsUCBha2i1XBAxkQlMC+U86h2hmSokA/how1AnbRgXfEHWs19hD7qD3knPBBbq1/UylVIehLwj3gv88erOrZzukJbMC4nZRsnTkfwc3pxVHR1dnCXqUm1x6ulSnh1dL4QhgVz7w+5YUNVNo8UTFt86tWy/wjM+2Br3Gzq+LGbg9BUX5wvpcmCsVCJIAxLSqzj2Ut4xNt47amM5b46lY8uZLNhCCnltvLeI= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HrJhuipNK7o6wIxVld7gqzdcoUw1diVxDmkjuBBMe23D7bxPFSYKNanpEx1jplDf2visuWqTWOImgURmP4FSEz8n1yGhZn6cKurx3JlaehSUvMOezEQOeYnoPb2n2K81JZRVGSHT76UR7D0bpH6uEMVG6X2aeHUufAmdZLdwPyt4UL8PXrQy7pNBIJKzC1vpZUN5mSffDYxz7Q2I35EDNZ7lTxlo2X7KS30SWcA+dTWiVEmM1oFXEQjFX1VHWdEzbVqSZMaTUB5dmROmclsya3oJarvomv+y5StWcpZoEXIY33IM+K1qWjtiFd4dBZ4Rw65y74s5cMR96oVgz6aihz8N734b0yb8W74B57PEAnojt/JrubEfxuKJAqPByp7moK88kFTs6KKC6k79R+Ndox2i6N1I29lft2cmk83YjQ/ItMtVKSrxOF+zsui/MaADvxgr9X2N/0SH/n9Ns0sbsM4ujFassiaF7kegrjLVhx62OEnabJ6T3SxBe8E/pZE4V2QkAyYQ0uh13k2NHJA02hpCZAqy9V3K+bKmh1JfUmvirJr+Aq9ViK29SYWXRCc1+R/FpMiw9H7aSQIKe9A1vNqz32xYUwfRfO7Qxcuss9g= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qiu4RhI7ZFkQkGN0vtGZwjPIVjva+KyxI9oAOoyQ7u1VgafrMS6tPC8m11vbodHX93mQRGktIUuE4SPDdlt96/DKLC/V7tBSNQ+lxdXxjKKnbR+yeTHNRGaM+6FcbK1dRFz9+xjlpZhxvVRsQFuEhvFlZSDWyDVW2rG4uYJRmjkOsh+y6dTHROBpN5cQh/EWDch4YTvEe2pG4jcWgB48U42EP2AS5kFJHSjyAJDZW9CLs+5CbKdHhMlgZKhaj3EDAa0c554kgrP4fUxvXFUrhToYudErlE/rySASNsjbeWYPWNqfUuiHcmzJDcLzJPMuAsFLpKxmZ5clGrwvsQmFw/oXfBN0GJNIP3570BvKAvLADTl9v/kFQx5J8b2YMUETl8PVFW3JO2C5xQUdEqyeewjgFOQitMcea+jiqTnZ5/N7pyp1m7lph8ie/SC5yVepgqy9lP8SuACWMEdpPCTJdeFa+nfSqIDWD/cL6Fozycn1mrihpl5mTUr/SRZ/hOErDW2C7w9frdIpNtsw9o1WKgVMRocD3BpyDwIktluEZpv6h/zy12LUn1TzmIPZKCRH0H1hXgC4ovEf2vMOmlWH9TyZujY5DyVCFGzOkcVuXbWQSJxtP3NH12O/+Rg6SqwPxmYmgMAJZ97QrXzXIggCnnK1sXUMaJ6AiFt/RZazoaJF/3dSWZ7MuLvpt1BADrvGV5GGHiva2Tt+g/9bwbmRHebvzhaMO97FZiNYyu1sIQuuyGwKriS6wlO6pKgIVsdvfaVkVSjqeOGh1uZaTHl+UCNd0vEyphSIMUHcHEUfPggMM198b/m1neBNdqyTcVLBKa4UVcx4gtIKpSFk9+vZCTQUq8bOcBrbheyZ48aSFyUpt0PIKnqRrEfMILBJex0fO7po1Tj9soaE+43ooTw3HWCZsj+9igoosNp+UwjWeZdTzrHJ6w+8pv+6V+nKuuMZFmo0ZGoIDOkThl7Ja46f2YmrtGoVChWW8e8FVAHCXOPaQhqybZZTHFfI5HvqCkrRcM82anK2q6FlHANkADBtDoWkQxNgs2p4b86qWhesHhaJq8rFIwLIDNieKIAxFsw+YQNnCnJ5JsB+EbfuxUNn3dd6JXGeMuU9kChvzHhpPa9MIuebDgWLgayKbDUTdqXbajA3Eja84+qtUAdfsD+b+miPvRsiYoOP0wlQU3wdwb4FaNbwlhcbEZtFtMZHmLDkgiJBalbu4dshpJpjEv8aiTWpVLad0Vm19/LIAVHtg7Tfcissj2I1UjGJ5rllw+QhZVe4XQMWjSww+e90GfZc+A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6eb21c6d-f16c-4410-d5d3-08dc57470db7 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:46.5827 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 17/17] avformat/img2: Avoid relocations for ff_img_tags 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: d9WXJGQD9AoP The strings here are so short that using a pointer is wasteful (the longest string takes nine bytes; on 64 bit systems, the pointer+padding already take 12 bytes). So avoid them and add asserts to ensure that no one ever tries to use a too long tag. Signed-off-by: Andreas Rheinhardt --- libavformat/img2.c | 148 ++++++++++++++++++++++++--------------------- libavformat/img2.h | 2 +- 2 files changed, 80 insertions(+), 70 deletions(-) diff --git a/libavformat/img2.c b/libavformat/img2.c index 06e48549ac..9981867f82 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -20,80 +20,90 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "libavutil/avstring.h" #include "internal.h" #include "img2.h" +#define IMG_TAGS(TAG) \ + TAG(MJPEG, jpeg ) \ + TAG(MJPEG, jpg ) \ + TAG(MJPEG, jps ) \ + TAG(MJPEG, mpo ) \ + TAG(LJPEG, ljpg ) \ + TAG(JPEGLS, jls ) \ + TAG(PNG, png ) \ + TAG(PNG, pns ) \ + TAG(PNG, mng ) \ + TAG(PPM, ppm ) \ + TAG(PPM, pnm ) \ + TAG(PGM, pgm ) \ + TAG(PGMYUV, pgmyuv ) \ + TAG(PBM, pbm ) \ + TAG(PAM, pam ) \ + TAG(PFM, pfm ) \ + TAG(PHM, phm ) \ + TAG(CRI, cri ) \ + TAG(ALIAS_PIX, pix ) \ + TAG(DDS, dds ) \ + TAG(MPEG1VIDEO, mpg1-img ) \ + TAG(MPEG2VIDEO, mpg2-img ) \ + TAG(MPEG4, mpg4-img ) \ + TAG(RAWVIDEO, y ) \ + TAG(RAWVIDEO, raw ) \ + TAG(BMP, bmp ) \ + TAG(TARGA, tga ) \ + TAG(TIFF, tiff ) \ + TAG(TIFF, tif ) \ + TAG(TIFF, dng ) \ + TAG(SGI, sgi ) \ + TAG(PTX, ptx ) \ + TAG(PHOTOCD, pcd ) \ + TAG(PCX, pcx ) \ + TAG(QDRAW, pic ) \ + TAG(QDRAW, pct ) \ + TAG(QDRAW, pict ) \ + TAG(SUNRAST, sun ) \ + TAG(SUNRAST, ras ) \ + TAG(SUNRAST, rs ) \ + TAG(SUNRAST, im1 ) \ + TAG(SUNRAST, im8 ) \ + TAG(SUNRAST, im24 ) \ + TAG(SUNRAST, im32 ) \ + TAG(SUNRAST, sunras ) \ + TAG(SVG, svg ) \ + TAG(SVG, svgz ) \ + TAG(JPEG2000, j2c ) \ + TAG(JPEG2000, jp2 ) \ + TAG(JPEG2000, jpc ) \ + TAG(JPEG2000, j2k ) \ + TAG(DPX, dpx ) \ + TAG(EXR, exr ) \ + TAG(PICTOR, pic ) \ + TAG(V210X, yuv10 ) \ + TAG(WEBP, webp ) \ + TAG(XBM, xbm ) \ + TAG(XPM, xpm ) \ + TAG(XFACE, xface ) \ + TAG(XWD, xwd ) \ + TAG(GEM, img ) \ + TAG(GEM, ximg ) \ + TAG(GEM, timg ) \ + TAG(VBN, vbn ) \ + TAG(JPEGXL, jxl ) \ + TAG(QOI, qoi ) \ + TAG(RADIANCE_HDR, hdr ) \ + TAG(WBMP, wbmp ) \ + TAG(NONE, ) + +#define LENGTH_CHECK(CODECID, STR) \ + static_assert(sizeof(#STR) <= sizeof(ff_img_tags->str), #STR " does not fit into IdStrMap.str\n"); +IMG_TAGS(LENGTH_CHECK) + const IdStrMap ff_img_tags[] = { - { AV_CODEC_ID_MJPEG, "jpeg" }, - { AV_CODEC_ID_MJPEG, "jpg" }, - { AV_CODEC_ID_MJPEG, "jps" }, - { AV_CODEC_ID_MJPEG, "mpo" }, - { AV_CODEC_ID_LJPEG, "ljpg" }, - { AV_CODEC_ID_JPEGLS, "jls" }, - { AV_CODEC_ID_PNG, "png" }, - { AV_CODEC_ID_PNG, "pns" }, - { AV_CODEC_ID_PNG, "mng" }, - { AV_CODEC_ID_PPM, "ppm" }, - { AV_CODEC_ID_PPM, "pnm" }, - { AV_CODEC_ID_PGM, "pgm" }, - { AV_CODEC_ID_PGMYUV, "pgmyuv" }, - { AV_CODEC_ID_PBM, "pbm" }, - { AV_CODEC_ID_PAM, "pam" }, - { AV_CODEC_ID_PFM, "pfm" }, - { AV_CODEC_ID_PHM, "phm" }, - { AV_CODEC_ID_CRI, "cri" }, - { AV_CODEC_ID_ALIAS_PIX, "pix" }, - { AV_CODEC_ID_DDS, "dds" }, - { AV_CODEC_ID_MPEG1VIDEO, "mpg1-img" }, - { AV_CODEC_ID_MPEG2VIDEO, "mpg2-img" }, - { AV_CODEC_ID_MPEG4, "mpg4-img" }, - { AV_CODEC_ID_RAWVIDEO, "y" }, - { AV_CODEC_ID_RAWVIDEO, "raw" }, - { AV_CODEC_ID_BMP, "bmp" }, - { AV_CODEC_ID_TARGA, "tga" }, - { AV_CODEC_ID_TIFF, "tiff" }, - { AV_CODEC_ID_TIFF, "tif" }, - { AV_CODEC_ID_TIFF, "dng" }, - { AV_CODEC_ID_SGI, "sgi" }, - { AV_CODEC_ID_PTX, "ptx" }, - { AV_CODEC_ID_PHOTOCD, "pcd" }, - { AV_CODEC_ID_PCX, "pcx" }, - { AV_CODEC_ID_QDRAW, "pic" }, - { AV_CODEC_ID_QDRAW, "pct" }, - { AV_CODEC_ID_QDRAW, "pict" }, - { AV_CODEC_ID_SUNRAST, "sun" }, - { AV_CODEC_ID_SUNRAST, "ras" }, - { AV_CODEC_ID_SUNRAST, "rs" }, - { AV_CODEC_ID_SUNRAST, "im1" }, - { AV_CODEC_ID_SUNRAST, "im8" }, - { AV_CODEC_ID_SUNRAST, "im24" }, - { AV_CODEC_ID_SUNRAST, "im32" }, - { AV_CODEC_ID_SUNRAST, "sunras" }, - { AV_CODEC_ID_SVG, "svg" }, - { AV_CODEC_ID_SVG, "svgz" }, - { AV_CODEC_ID_JPEG2000, "j2c" }, - { AV_CODEC_ID_JPEG2000, "jp2" }, - { AV_CODEC_ID_JPEG2000, "jpc" }, - { AV_CODEC_ID_JPEG2000, "j2k" }, - { AV_CODEC_ID_DPX, "dpx" }, - { AV_CODEC_ID_EXR, "exr" }, - { AV_CODEC_ID_PICTOR, "pic" }, - { AV_CODEC_ID_V210X, "yuv10" }, - { AV_CODEC_ID_WEBP, "webp" }, - { AV_CODEC_ID_XBM, "xbm" }, - { AV_CODEC_ID_XPM, "xpm" }, - { AV_CODEC_ID_XFACE, "xface" }, - { AV_CODEC_ID_XWD, "xwd" }, - { AV_CODEC_ID_GEM, "img" }, - { AV_CODEC_ID_GEM, "ximg" }, - { AV_CODEC_ID_GEM, "timg" }, - { AV_CODEC_ID_VBN, "vbn" }, - { AV_CODEC_ID_JPEGXL, "jxl" }, - { AV_CODEC_ID_QOI, "qoi" }, - { AV_CODEC_ID_RADIANCE_HDR, "hdr" }, - { AV_CODEC_ID_WBMP, "wbmp" }, - { AV_CODEC_ID_NONE, NULL } +#define TAG(CODECID, STR) { AV_CODEC_ID_ ## CODECID, #STR }, +IMG_TAGS(TAG) }; static enum AVCodecID str2id(const IdStrMap *tags, const char *str) diff --git a/libavformat/img2.h b/libavformat/img2.h index 5fd8ff77fc..e98902c96f 100644 --- a/libavformat/img2.h +++ b/libavformat/img2.h @@ -66,7 +66,7 @@ typedef struct VideoDemuxData { typedef struct IdStrMap { enum AVCodecID id; - const char *str; + char str[12]; } IdStrMap; extern const IdStrMap ff_img_tags[]; From patchwork Mon Apr 8 00:56:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47910 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2207165pzd; Sun, 7 Apr 2024 17:57:07 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVI4DqlD41t7j8QIXsdlQuTMhkwBrblVquEp9KzeQ22QgI8NMXK939BthOuwaXPICXWMW5PI8JSJdAs2xVS1neiYhAyH2f37SPIpA== X-Google-Smtp-Source: AGHT+IGbqq20KlOh71PA5fWUNi31xY2Euf4NJB+dlesIEjCKr9tmh3Q1NIvCD1CDTUlXs8QKkV8i X-Received: by 2002:a5d:634c:0:b0:343:f662:1916 with SMTP id b12-20020a5d634c000000b00343f6621916mr5422474wrw.17.1712537827530; Sun, 07 Apr 2024 17:57:07 -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 t11-20020a50d70b000000b0056bd9adc7b7si3137050edi.525.2024.04.07.17.57.06; Sun, 07 Apr 2024 17:57:07 -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=gsA2ssfm; 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 0124368D247; Mon, 8 Apr 2024 03:57:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2062.outbound.protection.outlook.com [40.92.64.62]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A69968D084 for ; Mon, 8 Apr 2024 03:56:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CQbZ6A1pBSELTXD/HwixBuUhqBZVU1E3ctTub3EJXmaVLudhkM4OwT7nFyObywAqc4on+rbh6xasSgw4/Fgnerwk7EsNBMe1sU+WKrJMpGxy7HZ30k1vHEI8znYYy0HWSmhYRQLQrozc6V2IwvYR12fg0Gh8heqKlQtxji8rdzjtUinJtKmepB4p2XfSf9YNMopLCg4WbamQyrB+2HPav6q7OmGlLxCR93Bu6npIrPEFgcXyEWaCEeSNS1zO+Q6hjmizGFih1KO5vKPzZu0dPlorgrIfW/dstIFEJLOtvNRciZ81Ep2CnucnfsUCSfZXwoqYqbdlLTWDNHVRzUWv8w== 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=rAzmltiUPwLtWQQc93bUpWLqIpTvjpihC7QgI6iktNE=; b=HsFn9801KMYhzx6SiLe9dCDhlbg7FoZARQAkboI96jkJL/WdPG9xDoi3nwdwGbyFrxXYHr8Jy4+G9zNWvO/Ax5qPa2sQPa4inwFJ1MEVno6llJ2tvT24JVPhUc81Gllo/d7mXE5na5bEO5/rUXZdzHVDAjz1YXvXR4r79jSan+tlTFIjtu998gCi6/hVNiBQ3+pqbsll/LdjzSa8LJGABlX1lSbYbwMwpaET3ejwaBL4AA21nX3VSETVdYVN62R4Emp4UIylHAqjtGJgxgTbdW65GkmQQ3wckKBR22o6AyUXEl1mxpPTTV4TBsaUrtMxQ8Q5Bh8ppcaMOj/bVXDSug== 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=rAzmltiUPwLtWQQc93bUpWLqIpTvjpihC7QgI6iktNE=; b=gsA2ssfmJhIb/1yPLVdzQxdzNhl2d/JQyWyqRkFttJD2UFj5UHHkDfDLDxGefVvWdxciyJ2P2Wdns7iN8kQj9rdTgCdNtz2Z2d+GGyVwZGZAJ+emXSCzD6qydkzbYs8BL88iXtpHJ3yWZ5ZWGeow/qVX5v778UH4NP+z3NA4jyMXI9FMNb33hPYRLFrmjbwUj0Z2SN1w81kQDDBRSJpXiegtHr3QdzhYDhQLjyrxlxkp0r3tZBWMTPrFL2yLxoldl4YJLbdMpyK2ctPt1iM4RSPkuLMp/U8d6T5erFAT1AGaMCwPym28ZYObaqefCbe+rTpLaf35GHT9yObhprz81Q== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0394.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:358::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Mon, 8 Apr 2024 00:56:53 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Mon, 8 Apr 2024 00:56:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Apr 2024 02:56:45 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [e2US+cAQ/yNqq7r/fPRfjkhs8CgfLwhKI4iX4S7YqJ8=] X-ClientProxiedBy: ZR0P278CA0081.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240408005645.1086891-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0394:EE_ X-MS-Office365-Filtering-Correlation-Id: 82579411-3227-442d-40a4-08dc5766c77b X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3eyaG9g27BcxCgjH6kjw5HO3dwhqIpkkpr8ujFU1F+NHUht2NIvbgFbwYre4oflj4Bv3eIw4hFCD+qUe/weaMuvsQxITfmiEeIouKZOHXHmD6WLKw9KpkdgqweW3u4w/ajB/OgyP3CnzXlmT17uc9m4S20rXdoKmlvaAwDLfPUeO0XEK/VPGWIn/i5biyLWP8g5NSV6rgmCgpov1bu3RXi1creHw+ivurHKcu0wSbmKXh3ikuyi/MZzMcBcj1WPzc3iDGU6iaFhk5bqfLnSrQlcTIWm88K+LmF5n/jE3Bfg8toZ7rCtBMRTsc2lQvVJPOt5Orwcc5w5DSENFTm52WjRNn7NNI2b5TL5wFlhGRGB/twyclzZEQHhQFcBtytVSJeEiHKd9tqqso/XA+9Vr77w38K8w3MB69Vfzch93LFUxbo1wrqvVb6aBaJuMdMMp5dNX9H+3SJFp1JcEe+hpcS6+xagsF9z65D5Y2774iDqo4jovTwmf3Ho4cJ5zoR5bnfCTszgAwQsie7GFh9J/dAbDeQo+Xbi/GbS6yQ6AACh7YLsn25/D4LfGuTbFp65NO+s6TKNOS8/XcX8mtHVIFKjY44oKebzltpew7jyWgYe63cuZv5oTIjkcpDsR2zBZ/BTp1pQQ3S/w1gDbFa2XWLIEzm9F0PRFyRIUVwRnH/XrriLLlXwTaOJVhaSV/4PkSumirJaLEyh5mSpKnwDpObQRppLFL0EBfnegO35ZYX1+qWePXh9WEHbI= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /Xu5AveDZnUbXyNWNBsDwF9Ek1OkcjjaXc1i6hpIbARGIZvp1KDC4ecrlP7dVVOWKHTkxvWmcce/5KsQOfe++93Pm4/kb266bujhefuGOMpfuFG3XZ0PheRpqehuiMz84UuGiLJ2deCOkgbl1pEFuDtUWzRq5bYi1GN2wgtqTav6UvZjImcaDbWfcnKCdcNo06bhGj9pv0NI4uXZDe6RrU3POwWJImVAw935hDoNBqOVEQH+ZWwsEujfUOlfxZ6mRfrkaFKFgsr+TwoiVf54DyyCCesHZw8H4XjY9tLFuIgltq9Wc2nLNqCfzNhTUwssR3ChaXA8VLCUXC+BGR2FszqfVXW7TOLPn6xBSv95JAg6Eco9/JvsZnTfvenVgef9EIgD1wIpXeebWexWRkAEnOxUKfey2/0hEUWDZnwy2ij0tuLBOOJLXFUJTq+JEEXt0ICsL+XNOW9+aUA3ch0CwyGOrmdHmRWd2406FRgsZ9FuSgm5icU3uVjx/Rs+/Ls+1Gxyfy73eW+S0CFp1W4e0WRqFT1rMdU8Mk5mMgSpajD+/Bz6pME4FtfqPVKUAFBswWCT00BmGxKh96VuLrBqu7/1Lsm9Ui0gJ0B00ov+fpZdC0gLuRFOEpPVW9uXCu9y X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e2MgryNdXLakunL/ACuGrRGts4BOqsW0jYTsHREGcY3/I1F4vL8N/YDi5F5vLwFBClGTIUJfgeouU0bM6/gZGhqoQHD/AqaXuButGXESRnQRN1Uz93eI10QmgfznG5gdtt3Y/1i4tsVpasW+IlbhGHRmdQBaiR2qqlm1wQohoYiSa5wwQLomCQBO/zRUsP8bXeeBntIMU0+HOqxsOW/oSFlR8r9wNkujGyKuuvOOM2hlNfzr85PA/BKwIgJSbC+1AmmMiVg2o9RxQQEJnycYe0P/yqcid72NO4ybdC+4GC7TvaE4kFSXm4JFA6TqIDseG+nwkcSI09Yi44BZj0zBb7/Q4v9U7BJHislvQ4ZcqpJxK7TAOIphw1RYxXZi3ZH6RivBzcdFIMPfRRyH9GAPhm7FPfJkQF2+3rSYkJUJzhXRRkAVAs2dzS8nRAfjz6Kjk1/ALQh3ZYBe9ufl6q5SbQ3HfhRSDF9XTkUUzrcl1Zeab5vStdjAUTpn2K30WkjNFjCGJRSh+htllyLTT0VdYgKUahoEwhaQDLGnbzapggP6YiSuQFWLDfhU8L1BHSiGwJWb951lXzcOLQG2yN/QGpLjiNO65BrFdk+syZGIn5lfO4FSVEalHtXV/wvx+OlrOYoHN6N2DWpIo1zM+z5rDLebQD8Z2/0N5iU4QnwnOxrnhWt0j7mNv9wGZRdfIgQeDGyU9+OZwwj4cRaDrzKSxk8t0mvN6cBrqWwYX5VuGEbMqxY2yntAik5JJ0hW45t5Z0QZ6sXu6W6ItkwpLCnzsWEXK59UMOWEjYrp6p3a+b5T7DDdV+7oc2Ai12SwjabqpkfEj6EneXOed6j6u8jfC6B0+Pk081tqXb0l+Kcwt92XmHI+aYOd7msZpbJ1S1BtDrVm59PTU0c3SgVJbTryjJi+D4dzw4lcjctrSuLo8KxUGerMSlZOTMzQgKyiwbi2RZyVvcj4rciZz6QS2ov9W27X9CoWgVMtUE1eq0cm5OXljeEyNly8iGhlpptV5tW7jZs+QLRz5cYIamKf1Wl1NOwzcudKqyrPIONrLPd/whrwRRwZ4Vg2xB+sa3YKD9nvl0F7M26JIIf4pmPoXkrGLb+LLU9AJRfA/KKQDttWjTZ8BV+Z5QofWIdr0fggwceSRQoEd6zjxApWlQGtoF6Zm+RhhGgplS5EI+5iNek9yCbnFvohhRZnyH2zl1eU6EaXXpYZ53rTxQRDeAQBlr3vNYpDFDL8jnfewzqc7Wnc+pZWi9fIhX6pSLTXGOcpQG3xw6b1Zs3Pm/MIF81S5EZ53g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82579411-3227-442d-40a4-08dc5766c77b X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2024 00:56:52.7190 (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: AS8P250MB0394 Subject: [FFmpeg-devel] [PATCH 18/18] avcodec/ac3enc: Avoid calculating the CRC multiple times 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: wBCeti2ZPe/r Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index f520e72fc0..49b0d4b956 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1942,7 +1942,7 @@ static unsigned int pow_poly(unsigned int a, unsigned int n, unsigned int poly) static void output_frame_end(AC3EncodeContext *s) { const AVCRC *crc_ctx = av_crc_get_table(AV_CRC_16_ANSI); - int frame_size_58, pad_bytes, crc1, crc2_partial, crc2, crc_inv; + int frame_size_58, pad_bytes, crc1, crc2, crc_inv; uint8_t *frame; frame_size_58 = ((s->frame_size >> 2) + (s->frame_size >> 4)) << 1; @@ -1958,7 +1958,7 @@ static void output_frame_end(AC3EncodeContext *s) if (s->eac3) { /* compute crc2 */ - crc2_partial = av_crc(crc_ctx, 0, frame + 2, s->frame_size - 5); + crc2 = av_crc(crc_ctx, 0, frame + 2, s->frame_size - 4); } else { /* compute crc1 */ /* this is not so easy because it is at the beginning of the data... */ @@ -1968,16 +1968,17 @@ static void output_frame_end(AC3EncodeContext *s) AV_WB16(frame + 2, crc1); /* compute crc2 */ - crc2_partial = av_crc(crc_ctx, 0, frame + frame_size_58, - s->frame_size - frame_size_58 - 3); + crc2 = av_crc(crc_ctx, 0, frame + frame_size_58, + s->frame_size - frame_size_58 - 2); } - crc2 = av_crc(crc_ctx, crc2_partial, frame + s->frame_size - 3, 1); + crc2 = av_bswap16(crc2); /* ensure crc2 does not match sync word by flipping crcrsv bit if needed */ - if (crc2 == 0x770B) { + if (crc2 == 0x0B77) { + /* The CRC generator polynomial is x^16 + x^15 + x^2 + 1, + * so xor'ing with 0x18005 does not affect the CRC. */ frame[s->frame_size - 3] ^= 0x1; - crc2 = av_crc(crc_ctx, crc2_partial, frame + s->frame_size - 3, 1); + crc2 ^= 0x8005; } - crc2 = av_bswap16(crc2); AV_WB16(frame + s->frame_size - 2, crc2); }