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 0F77A4DD1D for ; Mon, 3 Mar 2025 11:29:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2B47368DBE1; Mon, 3 Mar 2025 13:29:17 +0200 (EET) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8AA2A68D901 for ; Mon, 3 Mar 2025 13:29:09 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741001355; x=1772537355; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=H0s5KH2QQeg3uhDBfv4McRyzIIiVQ4M1ojS4XaQwXFw=; b=FU+Ab/WaAH5zsT26y7sjq5SmZnX68rC4cVZuJwi6vRjsLfYxr/gkAyLZ b+D+/Ddo9xGONs0Bb4AzrYdchiAHeBtxDk+wHOA/9y0zEkXv6o5tE74w4 70UCakdL1EJ7asAYkGpaqTpX+F3P+n2J9DsANXZz85PS8Ben6q/ZQ0I2b U/0OwI7i7KOrIA7hqsFc4+PeWcjbvgaiaTWtpnOgrx89caDj9M0yc2Zj7 5Olvfx0X2q1ltb6dgdBsordLtcAVLPK1AaXoP/39daKEYSYsSmkzTFSj7 7KYUogbJT4ZPfwpPSDTzYi4MTusDRaeonAwJPGx9wndmVgCu5FujXdhPE g==; X-CSE-ConnectionGUID: F6NJ86sZS2aXxUjaH+dwIw== X-CSE-MsgGUID: ZJzR++TSRPm0wvQg4ACIHQ== X-IronPort-AV: E=McAfee;i="6700,10204,11361"; a="45645450" X-IronPort-AV: E=Sophos;i="6.13,329,1732608000"; d="scan'208";a="45645450" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2025 03:29:06 -0800 X-CSE-ConnectionGUID: Zz0qfqUfSQueLbrG2xNSLg== X-CSE-MsgGUID: irsfNxprTAiV3v4TWJgnTQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.13,329,1732608000"; d="scan'208";a="122980727" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by orviesa004.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2025 03:29:06 -0800 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) 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; Mon, 3 Mar 2025 03:29:05 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Mon, 3 Mar 2025 03:29:05 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.44) 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; Mon, 3 Mar 2025 03:29:05 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ijihjEtqEqvbBlPZRZHsKM9QfZy8mQr8g3PJfB04f/T/6hFf7e+uMqZ2Vu6udbjEmlFQivf7OnbMVOH6DtDt2RBxosEsXPMeifUwQLBJYaStL8foJu3vEL14j8yxNSTEC2uwnVsnR9enly5Uou4BNQZze6Af89GTdYyNT5/IRmYRq179wiqsY0m6j1ezIip7rORUKjVXGUw+hJivWvQkmvlG/9vhVVE6BsrvrE5Fy6SaYj6mAnF4fGfhs+N8n7XYRtKrKdbl41nLEl9yINkPfgc+lS++/au3A+Xk6nac955WAqngoelMDes+Q0/GFnfDUn3d6PXgZkfFksF28thgbA== 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=EKc/HdqIuD4WDKJuytDssMP3IXk+b0a7YJ5sG+7o7KQ=; b=fuTCNsPaVTj+8q9W258uV1nQkdt9bONIw5JzLSmQ4xnnKiyuwWqbIbLkkER1ZBhyZ0LO28hB6q/p6gvDS3jyKROMJM2EV8gJiv39+rOQcb8hcpDjBwuuNMyTWciRapKWffXRAm++OZwMCGV7jsUbWHcmJN8L+RlIlDR4GvKAfROYPouDnc+a1gfUN1mVjB3GFlfhfUH+AdmxeEh3T4MrJZYf3ejczfC7sBeXhk4yNh+M8cNGiMPqSdXQfNpqHK//Ng262zsIEyrUNueKl/29E3vAR1/UiTDfrQiwtk9IhG2yC57EYKArkRg8sX95+AXQnoV0xcei6zPj0VjCcUZg9g== 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 PH7PR11MB5957.namprd11.prod.outlook.com (2603:10b6:510:1e0::14) by PH7PR11MB5885.namprd11.prod.outlook.com (2603:10b6:510:134::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.26; Mon, 3 Mar 2025 11:29:03 +0000 Received: from PH7PR11MB5957.namprd11.prod.outlook.com ([fe80::9ca7:5dd5:8a5c:d73e]) by PH7PR11MB5957.namprd11.prod.outlook.com ([fe80::9ca7:5dd5:8a5c:d73e%4]) with mapi id 15.20.8489.025; Mon, 3 Mar 2025 11:29:02 +0000 From: "Guo, Yejun" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH 1/2] avfilter/dnn: do not manually parse anchors filter option Thread-Index: AQHbiFZwmNm24ZJQP0eiqBQqu5PP57NacNKAgAbdVjA= Date: Mon, 3 Mar 2025 11:29:02 +0000 Message-ID: References: <6c4d8098-bb57-4f7c-b86b-9221492b7ced@gmail.com> In-Reply-To: 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: PH7PR11MB5957:EE_|PH7PR11MB5885:EE_ x-ms-office365-filtering-correlation-id: 84aa7608-a272-4967-b9f5-08dd5a46995e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?pAz0GqGh/eJkZTaIE1N1Iki9Dr7zrvjPnU4IG4NGpp53onAP1vVJLswsYm17?= =?us-ascii?Q?4y2zBgDtuywyfEFChvbxzG3LRkq8MX8HLrX2ewZbYq7jwAc08u9JcsaFiBdG?= =?us-ascii?Q?FrDx750sI/8e5ntAVRDC5GSuYlR/2NpiRLfdwUql+cHwS3CPqZJ0X3tZi0l8?= =?us-ascii?Q?88qIwdyht09lKkI7DtE90Md98gbjfutQeP8GRc0PSnQqBMvtHHjSGnSU7B3N?= =?us-ascii?Q?ptun0syLag9kSHRK4IKkLLWivbYj5tXRoiqY0LnyWGnnpPOgmckK/9uniWLy?= =?us-ascii?Q?vlOXGh/xmIUu+X9GJUEIhJtC9kmP+qOHY7mgMz4X+3WDP8AT5Ymz8lPoXRVz?= =?us-ascii?Q?6acU4I4p6BSaAcxUDCWP1uKybK5YZArHzUP0FTLCOAetaJAZZwUbAPWlWNAX?= =?us-ascii?Q?iHB8NSwCpYFmD7FxGQm/wsD9ztcdev1b9DyRieY2RmL9UXDBtj4oj/OPUFtk?= =?us-ascii?Q?JDG8ZM8CFGMGVmkGE54kvSsgDG7PNXnI6OCCwUYCvQdt9ba9Bfjr36yusWC2?= =?us-ascii?Q?mkNe0G78IYx9qmtk6RwO0BbTeppX9st5dFO/m71ykgIdn0/Q6vxu4pifSsIx?= =?us-ascii?Q?ZuHos+dy3kJ1VSRZ3ykrSiXXP2uKHYbnu3TfS8FgiKqiqzwYOcmn7+YvfSBH?= =?us-ascii?Q?Jfxk7cyVdbkQCfovnK947dvrgFPmm+OsHo68fCdCYIhUYAwWBEute7On3hGi?= =?us-ascii?Q?0wLH6pJP9Y4Ta0x9cDX4Ya+vrlmvXHutLKaLxdeUHcdQbejOTcWBCgYZ/Roo?= =?us-ascii?Q?lfoj+g/6Ppf1Ai4ZYcqd/kNbtUnrilObbx02ojgTTQeAlHecUTm9dwsibcGC?= =?us-ascii?Q?QpdWyRi1ndJecnFyDfs/+IHxb8QMkg+DVYt+/NPQns2JBlG9f21j0oK7KPO2?= =?us-ascii?Q?XAfHsRgUaa3wGPcQG0J7+sWksflFS6STJn9KZ88M9+uslJczKZqo3cFX8VFr?= =?us-ascii?Q?8b5gGKaGU9rdE/TXqPctfMMCJd4qZaQU8jbeZ7S9LuEH5z34MacIE0x8+652?= =?us-ascii?Q?vQe7NxXsVqKkz4jwCuH0NxGy0pSYzr065WjIsVTG3LXLaw16+ugYaml6N4v7?= =?us-ascii?Q?Ve4dR0Y4huJiYrimFD8wG7VurG4Mu+Jnonaqm5cG+biJZvecJgNK2x4GieYA?= =?us-ascii?Q?Q2VaeziJs9/VZRWErkcIwQCQ9lYa+wrc/d+B/6jBXyyQVdnyBylGXTKrjCHy?= =?us-ascii?Q?0Fvl0mJ8Q78SVFsbpgJFFy8f3zftO/ovgEGRV4B7L/+w09FbrtOJn78pqYiJ?= =?us-ascii?Q?2UnW71tSR2rEXhMx5DEDddBEyAcfIlkXqtaEi6zwVciUgpk/tto/vUlFIFLi?= =?us-ascii?Q?PI0pEglYqdrttr8P7hgCne5Q6MZsjKvmXFhJDBtU07Zd9UdhE5UCm0BHdQ7M?= =?us-ascii?Q?fz4mXBXvpuPW9T1EB8oZuoHdVpX6OrvqC0Zki+qRj9Umgyor7er876mHEEj8?= =?us-ascii?Q?VytQBvny8lpR4fWHgxp3xFUBFf1jcJth?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB5957.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?8S5LpaxXs0PHkiFl8r68c1bAh5BzuJc055YYPWSywP3zrPi+LMcM5OEStn7X?= =?us-ascii?Q?gUhj+bGaxhRlrrvUpiYL3JXCB0FWk6MTYnWAcvXTy54IZC+J55xjUUJey3uv?= =?us-ascii?Q?OZTY5RKkS4WIiESX9be206UpT3DlDDNVuCAVNsUmGxT7Nwqhc8MboajiBi8e?= =?us-ascii?Q?IhPVF/U2to2x45pzjLRRMz9AhqFxAmYnEiVnNLOTvFb2TfKVBYMRZrr42I/j?= =?us-ascii?Q?AyJ/ce5Dx+jrqksaiM2ZQTlgFn/jj3jafsOEOHvclGJTw60WT50GNBcCc8fO?= =?us-ascii?Q?sQrD7Inob571bQxG8U7GNJQgZi92jnJCfclHB0lYwvTHt7YH9y/5mjKeSwLL?= =?us-ascii?Q?nQ8TjGCQBkEZ4jAKAOzBNnb9z15HZat5b9zNjEX4+8cj/QQX/Z3IkW51UhH2?= =?us-ascii?Q?F1aYnIQxBiX/8sMLlZ2SgFCrxbCr7Qju4igkUKG3tExLgZSvCafgHJAFhnVV?= =?us-ascii?Q?u+oMVj5pPUv/HWY/WIVlPxqCcBFQ0cmBA/GLADvKZW3/RrsiwWE9rYY2BxBN?= =?us-ascii?Q?uI7SLaQlF9vZ8t4tRQaSCcUd5D2uQ7GO++pAOCROPa0bvETC+hPhMnlCLYCV?= =?us-ascii?Q?CsnbQC1/oH/uVd/vi3niAz/MlVUsm0TSfLE45oMoqUIjbmeKoe7xLYM9MvqT?= =?us-ascii?Q?GG8s3qcGOQdvzA+aqs9ioKl3L5OumE+DG54BGY+KnGFOmZs4P89ZVUDZ6rkR?= =?us-ascii?Q?WjQEdMrq/NDsh5SGQFQbt85GYVlcgMbbFEHFvZqFe95NfZtZ9E26HbnuH9kr?= =?us-ascii?Q?zRatzhL3BE9lkmqQg+O/odw8vLtkV7/bHC07+BaKb1DuqVMZ8zeezD7bqZAQ?= =?us-ascii?Q?D7UBfm0mkc1KvhuxcB9nDPkkbE+yQemIC1+Jqc1UE4XUO2pljJGrLm60xPHb?= =?us-ascii?Q?fu+AA7D4rOwxKZu/zkaAgiBStzLpF63p3HCrXrTUrPEBSecEqQGmLsxr3x4G?= =?us-ascii?Q?CBBwwpj4lSE5gceV0/aeLlfnFexLwFuw/zFb5sic/0ly1qNRsmBG+Z5G76Iv?= =?us-ascii?Q?QYSBTBXamZ1XwXksSqqR499V6SL/uPwXD2jofnwqtpv/AUYx8fBWVdY9viLs?= =?us-ascii?Q?dbUnIgFh3Vt71OtuqquRxA8rB7pTw2rgGnNYIhPwvdqmhBEVlP1uzAvcJce7?= =?us-ascii?Q?AbKYmMGqy3r32tsWH/mpVAxLG4UIxaffUQOzAxhVLtGH2RhYY0fX2yyoGV14?= =?us-ascii?Q?5J28oNgKsn1puD4Ej+twiPKCFg+nj2IQeUJZu0rJduC+G0O8/tp4qOPja6Mo?= =?us-ascii?Q?0RwQEpHdt1L2EXesbfGMTe4CItoRPU8DEN9a2iNz0a+TjBnBOofe4vL1VYjr?= =?us-ascii?Q?boZvHaFn9QJu+2covhUHYecWZnDnPHyLIA7SuNb+jbsGcOH0w8SFXRCujabk?= =?us-ascii?Q?/vY4gpIWSi+KqGFIRmTTbg/dDss3vhq3OmT6QmFILZxAjXceBg7EA9KSUYLe?= =?us-ascii?Q?rHupor56EJADFgrwWQmmNeABx7Kwokgpa81xHys1Z8P+3ZoBBRg+Rpds3as/?= =?us-ascii?Q?Dl1u9vKIWZFFwUWnXF19jDeBt723NNR71k1McgnHEHvcn7lmnazdjrRqOhTZ?= =?us-ascii?Q?nco5V/P6AbwmtBIr/8I8zeoA/QpUHOarw7v9FrLS?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5957.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84aa7608-a272-4967-b9f5-08dd5a46995e X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2025 11:29:02.3774 (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: XEcQuBPZFjz/lK4Gfp3HaecUNJONzY6ymisX56RuJU2T9VbHbtUSJxE2Jev3xL1PXDCI6yst9xoiOGWJsiJvIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5885 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Chen, > Wenbin > Sent: Thursday, February 27, 2025 10:39 AM > To: FFmpeg development discussions and patches devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 1/2] avfilter/dnn: do not manually parse > anchors filter option > > > 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 Will push soon, thanks. _______________________________________________ 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".