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 6A9E249220 for ; Thu, 7 Mar 2024 14:50:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F4D068D021; Thu, 7 Mar 2024 16:50:26 +0200 (EET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2081.outbound.protection.outlook.com [40.92.91.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 82E6A68CFF4 for ; Thu, 7 Mar 2024 16:50:19 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AwVj8yG7HdRbNNSccWl6G24q2RJlgEnbSNLtlH6W9/5bsPlc/Jabpy8B1iZCyXfjXobBjrdRufvT/TQ2AFkNhG2Apt5WS7iOSR3Xr1BIVHqCw47rhwC5gciPt+PbveEHooJcQyVC1F0JqkoZGIJFw85L66UwlaD3b6zG0BuCJAnwAWZMZJmyUTr5rWmQ4jawKgRWbtQQRGCsOxfCOled1vDNU1Wmovb505yzDp7WbIotLP82JgM8Sm+IY1mq8zgm8m3vxxggWW+ZjjwybE5zFoZPbQhlwRFdu/9o2JES+GtEXBVm//1UcvW8u2SxAYOSlzRtTZJtPKc4diEcS3H7nw== 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=YJSUlX/5Gb/FoynTcZZ5QH1eoJX1hJujqNRwbaMmVrg=; b=E0kmZL1XYoce5hpO5kG5n+pVBRSvh315paWzm4xD2RFMoEcMJnkxg4ukcifHFlzzq5eijYZ+U6m+IFGOhPCmz3pwuqm/soUwJxZEeZQ6E8LnD7Vlv1gWE3+5GDZesaWzspoSAHuH6u9HCm6ALxLq5HiTXrLE57kKuibpY7zPYbP91hxhS8SLMBp4+D48ah45yYk31QljsqdAUUBXDkvCiL16WM8oL7yU9jYHr5jBtMONs1t79GaVusvDoFSRB0xgc2IioFZUHm0itKLgh1s5Voowr3Rwy3n+jI6oosn8nyenNFJJnMaqEkoeOVktVXZva1b5V2p3tWsZj7g1+PMUrA== 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=YJSUlX/5Gb/FoynTcZZ5QH1eoJX1hJujqNRwbaMmVrg=; b=h7gRUjsDJKNIpm1hEFb2g3bIP+lQR1Qr16+nhudyDw+pZGhm4di/K1h72gyGdNtQINWUMy7VCeeOuBHXCeqQILyVrm2Fx1HYwOno51d0AOPywiOmg1/w+oedS5kCtg2RBc/l21SG79MnrJj9qUl9f+HwSlW4Ts+L/6UdLdoaEsl0/xZajstlyVNrZYEq+HDDC3Pqx0Q3sDqq877fAg/vGAF9OZ7XIIZqEupsnLnyMW2LBR7OAIs+KhqxtBs6KNN3sNVyASxqXK+EJzFpw+Ft5pZjpLaHuvxjrXmFM6B3X1UlpiNGY/tE2M+7kX94hgl4B8opxOp0sjiplSkB8rAVQw== Received: from GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:109::15) by VI0P250MB1051.EURP250.PROD.OUTLOOK.COM (2603:10a6:800:24c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.39; Thu, 7 Mar 2024 14:50:17 +0000 Received: from GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM ([fe80::a8f2:5082:22e4:8d1b]) by GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM ([fe80::a8f2:5082:22e4:8d1b%5]) with mapi id 15.20.7339.035; Thu, 7 Mar 2024 14:50:17 +0000 Message-ID: Date: Thu, 7 Mar 2024 15:50:16 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240304130657.30631-1-anton@khirnov.net> <20240304130657.30631-6-anton@khirnov.net> From: Andreas Rheinhardt In-Reply-To: X-TMN: [tBGFy4MDSy5cqMCpZB7DrXFho0rLiqfurMsx96h0Cmk=] X-ClientProxiedBy: ZR0P278CA0091.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::6) To GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:109::15) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1SPRMB0052:EE_|VI0P250MB1051:EE_ X-MS-Office365-Filtering-Correlation-Id: 337384ab-0848-466f-8518-08dc3eb5e771 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9AVJBp7NkRK8CEO1rd0fJF4XypILbz2OWeQXk2EbYluLSxye4dcMDwQ+ujgOR783qSqKwmzp6+li4RGmKnLzzrMgY23LLeehox24TYeEvWXR8LteHTyczXddRwQLLmkUzpetQ1j36UCEJEhGETx7SmYtR4++LeRD5LoKCr92wmTJMwQfqi4bHbPrxbSvrdr+gaBS1oB0zd9mGr+naXc/q7EFrb+sXLhuawmhGITRJAw/lPCwHGgKXL24dw5hsqqApkmG+juY+HN0YAwLyhg9lnapwMdpxuGdFUpYK/S/Urfp2/RUSR+Bm5Qx0TaXhgkCRU9QTMpCFzlolRGBsF7K/R6qQaTfVgjnWTBh1x82KCPa4auQwfR8MUMn/eOsitzl1kdDkU8uyxrHewe/bXOoKF0DJnrmdX0mD5X/SjF+ToRVE7u5dj1ZQjwIG62dQqyR6UeKGj+bzKLjK1/oNOgAu9ISbf84XveNAYYHyixLwZ/8f3tukRG+zGmCoZp1spAdiqCxia20kyJa8CIRxgfRP4xIS7JXou4wbWn1jtpABQ5xEC/Ydj/wUmz6uwpjlUw8tjl2QzqM2uYD1wWmRGAybMQuFFZGeMlxAhaXkakJ5hPn5yjqUa//5dmKiDYchK1WSCCQ+q1rE9Ts0PVrcU2XF9qyJK/W6wIp4bgyT6+He2k= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MDR6djEzY2lxUk8ycnh1THdpLzQ1K0tkRXNkWURielpWMm5vR1dZUVlZMkU4?= =?utf-8?B?eHRtZnlRR2NlSXF3Z3NUK0xEK3RmUWhVelRHQjhhYkFnbWg2RDRKRmYyQ2ZF?= =?utf-8?B?TWYzK1d4am52ZVdDc2g3Q0k2ckhHZExSUThkempCNGpRaTJkSFBNVFczdWtD?= =?utf-8?B?bHloektXdjVTblJIRitSeGVsK2E4eXMwbXNmMlNHZVdWZzJkdzVkTkFaTUh2?= =?utf-8?B?cXJOUXJ3VTd5eXMxajdFN2lyTGdrSjNzN243RGkxTTBSVGFtc3pqZitlUzRF?= =?utf-8?B?WVhZdzRvUzAvTTE1aXcwek5kaTkyNkpPQkZvTzlBVnFqTk1EOWQ5dDZkdGFG?= =?utf-8?B?NkxaREY3c3ZGSmx3TGpNN1g2akQyTVg5QzdjQml3S0JES0paVDRYNFB3QlpU?= =?utf-8?B?ek11Nk9KRHdNWEpGWTFwVmVVQ3FGZDF2by9VK0pDY3cyZUdhbVkxSWxhdHNB?= =?utf-8?B?UExRTTlOQXBMc3FOWXBJYXhnSVN6VmQ1NGtSMXRKTjNTbzd3RGdNdWF5QUJE?= =?utf-8?B?TWNFaTFQeURDSytHYUN4YkxGNVJ3Z3AreXpOSnQ0RVdvTE1sYms4UjFmaStv?= =?utf-8?B?dDdnYXZvdG00WXRYalE1VVhaZXhNUzFOWGNzMjBRT25nL2x5bVZqRmVlQVI0?= =?utf-8?B?L2RaTlVpV1BUSVAreW1DYlphKzhFU1FHYVhkSlZtSlNhVTl3dGR4UjJhNU83?= =?utf-8?B?cTZobEZUVUMyNlRyN1piQUVURzlOYTN6Nk1xTi81WjBrRjJNVUZ1Vmczazl3?= =?utf-8?B?VE5MNVJqUWdKUFpENmw3Q0F6WG96Rlh6dUVqZnMzTWRValJXM1NGSjZQdjVL?= =?utf-8?B?Z29rMEFFbkNKbDN5NmIxYXlhMTVYeGFQc2dPbWRpWDhmOW84a2lpWGdLTXhC?= =?utf-8?B?eGNvbDhjM2VtY2dlVFEvWHJjSlIxTE5EcnA0UytxQjhiY25DYVM0QnBDazdY?= =?utf-8?B?ZC8zalZoRzVNaURjNXRXeU9JcEhvYUY1dk1sbU93Q1Z1MERQTmhjNVNYdTNU?= =?utf-8?B?R0VwNi9Xc004azZ4bC8xOWZpSlF5RDQzYnNvemlqc2ZxQUxpaXBldE1SNVFQ?= =?utf-8?B?T2wvZGZ4OFFFWldSWWprN25YTlluVjUyb1liVnE5T3FZTXo5V0h4S2FVNTRX?= =?utf-8?B?NFZLNjFDeWhBT1gvRGQzOFgrRHJJZktuL284K3UvN2llQlhSTW9VWUhoT2M2?= =?utf-8?B?bWIxWGVLOEVQT0R2SE9FMXg5UzFRTWxtYTlOZWJQSUtRbS9sWllzdzJzZHFS?= =?utf-8?B?c1lFdVUyS1dYQVVIQW8yK3Z4alZKL1BuRVhCWTNsdnppOURWR1hjWUV4QUZi?= =?utf-8?B?RVMvQ29PZndHWjhBb3J1c3FGY1FxTDQwVVRMMldkRXZUSHFCYUVCWmpHUEJF?= =?utf-8?B?UnFldm91ckVLSU9tQS9iNFdjMDBQNUptdVBrQzlzVnlCZk9mZnhHVzdJa3pw?= =?utf-8?B?bVpxZlQ5bi9wU1liUHBVK3BRMzUvSnRIMVZVZ05kNXQ2TzZtRkNrM0ZGNnVQ?= =?utf-8?B?YzJqZTZBUkQwcyswL25tNGQ0anRsTEZ6UXlFUTYwU09LNDVaZzVzRHBhT3Vp?= =?utf-8?B?d2V3UU5LQzBqMnlucm9kWGJlSWpmaUZoaE1icG0xRXR0RjA0NDNQN05YWlFG?= =?utf-8?B?ais5UFV1eG90K3R3bTR4ZDFJOUtMOW1sT3laNk9LblNKaGtZZjM5U0RDQnZU?= =?utf-8?B?VDVHNG02Tk5VMEVRMkhJeUNSRHpzc0RIZWtxY2R0UzJZUEdMdjhORjlRPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 337384ab-0848-466f-8518-08dc3eb5e771 X-MS-Exchange-CrossTenant-AuthSource: GV1SPRMB0052.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2024 14:50:17.4309 (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: VI0P250MB1051 Subject: Re: [FFmpeg-devel] [PATCH 06/29] 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: Andreas Rheinhardt: > Anton Khirnov: >> +/** >> + * Must be set as default_val for AV_OPT_TYPE_FLAG_ARRAY options. >> + */ >> +typedef struct AVOptionArrayDef { >> + /** >> + * Must be set to sizeof(AVOptionArrayDef), in order to allow extending this >> + * struct without breaking ABI. >> + */ >> + size_t sizeof_self; > > I do not really get the point of this field: It is not sufficient for > detecting whether a user used a version that set a certain field due to > trailing padding (i.e. an additional field need not increase > sizeof(AVOptionArrayDef); this is actually relevant for this structure, > because on x64 at least a new int/unsigned would fit into trailing padding). > Luckily we already have a way to know the user's lavu version, as it is > contained in the AVClass. > I do not really see a reply to the above comment. >> + >> + /** >> + * Native access only. >> + * >> + * Default value of the option, as would be serialized by av_opt_get() (i.e. >> + * using the value of sep as the separator). >> + */ >> + const char *def; >> + >> + /** >> + * Minimum number of elements in the array. When this field is non-zero, def >> + * must be non-NULL and contain at least this number of elements. >> + */ >> + unsigned size_min; >> + /** >> + * Maximum number of elements in the array, 0 when unlimited. >> + */ >> + unsigned size_max; >> + >> + /** >> + * Separator between array elements in string representations of this >> + * option, used by av_opt_set() and av_opt_get(). It must be a printable >> + * ASCII character, excluding alphanumeric and the backslash. A comma is >> + * used when sep=0. >> + * >> + * The separator and the backslash must be backslash-escaped in order to >> + * appear in string representations of the option value. >> + */ >> + uint8_t sep; > > If this is a printable ASCII character, then it should be a char. > >> +} AVOptionArrayDef; >> + >> /** >> * AVOption >> */ >> @@ -320,8 +371,7 @@ typedef struct AVOption { >> enum AVOptionType type; >> >> /** >> - * Native access only. >> - * >> + * Native access only, except when documented otherwise. >> * the default value for scalar options >> */ >> union { >> @@ -330,6 +380,14 @@ typedef struct AVOption { >> const char *str; >> /* TODO those are unused now */ >> AVRational q; >> + >> + /** >> + * Used for AV_OPT_TYPE_FLAG_ARRAY options. May be NULL. >> + * >> + * Foreign access to some members allowed, as noted in AVOptionArrayDef >> + * documentation. >> + */ >> + const AVOptionArrayDef *arr; >> } default_val; >> double min; ///< minimum valid value for the option >> double max; ///< maximum valid value for the option > > _______________________________________________ > 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". _______________________________________________ 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".