From patchwork Mon Sep 25 18:04:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43900 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:2a18:b0:15d:8365:d4b8 with SMTP id e24csp1403588pzh; Mon, 25 Sep 2023 11:04:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEmyi1MVZ2otFJCoPbfSE2BYLPlyHP9R8maP1uqSHsB6qET7Z9P5uMyntxYxwctXKbk+/+h X-Received: by 2002:a2e:2d12:0:b0:2bc:d5ad:2758 with SMTP id t18-20020a2e2d12000000b002bcd5ad2758mr5658215ljt.5.1695665062301; Mon, 25 Sep 2023 11:04:22 -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 e17-20020a1709067e1100b00992ee06bddbsi8846259ejr.176.2023.09.25.11.04.21; Mon, 25 Sep 2023 11:04:22 -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=djwx7I+p; 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 2D23668C68D; Mon, 25 Sep 2023 21:04:09 +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-am6eur05olkn2101.outbound.protection.outlook.com [40.92.91.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BBD1268C9CF for ; Mon, 25 Sep 2023 21:04:02 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UgV/S4EqgLt13mfa+6YfR/sNuLiE8mmkplqyesf40HWF3xwp2RAXAFKKCpHf09iTCiypTf3f6RX2xnP8MRkBLj79cy5GQBo35v2oZYp6kmIlmbyOjo+KAhMHVXO9HACIQGXtHSg6NqdGS78a2DO1GEUyQLfJYlp1RDKe0KhQh1BuRIf1D0CTY/W3MRTmXbjHCwLrbS51IdyVzckfacEapmbcefteGMW9z3L6vi5oXgahCTFmJJvPZkJJF1JA4aXDdpo+ov1kXldcWt1r2gu0JgELPhqp7rM5f927kXHjpvT9YxTJG/MjXakLKU9QaGwthFrsKvEdrSe4l23H1Zw9nw== 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=LVa/jntbef8tLvy0KzBXcmaEwxh/cHifDsBPWG4HzKw=; b=LpmuzHZU0GLx7WPEixiBQ6VEx1sbH1EhzG5OQ1/gty5OYT808cOR7ilSXcu5gXeguuJ/zo2rjQmc6MJpP6GwMyYPx6FA4oLeyf7waEdLa3gs1mTo+HAmUoG0F2VkrY7YX30angMCLSi6xY60NOlK3KQN37kscVL2R2/EGjgQGvTKhtB/PiTCsn1LPpkHwDAaIgqeBTRw1damyIJlvPEj/JHsx2xGwj/VjbGG41EI/tGh/KvB5A5iLfUBcJgusPk37fN231+FtyhhPZp749d05zi2R4aSBWBr1ebEuq10H7ZjvrkBS5AQDRiyWBL+N2Z/v30pEsX/B4mP2a+a2iSH0A== 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=LVa/jntbef8tLvy0KzBXcmaEwxh/cHifDsBPWG4HzKw=; b=djwx7I+pTPAPTp/Ha4VzCneKSPXNJq3ibw+ayDyM4MthNmmQqv6FbMPa03yWp0MwSKcJpBc6qEhpp2M0gfuKya/qMq+wymUp5rMziguHzTs0uSyiK8ouSS2QCWFobV7/y2TXYozcV5FXO/BKj207kWdXn6/TRuCdXzXaKtzOmrV2rlc+f7f99N2a1MAByjvBMC53JVt5tQk3sEXdLZvdWYu9omUIX7C2vIowT8wNEqIXhWyR/fIWIQx7x7Xuc+1JuUcpxhyQkAC6OxnwGXxVn6eZCbq8PQFXhy61aydcC2vwyDHXlLfjMh63KMEkZBH5mMUFYvfCt/zpUvGSUTJcsw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0271.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:270::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Mon, 25 Sep 2023 18:03:57 +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; Mon, 25 Sep 2023 18:03:57 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Sep 2023 20:04:52 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [75waVfiKjNqnq6dPUVvT6/ySPIHwpizq] X-ClientProxiedBy: ZR0P278CA0083.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::16) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230925180457.2060101-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0271:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e3e258c-40c9-4a19-b485-08dbbdf1c997 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jKQ8wAywoLFEZcCSVsIMYQJ+CyJT5eE5sqaZwO1OHX0EoQKvkpzJuheL78Lyo4oM5StnWbsfYAxy8Hibi2q/vrqsuSRGWNA+VhnEUuHllmm1a90xYADNcKpoMGsVU8eipSxrIQp/1mVUOMAKr+HQihCvKpyZiO1uozBAEWwjhKd0OsN/AxKzklj4bE0YNnq4lDUrzIvOXivq3tExDC5GDtarzmvaw6idsH2Cm3mnJtM/OY0nSXdXIyBzQRnH4ENqQLnJgXKO+00lDCP7t+yUS3/NgM/RrV/ZWm8WsaUS8bQxBfWF/nkVu4GNj8TxUBxkMMF3QtrsACJS4WOoFMWHGxkezyY9pyefnx+EfLOrJvxf+yTQcRYAHWhx2bFylsw+ADCz46KOR7YtT1jvnwHsvmn9u3t/osidp3ZtY0/73icZ3YnyFgBfSckcM99UrYK9x48P6dl6ijCu7htByerP5ef2kb9LWH1kWr26NsX1v7M2gfE+XAuucvbH09nvh5W9NWaohthikL4KzKSXYve8uAXCMFbZt4UMvpD3I1X2kK5WhgreV4g53Rr6HPPLrs7FUIUpsQzxpFXoZD1seKvZe8uvoaq1i/hnQvLeiP+uxNj5XLylzUxSQutRA14aB45z X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bjIzJb/OuNeKd9JRInUyxkUhD7Ls9x/X0yH2gr9G5hJ+RWJ8eCK/iii7jQQ6r+fMAnafMJVXnaM+LVCn293BQlZKtktCQfhGEhUKAHxBfluf9+KLfJ1vIkk/7g1zPBm9/Jzc2ul8PGeAXbBS+Myuhia7aI7vxBSrbFKTOpHdohKmR2R6zwSmnoVkilDIp8REWT/R+4oP2zh9H4wHI8qmM7m0moYphK/qcgD+M2RFtQCf9Y5jC01HV67cSZW6wbt42tJGE/UHh/PoPxuCATS/ftK86+tf/BW985rdmz5qEeungj6VEu8Q6+xl9JDe1aRbWyrZpi2TadoWK2m3Jas1IKxW9H+5A+AOrh80PXhL0fng90U7g9/nYAAXb8BpyAO0vBUtMgxQ+q9f/nmVjSQrFT5ksVEj8cPa520RB9yKbbvwhrFq6agPqik44+lqIyf20h81qDHlfiwm1aY3Ro6t/Fh75a8BqN0Ug5XX0xEBXhf0G7alkGFMz9d03GN5G/zZMPJAj3+XN3VbhtpiGJ5YcJCBokeQQIMf13aZ5OUmR4iSeR3IcmYDKBm0XpAhvR0NlfU5TbpBNMo6OmBwSGaB/X4ZxIXUOPD1CUSkIG/Lawf9KU6N4LjVWuNvm9yc2bh786N+SLg5Z3xmksMKjCbZccze0YtTLDx1gmstAxII2zYZpNFiB3lIEwh48a5dHkUp8zSef8RjScv/ySkCeIk2payCDB0oF5r1l7rQlxzQ5b0MrbaXq8VNqXg87INKWKR8ofaYIjyuWv61VViSnYm9kY6bt060j2K2FzQEUjn/fsU+a1chVhe4RHskj8jfgDOACz/ks01ehHVHM6nJHGQtzOz2IWGEB33qrm56APJO3uYBscaWpBCPhUlNtuJt6K5W0WkrZ0QxHgZfTdvMraTyvsfDwCsU4lIiiAxU3zl4oLclYPb9wrahNoxQWzdKxaMyE1bw+6ef8Ojxva5Q7XCoEPWCiiTGgR44vWHwoDh4q7EAuFjNefvoGxPehZrI7Zv/dO0yf8yI4mHpQ0raDivRC9Nap+yYTov8zN0Gm/3DVxW3ApdciRj8lfyJOuINSUbof+R8CzwHZ0psDLf5IECLiDsWOpXPI+31pW6n6GgxsfYC13aqIcVfFGWhvipC2o5puIDIbQtWCR4Dh60vwYWUq1/y6//Wc1kyjtvHeUtqxXNhKKQhHvnL+Pq9+lvR7WcvoNcz03Y10tEGz4bWRJfSMdc70/a2bM5KiuhZusF1HVV3Y7WULgr3tFzj5BOdu4k0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e3e258c-40c9-4a19-b485-08dbbdf1c997 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2023 18:03:57.2345 (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: DU2P250MB0271 Subject: [FFmpeg-devel] [PATCH 4/9] avfilter/bwdifdsp: Avoid including ff_bwdif_filter_line3_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: QulHgodv7FqN This function is used by the AARCH64 code to filter a few remaining lines in case the dimensions are not suitably aligned; it is furthermore also used by checkasm to actually test the AARCH64 code against. But it is normally not used and this patch therefore moves it in bwdifdsp.h as a static inline function so that it can be avoided if possible or inlined where necessary. Signed-off-by: Andreas Rheinhardt --- libavfilter/bwdifdsp.c | 25 ------------------------- libavfilter/bwdifdsp.h | 30 +++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/libavfilter/bwdifdsp.c b/libavfilter/bwdifdsp.c index 65bdbdc053..e87fe414e0 100644 --- a/libavfilter/bwdifdsp.c +++ b/libavfilter/bwdifdsp.c @@ -143,31 +143,6 @@ void ff_bwdif_filter_line_c(void *dst1, const void *prev1, const void *cur1, con FILTER2() } -#define NEXT_LINE()\ - dst += d_stride; \ - prev += prefs; \ - cur += prefs; \ - next += prefs; - -void ff_bwdif_filter_line3_c(void * dst1, int d_stride, - const void * prev1, const void * cur1, const void * next1, int s_stride, - int w, int parity, int clip_max) -{ - const int prefs = s_stride; - uint8_t * dst = dst1; - const uint8_t * prev = prev1; - const uint8_t * cur = cur1; - const uint8_t * next = next1; - - ff_bwdif_filter_line_c(dst, prev, cur, next, w, - prefs, -prefs, prefs * 2, - prefs * 2, prefs * 3, -prefs * 3, prefs * 4, -prefs * 4, parity, clip_max); - NEXT_LINE(); - memcpy(dst, cur, w); - NEXT_LINE(); - ff_bwdif_filter_line_c(dst, prev, cur, next, w, - prefs, -prefs, prefs * 2, - prefs * 2, prefs * 3, -prefs * 3, prefs * 4, -prefs * 4, parity, clip_max); -} - void ff_bwdif_filter_edge_c(void *dst1, const void *prev1, const void *cur1, const void *next1, int w, int prefs, int mrefs, int prefs2, int mrefs2, int parity, int clip_max, int spat) diff --git a/libavfilter/bwdifdsp.h b/libavfilter/bwdifdsp.h index 4bf595355c..4a350e5ccc 100644 --- a/libavfilter/bwdifdsp.h +++ b/libavfilter/bwdifdsp.h @@ -19,6 +19,9 @@ #ifndef AVFILTER_BWDIFDSP_H #define AVFILTER_BWDIFDSP_H +#include +#include + typedef struct BWDIFDSPContext { void (*filter_intra)(void *dst1, const void *cur1, int w, int prefs, int mrefs, int prefs3, int mrefs3, int parity, int clip_max); @@ -50,8 +53,33 @@ void ff_bwdif_filter_line_c(void *dst1, const void *prev1, const void *cur1, con int prefs3, int mrefs3, int prefs4, int mrefs4, int parity, int clip_max); +static inline void ff_bwdif_filter_line3_c(void * dst1, int d_stride, const void * prev1, const void * cur1, const void * next1, int s_stride, - int w, int parity, int clip_max); + int w, int parity, int clip_max) +{ + const int prefs = s_stride; + uint8_t * dst = dst1; + const uint8_t * prev = prev1; + const uint8_t * cur = cur1; + const uint8_t * next = next1; + + ff_bwdif_filter_line_c(dst, prev, cur, next, w, + prefs, -prefs, prefs * 2, - prefs * 2, prefs * 3, -prefs * 3, prefs * 4, -prefs * 4, parity, clip_max); +#define NEXT_LINE()\ + dst += d_stride; \ + prev += prefs; \ + cur += prefs; \ + next += prefs; + + NEXT_LINE(); + memcpy(dst, cur, w); + NEXT_LINE(); +#undef NEXT_LINE + ff_bwdif_filter_line_c(dst, prev, cur, next, w, + prefs, -prefs, prefs * 2, - prefs * 2, prefs * 3, -prefs * 3, prefs * 4, -prefs * 4, parity, clip_max); +} + + #endif /* AVFILTER_BWDIFDSP_H */