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 58FD54373E for ; Fri, 25 Nov 2022 12:48:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 86A4D68BBC6; Fri, 25 Nov 2022 14:48:18 +0200 (EET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (unknown [40.92.75.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 55A8B68BB66 for ; Fri, 25 Nov 2022 14:48:12 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F0hZLw5qU2CCR3fLwJeU4NsOBJ6nBOZRhSbNbOpkcT63n39dKaab7Cshgux+L/qfBlXSXF7qTc5yR/1Ia/WsTOCvDsordkKE0VLsyC4qnRZ909f3wHlxrELdSW6qDhSVytXFQa4j64ypbDT71qOjBA8KGG+x3CKxfsrujau5y5HvsCW2XxfquxPlUOqgVE/kZPm8TW15uIJBs7uBV/JQuAn8IrymMwiQ40tUpzVnPekDFkoEL0WxEHb8zWsWuq465njIM41aJjJRvhR8sQz/LLaHitg1Ax+Bt4Igbb8ZtcKJBr3iTRQI1SJFVUTVhH9NrjqDa5UD3GW7YLZl/60Cog== 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=3SMna3onVL/t2AgyWWsob1GY+4Rl/3gCaoqtYP7IJF4=; b=Djyyeuf5DinVYdRrOsJHJ0CLJ3TInjdwG263hNywe4Q9cc+/zTYZzpXavinwBLZKSBz76tvff/+oGzA/HeNGVJ5sr44LjglXevcTC6Du1SfaCsoGKi9/5BY4/bJ4UIiNF5Chs2tMHSnFaXkdUjWHkyoTbabVaTW3t1hbD7ENf3Z4J5HUdxHOy7XfQnec/Y1xEw+rZdgSIOb3ZuRDqJ9YSns1VI5miHVp4ksHU/r5GIjOHQoHOJNRkr6GpqvPsBQ/jUhopDxtNg1G6d1K/Wlm0v4idAydQkipUnZh43IL1IuZJzS31NPK3Ip8fwTxrUum9NkN+cx9NlHaC9T1GKIiLw== 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=3SMna3onVL/t2AgyWWsob1GY+4Rl/3gCaoqtYP7IJF4=; b=WxIDVtyf8te4qih/JZbC6nX43kRgbCPHBkc++SY5MFXb9zleEq3Ggk1Jm4bu/xIq1Ro/Z5m1M756oMOhUosB5CyrU/gQbi8OjFd//vYaO51JgtR+e7SpfYOdvmIIYfhK7GQjsY+Q2ReSbAUhvszZzvJeF0bcFqY4amrC5ASGa83GQvHWGc5N7IMUE2sHOiLzrK7xsU+ft3hlcW2Bg1tOjfqYY98CIaOjXIbmD20uhN2ohN9XqYHCJmH818iHHho6YEcH06nPOxOPPz198OP+miXKmas73NALtbRPRTUJ5F4ldm8NDiDWoraUaqrI0C/nsEilxEB5HKelLAgSe6LsPQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0274.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20; Fri, 25 Nov 2022 12:48:11 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::c37:cabe:316a:60b2%4]) with mapi id 15.20.5834.015; Fri, 25 Nov 2022 12:48:11 +0000 Message-ID: Date: Fri, 25 Nov 2022 13:48:28 +0100 To: ffmpeg-devel@ffmpeg.org References: <20221125013046.40904-1-epirat07@gmail.com> <20221125013046.40904-3-epirat07@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20221125013046.40904-3-epirat07@gmail.com> X-TMN: [cvKwdl5/VQNS1GQS7U9UwnkTl8UmOfZHEEB7S67w0YU=] X-ClientProxiedBy: FR3P281CA0101.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::10) 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_|PR3P250MB0274:EE_ X-MS-Office365-Filtering-Correlation-Id: ebb0b8d4-efd1-4a7b-6dca-08dacee34e67 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X3AwtkTZLknXG+n28mo0aCDmNd1MZhKBHD+dkEOvHYNJM6nKEjFerB3rAK/6g0dwMXOvnUjv9V5FXm7qC+4k1oW27GOsoQeG92sNCoiWlzWWeelduOAF+Mk8YDNppzv6lzDXB9vZNxG8lPAq0VYCn/3eky0XGu04LJXCRrWGJVqtJG07mr5oLr18lhkmk/JqHlPCfcyASZrvqgMWRJ1THrapjGuODE9WBsStYVg9ZQIXdBdXg/CV1Adf49JmJucspfZtLf66Px1uTKP881YvJhbJTxOvBiM5cKvvovppXjAksGFSTzXbNMtINBkl2DR1Z+Ql/3Gz/iV2sbOf++jsOoGI+Ee1Wv0ft9SeXwA9QQ99bBGZAqgPOkiiyZ9IsFImM8tnuqymYj/hBQGpAYeTZLjlS5rJYpHlrxXasR5IBNRXNou+08ntOwImwULAkFfqaZRpQCeH4JIanpTqJATPVjAYLhOUB5PvQvZ7ZKFmcCxu5sY0v6MRjd57aYt3QCx0lphc+LwPRgLiaFgZYG9Y42wQqKeb858njGxEwfwVNcDKV2k9FxNcWEjT8jrVQGVKWzcSeGfiHEjdjt/oRg869RqqrdBW2fnGl3iOOs2t8UEeu6e4YMKTTTe+ti4r3mldE7L7U+/qGWyYkpbGWUGW+fvwwJ/GrLHB0cjWgU/BlDc= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eGMrZ1JCWU10WHE3Nk1lSGptbjZIS21VWjFkYy9rbG85TUJDOGV1U0lvTzRj?= =?utf-8?B?RERkckZLR0FhU1IxN0R5aSs0cUNOdDNKeUUxMDVPVTh0ZEpWbUVWMWdqNlBR?= =?utf-8?B?M3B5cDdSTlBCdDhFR0hhQ09zYnFQdUhXcS9yVHA5dkVEK2p0bUgzTEl2OEV5?= =?utf-8?B?K0Z2dzZoNkMzcDJ2NVZOYm1ublBpNTlVWFVZWnNwR2xHUmh0RUg2enVaWmZm?= =?utf-8?B?TXg0RTVQeHpxTnJWY1UybjUvZkpqTlB3MzNtaytieU9GUGNjMHlPdHM2ZHB5?= =?utf-8?B?M2p0c1UxMkNobEt6aUJNdURkS1VzcWgxMms1Y1RnMCs1OXM2Tll4UzdSUUFR?= =?utf-8?B?L3hDdmJBNDZBbnJuWkkrcFdWd0FBelF5V0xmcG1mVVozejczcEMrWVJRZk5T?= =?utf-8?B?S2xVL3hlMjR0MHRNVHNxVzhLWmNxUmVwZUtBd2RraVRtejdaWmFNK0NOQ0dZ?= =?utf-8?B?YVJSbDNRVlk1elhsTkNRNW54N3AyYmp4bVJJZW80WGFwWjQydE85UEpjY1lQ?= =?utf-8?B?RDBmZ1lBK3VjeGgxQ2xxeEd6TmdkejVkWG82UThKb1JyWVAvN1NFemV0TFhr?= =?utf-8?B?MVhNOHVRQWlOMGhmaEJLbkxsY3BNY2RsVWlsS295M0EvVkVLYUhLWTI2ak9Q?= =?utf-8?B?d1I3UW5xUUFUVnRNSCtwMmlxd0ZrdHlxaUNHcnlmbkNIUkcvNzFaK000Y1Fj?= =?utf-8?B?cFA1UVgvK3RHRTJpN0VGVXlkc2JBWXlaVHlRUkRwdzFNRlVBcU12MDFsT3pW?= =?utf-8?B?WDlNQnJodXBRWWprNjFWL1NkSEw5SXA3YzdSMWw5cGRDVy8yMXJhcVlkdHVQ?= =?utf-8?B?U0t0SmZoWHpNZmVBMmVkQXNDUGxqaWZUeElwMnZMeHloVU5wSS93cDJ5N2Y3?= =?utf-8?B?d2JWSC9mUElBbUZLUStSQW85Y1JFYXBOQ2UzRFlzY1dUY3RGKzVnbll2bUZV?= =?utf-8?B?SEVEcDNLY0RUUlJxWDFuMGZ6MjM4RmxMWkx1UXg0cjkwZ25PeEpXOWxvMGZE?= =?utf-8?B?dWtEQzBVeDRiYWNISjZIZFpzY0ZCUXdZY09UTVREVHU2TzFsOHhDM2YrVTNp?= =?utf-8?B?Wi9WNXl5QjBPZjdvWXpDeTE4Y3pyMVA4dzVVM2t0bnNRSGxJVkFZeEx5aHY5?= =?utf-8?B?ZU1ick5FZXg0WWJWa2JMZWxObGt3VUdFdnNXaDN1OTFCV1hUNWYzNWVpMm9y?= =?utf-8?B?dkk3YkduUFU3WmROcU02VzFFUUUxWnAxNGUwc2pHcHd1NDAwa0tjTlNxTDZ1?= =?utf-8?B?Mjl2ZVVoWDQwUEo0TXc1MXhsaHFhbDU4Zmt4UXN4c1NJb1lldTZVd25sL3FR?= =?utf-8?B?djA2K2tNL0s1T252ZjFlSnMxd1dvY2lqZFB3Wm9FV2tqU2tORmpRYjJkZDNV?= =?utf-8?B?NklLREFaYTZ2b3MwVW9kb2p2N3hsa2syL1h6aTNRdlc2Nk14d0tiWm9qR0Nx?= =?utf-8?B?WlZDMFprdDBtZHRNcytaVVpwKzMvQkNvWVhJaVFvNWNlK2FlMTJKeTY3QjZF?= =?utf-8?B?VnFDSzBsU3AwUUdBOTRvbEZKbVN4VGxtd0gxaENsakQ2TFpHaUZlZWR0SmNZ?= =?utf-8?B?UWZ2Mm1JTXRtZmx6azFsNFRja1VHN01pNU1SYlFBbW9vcUdPeUVSVkJXbGxw?= =?utf-8?B?OFptZmI5UFYrWjBnVlBuakh2RGp4T1l6dlhEWXJ2S1VCZ2pQNDdKaEdGdG5x?= =?utf-8?B?MGsxNFBRQTlBQWhoUkdydVh3RzRtYlVYQnFKamUzTjZnL2ZucjQ2NHZpMHkv?= =?utf-8?Q?26doIQqOZfQ86EI7bhCb4q5Bo02SQsC37RNWyfx?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ebb0b8d4-efd1-4a7b-6dca-08dacee34e67 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2022 12:48:11.1686 (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: PR3P250MB0274 Subject: Re: [FFmpeg-devel] [PATCH 02/31] fftools: use av_dict_get_string 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: Marvin Scholz: > Instead of manually assembling the string, use av_dict_get_string > which handles things like proper escaping too (even though it is > not yet needed here). > --- > fftools/ffmpeg_filter.c | 31 +++++++++++++------------------ > 1 file changed, 13 insertions(+), 18 deletions(-) > > diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c > index b0c4c8ece3..29794fdc85 100644 > --- a/fftools/ffmpeg_filter.c > +++ b/fftools/ffmpeg_filter.c > @@ -972,7 +972,7 @@ int configure_filtergraph(FilterGraph *fg) > > if (simple) { > OutputStream *ost = fg->outputs[0]->ost; > - char args[512]; > + char *args = NULL; > const AVDictionaryEntry *e = NULL; > > if (filter_nbthreads) { > @@ -985,26 +985,21 @@ int configure_filtergraph(FilterGraph *fg) > av_opt_set(fg->graph, "threads", e->value, 0); > } > > - args[0] = 0; > - e = NULL; > - while ((e = av_dict_get(ost->sws_dict, "", e, > - AV_DICT_IGNORE_SUFFIX))) { > - av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value); > - } > - if (strlen(args)) { > - args[strlen(args)-1] = 0; > - fg->graph->scale_sws_opts = av_strdup(args); > + if (av_dict_count(ost->sws_dict)) { > + ret = av_dict_get_string(ost->sws_dict, &args, '=', ':'); > + if (ret < 0) > + goto fail; > + fg->graph->scale_sws_opts = args; > + args = NULL; It would be cleaner if you used a smaller scope for args (here and below); or maybe just eliminate this variable here entirely by using &fg->graph->scale_sws_opts as destination for av_dict_get_string()? > } > > - args[0] = 0; > - e = NULL; > - while ((e = av_dict_get(ost->swr_opts, "", e, > - AV_DICT_IGNORE_SUFFIX))) { > - av_strlcatf(args, sizeof(args), "%s=%s:", e->key, e->value); > + if (av_dict_count(ost->swr_opts)) { > + ret = av_dict_get_string(ost->swr_opts, &args, '=', ':'); > + if (ret < 0) > + goto fail; > + av_opt_set(fg->graph, "aresample_swr_opts", args, 0); > + free(args); Wrong deallocator. > } > - if (strlen(args)) > - args[strlen(args)-1] = 0; > - av_opt_set(fg->graph, "aresample_swr_opts", args, 0); > } else { > fg->graph->nb_threads = filter_complex_nbthreads; > } _______________________________________________ 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".