From patchwork Wed Apr 17 18:28:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wu Jianhua X-Patchwork-Id: 48113 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:ce4e:b0:1a9:af23:56c1 with SMTP id id14csp1205513pzb; Wed, 17 Apr 2024 11:29:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX+XppnA6LoPVP/4Wj3Zt9watG+r5+hmZRjvLbo0OevYZ8herApgHIqB4X/XIqy26B+jCRmwoQx/itJAqHGOO1gwdtSkNqCvDF8HQ== X-Google-Smtp-Source: AGHT+IErB+HcOMEzPL5ru0gC+HutnSIyPm0P2y+14goyM56O5BZotald6qTgRIs5umzx/cc6e9hR X-Received: by 2002:a50:bb62:0:b0:56e:4ac1:88f with SMTP id y89-20020a50bb62000000b0056e4ac1088fmr246067ede.27.1713378551505; Wed, 17 Apr 2024 11:29: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 u10-20020a50a40a000000b0056e525400f8si6917192edb.384.2024.04.17.11.29.11; Wed, 17 Apr 2024 11:29: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=RDqiw8XD; 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 5384B68D2C3; Wed, 17 Apr 2024 21:29:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01olkn2107.outbound.protection.outlook.com [40.92.98.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 991F968D2C3 for ; Wed, 17 Apr 2024 21:28:57 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M13Kqvd4VKPcbeiqBfPLy5nwL+kg5EWhQ7QcEbek91AR6qcmJJKmWYIBuxc/Y0UFvFdzLeBbXsjpvkZMCdtcIm03NNWsAtJLhloqs2sKLQSfGhYjowV6ML3BeyFvQVctNhq5jQYTapYtJLvLOno8w/xtSEO5o82Y2MTNspkQa9EaVYRue9A0rj1n7tYADcTmsc1QhUGqSgjQdV0IHtCAQR1YnZbI69GJoUFHGVdEEfKQPgaCvQGhSQ6amzEudnqd7BHOaXeGRVWh1eC30Oxxys6ZzLYDUqc98nnDJ2HvgBPgZXDT7LjYUfILkq92W27zHuab68SdT394FU2czhBy9g== 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=UrOUElwSOMo32LHbaC1SoIlcDMegKYMuD59W4YVrbzQ=; b=DrFHfnQp3XE2+ni+VcR7PYhzEe/Voj9YluX8viq+1rs/mUpODSP/llJLmwKC4d2TAaIcWRY9+tgjnkQWA5Y69tB4wYHEKo7gaX3SSInKFdyH3oyJmi0qNtn+bLMH8/qHOunwyjaA2owqPwx0uf5OLZY0TcW+SnxXI/IoqmRw6xAYnIe1tDEL07Wt+eGN/NW/qwoUWgYU84E3IwdwBObat52QvvNzyTnTyZsypbK5VhieSZkI+PjvdrmAryQpw1qUI8Q1OVGOrgLOZZx3nfzRPkyliA/g1LJBp6Z9lESroImIlXneMp5D7sgh4zwist5TaDouJgRjEcdwaZkMPyugiw== 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=UrOUElwSOMo32LHbaC1SoIlcDMegKYMuD59W4YVrbzQ=; b=RDqiw8XDi5fAGsIQQu+5Brv/HSKs5CrxXYiR/GPaPo++qTVfCUhB00W97f5hNjonC10J6tzgTf/SN1u0AgUOgCfIZCcHCQGvBkV2+6i1N3qPBjWbnjm1e2szWZ3nRPogDw3Xyzj4d4uh4bg+QqfAB5OX+7fv3FxHBXzZbkzWfjPxyI9I564RpqvIPjQQU0paGslY95uf7KNJfw26siZl8xTEL32AnPTZRKY+DvPuSxavoKUDSbp1SNldzVGJ9wNG7HKx6k4CAWdDXOtUQqWfTtvAT/WVnCT56Ccg9bbGG7IlW9STUJeznb9WxDeq9sqTBuIcmsyKb/c7T8FUS5Lfbg== Received: from OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:186::5) by OS3P286MB1613.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:178::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.37; Wed, 17 Apr 2024 18:28:49 +0000 Received: from OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM ([fe80::c2ed:24ae:fd4c:fee7]) by OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM ([fe80::c2ed:24ae:fd4c:fee7%5]) with mapi id 15.20.7472.037; Wed, 17 Apr 2024 18:28:49 +0000 From: toqsxw@outlook.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Apr 2024 02:28:22 +0800 Message-ID: X-Mailer: git-send-email 2.44.0.windows.1 In-Reply-To: <20240417182823.986-1-toqsxw@outlook.com> References: <20240417182823.986-1-toqsxw@outlook.com> X-TMN: [BlKIbsJDigdkKLHFxEh6KOcDBK5nASjF] X-ClientProxiedBy: SG2PR02CA0126.apcprd02.prod.outlook.com (2603:1096:4:188::11) To OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:186::5) X-Microsoft-Original-Message-ID: <20240417182823.986-2-toqsxw@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2173:EE_|OS3P286MB1613:EE_ X-MS-Office365-Filtering-Correlation-Id: fea79d58-a1c4-4305-ce80-08dc5f0c3986 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kczjAtt70EJGa9M+oTNjZHvh+DME62+uKWV/6SuxIvG/rF8pt4yJD8KGvZFLQfUS7eIg7OiNqeRq5m0Ok36wjGssUKZg03u0YS54oyxdQWCQ40V6ZStMZLnZ9+Nvr+LyAhU9VgxSjqTx/1izVao2be0HLsniXN2TUKaeKXEgKISuaKMuk3G+j2okXwmdXEUt1Bviuglx1j3/vGVhpTOtFwcQh82t09RXvQT6jPwQtgLBHV2aWVItxMjTxsDvK+mXiRitaO8StF0/xzyYIb8rptPGMMDYjjgDvVEFcMJw6nECBH5ntPrhBzzLKJt1pUC9pfb7pbOPxPEDHnx9dIJHJpMERnuIs4rZpdLrdUP/7A9nsu5ppEQOt88Sg8WCSHdVnKLmcwoSiP3j01CgdG73J/tWRhIFginqOm+PU9610wLuLhgEQppoakm+1NVWAYqh+bmz2J/+D3MjC/PMcDCUUH0OIZE20iOa3bA7IrJ2FTtZ6CBeoEZCryDBA2VYTXfFyn4zOUII0Cpfmp4UgNtA+g473SF3LbdKqDIACXfNVUyTtqLQL6XW3C5wzwbGBfiiwEXohcGMTorgzo0EwuoWQREahJ9WLASMhuzEM2QteaYFBbckf+yUPtT2RS0Czu8P X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IeyqWw+55X4XOZGwtLGH8PlEf44oAG5TD/o1fRLlaVKs3L5UAa8Jkh87Br8DdXQOQEwNjpWMRR48DFWu0SMjz0aUGy/KMPq21QzjmW6n2dTa97H8wnvfCXG3mqawRKbEA1ymPbTrxAD92M5VWs1mRton6ypiGQMYJd66KLwUt5K8sAtqMcqn85jkA3cO45xbqaf6oFCm///bIrmtqs2ekO+Hjc41j2cXQJZ15ErQl8a4CSsbhq/z4pY3t0cAjLTn+Nd89mBViyQM8ixFC/HX6DeIqH088tGF//FlYEYQcx8WFn7gSCfAFg/2roJXgOYzRwfvhfATwsxqZb8Ba8+X1AW8yysT0Rf6YtWaoKoZYAv0adqgWYfsClWBn97NaFufnL/J+VWaLfJjjn7cjP30awyheoVgErZ8zMx7DOCkFqEWyvuRh6p+LtCvknLr4ddn23VieQjXiIIXw55VQQXXB/iX5ZfEOsoX8/nVsmmN33Fa+00eV2HfY9yaNhitiYFIM821Qw1DkZvXsJL7xRP42/f12ORrYegrOkYLs2H18RTJavqJVSbPsNgfLiMFAOKMuXlKqS9iZteqq3hKpsGItiQUIsHmH94FdXODZonUG4LDZPdYepzd6i2ACIRzHMwC3i5Mo+zafzFAO0GezoDAjiQGNwED5yqBEzMjqkc1njP/deBzCmLLCc4C4pQlYO9Erlusk/TDO0aHVbEGcNoTmXSmPl16kkSz042txBKym23AyTbbcpDEPOpjI2l5Ty3wNuVqlY//Ik2qa1APx6fGGAIzZukQElkIckQApVuWIUavfpCXRHy4OgzODNnIfiyX3Jqzw2makE202v8TS1HkYPBnFC8DUvPERRa/wHQHkhM0oFpDaKvrbusQKHDB5gsnhL8WSNaDl7+EVrYakBXcT7TDz0qiUlucHakN3NJenULJ/mzvHjpsh6aZ5H+NfUGl/Dzfn68BkuLWEYXuRHg4t3Yq6Qq4mKKvv0F6PY7qc/wDm30Gb9oirZVzafM9qnwJg0n//Ix5Y3eCnQcK3qtIK/UdFCVZ50NBF54WdRGJYUFhrcwQ/wMi51s7Vg0FEfn1lqkNkrSh9z1ISo914P9TqkHB8zyX5EhMavezYpR084OXcvyybIg2pFZk+RcWouf2KaGZs8/38Qp0JV5IaT2pXZKOopN5rT+id9Q4YkpmpFZbrBvdmrZipIctC0yN1glAdfB10zUgboVUdpu5laLF6VQYOhqlQOR+J4FAsVLL+qs= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fea79d58-a1c4-4305-ce80-08dc5f0c3986 X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2024 18:28:49.1317 (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: OS3P286MB1613 Subject: [FFmpeg-devel] [PATCH v3 2/3] avcodec/x86/vvc/vvcdsp_init: add avg prototypes 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: Wu Jianhua Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 5EMEBAn7JFag From: Wu Jianhua When we used the --disable-ssse3 --disable-optimizations options, the compiler would not skip the MC_LINKS like the compilation that enabled the optimization, so it would fail to find the function prototypes. Hence, this commit uses the same way to add prototypes for the functions as HEVC DSP. And, when prototypes are added for the functions, we cannot add the static qualifier. Therefore, the ff_vvc prefix is needed to avoid the naming conflict. Signed-off-by: Wu Jianhua --- libavcodec/x86/vvc/vvcdsp_init.c | 45 ++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/libavcodec/x86/vvc/vvcdsp_init.c b/libavcodec/x86/vvc/vvcdsp_init.c index d9203f4d5f..aef6699c35 100644 --- a/libavcodec/x86/vvc/vvcdsp_init.c +++ b/libavcodec/x86/vvc/vvcdsp_init.c @@ -63,6 +63,30 @@ PUT_TAP_PROTOTYPES(8, sse4) PUT_TAP_PROTOTYPES(4, avx2) PUT_TAP_PROTOTYPES(8, avx2) +#define bf(fn, bd, opt) fn##_##bd##_##opt +#define BF(fn, bpc, opt) fn##_##bpc##bpc_##opt + +#define AVG_BPC_PROTOTYPES(bpc, opt) \ +void BF(ff_vvc_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, intptr_t pixel_max); \ +void BF(ff_vvc_w_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, \ + intptr_t denom, intptr_t w0, intptr_t w1, intptr_t o0, intptr_t o1, intptr_t pixel_max); + +#define AVG_PROTOTYPES(bd, opt) \ +void bf(ff_vvc_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, int width, int height); \ +void bf(ff_vvc_w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, int width, int height, \ + int denom, int w0, int w1, int o0, int o1); + +AVG_BPC_PROTOTYPES( 8, avx2) +AVG_BPC_PROTOTYPES(16, avx2) + +AVG_PROTOTYPES( 8, avx2) +AVG_PROTOTYPES(10, avx2) +AVG_PROTOTYPES(12, avx2) + #if ARCH_X86_64 #define FW_PUT(name, depth, opt) \ void ff_vvc_put_ ## name ## _ ## depth ## _##opt(int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, \ @@ -202,23 +226,13 @@ FW_PUT_16BPC_AVX2(12) MC_TAP_LINKS_16BPC_AVX2(LUMA, 8, bd); \ MC_TAP_LINKS_16BPC_AVX2(CHROMA, 4, bd); -#define bf(fn, bd, opt) fn##_##bd##_##opt -#define BF(fn, bpc, opt) fn##_##bpc##bpc_##opt - -#define AVG_BPC_FUNC(bpc, opt) \ -void BF(ff_vvc_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ - const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, intptr_t pixel_max); \ -void BF(ff_vvc_w_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ - const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, \ - intptr_t denom, intptr_t w0, intptr_t w1, intptr_t o0, intptr_t o1, intptr_t pixel_max); - #define AVG_FUNCS(bpc, bd, opt) \ -static void bf(avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ +void bf(ff_vvc_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ const int16_t *src0, const int16_t *src1, int width, int height) \ { \ BF(ff_vvc_avg, bpc, opt)(dst, dst_stride, src0, src1, width, height, (1 << bd) - 1); \ } \ -static void bf(w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ +void bf(ff_vvc_w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ const int16_t *src0, const int16_t *src1, int width, int height, \ int denom, int w0, int w1, int o0, int o1) \ { \ @@ -226,16 +240,13 @@ static void bf(w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, denom, w0, w1, o0, o1, (1 << bd) - 1); \ } -AVG_BPC_FUNC(8, avx2) -AVG_BPC_FUNC(16, avx2) - AVG_FUNCS(8, 8, avx2) AVG_FUNCS(16, 10, avx2) AVG_FUNCS(16, 12, avx2) #define AVG_INIT(bd, opt) do { \ - c->inter.avg = bf(avg, bd, opt); \ - c->inter.w_avg = bf(w_avg, bd, opt); \ + c->inter.avg = bf(ff_vvc_avg, bd, opt); \ + c->inter.w_avg = bf(ff_vvc_w_avg, bd, opt); \ } while (0) #endif