From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 6A6CA4789A for ; Tue, 26 Sep 2023 22:10:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 731A868CA5F; Wed, 27 Sep 2023 01:10:39 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2099.outbound.protection.outlook.com [40.92.90.99]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 59E7168C6A8 for ; Wed, 27 Sep 2023 01:10:32 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cTp+gIZ1Aen1h9JKlMOe5V5WI0dlBf+tONPZgEsQqupdKS22M0uM6LI2u6yRrNhU7oL+sh8Y4c/mu3tQuniiLf02/Nij/tVjSZfWF+X4k+7ogzz3nWaGrZHJT7keqSi0BCdVAttpZ1f6MdDeofynbjU+h+tzucEMzsj4E71ku1gwN1SEYLIo9YD3QSYPef0f8R6qt1Y+6z4hqzG1YqmKclAMHRITvXIjn89HN/ZW+QVKsS6Kmq5bQpgmkLU6qmXYFyAJ9kp6aZOeI6YAGMRjfPWqXafNtcliAdo2ZUd0r9tM0syjVPIt7BE0YBbH0G9iIbf7lpISXKhtchWrRTr7oA== 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=vQwRQ/WSLbILHtbyS+W9wb2bw1hyJ4HGDgAEIpIL+y0=; b=LszBLNxE40oJszq4TdpmvLPbtCVLhLvYbyL57qq/MsljOShz7vukhWmrhCV2hKENzWR4afGDoQhFkr0Irf2CSyMOx+MdIFHiE/YJLQRGgjc/Z5JNw5hitbm3gBw1kpJJPFk9zROmzL+Ea+zbKdQoj3gpKJgkTMhJo4DlhsEo92JWiaXiQpGpLzeLD7dgugg6u+jyoMcPzL6fCJsBuOgb4w96W32PenwiMMnw7K2ZPWxM+QPNo/f9sfJZtrGl7DqUgPyfIJeOXAdqvZ2OUutgnPNjmOJsPf7VgFCkF0gLyDFV1xPG5S03o4ntVsIRAflo4R2pI+oVlaZ4hk651y/tOA== 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=vQwRQ/WSLbILHtbyS+W9wb2bw1hyJ4HGDgAEIpIL+y0=; b=KcD8nYqF/G4+voWFNC3qdFSIwpUt7esJb0vPvn+L1/IJ4k9EAYxmoXQLwxLqMT4VZEmqAUAE711y7PtwTAaHoESQ6lwEqXvvMJJZb7bb1uALlAU4L7ny3aSdP6RPNhbv0XgoAE+NlfvruZlRr+UAXExy0bsj7EFp9hyqoEuqG9D2EN8zzvq9sQLz3CtcBKIWaKJtlZujrC4HnmScJ8J1FagtPolO8ImHGX1UfvbI0CpxBXLBp4aFXrapk8R8dW2uuST+aUgbuRnkVPz6R7hadUbO/dCUEUbCqTRDptqlgxpNEOEi/KUEZNHXIkQ2d9/zYlkkvWdWxxJSClJ7glLlEw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0350.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:27b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Tue, 26 Sep 2023 22:10:29 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::9d42:7b4f:71ef:c76a]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::9d42:7b4f:71ef:c76a%3]) with mapi id 15.20.6813.027; Tue, 26 Sep 2023 22:10:29 +0000 Message-ID: Date: Wed, 27 Sep 2023 00:11:43 +0200 To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [hvaOcNuAY8d75Q+89nNoOsizFGyKzNpe] X-ClientProxiedBy: ZR0P278CA0019.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <910c903c-1e0c-1114-a34d-5c2db0465ccc@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0350:EE_ X-MS-Office365-Filtering-Correlation-Id: 12ac07e3-a719-4137-70c3-08dbbedd64d1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wDh/LxkeNUaQhWF7NzjD5SKp8GIqfOplbDJabWS5oQqSgOyxn8sLeXjDiTmr7FpUPnlBfBZAwk22S10Te7YHbwbzlKwqG+4KAgr7bLwwUYWdxWBoYKDmupCGBbGCqilk8L1eDWRkop7DPCC7hR18Rg3s/tMhGhhEfr/UHOFg+yPewWI3/uqNs7K7JkxyvIA2z6byDGv7D1j0SOUVGUAO77/N0qj5C2KLEOVTcyuiSziApWEtey0Hjtj4LMGOzvJgO4d12Vhd+om519yLCzWGcbAgzzlDjIHs5/xOqJh1OI1n236tnaIbKdpKeWf9UikINaklUJtvvuZhIqFcqzFevqYevYs2bv96jGs8MUYigcnpgIVS0T9IA6fuET/UvnRphTi+0s75N/n4Iy9UdR8gx1vGAu+Yz6BrF/6Ca7z3E5igKPY3nx04wGCCdlMsosC7bOJ58CIWB/CPY/wfJ+QlDxzTGpMgTsQQpUMFMM9mI2qeM9EoZmGySuEfPE6uqKzjkFz7cKhf2k4/q4fh9679qG2YkGnQBicQosNhSDuukO/oeSbpVqRY10ud6lyN005+ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eW1PNGpiWC9DNFM0MjBSNEd6b0FXRGFoTUxYdzQ2WHVCTHFZR1lYTWdyckpm?= =?utf-8?B?amFTZE44aTgreDdCZDluQnQ5MWVXTWVWSE83WngvKzFyZVZDcXBvRTlLaDNV?= =?utf-8?B?K241SWVRVlJlSnduYVh2N3EzeHVqUnlTdUFGT05weVFnR1FFOE5NTDBOR0Ey?= =?utf-8?B?WFNSRGVlM1RmVWFpTzIzRHVTL1dua1F5Q20wK1RGL1BwRFVsNkNZbUFXRjBy?= =?utf-8?B?aisxT0IwMXBCRmFOMmhEVTZKdGljdDdCWTViSXVWUFYrcExiSHlGUmFiNVZL?= =?utf-8?B?SWNqZ0NjRWtiRnBDSWpMLzFPaGlwKys3RGpVNVdiOWx2ZjFIQlVQN0hPS1lt?= =?utf-8?B?Uyt2T0I1dVZLZTUyT3BqZ2tpRXZaVEhFdXRnNnloa09Qay9PcWNGZm9TWFVp?= =?utf-8?B?dWNKRXpHajRyQ2hvY1o2UFRXU0VrWTErS0tyUy84ZFl6SC9EY1NSR29Bdis5?= =?utf-8?B?cmpQZHM2d0FvaDNrb08rSVNVM0xBejJTRHJmbnB5azhpYVlQZWM0N0c4UHA4?= =?utf-8?B?K0lwUGZTeDJiVmZGKzE0S1pHNFNXTDZuZkhNWUtXVEhxK0VNc0trWUVITmYx?= =?utf-8?B?MmhsaUVTTlZwMGZlQXA3SEtDSmdzMnd5SXNkbDZkTVEyRWc4RlQwVENOaml0?= =?utf-8?B?Qis2VmUybnloNGJKK3hnTmRVNVB3MWs4RlZ0QzlpNmRPTklic2xnSjM2VTk2?= =?utf-8?B?VFAyaUxnWDRkQVN2MG5mOEdSNGZtbkxpTktBNGxBKzh0ZGVRVWtWZmhNM1dj?= =?utf-8?B?ZGJCRDdLZGxCaVNTNkx2K0tiWk8rcmNqYmdUOGVBeFIrdElRbzB5a2twMmtl?= =?utf-8?B?S2ZXQ0c1Rm85cjdBSkIrNEhyU01zdmFUS0lHZE4wemY3UVhmUDZRVk16V0hk?= =?utf-8?B?MndmTHZDRk83bEV2cEEyTkVQMlJmdXg4NzFYUXR0RVVFY1o3WGZaTjJ2eHBJ?= =?utf-8?B?dkpscm5XZEd6ZDc3YmtUVlNVMldpWUlLejJhUzYvWWN1WEpzQVFWNkF2c3p6?= =?utf-8?B?KzlkYUlPRk8wdDR0WS9vMndodzdmRXYwbDY3TmhXa0ZDR2ptVFQ2S0hWRGc1?= =?utf-8?B?b3dEZ3dvQ1g1VXZjcFpIOUpSeER2NVFRVC9QZWRmblJKdEtDMHhxd3pqemlG?= =?utf-8?B?eGRDbmIvMHFqV3hLelA4aG1QWDNhYjRzSTJ3TkVUNWh3dGxjcmtXYkcvRURU?= =?utf-8?B?dk1vcGxGTUFHM1dJd0dRTmpnZGNqdmRlaHFoSmg1TkZBT0xXdUNldE1JaEVO?= =?utf-8?B?c0RUS29XWDJDdGJHRFhMM3BhSXFiMVF0c2dwQVZEZkdDSGdnT056NGJsZEZw?= =?utf-8?B?QnVneGVlemlzeWp4WVJ1SVJBcTUyVW9pWkh0NUF6RHNUV2Voais4eUdLU0xP?= =?utf-8?B?SDN1UERlalhjRG5kU0VYY2FzMnloWmppQWExdUFMaUtRcWp0OTBsM0p2eGkw?= =?utf-8?B?bllWTlEwMjdQdEpsdmJxNlJ3MkhPbkJoSGw0dGNmbTFsUk8yVjZ2cHNqaWp2?= =?utf-8?B?NjVQQUZMRVFkM2VFU05vaW1YQXJacTJxNnVVcVh1QUZ4Q2M5d0VlbUgzamNO?= =?utf-8?B?NklDUGRHczZ5RlFmbnFKVE9jRm82MVBRcklsaWl3b3M3K3p3ckUwWENFcHF0?= =?utf-8?B?MHcwMVFzRWhUMGY2Qnd5Tm0yT1lTbHR0SUVXbzVMWjZYa0s4bXFpRHZwczl3?= =?utf-8?Q?+GSvxC4obePmBVQ2Mtct?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12ac07e3-a719-4137-70c3-08dbbedd64d1 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2023 22:10:29.4403 (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: DU2P250MB0350 Subject: Re: [FFmpeg-devel] [PATCH 1/9] avfilter/bwdif: Add proper BWDIFDSPContext 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Andreas Rheinhardt: > This already avoids unnecessary indirectly included headers > in the arch-specific vf_bwdif_init.c files; it is also in > preparation for splitting the actual functions out of vf_bwdif.c. > > Signed-off-by: Andreas Rheinhardt > --- > libavfilter/aarch64/vf_bwdif_init_aarch64.c | 4 ++-- > libavfilter/{bwdif.h => bwdifdsp.h} | 22 +++++++------------- > libavfilter/vf_bwdif.c | 23 ++++++++++++++------- > libavfilter/x86/vf_bwdif_init.c | 4 ++-- > tests/checkasm/vf_bwdif.c | 5 ++--- > 5 files changed, 29 insertions(+), 29 deletions(-) > rename libavfilter/{bwdif.h => bwdifdsp.h} (85%) > > diff --git a/libavfilter/aarch64/vf_bwdif_init_aarch64.c b/libavfilter/aarch64/vf_bwdif_init_aarch64.c > index f52bc4b9b4..2b8d212de6 100644 > --- a/libavfilter/aarch64/vf_bwdif_init_aarch64.c > +++ b/libavfilter/aarch64/vf_bwdif_init_aarch64.c > @@ -21,7 +21,7 @@ > */ > > #include "libavutil/common.h" > -#include "libavfilter/bwdif.h" > +#include "libavfilter/bwdifdsp.h" > #include "libavutil/aarch64/cpu.h" > > void ff_bwdif_filter_edge_neon(void *dst1, void *prev1, void *cur1, void *next1, > @@ -107,7 +107,7 @@ static void filter_intra_helper(void *dst1, void *cur1, int w, int prefs, int mr > } > > void > -ff_bwdif_init_aarch64(BWDIFContext *s, int bit_depth) > +ff_bwdif_init_aarch64(BWDIFDSPContext *s, int bit_depth) > { > const int cpu_flags = av_get_cpu_flags(); > > diff --git a/libavfilter/bwdif.h b/libavfilter/bwdifdsp.h > similarity index 85% > rename from libavfilter/bwdif.h > rename to libavfilter/bwdifdsp.h > index 496cec72ef..1ff810719f 100644 > --- a/libavfilter/bwdif.h > +++ b/libavfilter/bwdifdsp.h > @@ -16,16 +16,10 @@ > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > */ > > -#ifndef AVFILTER_BWDIF_H > -#define AVFILTER_BWDIF_H > - > -#include "libavutil/pixdesc.h" > -#include "avfilter.h" > -#include "yadif.h" > - > -typedef struct BWDIFContext { > - YADIFContext yadif; > +#ifndef AVFILTER_BWDIFDSP_H > +#define AVFILTER_BWDIFDSP_H > > +typedef struct BWDIFDSPContext { > void (*filter_intra)(void *dst1, void *cur1, int w, int prefs, int mrefs, > int prefs3, int mrefs3, int parity, int clip_max); > void (*filter_line)(void *dst, void *prev, void *cur, void *next, > @@ -38,11 +32,11 @@ typedef struct BWDIFContext { > void (*filter_line3)(void *dst, int dstride, > const void *prev, const void *cur, const void *next, int prefs, > int w, int parity, int clip_max); > -} BWDIFContext; > +} BWDIFDSPContext; > > -void ff_bwdif_init_filter_line(BWDIFContext *bwdif, int bit_depth); > -void ff_bwdif_init_x86(BWDIFContext *bwdif, int bit_depth); > -void ff_bwdif_init_aarch64(BWDIFContext *bwdif, int bit_depth); > +void ff_bwdif_init_filter_line(BWDIFDSPContext *bwdif, int bit_depth); > +void ff_bwdif_init_x86(BWDIFDSPContext *bwdif, int bit_depth); > +void ff_bwdif_init_aarch64(BWDIFDSPContext *bwdif, int bit_depth); > > void ff_bwdif_filter_edge_c(void *dst1, void *prev1, void *cur1, void *next1, > int w, int prefs, int mrefs, int prefs2, int mrefs2, > @@ -60,4 +54,4 @@ 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); > > -#endif /* AVFILTER_BWDIF_H */ > +#endif /* AVFILTER_BWDIFDSP_H */ > diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c > index 6195e6cb64..282aef5698 100644 > --- a/libavfilter/vf_bwdif.c > +++ b/libavfilter/vf_bwdif.c > @@ -32,8 +32,10 @@ > #include "libavutil/opt.h" > #include "libavutil/pixdesc.h" > #include "avfilter.h" > +#include "bwdifdsp.h" > +#include "ccfifo.h" > #include "internal.h" > -#include "bwdif.h" > +#include "yadif.h" > > /* > * Filter coefficients coef_lf and coef_hf taken from BBC PH-2071 (Weston 3 Field Deinterlacer). > @@ -45,6 +47,11 @@ static const uint16_t coef_lf[2] = { 4309, 213 }; > static const uint16_t coef_hf[3] = { 5570, 3801, 1016 }; > static const uint16_t coef_sp[2] = { 5077, 981 }; > > +typedef struct BWDIFContext { > + YADIFContext yadif; > + BWDIFDSPContext dsp; > +} BWDIFContext; > + > typedef struct ThreadData { > AVFrame *frame; > int plane; > @@ -261,25 +268,25 @@ static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) > uint8_t *next = &yadif->next->data[td->plane][y * linesize]; > uint8_t *dst = &td->frame->data[td->plane][y * td->frame->linesize[td->plane]]; > if (yadif->current_field == YADIF_FIELD_END) { > - s->filter_intra(dst, cur, td->w, (y + df) < td->h ? refs : -refs, > + s->dsp.filter_intra(dst, cur, td->w, (y + df) < td->h ? refs : -refs, > y > (df - 1) ? -refs : refs, > (y + 3*df) < td->h ? 3 * refs : -refs, > y > (3*df - 1) ? -3 * refs : refs, > td->parity ^ td->tff, clip_max); > } else if ((y < 4) || ((y + 5) > td->h)) { > - s->filter_edge(dst, prev, cur, next, td->w, > + s->dsp.filter_edge(dst, prev, cur, next, td->w, > (y + df) < td->h ? refs : -refs, > y > (df - 1) ? -refs : refs, > refs << 1, -(refs << 1), > td->parity ^ td->tff, clip_max, > (y < 2) || ((y + 3) > td->h) ? 0 : 1); > - } else if (s->filter_line3 && y + 2 < slice_end && y + 6 < td->h) { > - s->filter_line3(dst, td->frame->linesize[td->plane], > + } else if (s->dsp.filter_line3 && y + 2 < slice_end && y + 6 < td->h) { > + s->dsp.filter_line3(dst, td->frame->linesize[td->plane], > prev, cur, next, linesize, td->w, > td->parity ^ td->tff, clip_max); > y += 2; > } else { > - s->filter_line(dst, prev, cur, next, td->w, > + s->dsp.filter_line(dst, prev, cur, next, td->w, > refs, -refs, refs << 1, -(refs << 1), > 3 * refs, -3 * refs, refs << 2, -(refs << 2), > td->parity ^ td->tff, clip_max); > @@ -382,12 +389,12 @@ static int config_props(AVFilterLink *link) > > yadif->csp = av_pix_fmt_desc_get(link->format); > yadif->filter = filter; > - ff_bwdif_init_filter_line(s, yadif->csp->comp[0].depth); > + ff_bwdif_init_filter_line(&s->dsp, yadif->csp->comp[0].depth); > > return 0; > } > > -av_cold void ff_bwdif_init_filter_line(BWDIFContext *s, int bit_depth) > +av_cold void ff_bwdif_init_filter_line(BWDIFDSPContext *s, int bit_depth) > { > s->filter_line3 = 0; > if (bit_depth > 8) { > diff --git a/libavfilter/x86/vf_bwdif_init.c b/libavfilter/x86/vf_bwdif_init.c > index 57f908a8ef..b1d1d6a91c 100644 > --- a/libavfilter/x86/vf_bwdif_init.c > +++ b/libavfilter/x86/vf_bwdif_init.c > @@ -22,7 +22,7 @@ > #include "libavutil/cpu.h" > #include "libavutil/x86/asm.h" > #include "libavutil/x86/cpu.h" > -#include "libavfilter/bwdif.h" > +#include "libavfilter/bwdifdsp.h" > > void ff_bwdif_filter_line_sse2(void *dst, void *prev, void *cur, void *next, > int w, int prefs, int mrefs, int prefs2, > @@ -50,7 +50,7 @@ void ff_bwdif_filter_line_12bit_avx2(void *dst, void *prev, void *cur, void *nex > int mrefs2, int prefs3, int mrefs3, int prefs4, > int mrefs4, int parity, int clip_max); > > -av_cold void ff_bwdif_init_x86(BWDIFContext *bwdif, int bit_depth) > +av_cold void ff_bwdif_init_x86(BWDIFDSPContext *bwdif, int bit_depth) > { > int cpu_flags = av_get_cpu_flags(); > > diff --git a/tests/checkasm/vf_bwdif.c b/tests/checkasm/vf_bwdif.c > index 3399cacdf7..fae61b62e4 100644 > --- a/tests/checkasm/vf_bwdif.c > +++ b/tests/checkasm/vf_bwdif.c > @@ -18,8 +18,7 @@ > > #include > #include "checkasm.h" > -#include "libavcodec/internal.h" > -#include "libavfilter/bwdif.h" > +#include "libavfilter/bwdifdsp.h" > #include "libavutil/mem_internal.h" > > #define WIDTH 256 > @@ -72,7 +71,7 @@ > > void checkasm_check_vf_bwdif(void) > { > - BWDIFContext ctx_8, ctx_10; > + BWDIFDSPContext ctx_8, ctx_10; > > ff_bwdif_init_filter_line(&ctx_8, 8); > ff_bwdif_init_filter_line(&ctx_10, 10); Will apply this patchset tomorrow unless there are objections. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".