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 F1AE049A3E for ; Mon, 26 Feb 2024 17:18:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 834F668C7DF; Mon, 26 Feb 2024 19:18:32 +0200 (EET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2061.outbound.protection.outlook.com [40.92.90.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C4B9568BE7C for ; Mon, 26 Feb 2024 19:18:25 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FjszxaAMtykdtWwNvdsHbSxGUH4tEH2qwtB38lpKpwxXQyaqYPTTwuLufcpP1ujpTKRPsef1ftpl8pkAIp8Pupu2sSsXpmjwOh24p/iWFqa1lXDh0c7YzS9V9e1r3MTJ5Iq5LgphBDZt+KazFNoPBesXHph1Ys0KfnBkH3RFB40gq6VCQ4b8bLlNYxCLeJjW3ERrs0UNi1guTLvJ7AQYDSVc1PIijNXI2yzY2+6qBBAJSK0tc1QTR0usP1JcWR8fs61K8+BRnGs/B6hmjkAEbf/lgI00A3rD02crYyCxMbW/C4Ose7ssEw/uOu2BsJk9y/WQq1M7laS3bB+whAgChQ== 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=gGkTuKaQ3mjh6jni2XIb5WiLhNyN91q4Lt3wg7arCJI=; b=k3hxrjTTT25Y6s6LOW0EkWAFhmV3kY9DcpEv+kvkFnX+0fcVr8Ka9dpSX19y0nLRFnbL81i+Z84oGzykUYJteQDhTgEWdOzivvp90IX8v8XAITBFdTljft7xKlNCEUrq7AbwePElruG/qfzeqt9qAsqFmlzuZyl4ISpDpxPeMlRRr5ORh1taiV6e2Id6iUcEtWgk6NybfCY2TrViZNANqCDhqx50QQ5ozPekKIzgoEPCSPV08+AmqFq7ynN0o8nkZLYurrcovaxet0pZ3aM0buzhTIHgkIWqVOmrEoFUKfnJ50K4vgjDAwGV+Xt+ESDSglClH31D7gLEUq37xLi9/A== 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=gGkTuKaQ3mjh6jni2XIb5WiLhNyN91q4Lt3wg7arCJI=; b=SL6dkImI0wSJQIY4rZftWrJTB0xD0YA0lXMDnAXh+ESTcY8JwfR+5Wc8AlU7e/RtTPxFzMWg429SLeM9NUtMQyUBAVKtwKiYt4+R+TVgapBLYs+i/s6p+MvOO+OIHRRMTZwx2+4JbBJu41vfyslOQIMiktefntP5CNMKeoDy6+IphziGAt6QdUUXnC1kbRjcvr7KEequMp/Q9f6e+7x+267ypmlPdaMYZMgVkNL8tqO/HeueO6oY/spNQ3eBRmdnBOpAnrQn4MF8lJee6qT/q1ccXCbi/HoybhHDi35vcdH3m6337ki57lYE9RkN9lDFiT2ABiB2poeLfIRNWuNcRA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0393.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.36; Mon, 26 Feb 2024 17:18:23 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7316.023; Mon, 26 Feb 2024 17:18:23 +0000 Message-ID: Date: Mon, 26 Feb 2024 18:20:21 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240223143115.16521-1-anton@khirnov.net> <20240223143115.16521-16-anton@khirnov.net> <170896764704.29002.11257003666537600643@lain.khirnov.net> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <170896764704.29002.11257003666537600643@lain.khirnov.net> X-TMN: [BPa0pOm+mAwGmM/Lq2choH4xpK7C10Tej2ScU8gLAMs=] X-ClientProxiedBy: ZR0P278CA0150.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::14) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0393:EE_ X-MS-Office365-Filtering-Correlation-Id: a7e620f9-9a89-42c0-e102-08dc36eeef87 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HsxVudJBf44LhltpjqcVG0DtaM3828u4Ye62a4yRUefDJkG7slZ0yprCcfw5TtstPybjywdLJDI/7v1qqTnub+LKWTYMQ+cRU34jdmExQfu/G/pFPzPMvvDg57fgicZW1Ca7xtzenRx4b2pETts8F6g0236t6JqHxerV+NAWv/EHwz6XoNKsCtWWGALesOZLABi8IQRJOeorYXHZH752JGTTPQXEZ4KpT3gZe7tSe8nYimzoOiPiuFPJKHj9WTkc+ATOlpV1Xcwt0fTY8FopuZnCpauCUplRUlOkrTfWZeBQnBHq4GZDt83adM6UQCT0E1F1vVWWjAPzn0oRfgPkFLQ427zfZuTBcr0xIQO7CLEtFxObg2zXEmBpabVByvt/xZUrlgEiOHOEPF9mjqJ42bOqC4wsp7vZ9GvtXx8dQLB+vN7IvMsLNrhLmdRUT/Nxkfa/PScPSPuGY2GvAqewB4w6RoC+YvAzVNEnnUBngBmT2kiYQqG0lLkFoq/YwmnzNqUL2w4jXAilZAAEc8fi2iJdQBuuP9V7Td79Vob2bH6+X9uw2uyrNSM/t/WD7yab X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZXhlT2tSUEtPc3dVVldKYTQ3T2c3bFBvendPZERGR0hPd2ROYnh6OHQ0ZVd3?= =?utf-8?B?RG1SVzBGTnR1SHBwU2VNYnY2ZXlINHRFMHFkbHhTYktmNjV5MTM0eFg2OTlP?= =?utf-8?B?bDZnbUpqbFN0NklvRDNQQmtZVVhKcDB1ZEdkZVVWN1pGTkxLVVB4YXc1QlJU?= =?utf-8?B?aWFGcCsxTE16QjlzaXNQUEdDb2ZENEpZTXFIWHE1QzN0Uk9kQ3E0UGRISkFH?= =?utf-8?B?TndyRGNHYVhsU3Y3UWRiNU41ekxHRWlGWDNOZDVGcFdUQkhFU3J0UFdCSEVZ?= =?utf-8?B?YmxWRzRjSEtNc01RZC8xQmJjUUd1Y2VMZ3ZYTnY2MVRQRzdxWUJZVmM2aXZz?= =?utf-8?B?ZVV0MXhDZlBMMm8zVkphSHB0b3RDdlFFSks1Mmp4NitWM3p5MC9zaFVyZktt?= =?utf-8?B?Mi8xakp3d2dNWjVDSlFtTlVzcTZJQXpUZ09KalE0WlpFVUx6ZlhyTkIxbUlG?= =?utf-8?B?MEJYeGZwWVJrRDJ1YjIrM1JacFRtdGlCSUVNS2xXdk1rbTA2U2dJbUVWTms2?= =?utf-8?B?eEdpcERJNFB3NDZteWc5akFrRlRMYjJpMFA4YXV6bzYzOW1YVSs0WndOcTdw?= =?utf-8?B?VWNTRHcyR2g0OFNJVjFkakNubFN3WWI4NWRiWFFLMlYwcnREZUsyZ3BYK0Yr?= =?utf-8?B?MzUwWE5BdDZpRTNwK1JlQUhxcmIxakh1QnBZWWpPNjhib0JmR085TmxYYlJC?= =?utf-8?B?S3M5L0dnNU03QjNFZU93b1F2NW1reVQrTGFvS05VMHdqSHBkRHd1eHpzR0NT?= =?utf-8?B?c29hRjFzMkJpNVRFbFQ0RExhdUt3UTNpSnVIMzRNVnF0bmhLTG1DUDN0RVl6?= =?utf-8?B?WVg3MEI5OUltbzRXbHBjcHJ1blc1ZklwMGYzOVhZeTBXWlVSa0Q4ODllSUZo?= =?utf-8?B?Y2wxUGNNditwT1NzUWpOS0pSQWtjQXMyVG5kMkozZzFkd3kwaExJTjUvL2tS?= =?utf-8?B?cnhMbzZpZGdEam9Sa1lMbGpXbFRSUVVHTjluWFhUSm1jY0w3c3pHSFlaSjY3?= =?utf-8?B?a3QzNTBHQ3FObmRCanc0U0tqd1hTdG9PY3V1ZG53UFUyUWM3UVhZZ3F1TU9X?= =?utf-8?B?VEo0ZG52UG9GQjIwM0d4M0pacU1jcVBIRHhUS1h4MEpETS9tVGdJRFdMdG5E?= =?utf-8?B?TVROZmpKU09FVkJKYUxHU3k2cUlqT05KR1I3YWJsRGJDb1lhcml0dDZ0d1V4?= =?utf-8?B?T2xBTEwyamNva3NjTnZxSEdTWXgvMk1IcTI4dWRock5EanJIZDNvYzErRnJx?= =?utf-8?B?amh6SlNqMnBwTHJLbGNuRFpiM0FLem8vODNXQnJUSTI1aFR0VS9EYU5sY2or?= =?utf-8?B?UHpKd0ZsdjA5STR0V3NvaVhMSk5LYVJXVmRJWlp5WllYNTRnbCtlQUsxNHUr?= =?utf-8?B?eWlIVTk0V09lZ3NYUXM2ejRFVTBCTFRuU2p0cWFwWlFnUnN4V2hVenBEdU1o?= =?utf-8?B?dTBPTDU1RmxBaUdFcVJ0MWFLbEhnNXR5RXlTNGtwLy9DcFhtTkNIaVdMd1pw?= =?utf-8?B?dUNzMks0MVNwM0ZpcmdMc0xaUUtyRVNaUGVvemxYUFV4ZEFMWnE4QXBYNEk1?= =?utf-8?B?OXNXVnpnSVA5UUVncTVvai90UjlUOFcrSER1dklkUjViQTR6bkkvSkd5MGt6?= =?utf-8?B?T0JTakpOLzZEdmZ2SWZQeGx5eTl4TWZ4TElMckFqbnR4MjdsU2t3WFBIVVli?= =?utf-8?B?bmRtYUdRenpDOGVVWG1nZmRkUk9wQ3U4bzV1VzBXQTV0cnhDY0tqK1JRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a7e620f9-9a89-42c0-e102-08dc36eeef87 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2024 17:18:23.0370 (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: AS8P250MB0393 Subject: Re: [FFmpeg-devel] [PATCH 15/38] lavu/opt: add array options 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: Anton Khirnov: > Quoting Marton Balint (2024-02-23 20:05:06) >> >> >> On Fri, 23 Feb 2024, Anton Khirnov wrote: >> >>> AVOption.array_max_size is added before AVOption.unit to avoid >>> increasing sizeof(AVOption). >>> --- >>> doc/APIchanges | 3 + >>> libavutil/opt.c | 344 ++++++++++++++++++++++++++++++++++++------ >>> libavutil/opt.h | 26 ++++ >>> libavutil/tests/opt.c | 34 +++++ >>> tests/ref/fate/opt | 23 ++- >>> 5 files changed, 385 insertions(+), 45 deletions(-) >>> >> [...] >> >>> --- a/libavutil/opt.h >>> +++ b/libavutil/opt.h >>> @@ -288,6 +288,16 @@ enum AVOptionType{ >>> */ >>> #define AV_OPT_FLAG_CHILD_CONSTS (1 << 18) >>> >>> +/** >>> + * The option is an array. >>> + * >>> + * When adding array options to an object, @ref AVOption.offset should refer to >>> + * a pointer corresponding to the option type. The pointer should be immediately >>> + * followed by an unsigned int that will store the number of elements in the >>> + * array. >>> + */ >>> +#define AV_OPT_FLAG_ARRAY (1 << 19) >>> + >>> /** >>> * AVOption >>> */ >>> @@ -313,6 +323,16 @@ typedef struct AVOption { >>> union { >>> int64_t i64; >>> double dbl; >>> + >>> + /** >>> + * This member is always used for AV_OPT_FLAG_ARRAY options. When >>> + * non-NULL, the first character of the string must be the separator to >>> + * be used for (de)serializing lists to/from strings with av_opt_get(), >> >> This is quite ugly. Also it breaks the assumption that if the user sets an >> option value to the default value of the option, than it will work. > > I don't follow, what assumption are you talking about? > >> So let's just remove this feature for now. >> >> Eventually I think some new struct should be introduced, e.g. >> AVOptionExtension, which can be used to specify additional option >> settings, such as array min/max size, and maybe separator. It would be a >> lot more clean and future proof than filling the holes in AVOption. > > I've actually considered that, but don't see a clean way of linking such > an extension with its option. We only have an int-sized hole, so can't > add a new pointer field to AVOption. I suppose there could be a new > array of extensions in AVClass, linked to options by name, but that > seems even more ugly and inefficient. > You could add an AVArrayOption struct and use a pointer to such a struct as default value for an array option. Then you would not be constrained by an int-sized hole. - 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".