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 E9F3249676 for ; Sun, 17 Mar 2024 14:47:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2CB1768D113; Sun, 17 Mar 2024 16:47:49 +0200 (EET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2030.outbound.protection.outlook.com [40.92.91.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D2F9C68CBAD for ; Sun, 17 Mar 2024 16:47:42 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bEGfoeujJQMgA+D5yz7LS5tWnYODOPRVh5hcDGZg2hTBp4cY05c04lubk17W2428YVM71L8LNIqXYERvfHZHuj3QmtqJSr81tHCk/efaRLNzMSewOp41o7AkiQC/Zm3HPJ4LEdciNIfN/dO5UPTkaldKsuOit2Ft5qlla2Ai0SjppSEyZd9bvF2ryB8WqNyNNvh7FuADqM1oVYp8x3XZi4bkg5miyqAkQImm1xJVq+C9JqGoSxgUwggCRlq1oPJWA603h/osASy9vh39bVwR20nB4ioupnOPy6xkQ8WBqNuJ/Cnt1Fufj8zxrxXYoy/72xoyWybnj1StZku9IeyBCQ== 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=8hVAAwKLaiY2r77cG4SrqvJFAj4yAI1n/6w8QJA1SV8=; b=EQXdba7wO7fIgev1MKk6p60x8yUzhMax+IGmgh7IMV3YUV0wIUtAEbdExgE+xMbhNjYaaebOWoZgIFSwRG3xfBGnfUUfOcO8Cnd6pAqyXVEDbPfxgVbt9jBAWWhey3PPqC3pJku3Fuvc/n1/Uyuf8BpZ75KyP/b8Xid6Z410GfDVa+8VoHgV7m1CDDdoNZzDHPFNjOeohNwmgg9eTCpQQUZVQrLTwncxFys2WTvcrn459tN0zoMPodeDIaDuF2Atj6RfWW1kWWePVR8gBbh9vJoStxncaSlE+wmdFG8RhnNvnv7SBObbijLdAG8+GaWRn833WGwxICznUA8fjOBFRg== 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=8hVAAwKLaiY2r77cG4SrqvJFAj4yAI1n/6w8QJA1SV8=; b=GeeMbyzwOL6p8l3xF8ywH9UHmq85FnXUdlG3LLO2g9QyMLwmIz/t/uSdVWcLFdfWu14lchZSYecnUj2FYojzVjaIsZmxWpSw+r2QGGwy75JkMqV9g4CaDhLI9ytfeARqhPWPsZjsBHT5i5v5z1K1pOzb828EFtvULsy7NtQxXy84JbQRoMFrFiCnWu+pcGz0NF3SER2tde+g3gdaodjcxq5KONSHV0LEKz0eygxbVA2CXU7auXiPrjxeKwAMaMlQBVVrThLV3WmCNQmVVorYVBJ0AAmInpOxNbsyTg2AY4e9Uekg7RVVYBAIxv11MBUrVV+acVyifGMAfwumpBCX3A== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0227.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.25; Sun, 17 Mar 2024 14:47:41 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::228d:8c6f:ed10:82eb%7]) with mapi id 15.20.7362.035; Sun, 17 Mar 2024 14:47:41 +0000 Message-ID: Date: Sun, 17 Mar 2024 15:47:41 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [5IkqxLsQexP28PugFv8Nz4Eu2TDuy6MBoNfBsA08twE=] X-ClientProxiedBy: ZR2P278CA0033.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:47::9) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <9679d853-cfdf-438e-9002-ae51b326d90b@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0227:EE_ X-MS-Office365-Filtering-Correlation-Id: 0dc66ef5-8e8d-4568-003d-08dc46913298 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnqOm5fONWoLHaAhhnlxrZ9+yzt3TmnsOjbewiPHz0qVmpeVuUM+LrlQn1GxkJSlV6qYOQzYy5XdJozJZDlNTTmylbEZfeFszlgH9drLygnIMzMnRclk5kvb4jmeqL5HbYXfmkWvuGEKa8NzgcMIbISmQz9cDTcfS02+VbEjJvUA8zhW8Rm36vIoT39H1fG6KPr8s8sBAytXo715TfvQyddfEeaXqGHNXiadRFhu6F5rcxkUOL1NUpZcLEtouVvGSTo0bdPNfsi0EqPWxKSQlFN+oVB5SyvtXXoDcrrK11AC54X1QA3YnPSf54+DECqa9gt56OM5lk61rMIBQLbTeui9U729Knwm9+ozzkGCcHTwGk2RmFLQuXtHtujWy37zFXr2R40ur0NHHl0Zjr1Ct5B+oU9g5l0eypjsQD0dn1A4G2r8h+NLFj3r6ZdgIEuTWKYBJTpjQK7Spv5n7MZH93pNEoxfnh91iEml2GQmDN8crWJ8BxRREMysgZOAkaJUDcoPFsoI8ekhiu73GCGWdsBD9UD9Mxy0S36VLS+rBWuEMl7bwMelrY0iqgltEyFAR+iXtLQenYDbaltGRJ12qdip9s6nlwpiEqT/q+uNld8s1h/kEHHbnzYRhBwZxG4jEb1vgcgDPWnJ1zaouWduzjTaLqEBkv6gur6PLLh1kYmZghJUXAXOimYNrn/fe1jvA3h8eKSVPUTv4EDnED/NFiLNQAVxmmDxHDySrfNWoI/ITvcoN1J9T8Ry4nKHMgl3HMk= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yOu6KEgw1Bznt8RGsZ8shX3mCRlkfCeSY6hVal6LwvxiPL9meahDAd7Q5iCgMsrrp+FYZssBd9r5hF+03B+NSqpONJJQCHnjJkaxra/kxtNuHnp8cM5oZtoYvOTAzqz0hvc/rSS/x21VjL8C6n3nRke02npr37Uq1CRxbjCjfGRVGYztmaMJWtpKvdnH+fLU1JQPgrrtx1cQkEOr1+vtUy2GKWMDMRDC15atCzPc3/zF9zS1pprwBl4IVsDgmGbtWwtbwBijWpwitzME951U28Ppne9YCuoUdRcmQdFVhUnL9JMhhscKavRvJhjK0uNBEVvM0/iVn633Tt+2077WbLqrgP7OyPjBUQSMSObEFSRh+IVyTOGd91Fmr/S/qvieSK97GkW3pbPkwlezhEGImKh1K19soSd2yxfXG2940JxrmAxWvhZ/ioQH9ai9rvfJOyQV5SgyNci+xH+QcGAzAKX+irdoF6hY616kCUoLeBTh92LU0zsk41X5Czum/ZMhDK4SOSxeyVHEc+3olI4x0z4KmKPYnbTwjbxlq4PPRAmzhE15YOfni3Ezn6QKy1LA X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Rm5wWEdiZ1FsdEZUQ1htRjcyNWRaMlJOV1FTZmJnOGdZWjV6QUQ3bUY3NlRw?= =?utf-8?B?d1J2dkdVUmxvOFlWdzFrMGUyZHkvK2xOdW1VSFYyNUdjR2hUOXJEVnJkK1pp?= =?utf-8?B?eDloSWtoUzJyNE5ENjVKaGhFdmF1NFBubExyVFB1cWdOS1NGUy9ORTNhdXVq?= =?utf-8?B?d2RhZExQN2pXMFpFbm5xSDBNODc5emIvbTNITW5aRk9PR3FJZThkV2kzRjZG?= =?utf-8?B?bWhzcUI5MlpzUzFPREFpZmx4Y2t5ZDI1N0hvdERubVVlSis1Y2hXY0ZZMytR?= =?utf-8?B?Rms5TTl2RXFLSFd0ODVldUVNT3g1ejJDTTM3ZUl3b1FTb1QzM1l6a01aOUU4?= =?utf-8?B?Q0RjajVXRFlldXBia04zWS9HSWxIb3oxblpBYkQ1TVA0NWo1VmJXRjZLdEph?= =?utf-8?B?Y0FxTW1RSXNGdWcrT085enllT0lJV3oyVGhsNGFKV3NLLzZpakFFUlBOSjh4?= =?utf-8?B?ZGZnQ3BIcDRoallmL1FqZ1l2ZTU5RXdwMUhGR0lTNi90ZTBhZUpKeVdtNERq?= =?utf-8?B?ZWdRb2dHMkZyL1dCdE91M2VhcWVVUWNWQVVKWGJGL3E5YjRqNXdCR1BOazhO?= =?utf-8?B?QXNjUUpNTEtLSUF4NmVuK2s1T21DeE1tSDQrVUJSVjM2dTFvVU9iUTVQNDha?= =?utf-8?B?bzdINVBCbWNaU2s2MWI4MG1KMVdMZ1hHbEI3dmtFMDRKTk1LSDNtZExLeVBK?= =?utf-8?B?YSt5YTlKU0JaemtxdzJDM0o3UzlBOUQ5NWxFQjFaK0tuWm1yaWp4WVcwMDFE?= =?utf-8?B?SEpnRHUxNEx5czFYMU00MkxndDRHNDdIcnV3UWw3U1cyaVM5RnJmYXJyaUZF?= =?utf-8?B?bjFUWHdybGRqSnVON2hSK0xUTmhITjBndDlmdXV6STFieUcrVUFua1lpODlO?= =?utf-8?B?TzYwRGVwMzF1dkdoekdKZkp5bTE4NUFubDA1M3Vha2pkbnFnTURad3F0Mlh1?= =?utf-8?B?MHJia29IVDZNeGRlTlJTZUg5d0hrcDJxRXJPVXRXTnJ3Sk5SVVBBNy8rS3dF?= =?utf-8?B?VkZJWG8xT1JIVHo2b1JVWmg1alVJenZ1SmVRNmd4NlJwVTgyMHhlbTFvOEpr?= =?utf-8?B?YVRJemZCK29Jb2RXNnoyTG93ZjRzREo1ZU1kSWhlYkhpV0szajFrcnhxMWFa?= =?utf-8?B?U0tWYllwQ0xsODhhV1dQRnNTYmpBTmF3RDIzTjRvdkFTLzhVSUVQQ0FJU1FC?= =?utf-8?B?N2tBRjhJa3pYS0dKQ0U4T1ZCSHM0U0NNOTYzSGkxRklVMVA2QXl3ZUpTbG9L?= =?utf-8?B?czliK2t4QmNoSkFkMzdLelpWUzd0ZGJYYml5aEluMTRqNzBKcmNaSFNCYjZW?= =?utf-8?B?VGZ3eEFGRk4ySHJiakRWdllLckZ5ZWVSWEhJVTczaUhCZHpmcFRZaXQwVWlV?= =?utf-8?B?VGduUFlmYy9OQmdDZU8zYkFoQkJFb05tZURCMVMyblBnN2dyYkRNcXpVSWl6?= =?utf-8?B?RWkyYVdaaHNBSng1RE5vaVBJZFVObTZCa0RGWHFSaWlrRVdJSi9uaTd3UWxt?= =?utf-8?B?QU01Z0RTMWtWMUlrVkg4L0pDVDVya1UrSkdhUjRrYzBwSFdEaURRaTNJR1pU?= =?utf-8?B?Y3RXTTVydlA0b0ZkSDVIdWZjMGZLVk1wd25ONG5zWlY1SjRFb0laNlZCSG0z?= =?utf-8?B?L1RnRWdHeUFHRGM4bzVvWHZJZ0RwYkljMGZSUUVPYkwvL25JUG9CVmZoNEQx?= =?utf-8?B?WUUrTW5rcmZQMFk2SVJFSmtDdmtPREp6azhCNmdDajFyL21ETEt2WGhBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0dc66ef5-8e8d-4568-003d-08dc46913298 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2024 14:47:41.4463 (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: PR3P250MB0227 Subject: Re: [FFmpeg-devel] [PATCH] avutil/hash: Avoid relocations for hash names 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: > These strings are so short (longest takes 11B) that using > pointers is wasteful. Avoiding them also moves hashdesc > into .rodata (from .data.rel.ro). > > Signed-off-by: Andreas Rheinhardt > --- > libavutil/hash.c | 71 +++++++++++++++++++++++++++--------------------- > 1 file changed, 40 insertions(+), 31 deletions(-) > > diff --git a/libavutil/hash.c b/libavutil/hash.c > index 12333982fb..43f77852da 100644 > --- a/libavutil/hash.c > +++ b/libavutil/hash.c > @@ -38,22 +38,27 @@ > #include "intreadwrite.h" > #include "mem.h" > > +// ENTRY(HASH_TYPE, HASH_NAME, HASH_SIZE) > +#define HASHES(ENTRY) \ > + ENTRY(MD5, "MD5", 16) \ > + ENTRY(MURMUR3, "murmur3", 16) \ > + ENTRY(RIPEMD128, "RIPEMD128", 16) \ > + ENTRY(RIPEMD160, "RIPEMD160", 20) \ > + ENTRY(RIPEMD256, "RIPEMD256", 32) \ > + ENTRY(RIPEMD320, "RIPEMD320", 40) \ > + ENTRY(SHA160, "SHA160", 20) \ > + ENTRY(SHA224, "SHA224", 28) \ > + ENTRY(SHA256, "SHA256", 32) \ > + ENTRY(SHA512_224, "SHA512/224", 28) \ > + ENTRY(SHA512_256, "SHA512/256", 32) \ > + ENTRY(SHA384, "SHA384", 48) \ > + ENTRY(SHA512, "SHA512", 64) \ > + ENTRY(CRC32, "CRC32", 4) \ > + ENTRY(ADLER32, "adler32", 4) \ > + > enum hashtype { > - MD5, > - MURMUR3, > - RIPEMD128, > - RIPEMD160, > - RIPEMD256, > - RIPEMD320, > - SHA160, > - SHA224, > - SHA256, > - SHA512_224, > - SHA512_256, > - SHA384, > - SHA512, > - CRC32, > - ADLER32, > +#define HASH_TYPE(TYPE, NAME, SIZE) TYPE, > + HASHES(HASH_TYPE) > NUM_HASHES > }; > > @@ -64,25 +69,29 @@ typedef struct AVHashContext { > uint32_t crc; > } AVHashContext; > > +#define HASH_MAX_SIZE(TYPE, NAME, SIZE) \ > + HASH_MAX_SIZE_BEFORE_ ## TYPE, \ > + HASH_MAX_SIZE_UNTIL_ ## TYPE ## _MINUS_ONE = FFMAX(SIZE, HASH_MAX_SIZE_BEFORE_ ## TYPE) - 1, > +enum { > + HASHES(HASH_MAX_SIZE) > + MAX_HASH_SIZE > +}; > +_Static_assert(AV_HASH_MAX_SIZE >= MAX_HASH_SIZE, "AV_HASH_MAX_SIZE needs to be updated!"); > + > +#define HASH_MAX_NAME_SIZE(TYPE, NAME, SIZE) \ > + HASH_MAX_NAME_SIZE_BEFORE_ ## TYPE, \ > + HASH_MAX_NAME_SIZE_UNTIL_ ## TYPE ## _MINUS_ONE = FFMAX(sizeof(NAME), HASH_MAX_NAME_SIZE_BEFORE_ ## TYPE) - 1, > +enum { > + HASHES(HASH_MAX_NAME_SIZE) > + MAX_HASH_NAME_SIZE > +}; > + > static const struct { > - const char *name; > + const char name[MAX_HASH_NAME_SIZE]; > int size; > } hashdesc[] = { > - [MD5] = {"MD5", 16}, > - [MURMUR3] = {"murmur3", 16}, > - [RIPEMD128] = {"RIPEMD128", 16}, > - [RIPEMD160] = {"RIPEMD160", 20}, > - [RIPEMD256] = {"RIPEMD256", 32}, > - [RIPEMD320] = {"RIPEMD320", 40}, > - [SHA160] = {"SHA160", 20}, > - [SHA224] = {"SHA224", 28}, > - [SHA256] = {"SHA256", 32}, > - [SHA512_224] = {"SHA512/224", 28}, > - [SHA512_256] = {"SHA512/256", 32}, > - [SHA384] = {"SHA384", 48}, > - [SHA512] = {"SHA512", 64}, > - [CRC32] = {"CRC32", 4}, > - [ADLER32] = {"adler32", 4}, > +#define HASH_DESC(TYPE, NAME, SIZE) [TYPE] = { NAME, SIZE }, > + HASHES(HASH_DESC) > }; > > const char *av_hash_names(int i) Will apply 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".