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 ESMTPS id 900FA4A770 for ; Wed, 29 Jan 2025 12:16:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF86668BA6C; Wed, 29 Jan 2025 14:16:16 +0200 (EET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2024.outbound.protection.outlook.com [40.92.89.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 98C8168B906 for ; Wed, 29 Jan 2025 14:16:10 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jDrsWqp32URu3yiFxMkGoSfR9rodzNGZQELkHA4/4PHzUJmBfnMZ7mTqfu4TXT1hS53JPOiNhRdEBi+Y6RsX1Pa84rwgnK/P4rriXrluPJmwPHnyeU9j0Ie2TZ5cdlf4Jt6jBAQaO2a73l9VDNsLA7033OAwduPkopu/kZdKZDFdXQeXAVgJaFrQYgqd4hYCE6Fy8yFAADHHqs59Rtqik1UoOyC6pcKFxVc5qLEOKDg2Kgtf5XNOnX1cOH89vToa2LnZogaUJEVFDReDUpqWd7kEQG6XQgTIEZ4w6P6x2o9/I19QcV/bjxMoqzdMJua5p1Eq6BHupawHCvTERllahQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=fIKaZVoJgyRtJ6ODn8PnviVOZZLhowMs6XRKEmGmq7U=; b=f5rvIXoKQNyF5fs6OOUXlux7bnFz+LMv36Vbtvu4HmitS8QM7RPb/ipxmu1q6lLzXVld24A91vv3NkxY4nWSc49c8ZGpOYFGD/MBU1BQrJ2JrOMyfSGTfZi1c7ZF7QDGYi1xwyXg0ywealXzsbJkCG+8fC07qCb0YqXg4wY+q8pYTWKqunPDHDlESqVuHoEVFPZ8dLXfYX48BsKK92kdb06ENbycxDofF1fMCtN8VFsaxGoJ8QlVaDK16L1VPchPTNS0jHLDqDyEk4S1V/vytSeFMB5QA1IU1tutKnmB+lpgfsUI0+OQiUs0T8MlhZ693DpLvmyVOoIKv9YiWivALg== 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=fIKaZVoJgyRtJ6ODn8PnviVOZZLhowMs6XRKEmGmq7U=; b=Fv+RxNmldj2TvyrORFFNkqseoE1q2CbtSlfG2QPkK9XprvorIy9UQhkKICmxhv9PazDNF6yTTOMsDsuxot92Z6aFZirYrafEN0tBj9l2wIEDl8Ag9NcxxEnMfn47HiJ5Smn8oQJzqs+VFWUQ5JjAelnr3QcW2JjEGxxo4liueixbgHd8OTVTizCh2inthkr14PdSaf2g+n2DROG93SvxBtcACzZKdwHIAJJmvz/RkpaL2iDUtJZqj520wjXYgAQnj0AHMNFRMwP5g53AX6GGEMm5oQjDQurzZEGGTyUvTjyMhtJ5Krr792UOivDdNDZDvLJJYHTEM76COKTBwqHIRQ== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by GV2P250MB0924.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:78::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Wed, 29 Jan 2025 12:16:08 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::1f36:56b3:1d04:c7a6]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::1f36:56b3:1d04:c7a6%4]) with mapi id 15.20.8377.021; Wed, 29 Jan 2025 12:16:08 +0000 Message-ID: Date: Wed, 29 Jan 2025 13:16:06 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250128155444.256068-1-16567adigashreesh@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250128155444.256068-1-16567adigashreesh@gmail.com> X-ClientProxiedBy: ZR0P278CA0195.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::11) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <7de54080-6545-4059-9c25-017416e11ced@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|GV2P250MB0924:EE_ X-MS-Office365-Filtering-Correlation-Id: b461a9bb-7dbe-45b7-5ad4-08dd405eb62c X-Microsoft-Antispam: BCL:0; ARA:14566002|8060799006|461199028|15080799006|5072599009|7092599003|6090799003|19110799003|3412199025|440099028; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Ry9HWXJpVGRCMnJDdytOYUIwT0tzMFNCTXNiaGlMNzBNUVZuQWZsSGlDUk9k?= =?utf-8?B?M1N5SWw0clhJZExDVmZyaVhSUzZIYTdkUW9SWUR3SGtGWWlhWDhuV010RFJW?= =?utf-8?B?OW5LdnczUDVBN29uU2RvRlFzM1NvcmNvaDJOUzhCUzVldGtJcjRhU3Jabmpk?= =?utf-8?B?VENjL0pnTkhJUkszUitlMDJjK2YyTUVQSW5mNkxXcktFZHU2dzZuRDgrYmNj?= =?utf-8?B?MkJqUkdKOHhHQldtVmdRSUtMMHM1NnlTTXoxbTN0Q2hzaTk5Vmpqa0FodjlW?= =?utf-8?B?aWJ2d1B0UFZzZFIyQlUxaDRvdjdPVkV3aVhtYUMzS0pDaThIZWh1R054UERM?= =?utf-8?B?T3BFUms0YmYyblE1OEo2ZFJEUnlvVzdVaitKSUh5NWtIUDdoSXNyUUt0dUtV?= =?utf-8?B?dDYzOU9FZ09LY0thZnBMVDdnZWZSYXpocGxYc1pnNXQ4NWdqd2NMaHdtdkxn?= =?utf-8?B?UVNYdFdJVklpbUFtVkpWZTNsSk1FY0RNUGlFR1czL2NVaW54VnRlc0h6d1I1?= =?utf-8?B?Zmc2RzkxSTBSZVlSc3UwemcxSElndmI1Zm1uckQ2OFBLMEJQSkdNcXJwd0hV?= =?utf-8?B?R2hCS05HZUFMMEdnQkhzLzBxOWFCMkZZRUNpRnRFdXJQQklndG9RR2Npd0tI?= =?utf-8?B?TG1nNkxEc0pMbnVzRnJaSGVxTERZVUhWRDc4VWF3czNITEZzQUN2c3VYMXJ4?= =?utf-8?B?a1FaOHNubS9MVDhKNm01VkVHOFhCL3dsaFd0aVBMR1NDalJRbFdSNjhNaElu?= =?utf-8?B?M2JNaldMTDFjNk5rRXBVeFMzZGNaNi9xL1Ixc2g0U1BOSlNUNHV3ZTFjY3M2?= =?utf-8?B?OVI2YllrbWwvR0VKeS95am5uZVhBNklQUitnN29EREVwZUgwZVBzb0ZuMjdI?= =?utf-8?B?cTQ5S2lLOFVtTDI4RTMrNkJLUGJTVFJTUTdmOW5qc3Y4d3BJekhRak5ZMzNN?= =?utf-8?B?cXJwZnh5NGYraWtyd3hzSnkrc01lTUExek5xMDIva0txVHM2MnRIUGFoTXJX?= =?utf-8?B?YWdhaHJabW5NT0JQYnVvaGtoZTNiOWhMUnQwcC9TdFdML29iUHlJcjMxNlRJ?= =?utf-8?B?UGRZOU5OYXppWmNWZFBmUHBHS01OWjVMdWZPMjhDelJHY1l3cXFwdE9ueGdy?= =?utf-8?B?RXdaVkt5MlJyYkRYR2I2bXc5N3hkTFlDT2RXQnFobGVlbDVIbnlzTjJxTW5Z?= =?utf-8?B?U0cySTRnVENDSzV3QTEvWTFHUEI1R2NmeFJScFY2aStOL2VMalBKTFNBZ3Jm?= =?utf-8?B?cndBd1JMT2pIelFoMXNFam1uQ3E5RlU4NER3SWNDK0dPbDRkeUEzZ3ErS082?= =?utf-8?B?RWJDQkJOMTk5THFFVWZ2R2RTVzBMdVQva2JJME1LMkliVDBHVitKT3hCZVpC?= =?utf-8?B?b0NwckVHdVpHZ0g0Vm9ROWREMzdQM2hUNndyU1gwOGNnTzhJclllYjRrSXdy?= =?utf-8?B?R1lDK2UzdFRwWHhzRzZnRFg3cktIYlYzUXBMZ2RQL3NUUWNsK21mbHRWUDBS?= =?utf-8?Q?4z7xO0=3D?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d2RJUU1SMUYvYU5XcllPRDZqbC9pQmFrajVPVzExc1RNbTNyeTRVRWFya0lq?= =?utf-8?B?QXNZNnZJMzBZT3lKUmdaam9LTzBPQ2VHQ3VrRkIwY2oxaTdKWkV3SE5QV0ky?= =?utf-8?B?d01nRERKalZJU05OWGRreUlqMDkycDhIN1hSK3JEdHB6L1NHT2NhYW5GazJp?= =?utf-8?B?emRQdEt0YXdyRVFQNnJ3NVV1bnZTQnUrVXhnMFBmMm5rOUJZaGxVeUtaTEo2?= =?utf-8?B?NHVWWlMvOUlnUzlEWWxRL2QxVnlyeDZZNy8zZzN2bjZyOHcvTnBBWndvQkdG?= =?utf-8?B?MHNMVW13N2d2NFdDNldHNTE2NmZHaFFOMTMrcE1KcHl0YjUzaFFsRHpLRStN?= =?utf-8?B?czhDdkNPWEZYTWFkcUZxK1Rzd1RxR24yL2FGa01UYUFsMmtQa2dWOG5MTXNq?= =?utf-8?B?M3UxU1Y3NTBVTkQxS3cvUzR2aVcwWlJHS3MzenZpUWx3d3A2bkJYak0xSmVL?= =?utf-8?B?OFdqbFNRdGdZVkgyLzRZdFEzZUg3ekZINENhL3NJTFJsUkpJRzdNdnVVQmor?= =?utf-8?B?ZENHSzMxT1YrajYwVFZkN2xJOERIaUtKd1ZNNk1TVW1hRHF5MFhoUTZSRlNQ?= =?utf-8?B?bFJzMzllZkZYUk5nZkptZnM1a094R1dpcTdaUkR5SDhzVFBCT1BSdkFsWW9s?= =?utf-8?B?eVJmUWpxWjBXenlEVjRseUFLVk05b2RISFVmUTNWa2VUeWtkbVcvY081dVY0?= =?utf-8?B?NndTeEc3RG5XTFJvQ01BSnp5UUJFL0M5anJpZUpTKzRvWVZXQnJLbU1MUjFk?= =?utf-8?B?Wm9wdS93QXIxMEFXdzhYcTZYMy92a0UzUE5RaGtBcWV1aWZmQWQ1N1lhdWNS?= =?utf-8?B?eS94VXdmSHdxRDloZC9XSWdTeWVnSzRSbnU0ODJaZ0lYSjVoamltUmxGaXhr?= =?utf-8?B?aXlWNHV1Z0FFQ1BRN1hNSFBIaXJYamNKem4xS0NtZ3hiMjcwUDVIVTdEa0FW?= =?utf-8?B?cGxDN0Z3MjNxQlpLRWhiL1Ivc01BSW05Q0hDZHFlOUx3NUQ4bVJEbWJwR1Ar?= =?utf-8?B?RUpDaEE2Tk5jbVdBNnc5YVJ3bXBYSkdvdW1BWVVBZDRmLzc2UlU1aUVPUnEx?= =?utf-8?B?clUzbUtQRUpzMEJybU5NNU9rSmtUU2VEY3RhQXBidUxlMkMzcWlvcUZuRDFh?= =?utf-8?B?eml6dzIxUkFva2liTlZydGJCTDNHdk5yV3k5dmwvekw5T2kzN0R3U01OT2Ez?= =?utf-8?B?WkdEUEZ2UnNzWDdBMVBoWkw5VmF5LzhxZHlrSVVwRmo0SnFnSHlXbzc5cTkw?= =?utf-8?B?aWZFMG9seU5QbUd2TVorVnJ3aWVycjJzaEpOY2JBUDd4UmRiOXlVSjdHYVJ4?= =?utf-8?B?bS9EWmJQaFR2U2I5VG81ZHpZRUIyTi9JRFVybEhzL083NG1SMmllcklSbkp3?= =?utf-8?B?czZOMkZ0cW1qT0VUa1FtV0JaMlQvM0ZEWlRxOGo2YVk4YkNBVnlhOWIzQnRx?= =?utf-8?B?VnpEQ3BqYzA1R2FoRDB2ZERBSXQxK1FqSjZubVBNZWY2aHRGVDFvbHlLTnRO?= =?utf-8?B?RmhDaG5rbXNucFlmMi9ReVJ4WE1lcUhGN3ZnU1dPMEFVeks5ZkxrRTVOT2pZ?= =?utf-8?B?OGJrVlJiaUt6V2tjL0tqUXQveWRRYUFQQ3gyV0kwMXY0Y1JkOXBPczgzUGda?= =?utf-8?B?MHBzalFKVkJVdFFKTlV4czhidDFVWURaL0RjTEtnb2lVY29kdXdTN1JPcmFP?= =?utf-8?B?L3h6RytuTTB0WVVFajJQcFF1bnl2eGZQempVMlRZK1NidzYvOVJkTjBnPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b461a9bb-7dbe-45b7-5ad4-08dd405eb62c X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2025 12:16:08.7259 (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: GV2P250MB0924 Subject: Re: [FFmpeg-devel] [PATCH v3] swscale/x86/rgb2rgb: add AVX512ICL versions of shuffle_bytes 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: Shreesh Adiga: > Signed-off-by: Shreesh Adiga <16567adigashreesh@gmail.com> > --- > v3: Fix build failure on older nasm by replacing "kmovw k, tmpw" > with "kmov k, tmpd" which matches "kmovw k, r32" syntax. > v2: Tried to align operands and improve indentation for ASM routine. > libswscale/x86/rgb2rgb.c | 21 +++++++++ > libswscale/x86/rgb_2_rgb.asm | 90 +++++++++++++++++++++++------------- > 2 files changed, 80 insertions(+), 31 deletions(-) > > diff --git a/libswscale/x86/rgb2rgb.c b/libswscale/x86/rgb2rgb.c > index 6790551a38..4cbed54b35 100644 > --- a/libswscale/x86/rgb2rgb.c > +++ b/libswscale/x86/rgb2rgb.c > @@ -2364,6 +2364,16 @@ void ff_shuffle_bytes_2013_avx2(const uint8_t *src, uint8_t *dst, int src_size); > void ff_shuffle_bytes_2130_avx2(const uint8_t *src, uint8_t *dst, int src_size); > void ff_shuffle_bytes_1203_avx2(const uint8_t *src, uint8_t *dst, int src_size); > > +void ff_shuffle_bytes_2103_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_0321_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_1230_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_3012_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_3210_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_3102_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_2013_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_2130_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > +void ff_shuffle_bytes_1203_avx512icl(const uint8_t *src, uint8_t *dst, int src_size); > + > void ff_uyvytoyuv422_sse2(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, > const uint8_t *src, int width, int height, > int lumStride, int chromStride, int srcStride); > @@ -2454,6 +2464,17 @@ av_cold void rgb2rgb_init_x86(void) > shuffle_bytes_2130 = ff_shuffle_bytes_2130_avx2; > shuffle_bytes_1203 = ff_shuffle_bytes_1203_avx2; > } > + if (EXTERNAL_AVX512ICL(cpu_flags)) { > + shuffle_bytes_0321 = ff_shuffle_bytes_0321_avx512icl; > + shuffle_bytes_2103 = ff_shuffle_bytes_2103_avx512icl; > + shuffle_bytes_1230 = ff_shuffle_bytes_1230_avx512icl; > + shuffle_bytes_3012 = ff_shuffle_bytes_3012_avx512icl; > + shuffle_bytes_3210 = ff_shuffle_bytes_3210_avx512icl; > + shuffle_bytes_3102 = ff_shuffle_bytes_3102_avx512icl; > + shuffle_bytes_2013 = ff_shuffle_bytes_2013_avx512icl; > + shuffle_bytes_2130 = ff_shuffle_bytes_2130_avx512icl; > + shuffle_bytes_1203 = ff_shuffle_bytes_1203_avx512icl; > + } > if (EXTERNAL_AVX2_FAST(cpu_flags)) { > uyvytoyuv422 = ff_uyvytoyuv422_avx2; > #endif > diff --git a/libswscale/x86/rgb_2_rgb.asm b/libswscale/x86/rgb_2_rgb.asm > index b468beb12d..ca7a481255 100644 > --- a/libswscale/x86/rgb_2_rgb.asm > +++ b/libswscale/x86/rgb_2_rgb.asm > @@ -57,40 +57,53 @@ SECTION .text > %macro SHUFFLE_BYTES 4 > cglobal shuffle_bytes_%1%2%3%4, 3, 5, 2, src, dst, w, tmp, x > VBROADCASTI128 m0, [pb_shuffle%1%2%3%4] > - movsxdifnidn wq, wd > - mov xq, wq > - > - add srcq, wq > - add dstq, wq > - neg wq > - > -;calc scalar loop > + movsxdifnidn wq, wd > + mov xq, wq > + > + add srcq, wq > + add dstq, wq > + neg wq > + > +%if mmsize == 64 > + and xq, mmsize - 4 > + shr xq, 2 > + mov tmpd, -1 > + shlx tmpd, tmpd, xd > + not tmpd > + kmovw k7, tmpd > + vmovdqu32 m1{k7}{z}, [srcq + wq] > + pshufb m1, m0 > + vmovdqu32 [dstq + wq]{k7}, m1 > + lea wq, [wq + 4 * xq] > +%else > + ;calc scalar loop > and xq, mmsize-4 > je .loop_simd > > -.loop_scalar: > - mov tmpb, [srcq + wq + %1] > - mov [dstq+wq + 0], tmpb > - mov tmpb, [srcq + wq + %2] > - mov [dstq+wq + 1], tmpb > - mov tmpb, [srcq + wq + %3] > - mov [dstq+wq + 2], tmpb > - mov tmpb, [srcq + wq + %4] > - mov [dstq+wq + 3], tmpb > - add wq, 4 > - sub xq, 4 > - jg .loop_scalar > - > -;check if src_size < mmsize > -cmp wq, 0 > -jge .end > - > -.loop_simd: > - movu m1, [srcq+wq] > - pshufb m1, m0 > - movu [dstq+wq], m1 > - add wq, mmsize > - jl .loop_simd > + .loop_scalar: > + mov tmpb, [srcq + wq + %1] > + mov [dstq+wq + 0], tmpb > + mov tmpb, [srcq + wq + %2] > + mov [dstq+wq + 1], tmpb > + mov tmpb, [srcq + wq + %3] > + mov [dstq+wq + 2], tmpb > + mov tmpb, [srcq + wq + %4] > + mov [dstq+wq + 3], tmpb > + add wq, 4 > + sub xq, 4 > + jg .loop_scalar > +%endif > + > + ;check if src_size < mmsize > + cmp wq, 0 > + jge .end > + > + .loop_simd: > + movu m1, [srcq + wq] > + pshufb m1, m0 > + movu [dstq + wq], m1 > + add wq, mmsize > + jl .loop_simd > > .end: > RET > @@ -122,6 +135,21 @@ SHUFFLE_BYTES 1, 2, 0, 3 > %endif > %endif > > +%if ARCH_X86_64 > +%if HAVE_AVX512ICL_EXTERNAL > +INIT_ZMM avx512icl > +SHUFFLE_BYTES 2, 1, 0, 3 > +SHUFFLE_BYTES 0, 3, 2, 1 > +SHUFFLE_BYTES 1, 2, 3, 0 > +SHUFFLE_BYTES 3, 0, 1, 2 > +SHUFFLE_BYTES 3, 2, 1, 0 > +SHUFFLE_BYTES 3, 1, 0, 2 > +SHUFFLE_BYTES 2, 0, 1, 3 > +SHUFFLE_BYTES 2, 1, 3, 0 > +SHUFFLE_BYTES 1, 2, 0, 3 > +%endif > +%endif > + > ;----------------------------------------------------------------------------------------------- > ; uyvytoyuv422(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, > ; const uint8_t *src, int width, int height, > -- > 2.45.3 > Why does the commit message not contain speedup numbers? - 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".