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 F2DF94D989 for ; Thu, 27 Feb 2025 02:39:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7F11368CFB7; Thu, 27 Feb 2025 04:39:31 +0200 (EET) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 747DD68CF4D for ; Thu, 27 Feb 2025 04:39:23 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1740623971; x=1772159971; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=7luPiYzOSkyYfuhs5u04NzQREdlYdVjgieNffsvnvZg=; b=d8tMA1Ps/0VC0nxzYDIBIvPLWUnb9jBu0PvALQUQHp2qRKtU+bbymUry 0T4uilYJ6A0Mcwrfsk1yilFGGhDDaz21eYPmIL+AaHlxOrl5zDNYLqLN0 RMtmRP6HZbDsYLG5uDMy9X84zPzEID5yyz8wFpD2B6JRnN/uGrSS3BPrK 5eh3S1TpvZ4n1eaZ6ciF8WMydmqUaZVkwgIU2G9TCMlLQBOvUozLfyOhI OP89x51NOKQQA1No+ULyF8cNLgPVbtC2PA0NCoebjdCnZpGATf/2GrdDj QjdQOEfwoX50Y9/JTsbtdeJAWcvUZMOzwWnng7CEvi0NoLd17hwp9tErC g==; X-CSE-ConnectionGUID: +Ym+K9t9Q9i7rsps8CHpmA== X-CSE-MsgGUID: KtzjhPXJRjqcDkD3ThkTVA== X-IronPort-AV: E=McAfee;i="6700,10204,11314"; a="41699229" X-IronPort-AV: E=Sophos;i="6.12,310,1728975600"; d="scan'208";a="41699229" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2025 18:39:21 -0800 X-CSE-ConnectionGUID: 5etB9pUQTbuuXqjmwrY6ZA== X-CSE-MsgGUID: wFf30qEbS+SNnqeYwchy4g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.13,319,1732608000"; d="scan'208";a="117061871" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by fmviesa008.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2025 18:39:20 -0800 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 26 Feb 2025 18:39:19 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Wed, 26 Feb 2025 18:39:19 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Wed, 26 Feb 2025 18:39:18 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=coagP4aw19c3g8NMXq+tVWBZ4lxTmPsQCh15iPIM6nJ6AhHqFLtxVfMXOt94jMD38JUouWzmLyvUua6xQfL2Lv40cNULNd7wYK3FxHx27BF5n3sANdpSeC6fwWauOz3iCJpKYspLoeEIFq4dwcHUKXSKh7xm2kvVBwYcJbiGm6TiElth4ol+kY3J41vcJ1XaGclJ2H8OLI3l5IIaW7t1zOcH1y2ldVNGkr+b7EEdKvzxhoprtqmTVyP/rdt00FCOvERh5Y5a5dqbBmGysBcmGWIVAkuJICmCxe9l/37Hsb13hIaLegYCtXIX5I4m2XDpTV98bblcybtsLg3BnpZO9w== 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=jpJOLUrIF0CwBcB3HcbgYvS7WcKzZfNYeq1nXoUhXHA=; b=EGgWUnch72otsQWxcMnJMLYCcSejyJWql5nsccxrkDA/NIAy+sq7/zaXXI/NMGNe/io0n8zPU1XAmQcsrdwzOLzkB+ZHJCbTVzOUbkAJty8A7ntIZ71aCyezSxt4kIWkVZL8ZRkQoPn6Jj31JXlbQboZuExfeFe+5DOvXIv6STRdktJN1ozQJz567TOonfYGFaJpp4DHPmrChW7n29A3E2aj84TFPKjcX3mY2/X6WIXJTClHMX5l5tYfasprUVGloirmkcK0B42q/RGR/s8gWnKzXBdccrrPDUfD6LUfDx4kN7gie+GwIdMrhSCfiQpoDnJ0UauTRZE8Ykajf/zoEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from IA1PR11MB6396.namprd11.prod.outlook.com (2603:10b6:208:3ab::10) by MW4PR11MB7008.namprd11.prod.outlook.com (2603:10b6:303:227::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.19; Thu, 27 Feb 2025 02:38:57 +0000 Received: from IA1PR11MB6396.namprd11.prod.outlook.com ([fe80::79e6:58f0:788d:b45]) by IA1PR11MB6396.namprd11.prod.outlook.com ([fe80::79e6:58f0:788d:b45%5]) with mapi id 15.20.8489.018; Thu, 27 Feb 2025 02:38:57 +0000 From: "Chen, Wenbin" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH 1/2] avfilter/dnn: do not manually parse anchors filter option Thread-Index: AQHbiFZv4L9JmWF2Q0yZGn8a55ft0bNacJwA Date: Thu, 27 Feb 2025 02:38:57 +0000 Message-ID: References: <6c4d8098-bb57-4f7c-b86b-9221492b7ced@gmail.com> In-Reply-To: <6c4d8098-bb57-4f7c-b86b-9221492b7ced@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR11MB6396:EE_|MW4PR11MB7008:EE_ x-ms-office365-filtering-correlation-id: e897ffa9-f659-418c-a018-08dd56d7e280 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|4022899009|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?wdTr6L7BnSHypuvsUwoOL5Y/y9RENZuWVModPpxs+eN3PkufFsF+xzUztQk3?= =?us-ascii?Q?00xq1FaYRzhv7we68kxoAXy6kCehQprSqNe8Uuq2c8gRxrmZ4526Tpa7LX5D?= =?us-ascii?Q?kANdcMTnkrOMaBwORBwy+C1nj1xzsCgG9SoLLHNfDu8uom2WZ6U14wuw2vTy?= =?us-ascii?Q?mM9T1TCvVjuhFrgqby1LOYbQL1atvILxNe8eIfzlkkBsbKjkXgNYd+sKOMx4?= =?us-ascii?Q?E11kI0jnRJkM6Lyme6VZVRv27ThuHejnZuAZzxTn9Z6f9cB5Hjlc+h58Csj7?= =?us-ascii?Q?ByipXYuLxpKeqZ+b/3qTC0Jbp7Ae4xxo3O/x8TH9k6wd3hkoLXtCB8dLFRCv?= =?us-ascii?Q?twA5YX8rjAvZC3ykc6pe/Dov+eXHNrDxLDZY10fjo8pgtBbTfBmuqyuQthnv?= =?us-ascii?Q?CWI9GRrxS94FP8bNXDd6Kkk7fYq0oUub5s0lbx/WBBij8vcaO57z3MFPO2w+?= =?us-ascii?Q?g5zpVoTetvhrCdSaRYANKG/mNv8sU3m6WtYJz9kwkNkkaSQCq5TugCFVUbIS?= =?us-ascii?Q?M5mcUXYTBGa+zJGXdYli+tqG62SrN5RZQRklWpXycr0XFOtC/rWmzCNAS5HX?= =?us-ascii?Q?MJ1X6gKojtn/rJtAwMO7Ysk44JC6gfphJMxxR+DWcvztK2UqbOxLG/AUuZBL?= =?us-ascii?Q?BrnAFR0fzu+V9I8crzOjs4f4mvcBIBQi4Y4Db7llI46tM68hMHOtKTHJTz0x?= =?us-ascii?Q?he3g5hg60NxbfYAaTypCG3Btc98McRiK+0WpqRfWye7vuF4mB2Er5KqPQdNY?= =?us-ascii?Q?sLRD3LeQFg6W5b5muMmRYD/Z7MKISdCvn4NlCAh6tqhFK4P5z8+q4HBBneat?= =?us-ascii?Q?LvQl8ZWW2fmBqrn0wYXbHeD210PS7AsY97bh0v5j9P40gkWXPJZsfuxwPKVb?= =?us-ascii?Q?HM62nXazMmhYfHICAzsDp6SrH/NLHHyaBRJGDRqabf3VfajZZNShQ/UlZAdh?= =?us-ascii?Q?PD6bmoeeeEfUsVX9PIr+UaEojkzUIniUSIac69am/qCxr83dMnzYsBzMwpcA?= =?us-ascii?Q?eNRmunoZHNzGEVoIW/gkN7ST0E0+hi2adr/xFOjHn1xcJ31Oh37ZKyzvtArN?= =?us-ascii?Q?MCFiRLdBOH969zUAa5Sf1iJan+7dF5mqvvhJLoQLJF2dAWf7HS6imeiImmZa?= =?us-ascii?Q?Zp46O53kK5l7DuqcXXmADToBgI09wiNGza+92J6+fmQ0H5JR8kFmBZxBjdAu?= =?us-ascii?Q?yaG1l5aEQ+EpUMNFWwTDSsczBAEv5qAraPf86pwdw0E8ts4xawDuxwkl0O8K?= =?us-ascii?Q?EjRipgxK+qshHZQkq6YvWCoESJgd5PkVXvg9bqpYu9cQ6TpQBu+2dQ802sJu?= =?us-ascii?Q?Mhmf3b0FoY/mBegBnT4khkrbOF16C/vJmdrQRDHQTvetsHXUACBaIy1wd1ex?= =?us-ascii?Q?f29F1tFTobixx6nL/j36gDVw/hsQPYSzD7+JBau5+QqHtIc4QxdeyXXGGunq?= =?us-ascii?Q?8UseYmGGN/TIMnSp32AJlU7WZOp5GuQ5?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR11MB6396.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(4022899009)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?fsOJrXVVMwIbGl1LD6GONVmzi9/mG8WqMb12sxF7a2eJp0b/11SQ2DLaJeNK?= =?us-ascii?Q?a6kz6ijKgmMJ/u61adhJkaVI1Ee0CWjJ4KKI9V4mOccs/fpjzMpdSEAAf5lP?= =?us-ascii?Q?jyu8/gC6vrCWazH8yQhNsFUhqMZUbIcfaACNyIbqbqml7TTVQuT2cobW5KRw?= =?us-ascii?Q?EfPxV3nfmhMLggba3Zxh28tCoCSynWOLWQB7ok3ZicUTXTS84pDtt+97VkfT?= =?us-ascii?Q?TmDTGAjCmYIF4lCi+EmaBzq2LmCAH+GDn6mJHSZAJWIZQAPpQmaSa9YsZq/G?= =?us-ascii?Q?Pxou94Mf0EaYGY6v7Fq7aKIBtNvh6BXszqRzPt3OfPiX0xyZvSLsOjj0y/bb?= =?us-ascii?Q?J5gbMJK0L8cnntU/7MQK5II4AX/NvOw+lME2BO9BQuGrSjl8YHNPjtph5EXG?= =?us-ascii?Q?riHvAiVYDhtrJQgyRbqhgHurvRrf+v7I95tCvmQD0/rQ5khdtUY46WOqrv5g?= =?us-ascii?Q?vHEY2yvW486gCfl5RiaN/qOrHtdCkluA291RF6kfPwv/NYCNkUkp0xxVCdnE?= =?us-ascii?Q?nwEMeED23mS+8u0P0G+RYrLD1s9bk2z6lq806A/t1xs888Ow5i7xUwUruobI?= =?us-ascii?Q?V40+JcpfetkJSHovPBJbJRyakBDXHoWlANcdKf/wRZSB0m93vT+TPzqlo3Sq?= =?us-ascii?Q?Daqt8Fc7s3QfpylkHksNulNeX5MwzZ2HwAkA+NzzlLaNtu4wfdnX0LkiF3J3?= =?us-ascii?Q?WCBIJscTPy8uuYR5mNgotleGh2Es04qF/uMXyrYFSSETg6WTNU6d7XBki78f?= =?us-ascii?Q?hirKNE/MONZQIk1drltu7erG5xAn032FFago9LW0E8coD9BW/QKdesytXRVV?= =?us-ascii?Q?oG4l+HE5+d0T/ySCrIhD2BgAvb2NZADKmqlVzqgfAhvxVON6qJT/3mateH4b?= =?us-ascii?Q?YoF+BKY14/5FSs/enbo/O7iWclQQLb3ubTow6iRmI6O+cVgIiAZGz+a7ZURv?= =?us-ascii?Q?CixkejTWu/0o7Sw1PxHVbZGGZci1uh/5hH0ZSfR75frXPicqxxWcJjhNDEq0?= =?us-ascii?Q?rt7b9IJZYDXfPysCq2bByuASb8dkSnOXfucHAIvxpG5T39lAi7xTffffwRaB?= =?us-ascii?Q?jAgkzB1pXKo6KOg5/0hcOelbncmy1+rCtgYu0ewmO/3S6HUiiYc9c/b1f681?= =?us-ascii?Q?tDiQOy9L5dUlTV2Da/EHHTHkwnrB/eRlwhnGQ4qQIDw+TBTmVm9eHyTPixTD?= =?us-ascii?Q?qWwjJGKuf1VZwOjWhbv/QcmLVOm10lkAbtNxzyhqqBwmS0PsT2ycwf0Bbzf4?= =?us-ascii?Q?atbdg54fc0X0pW6O2J9aTTsl1EFQ1WxCFfDyHwjTBrfNKs4FxeMh2sRAEFmv?= =?us-ascii?Q?HtGxQ29j0OxEdtLNkdTt37MRdn0uEgnKUUl/t5SzaviDSaWSnkfEESNl8ax0?= =?us-ascii?Q?yBfQx1FebNuj7dKxUa450zoZ9zPrMRSDnrEmaS3HJ/teSU/VIk9GDzgy+isR?= =?us-ascii?Q?yc+D4FcRqYPrkEytBt0bz/w+ov4JuXP9yGaJCvD4t4HPf3PLFqBdLhf6Lc1c?= =?us-ascii?Q?Hrq/jLlWl//rrQf8IiWS6Z/HV25YBiqtklxRhq/zJoD0mG65iNGUCFxdxXpM?= =?us-ascii?Q?Pgkn3i+kJPFLpzYU0v5MPdYApEquJpnZcPQX3nRN?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB6396.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e897ffa9-f659-418c-a018-08dd56d7e280 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2025 02:38:57.4378 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xIV5rDUpLM+ZXPLB/TkrJEtqSsd8A3B5Qm4pJ4esv/fvEwQwlRe/G1qq1+jjGiXcJCwiN5V/q0/kZ96UMbN9XA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB7008 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH 1/2] avfilter/dnn: do not manually parse anchors filter option 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: > Instead, rely on AV_OPT_TYPE_FLAG_ARRAY, which will automatically > perform the parsing. > > Signed-off-by: Leandro Santiago > --- > libavfilter/vf_dnn_detect.c | 43 ++++--------------------------------- > 1 file changed, 4 insertions(+), 39 deletions(-) > > diff --git a/libavfilter/vf_dnn_detect.c b/libavfilter/vf_dnn_detect.c > index 590e4e256d..cd70c64e98 100644 > --- a/libavfilter/vf_dnn_detect.c > +++ b/libavfilter/vf_dnn_detect.c > @@ -31,6 +31,7 @@ > #include "libavutil/avstring.h" > #include "libavutil/detection_bbox.h" > #include "libavutil/fifo.h" > +#include > > typedef enum { > DDMT_SSD, > @@ -53,11 +54,12 @@ typedef struct DnnDetectContext { > AVFifo *bboxes_fifo; > int scale_width; > int scale_height; > - char *anchors_str; > float *anchors; > int nb_anchor; > } DnnDetectContext; > > +static const AVOptionArrayDef anchor_array_def = { .sep = '&' }; > + > #define OFFSET(x) offsetof(DnnDetectContext, dnnctx.x) > #define OFFSET2(x) offsetof(DnnDetectContext, x) > #define FLAGS AV_OPT_FLAG_FILTERING_PARAM | > AV_OPT_FLAG_VIDEO_PARAM > @@ -79,7 +81,7 @@ static const AVOption dnn_detect_options[] = { > { "cell_w", "cell width", OFFSET2(cell_w), > AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INTMAX_MAX, FLAGS }, > { "cell_h", "cell height", OFFSET2(cell_h), > AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INTMAX_MAX, FLAGS }, > { "nb_classes", "The number of class", OFFSET2(nb_classes), > AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INTMAX_MAX, FLAGS }, > - { "anchors", "anchors, splited by '&'", OFFSET2(anchors_str), > AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, FLAGS }, > + { "anchors", "anchors, splited by '&'", OFFSET2(anchors), > AV_OPT_TYPE_FLOAT | AV_OPT_TYPE_FLAG_ARRAY, { .arr = > &anchor_array_def }, FLT_MIN, FLT_MAX, FLAGS }, > { NULL } > }; > > @@ -106,34 +108,6 @@ static int dnn_detect_get_label_id(int nb_classes, int > cell_size, float *label_d > return label_id; > } > > -static int dnn_detect_parse_anchors(char *anchors_str, float **anchors) > -{ > - char *saveptr = NULL, *token; > - float *anchors_buf; > - int nb_anchor = 0, i = 0; > - while(anchors_str[i] != '\0') { > - if(anchors_str[i] == '&') > - nb_anchor++; > - i++; > - } > - nb_anchor++; > - anchors_buf = av_mallocz(nb_anchor * sizeof(**anchors)); > - if (!anchors_buf) { > - return 0; > - } > - for (int i = 0; i < nb_anchor; i++) { > - token = av_strtok(anchors_str, "&", &saveptr); > - if (!token) { > - av_freep(&anchors_buf); > - return 0; > - } > - anchors_buf[i] = strtof(token, NULL); > - anchors_str = NULL; > - } > - *anchors = anchors_buf; > - return nb_anchor; > -} > - > /* Calculate Intersection Over Union */ > static float dnn_detect_IOU(AVDetectionBBox *bbox1, AVDetectionBBox > *bbox2) > { > @@ -701,15 +675,6 @@ static av_cold int dnn_detect_init(AVFilterContext > *context) > } > } > > - if (ctx->anchors_str) { > - ret = dnn_detect_parse_anchors(ctx->anchors_str, &ctx->anchors); > - if (!ctx->anchors) { > - av_log(context, AV_LOG_ERROR, "failed to parse anchors_str\n"); > - return AVERROR(EINVAL); > - } > - ctx->nb_anchor = ret; > - } > - > return 0; > } > > -- > 2.48.1 > LGTM. Thanks Wenbin > > _______________________________________________ > 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".