From patchwork Thu Sep 28 21:35:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44006 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:394d:b0:15d:8365:d4b8 with SMTP id r13csp155274pzg; Thu, 28 Sep 2023 14:35:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEpyob24Q+9YPT+4tGh0XhIrZhjpJF/W1A1CBBOEJCRSTI62X+dzi4haHPhOyj3yruSM69k X-Received: by 2002:adf:e9c4:0:b0:31f:e86f:cc12 with SMTP id l4-20020adfe9c4000000b0031fe86fcc12mr2257144wrn.41.1695936918293; Thu, 28 Sep 2023 14:35:18 -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 gb26-20020a170907961a00b00992d0de8763si12384315ejc.910.2023.09.28.14.35.17; Thu, 28 Sep 2023 14:35:18 -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=R6rtxx7C; 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 702EB68CBC2; Fri, 29 Sep 2023 00:35:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2032.outbound.protection.outlook.com [40.92.66.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2BAF568CBAC for ; Fri, 29 Sep 2023 00:35:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ej/En4esitMpuuG+FbSqC9FY5zs6DUE9muvI6lUorAW5lgo2hAwgBRK1PF6umDrxk956P0bffxp95js7+pk5RDhM9q26f4IrtULZlh10y77GVCu9ScCHBSMHMfG5QaZhtnvlZ36sXTqH96AEvPY3daO2UyJ4h0OR+uMMTJj95+Vcj81YrrZUfOf8zfkiZ7gjXPSTH1AG5kA/Ik2AzDnGzZMZEz1/6TEhs8H+GMHL91cnEu5g8wxNDHNdr5mA3PG8w4Pq3UJGH/a+G7jsqpjha0wQUPi7vxwocG1GrtTK1FYnZFTxNJp1ibB2IgZEV81Yd+t7I9fdGZJdVnpToKjfHQ== 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=zTAG4GqUpUdxpYeBcoCC3AKspj+CmA7FfctmO3DYrQ0=; b=cQL+1mm+SOe0nlsCbR7kyDWdDyDKMsZ1/R5TKwR5u090YvFh+AfAxDd2GL9VT8FSYK59V1Lon/rwFKrF8p+rmHKCmDHO3BOXY9PdEQWgfAPubWIp4ucwUFOhyn04s3IRTOWOJZ2m6SrKzAeuTEWn3qs0X5HAgHdmRWtMmaVtJ40CwtxKsQAFAx6ua72B7/CLhSPQccMia3Lqi66nrZ2nxYdkfNgPucpqT7IYRUGXzXXkxxFvHnSSbpuLdRygE0l2FoDsIsiRx+vMAW82EpcKFwgtmKj2980bBPyacOihVjlm0aZClERqpbwjhPgc+pLYCTogDA2RgQpSb8st4Dhm5g== 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=zTAG4GqUpUdxpYeBcoCC3AKspj+CmA7FfctmO3DYrQ0=; b=R6rtxx7CxgqU1VWFZTxaCfOeR7+jcvRFhccMRgjkoOMoLoGVM4M/+vj8N9HspFE3+PGuaIsEIsKKb+Z8aDItAwuDpCHSsQfWslc1UfzdraVFM0dAJbFVDdXujbQquH3W507xHG3jNLgWtUqkfyeza5FAfE3C6PH5NX8/nE0ygvUd6EwJ4zkiG+8nXqkpsZ7ep+dYciloy9aVwpe/BE6a5ZMFaaUgkcAMO3um0WemT5k6HeywViOHdlcBUs+Y95QWE2EvLNo2fUu+QsvHOJvCO3orULSe1KEr15bmtb6gZMe2kKckhWh5w1D1xz5qLYWNWI+vtzmYIhhm/cYOh2pwEg== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0145.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:272::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.22; Thu, 28 Sep 2023 21:35:07 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Thu, 28 Sep 2023 21:35:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 28 Sep 2023 23:35:38 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [cQJABUZIuuufCgSF1x6C8jYULuE2az1y] X-ClientProxiedBy: FR0P281CA0191.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ab::14) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230928213548.1219863-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0145:EE_ X-MS-Office365-Filtering-Correlation-Id: 5cfbc6ad-b971-4ff1-6eec-08dbc06ac91f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 084SVEZL4hwESIKRNWnCv5BAhcwEd0jNHf3Y/1y/jAZSGWIjmJiqWSEYLe3dyli6zwvCCEVtFeaejbgYzxMGBqhWGnp/uFRW/jvZ6R7pVK929GS+yVuZoj4RYvaMW8o3x7Oaew3VMZgHPKPUi/t4c3jK8uTGzVdu98L251NjVpB3Hro4gzP6nYVHbGX8FC5TaxAo1CkY5gGzCKkSH6YO/NHhcgURH+EGwx4ZNflXlIwWPEA4fwTysDIKrB2rah0gA3GGe3m1p7qsbo8zm6FKFO2K5ZsRk9/3AE5lT2nPjaQgv7OvPejMnvDpHPLnHPwJYXPXH+CM4qgCKHOwr/iAKd5bl+aB1e+oHUqXkK7VohXhXDkURFF2zz+JZuJJPBXzt4dEpMs5hmyJbY62+6UsRclxxy/RKWJ6Pj48VY7/qLF3dU/+HabTFIhY4LHJw2ANKFRL4ZaAjnxTLwYXSvYInuTzaDnLI1uNDRmEUYfP6Nj6iXhGpZi1TWgtXNEtaDDLhTBkfgYXmVdamczkqw3mRiKUvFujF4c9ihR0EgwoV+MQ4o6zBg4/rKIAEEPy7JbEG9UuOl4u3TooQbZllKRh6Ee2S0Bx/4dH3kIaxjpqQ85H7ejmN3me1x9Sw0CiNR8r X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HOwzxtGFZNtaTWCKI+2tumyjsWxek5Ya05jVlSniI8HIo3jq/lohfQAU/eJKgwECxApZYfY9RpVTRvaTc3Ega+nRb4GAnoXyr3jO8SKSGDBxPTd/liSGL8VOswm4F9v4V/Aqz6LaaifajV4FK5/WdocS2iT77647RnacRfvW4PYX6l114NLh3NjR235J2FOU3tfASjzPWhzXCPF0aHnAKulG52lE3xg8SCibFyf0IWE/Idu7N/+mN90GO7WaZQzFJq1kutm5pEGB4J14B69vnJeI/hkNWrhkIzp8WhD6xBehGspPg27HCMnKYl18P/yu6ohA2/6f71jSpOgg9RfMdgjZRppDGtVq0Dl6PrXPV4AWZVowRwcNbocZe0nTTXiQAVW25zcribaW6mNIgXhdFBKSD5DbvOpsyF6ztw6Z9KVVTl+s3nbMZ+q4d/XXL3gnDrswbD4ncOyy6w0deAQ+3GFNLnGAN2kCj4GwgYPe/rabkUfd3t7bHKWmJ6Q5aXSItAW96GCwg08EDEzOWhL68leaSa331eQjtSbSyMilFOKBMvcgOu0h5pw6De5jni+Sa8wVmz95XY9H+0YJOyRAEStkCgk4Oqj2o8YGL9qgutiWq6cANDdAOCNTkL8hrGlCjLXhyB0j+N3nUgB2zxwhxNsyiV/eqIbAJ3wylcHWupzXB7CsM89DIJnefcVR5qzVf/TTF96sINgZE7UhxbOf8tH+TOzPd9gwitzqOaJeIU+C4EVQph0/kDbRS7MzalYvvfftiGdFvosr8WAsH4QTFZnfFVfeIjzyoHT5HuolJuRAJDXkWq0uheXQDlnINCzgtd9HhIsW0YkuLlsdppzbCqfdN9PEI+h4QEG9bTkubJsGas+kE4Zx8vUQP4XpZGxdeHabHDOfEHxocnEZ3nVCzQcXlc7Xua1p8x92F6PiOoNn0WVi2jClz1j1+NF+N/5g0ADWXK2QeFuwxzZb1hbvhL0ON3E0ptCRNvkF73P+TEYo/nWtV/7GDQQBy2NjJHZw0D66c3dRW1vU/Fnv7f6hSpVNJ+DKPlY3eex5uMECm6dCzFJFmFxFrGLw/z29QFW4Zn84uPB2wwfgiGjNeuw5muSFLVaKG7Cs9wOfxPKn+eG60I0jbImrpOZNFM+8zuCmcNUjeBe2Cay4PSU12HJaGVDx/LwSWniFqAM/XMcebMLim38SHbMA/oiqABbJrEIJXrpVEYlAjhEIkzcAKzFPtmc+rclya9lDf6XUI5NKkgM7gvkQTtUgIPTOF8JX95Ni X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cfbc6ad-b971-4ff1-6eec-08dbc06ac91f X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 21:35:07.8574 (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: DU2P250MB0145 Subject: [FFmpeg-devel] [PATCH 04/14] avcodec/mpegaudiodsp: Init dct32 directly 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: x1pAjkQlL1qk This avoids using dct.c and will allow removing it. Signed-off-by: Andreas Rheinhardt --- configure | 1 - libavcodec/Makefile | 3 ++- libavcodec/mpegaudiodsp.c | 6 +----- libavcodec/x86/Makefile | 2 +- libavcodec/x86/mpegaudiodsp.c | 6 ++++++ 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/configure b/configure index 28f1753ecb..f64086186c 100755 --- a/configure +++ b/configure @@ -2790,7 +2790,6 @@ mdct_select="fft" me_cmp_select="idctdsp" mpeg_er_select="error_resilience" mpegaudio_select="mpegaudiodsp mpegaudioheader" -mpegaudiodsp_select="dct" mpegvideo_select="blockdsp hpeldsp idctdsp videodsp" mpegvideodec_select="h264chroma mpegvideo mpeg_er" mpegvideoenc_select="aandcttables fdctdsp me_cmp mpegvideo pixblockdsp" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index cae2e773a1..0a3a8fcdf9 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -134,7 +134,8 @@ OBJS-$(CONFIG_MPEGAUDIO) += mpegaudio.o mpegaudiodec_common.o \ OBJS-$(CONFIG_MPEGAUDIODSP) += mpegaudiodsp.o \ mpegaudiodsp_data.o \ mpegaudiodsp_fixed.o \ - mpegaudiodsp_float.o + mpegaudiodsp_float.o \ + dct32_fixed.o dct32_float.o OBJS-$(CONFIG_MPEGAUDIOHEADER) += mpegaudiodecheader.o mpegaudiotabs.o OBJS-$(CONFIG_MPEG4AUDIO) += mpeg4audio.o mpeg4audio_sample_rates.o OBJS-$(CONFIG_MPEGVIDEO) += mpegvideo.o rl.o \ diff --git a/libavcodec/mpegaudiodsp.c b/libavcodec/mpegaudiodsp.c index 5a5a679d91..0971c28734 100644 --- a/libavcodec/mpegaudiodsp.c +++ b/libavcodec/mpegaudiodsp.c @@ -23,7 +23,6 @@ #include "libavutil/thread.h" #include "mpegaudio.h" #include "mpegaudiodsp.h" -#include "dct.h" #include "dct32.h" static AVOnce mpadsp_table_init = AV_ONCE_INIT; @@ -81,15 +80,12 @@ static av_cold void mpadsp_init_tabs(void) av_cold void ff_mpadsp_init(MPADSPContext *s) { - DCTContext dct; - - ff_dct_init(&dct, 5, DCT_II); ff_thread_once(&mpadsp_table_init, &mpadsp_init_tabs); s->apply_window_float = ff_mpadsp_apply_window_float; s->apply_window_fixed = ff_mpadsp_apply_window_fixed; - s->dct32_float = dct.dct32; + s->dct32_float = ff_dct32_float; s->dct32_fixed = ff_dct32_fixed; s->imdct36_blocks_float = ff_imdct36_blocks_float; diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile index b4cc5e0d08..2ceb88968f 100644 --- a/libavcodec/x86/Makefile +++ b/libavcodec/x86/Makefile @@ -126,7 +126,7 @@ X86ASM-OBJS-$(CONFIG_LLVIDDSP) += x86/lossless_videodsp.o X86ASM-OBJS-$(CONFIG_LLVIDENCDSP) += x86/lossless_videoencdsp.o X86ASM-OBJS-$(CONFIG_LPC) += x86/lpc.o X86ASM-OBJS-$(CONFIG_ME_CMP) += x86/me_cmp.o -X86ASM-OBJS-$(CONFIG_MPEGAUDIODSP) += x86/imdct36.o +X86ASM-OBJS-$(CONFIG_MPEGAUDIODSP) += x86/dct32.o x86/imdct36.o X86ASM-OBJS-$(CONFIG_MPEGVIDEOENC) += x86/mpegvideoencdsp.o X86ASM-OBJS-$(CONFIG_OPUS_DECODER) += x86/opusdsp.o X86ASM-OBJS-$(CONFIG_OPUS_ENCODER) += x86/celt_pvq_search.o diff --git a/libavcodec/x86/mpegaudiodsp.c b/libavcodec/x86/mpegaudiodsp.c index 6586fe0726..43662cd279 100644 --- a/libavcodec/x86/mpegaudiodsp.c +++ b/libavcodec/x86/mpegaudiodsp.c @@ -45,6 +45,9 @@ void ff_four_imdct36_float_sse(float *out, float *buf, float *in, float *win, void ff_four_imdct36_float_avx(float *out, float *buf, float *in, float *win, float *tmpbuf); +void ff_dct32_float_sse2(float *out, const float *in); +void ff_dct32_float_avx (float *out, const float *in); + DECLARE_ALIGNED(16, static float, mdct_win_sse)[2][4][4*40]; #if HAVE_6REGS && HAVE_SSE_INLINE @@ -267,6 +270,7 @@ av_cold void ff_mpadsp_init_x86(MPADSPContext *s) #if HAVE_SSE if (EXTERNAL_SSE2(cpu_flags)) { s->imdct36_blocks_float = imdct36_blocks_sse2; + s->dct32_float = ff_dct32_float_sse2; } if (EXTERNAL_SSE3(cpu_flags)) { s->imdct36_blocks_float = imdct36_blocks_sse3; @@ -279,6 +283,8 @@ av_cold void ff_mpadsp_init_x86(MPADSPContext *s) if (EXTERNAL_AVX(cpu_flags)) { s->imdct36_blocks_float = imdct36_blocks_avx; } + if (EXTERNAL_AVX_FAST(cpu_flags)) + s->dct32_float = ff_dct32_float_avx; #endif #endif /* HAVE_X86ASM */ }