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 0161640C42 for ; Sun, 31 Mar 2024 05:31:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8327668CC9F; Sun, 31 Mar 2024 08:31:48 +0300 (EEST) Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03olkn2013.outbound.protection.outlook.com [40.92.57.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6B72A68CAED for ; Sun, 31 Mar 2024 08:31:42 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ea6GvBQ58IWQwi/2niY0TPtgUVw0Q8v9G92tNMNi8HjICqfKRbjkMAAV8hFgTjOoMmIX0u/UWDcKDJ2QPJR8WSmzhkuc4k75I4Z6Myss8NAu1RYkUfSSScSdj+oAm6qRKkLkgdkRlzxQ4eosvW/TXJ+QqcoyWTZzXLbc1bgX6FkQO+AG0XgnYQDvwHU6D5PHfv8KGuRSx1HrvrCH5xfhymIm79DJADXx84WF8WrLeH84tYNFiJ3Y0Y8cz3Aq8K4iSfpdirCnq/57yVaLwnP4H6rzsLY/1NeBGz8IOW+qm8zLzcLvZ/2dJIfKZGnsf5yOlR7DaLnvdBb/oMEjEDT2Xg== 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=ctM7zu3t+z+VJFORCJnAfCwkHClflSuyYVaHdTut4iM=; b=XZe7D/j7XcqklPoz/gnEDEZFuEn4z08zwPN0uNCD+1uSthhrOEAowXx7D/yn5UnvrqMxaooMo0WgYCacv23UGWgDiVSS+n1ZBWpKSjGDU27IhFdn87Fx4bockcjW9Ktvml16Mh81nynNPWOaXIAawdC0w6Pb9LxyB7kvGKDWzb/ZnTHfGGy7FacqJPJmjGIbLnmycp6CWTvHwMc3S5OVDKgb+3PWUs3KqyAMXIScoZLvk5qbhu/arwc9YvsYRR7sGoXuFRa3yXIOGBKycIOzBoZtd+bvE/BeWQ6oVOzCL1SeRsZNJtOyS7G46FokOGfh38rmrGFv4jk8HleIXHYBhw== 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=ctM7zu3t+z+VJFORCJnAfCwkHClflSuyYVaHdTut4iM=; b=UmR4dbqqqcWP7lmMQ9UCX4LcAhBNnFQpP4YulGi8AHx+YGI9KTE/vR8mYaoFXZNhrKtYOoRvdOjVC8zFix4p+el7PvLPI7TbrZbTcjC1naOaYnck4oRTYShFt5775cY5gOxlMnPlp9raIm3iV8704KZZwXxwqGhby3W0LmQcbJmAppAvLzjh9GDLQK7hu+et3tBPzoN10C6s/WB+Rdr1g6lKos3hBTfuug7A2EQTIrUp82axE0JkSsptl1CKI8D3KWa0vouYF+tEJJpVXZqJGqz2jc5/cRQ6nbfvhNqSALaaVE+RT/IzcecWtJGaN24MfNtJKd5Y/q9HeHIg9WDjeA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS4P250MB0416.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4c3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.43; Sun, 31 Mar 2024 05:31:35 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 31 Mar 2024 05:31:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 31 Mar 2024 07:31:17 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [fvyquOP0gdIhbmorun9UK38/tjTHbsRMcUN5rP/vjo4=] X-ClientProxiedBy: ZR2P278CA0020.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:46::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240331053123.293740-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS4P250MB0416:EE_ X-MS-Office365-Filtering-Correlation-Id: 8676e81f-0af6-49cd-f6ea-08dc5143d4c5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /omF3Zd+LmIXr1dbIK0AlFea+AJZRGP3PwLxk4SoKgkrG8Cd1D1EgqHTXJ3bzsytBbkMkNHblXKtvYuoQm41Bx4QHKgwBQuiXSkJ5G4hFRNAphmrxzFtC9fK5TZXZ18l1DVHgOS5nLH42vBQM7YjT6WtNQP7r6YhHMdU7iC+rdqGCWNqlDeuBO5SCJsNWdohZweAxC78CTx87t6o8QTenf86i/MY4R+xj/y+A09Vf+1EUlISRU5N+YB1UVZ/hU1Hd2yjxSRSmz/meJSG21pKs+D7K6iBnzrJxgr1KeWwUb9zAtsk9g8RSyH2Z7NPnPxS6Y5hu0qE9cr67KeCgDxeKjD0jUAVwCZ64n9Uwec6ZW9q9cNXzJ2P02GyofG39XKokil0LiGjKwU5Rp7lAnF/FyVCVwb9prxDdf+Xlh/RQBWh0sQ0m9b1SV6IEjmbuzMDErCLperWdn3OoKV0jPXJZiqZyehJusNm6tU7uk+OIH0srNL3aZsz1YhDEzT8BkqBvjAZSrLnnL59NGdnYSofz5ikWttJ1LBGDwRpa4rNHg2iN1y0bA7OxCjzTf2/NHzbAB0SqiKitd19ncVb9EEE10mY7CbamfTv6/Cj+g5zUBRaU0yLKw7hTBofjmDG8Lov X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0vGYkP9eE2XCndOL1KaFNuc+sDps/K2QfHnEdMk1nwFmD4QmkJ4t/cwWUKj1?= =?us-ascii?Q?eqy+FVtvnJbfjVIvHkyLAsM/wFviEzNFY3wUcLaNfeCIEYqOHFW8h3Ffpkkn?= =?us-ascii?Q?XQHEflUWUeftWOmcnCcGF2PVcSaYamn8b+PooosWBGtK/hu+QrpAfQTkCoDd?= =?us-ascii?Q?ULQYXY0zmgoJxvbVp+L0Tm1m5A+bCJqRCKO+yrOL+5qAkR30jzFdQ2Q3fqgn?= =?us-ascii?Q?pRec0fv58Z7whpXrBLrMCljzSiy4+pcNluXO4Ya1Lh/bm3AiiGKdHrldqxri?= =?us-ascii?Q?qOebqkuIZn7oBxumpgAmb+/syEA6Cj2+uDDByHWnWAoJfxiMWE5ppAQtv76z?= =?us-ascii?Q?nwpTWVUQqlQkP+Iv1PCWsh2lZxrFzNWxyjBaMlK1CtJsGrUTLQsnzB1mZJJ8?= =?us-ascii?Q?i0VCtz5BqS6f4l4zqKn3JsK28NVtfs/Lcr6qbsH7l2SGNkI0yUbLVB9+kR9s?= =?us-ascii?Q?OyC3406TibUT4jKdBzegcn0M06Rm57ajPeD7PEFQG9Hz8PDwY7VHC1S86kzw?= =?us-ascii?Q?GkYOIdBmaXMgIRNKjBjIyK+7/ZuI82FWrOJDzp6Y1xB6CjS2kSJecMcu4Nve?= =?us-ascii?Q?zdJmlFwHn3ovPCTgHp5cVUDq8yTgj4sCAxtaTgy6pHr0Sx9PrB3M1BvnmtqJ?= =?us-ascii?Q?trLSSFPThYHP5AZ/yXsbWu+0bGgkm8ij0kNJ7T5VDHKiigGctn0PDJaCJbZa?= =?us-ascii?Q?nUlNzexazRDiAiYY0avIXid6WUXdNakdrJY3xRm4YZL/ILS1V5+yejLtGXv4?= =?us-ascii?Q?oK1iyuELZsxB4Ig44nkYSbQY7oZYDqMIaUPCXuRQMaYLOdTWdtGxgGBoLah3?= =?us-ascii?Q?FdlJ3gjNDAfZrbWxWT/jP0I89Z/u0KfhJpYUlOU1qnbkfJKyM8l/Tf16VyJt?= =?us-ascii?Q?43uQ6sD/1K7VTuqcqEVXeEpsmINjor3N98OAez8AMLFJdutLoF1mBgEca3Jt?= =?us-ascii?Q?EdTpqh95ffpshwPnsxZ977DPwoveD2f+hAlvuG+c7DJp3CQ0MMjlKe2SIQQV?= =?us-ascii?Q?FeuoHR26rASrd9U1Akn6J+9UKGuYsFT7OQXxz3otgdpodPxn/lWqN+xtxvAn?= =?us-ascii?Q?rl2dPuQr0HDYUh/Jw98zVJBHK+PIxRDZJu6pIC/J5Vfxu7hNEBbaK04T7Wsk?= =?us-ascii?Q?5xi+ejunYBwYjBQHf0n7n63+CBVmKDNJpw9MYdd0/GdDlzg2JObh0m0fw+iR?= =?us-ascii?Q?2X+zRUu/GpGffuDe8N3SkRY/gZKKVsIbBp1nw4qFnGtLtlozIPSBg+Q/vSJo?= =?us-ascii?Q?P32m0tVJluh9X8O1Tgfpbu5xB23aiu0nENq+sCs+IQ=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8676e81f-0af6-49cd-f6ea-08dc5143d4c5 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2024 05:31:35.6048 (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: AS4P250MB0416 Subject: [FFmpeg-devel] [PATCH 04/10] avfilter/avfilter: Honour the short options documentation 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 Cc: Andreas Rheinhardt 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: The documentation for filter arguments states that short options must precede long options (i.e. those of the form key=value). Yet if process_options() encounters arguments not abiding by this, it simply treats short options after a long option as if it were parsing short options for the first time. In particular, it overwrites options already set earlier, possibly via other short options. This is not how it is intended (as a comment in the code indicates). This commit modifies the code to reject further shorthand options after a long option has been encountered. After all, avfilter_init_str() errors out upon unrecognized options, so it is intended to be picky. Signed-off-by: Andreas Rheinhardt --- libavfilter/avfilter.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 508fe1b26b..21d6832deb 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -846,9 +846,7 @@ int ff_filter_opt_parse(void *logctx, const AVClass *priv_class, const char *shorthand = NULL; int additional_flags = 0; - if (priv_class) - o = av_opt_next(&priv_class, o); - if (o) { + if (priv_class && (o = av_opt_next(&priv_class, o))) { if (o->type == AV_OPT_TYPE_CONST || o->offset == offset) continue; offset = o->offset; @@ -871,9 +869,7 @@ int ff_filter_opt_parse(void *logctx, const AVClass *priv_class, if (parsed_key) { key = parsed_key; additional_flags = AV_DICT_DONT_STRDUP_KEY; - /* discard all remaining shorthand */ - if (priv_class) - while ((o = av_opt_next(&priv_class, o))); + priv_class = NULL; /* reject all remaining shorthand */ } else { key = shorthand; } -- 2.40.1 _______________________________________________ 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".