From patchwork Sat Oct 22 13:59:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38911 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp1302504pzb; Sat, 22 Oct 2022 06:59:41 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7aumACCDz/arIK8DeWSHKSiKIBEaLOJ6qmeJ/ZF46MYrBy+NwR+F8xmtXwmiOmq3wn4KNb X-Received: by 2002:a17:907:94d6:b0:78d:f947:7cf5 with SMTP id dn22-20020a17090794d600b0078df9477cf5mr20056220ejc.446.1666447169139; Sat, 22 Oct 2022 06:59:29 -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 n13-20020aa7c68d000000b0046168e415bcsi2184706edq.211.2022.10.22.06.59.28; Sat, 22 Oct 2022 06:59:29 -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=cB3Kf+dg; 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 8ED4968BEE0; Sat, 22 Oct 2022 16:59:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2017.outbound.protection.outlook.com [40.92.91.17]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1161268BE09 for ; Sat, 22 Oct 2022 16:59:15 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TclVLeVfI2qpYKMmzcJL1JTzHegNKQZtuEeqau3dKlCPdvhySqjD+bwc8ihXZTjhTBtVF02iJdVH15KRoO8nbtHaDnhPKLrQzl3I51iCt1U0xa2/ez9QzG5aWmH9p6G1hD1viBERoU63UWCNKJ1u6DBpY4IhPj6OGaUXcSqJr/eDa9r0pqCugFuft8l4BLoC/ICXk1M2JqIqRUDe9evlfOoNH1xbDCxajdSjjKQnzVlyRNATwWtHCA2g+bY41kt5DIsmq59A4Iw8Wx39mL0dehlMrOInZbEEwSZJHnBHMRFZyc3PuXjBVCGiTr+8ismB1hcqOOjotBDpgEHLMLk2xg== 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=mHazZsxzTxgFsR2oEwnW4RHWld+6wqY4ewQGdOk9VvI=; b=NFdHym831ZR2vMOT/xzkbG6ViJN12nlSZAqyOfohleJ1VfgLjHiiwdbgkxpkd4mV9CkgqGeRAfc7i2qXugKcJRF9rFAj2JgEWSlqmXs75DsVzUeKlDb9Tby25d6VeCUtiIDVtnmuY1QAMHS4fY/E19/B4d8T4VaAj2hVH7B099k4GMDdHRFBlSplJmkBd+kKegcUsDYayYPrdnRX9Xg4PgIbiqHZqlPHK7ui4cCXDWaehUvNByl1rU61bgEXB0d50MTNckvnBGKAOreVydkXgv9wQ4MfSeo/3t/WON0V0YoIFn4s+gIPWA2e9bjdSI1sgZ3J5nl2Kio+VUaTepRO7A== 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=mHazZsxzTxgFsR2oEwnW4RHWld+6wqY4ewQGdOk9VvI=; b=cB3Kf+dg8BXUUaB4QwszMhkDtURZirV+Vrjolg6OJCb/0j6Naq2Iyiu09yXItdOVDdG/8oQF/DnjK5H5Jt8PvOIsyIn5febZbYSBIOy9iBvsyipz/+imthyukX9wLECn6bSeBX6EkrU52M9aWXxZxKMJF7CdVD8zvLGP26cpTeul0hCAdFcUpK5j33j4YHvlVMfip3LOiF75/orPayKXEfiDL7G0lMeHePVCQSwxXC4OTMvuTNOTBvTyq9OLPbv7Ulp/P011D/druGKW701Hv7VPRM/QXLX4NMVutkdeCPraygVb1vpsMErVGHsfC1DgLo6ZN3DtwMpueLZL89f5qA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0268.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.21; Sat, 22 Oct 2022 13:59:13 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe%7]) with mapi id 15.20.5709.015; Sat, 22 Oct 2022 13:59:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 22 Oct 2022 15:59:02 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [klfASG7LE2YGYhBwQVGkHGbiM/dFAqq2cE/DuBuVW+4=] X-ClientProxiedBy: AS9PR06CA0368.eurprd06.prod.outlook.com (2603:10a6:20b:460::32) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221022135903.3949890-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0268:EE_ X-MS-Office365-Filtering-Correlation-Id: 7df76e08-86e7-46b2-90ac-08dab43599db X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKwCpSu33t8D+CngGjAPqiYXdaPDIaC6CIxVu8dE52cAZ+caTjmkN6L9tewKT63gTK6OE6tr7GsXC1P5YpzXvBnaBcQSXAXYpDY1Q2CZheaoQM+sSBUvFWMp1ydEtkbM9X3Luo7NS5TTQhngTdlYxw8w1YaNVUCLPQ9zgsw1YkGB7p4qREgE583SoxwfDJrlv/oTWfG+m1CWpvFtnbzzkBnxv/WPA20IhukwzHdGCAd1XKpxZZTbouyUsHUVbiYTABSTin2KgupzIz/KycbORqAfa821A6yFrosJBoAMdlv7rl9B7mZ4JFM7tAlXTtSVjOXyyaa8Q1PQ6Yw+AxT5hq3zX24x3rpx9RvzaFSgP0XzXCds+M4oFkd0TrBRM2FgvvNzoJvegVeCsjiOmtRrxZYvQgTGUFf6lF8F1i82kBwTquBk7Q8Iegf08bZmIqdbix+MoDUoRvBU4MmWgTDBmZf8mDMNUxDzP0bJy1WFCHqeAyl3Ux17PVB0kkyVu6oCXClCN0B2nBRqcVSZvZ69SHUp4DUZs0uUQM3vOhmau4ZeWqkLRmAQlGUblNdqACErz5DGtAQLxZvx8+K/XgHNDgv1nHFqyR4vJeeremoGFY2kFafy/RG1ZP/myDhJp+wLzw1foE2ZvoufTAGY76JA9fXa37bFenrHIBqim79UjuWJshcZZ1GhRvqa3AyT9l0FbbAjqaC+izr0EVU9dbqjPjJpU28I/ZY4qn4= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JBSRE3eA6y51k+jWSEkGWt5uK6P2R+34shH37Zz70SETX3HRmk0zxeqSj/FdP0P8YvT0MHcFaSqlIlRKev5SwkwblCS9GACm57thDi83cTSYBbPw+bb9k5CCFknVypAjUpnk5/IO72ofCahWVPvFr4YsMSZ77YsRGA4P6jygDv65iMqzqGuNUuniyCOpBiv8hK43cuSY1LNqFIJqG+S5ujlE/LHVFYyuB4k8IA7B56a4UkMkrbh54DqydDxaZIOXfzcsR/Uxddsl7yMXTbtgNmnaDEOHT3T2Kzlc3hOqJ3PwcmzKS3IijAn5JvMCKo60oadfvBaIweRFnQg6DjG7zkFE6+JBmGxp065Qs0trdIBCHw36lGbRHrmkNTJhVVE0bMT+naPh4HON1XAfbsKWSKxsQLw/uTLtCTv5ACNYjv1w9cQT1y0zkSDI1UaSx1H5i+2+h8IC24Xv9MDQGHwsC/1aFZh71C4gsbVBKnGcFgPxYKeNG2yq1z0cZAmINf7S2qcZrZePUNeJt5trSKnTbygLwlt5cnBK0XczS14IbzY3ScigmuSkD9mTsbxrszNFGNnO2Ga5K8gRLROOVScZDfUapVm5Tm+1ac8S1jmf89qfauyeiUDF24Nrx+qMN0TOCbfH2wyCIlqeoaEzNwUG84MgUVz05dBbpGHhGuChfkFrzArf/OvFBjg8vPRFTXoW X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uhf0yyleXhcrmIp6s9zMP/VHbE2S3z13xHSbjaTequUE7+nbrYHaR9dRJNk96/KkY1YhmVwR61v6Ex1fzyWdNOqqgCDWRPG1VmZKQOsedkNBsK1yLCJ8UtQdETlkSLFiCsrYidnqcB2m0LZ9q35nwvgQ5CshwtPtxmq2uxRZwdGFymmX67GhkrW6lIwCS6dzFTsaoh3W/TVmJYucYmfPIMsDkcW6P4fxQ9hC7J46Qqx/UexnOutUG+ocRl80ZQp2St5TDfnc6LI5GnTWrm7AQ6gbR5XGWEYq5BEnOSD8qToo84hVAVn8B5qtuWxo0iJemcp+sO3kTwr6MnZicx3S0mVQJ/CSOCwV7Dxde5CIyapq6W5Fq5YBZSFHRGHZcuDA6G6vxRF0aTWJzHOO9yDBMWvf1IO+TZYxroKMW5BtiAxUNJQ7iEbk3jFPfNEm/ObrXgqLDYz/jjy7ccc5D9J4cbhXCPlbpJPeq2PAtA0+MukpwDEwZImg0gRXacEggZMuR6LQvD8WkM2rEeEzzHVmlycGmSWD+oag3JYcSbrR6IGTJ0YGD5Hqli4EaulYd4XktndsVXRRnMmGFbwGQ6Xj0/3cMe6/2OgliWRdzGrQg/C4ZjNa/NruXJFx+tNA5TB281i/ffInH5EGS9i6GvtkflnCa4rgAojayAk5F/gP2xqFOllNFrKOe3SsyM77OM4/aDqlEdMys1Q7i0JIciNe/DRmqO9TlKZb4ZC7JIh3WXmkFKIC9W4OrRQFYBoh/fU1XD6QAgx8c2x9DzuPVbNCGkq+0pb90auKECz4NW11TXse83AWXMl4b/YkpC9TaY060VtFuTGejITx2QbClDXWGlRcY2DBCXLec+38+rSAC+hMcXFE3mE6jlk6TCWAIW2C18OhBQvhknDm1TjNfbfWHKJLlU1XnHlEsDBe0aZ9Xaozn6gzFVQdO90OaWaxy+hVq5cal/B4BKxffjOygcxHXPJReht9tokGFGBC3vR7CsNHlWGTouyI1gDSQGmPu4RJaeG+NnsfqwO2tyj1p6WCeBhfns+YDJErH63jQGiDHa5I/VSQh8F8GY70ghWHFxnAlyV0nNkMtcyptf96Xq85NbNTNDTaAFS56ZgONDcoOU5VLJj0F7so10RoOXtwlhmAE8YoPA1Cz/V6SyeDqKSOlBPc5cWIUS9fyRzX0ezmshohVF+zlbEFymldvWc52J8tN66d9XKQHc6HBLobQnNPyS4cgiEAwEgJuS5qJLlGNlvpPiFndWpIy2WaO3VMOfNJ/GN8/ox3Ma5ypTNNyIaQNUMt2HqsPPaMo+ZyAtYI8krZ+ohiMEwDVe5EfAsegjuw X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7df76e08-86e7-46b2-90ac-08dab43599db X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2022 13:59:13.5946 (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: AS8P250MB0268 Subject: [FFmpeg-devel] [PATCH 4/5] avutil/tx_template: Avoid code duplication 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: Qc/fOWvWq5ix Signed-off-by: Andreas Rheinhardt --- libavutil/tx_template.c | 76 +++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 49 deletions(-) diff --git a/libavutil/tx_template.c b/libavutil/tx_template.c index b44a6189cc..c15dc2ea27 100644 --- a/libavutil/tx_template.c +++ b/libavutil/tx_template.c @@ -27,25 +27,28 @@ #define TABLE_DEF(name, size) \ DECLARE_ALIGNED(32, TXSample, TX_TAB(ff_tx_tab_ ##name))[size] -#define SR_TABLE(len) \ - TABLE_DEF(len, len/4 + 1) +#define SR_POW2_TABLES \ + SR_TABLE(8) \ + SR_TABLE(16) \ + SR_TABLE(32) \ + SR_TABLE(64) \ + SR_TABLE(128) \ + SR_TABLE(256) \ + SR_TABLE(512) \ + SR_TABLE(1024) \ + SR_TABLE(2048) \ + SR_TABLE(4096) \ + SR_TABLE(8192) \ + SR_TABLE(16384) \ + SR_TABLE(32768) \ + SR_TABLE(65536) \ + SR_TABLE(131072) \ +#define SR_TABLE(len) \ + TABLE_DEF(len, len/4 + 1); /* Power of two tables */ -SR_TABLE(8); -SR_TABLE(16); -SR_TABLE(32); -SR_TABLE(64); -SR_TABLE(128); -SR_TABLE(256); -SR_TABLE(512); -SR_TABLE(1024); -SR_TABLE(2048); -SR_TABLE(4096); -SR_TABLE(8192); -SR_TABLE(16384); -SR_TABLE(32768); -SR_TABLE(65536); -SR_TABLE(131072); +SR_POW2_TABLES +#undef SR_TABLE /* Other factors' tables */ TABLE_DEF(53, 12); @@ -63,7 +66,7 @@ typedef struct FFSRTabsInitOnceExt { int factors[TX_MAX_SUB]; /* Must be sorted high -> low */ } FFSRTabsInitOnceExt; -#define INIT_FF_SR_TAB(len) \ +#define SR_TABLE(len) \ static av_cold void TX_TAB(ff_tx_init_tab_ ##len)(void) \ { \ double freq = 2*M_PI/len; \ @@ -74,39 +77,14 @@ static av_cold void TX_TAB(ff_tx_init_tab_ ##len)(void) \ \ *tab = 0; \ } - -INIT_FF_SR_TAB(8) -INIT_FF_SR_TAB(16) -INIT_FF_SR_TAB(32) -INIT_FF_SR_TAB(64) -INIT_FF_SR_TAB(128) -INIT_FF_SR_TAB(256) -INIT_FF_SR_TAB(512) -INIT_FF_SR_TAB(1024) -INIT_FF_SR_TAB(2048) -INIT_FF_SR_TAB(4096) -INIT_FF_SR_TAB(8192) -INIT_FF_SR_TAB(16384) -INIT_FF_SR_TAB(32768) -INIT_FF_SR_TAB(65536) -INIT_FF_SR_TAB(131072) +SR_POW2_TABLES +#undef SR_TABLE static FFSRTabsInitOnce sr_tabs_init_once[] = { - { TX_TAB(ff_tx_init_tab_8), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_16), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_32), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_64), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_128), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_256), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_512), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_1024), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_2048), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_4096), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_8192), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_16384), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_32768), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_65536), AV_ONCE_INIT }, - { TX_TAB(ff_tx_init_tab_131072), AV_ONCE_INIT }, +#define SR_TABLE(len) \ + { TX_TAB(ff_tx_init_tab_ ## len), AV_ONCE_INIT }, + SR_POW2_TABLES +#undef SR_TABLE }; static av_cold void TX_TAB(ff_tx_init_tab_53)(void)