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 1B865403C4 for ; Wed, 19 Jan 2022 19:14:48 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6420168B178; Wed, 19 Jan 2022 21:14:46 +0200 (EET) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-oln040092072031.outbound.protection.outlook.com [40.92.72.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6309668B00E for ; Wed, 19 Jan 2022 21:14:40 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g9bI1Qz8z0ClH7VmhnF+zetWBV86FQVXy5KOqA+0UMg4Kl5jlJWSyD5GPJYV1qH4mzRp0cgpwWQgVdFlDDxQf3igafaVPGg3NU3BTQxig8ApUQqU75O5bTo6+GlfWqFujbDvaj2TwJQKY5z3pw+QRnjQgJaoRTHobjTMWw/Z6B9OdpVX354gu+uAMaRAgJ5TlcgXhJrgZ6C6zvElv5GzPJWtlOJDGZS26B7MrT+gVlESjI2+Z6l0B5NtMqSEhdBU48HvD5LHSuxTUfiotub9NCFGIZwAXO25d3JRYygteiDQvh21qZMip3s1uX160cVNbSvtYis7GrC3PV6pSGuNwA== 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=PJci8Z/TCRqDA0Pe/NPax2DalvTmZGz3/aQe55X9gNw=; b=NObS2PZEdJ0fzd8gISojS3CIlbp5VUaeAyZT2xjbqdtEyWK3NiQiWImjlwmRT2HbraC3X2oN+lTOLMZ89Qi47YN7cmba7Mu0Jmh4QDBPbHiFgQK9Vl32NWZagNp5Dd8VMaZ/mpf4x/9AOsHDaBkvqU00s/bRmaFrKNG0hg+tgKlqFh8lYVO1hjb5nQXti9aHB8R6WkoGWtE0aERUGlyk37Hj67jO5Nknl1P0vc2U74vuMjCGy4fJmQUo6b1RXLW9HNx/KVpnW6c2pvvGsyNpFayPY+Vp3rhpgagsb+VpP4vepjfJnIfYMIUzXggUrKcujC6plPkPSV8JBxYChysxxg== 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=PJci8Z/TCRqDA0Pe/NPax2DalvTmZGz3/aQe55X9gNw=; b=uQnxmihlmeumVjib7I1RD2Nnn47eBGmPTFEZuF5U3+NwSKdvfEQVNVqL3DwfGp20sQLu/nDhL8tjDN4/ZxDvLbnQWVnWpRvPdVcs2GK+wcE0anUG7JRqDKe5isVXsCgLuG2PH1jek0JHWWXNITV2KbWvWT282K/1Of2unZBA3hbbz99YUSJA/hZvW1n71yz7Snfv4g+gWdnEtIivzcICC0t23qPOTcncwnadeD98m74ZBly8hAX3sy+Sw8GuEwezB/HEqY1ZxSxlXsyS4JX2LZzTSmVUgmBsooWZP8GlPKsXRgDeW2e7PSwRPDoKG71A95rbYTc1BlXlvjmBoR48eQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by PR3PR03MB6364.eurprd03.prod.outlook.com (2603:10a6:102:73::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Wed, 19 Jan 2022 19:14:38 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4909.008; Wed, 19 Jan 2022 19:14:38 +0000 Message-ID: Date: Wed, 19 Jan 2022 20:14:36 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220119184332.289047-1-deiwo101@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20220119184332.289047-1-deiwo101@gmail.com> X-TMN: [ky9x8jGprt1r+c7b3vM7RjcRdkS9QhaW] X-ClientProxiedBy: AM8P251CA0004.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:21b::9) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <2f463299-fd5d-2506-8c10-fa8d1e4cd4fd@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2dc2542f-1c6d-4795-3733-08d9db7fefff X-MS-TrafficTypeDiagnostic: PR3PR03MB6364:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AUpN5o6U6sRF8Hzfp4WCjsupcSE6dJatGs9G+cpdbPXjNXtbW1jU7a2IG5hdNJ2qH7feuBqlhhnKLEH/vIDveFJeWEKsbbLI7CGOM6Fy/Njz8v5jc531HGn3B6nEKaBdCbKLl5O8yMFFBwsOnUibyDOHATeC5pQkhcr3jplrGtlEQ3CGq/XFjvgxTHPB7quao/DevSdOlOO285ceRhDoQAZzTe5iLDkCzteaL7BiCx+8jMaeRGATZCyWQ/UNqzzipVoE/uUUqQ/WgzvcaupnCLOPC9SKB4Yqg3MqRiB81wY+SRhXckOV1gxzSHGDJozgpjUwuDGqrZlj3G6ZNsMnVMS8U8w31IfkNO0y6it8hXBUcC2EcI3JlSS9gAjdO0ayTrn2s3RVr3KcZBU/XXXrlDcvv1mi5Udw7SYxxbWeDxbFM4Fwgct7c5HrSekD5+ZNW4/zDTC634xHFPGbp0e77whZ7geSJU90uMtZAAtine8JG7bzUtX/Wh/h3ukv7yhWWEqmdlT8i9ZGkEv6uM8rm2lmQEiPEVM6KBCgwyJOPJXhtSaTenyyyO0CuBkGJYlvvbYQkb0zL2c9Klp7fKGT4Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aUxqV2pyNmZFb2dTU2x5elhOa3RGazc3K2hKZGthbTVqalpRZk9CcGh1MHk2?= =?utf-8?B?M2tvdUxYM3ZzZWdyV0dKRlFpZlEzVzBTZjZlbkxGOFN0RjNLaEdwNFQ4d0Jv?= =?utf-8?B?TmhsZjBRY0F3OGN5NTB1eDJYeDBOTHhrMUc0TnlrcUpJU0o3eUJzaERWVTdO?= =?utf-8?B?aFEwdTU2dVUrenJBSXF3TW1pTHk5Tk9yNnA4SUpZd0Z4aDl1TmNBSWgwN2hz?= =?utf-8?B?dW05UjQ1SisvamNnSWNFSW96SjdWTWRSQnJ6MTVxbFNrZklOaUt0a0xaN2Zh?= =?utf-8?B?a1piUUdyY1JHaTZGcmlmektiVmxNWGVhMHozeGc5MVgxM1JreTRicFdlUjNs?= =?utf-8?B?RWFaaitsKzBOendDOVl2TXkwclQ3MVVZVm03eTFRWmNaaGIrRjBoa2Q5aGRP?= =?utf-8?B?T3ZzbnFtTDZidjV4MExFVWUydDRoeDBYUVFkMndqa2VVYmJXeDFKYUF4UHU2?= =?utf-8?B?YkIza2ZnU1FxeUdPQWp1bkVTTFNQcWFvQW9XQzZBZXdWNldaZFVLRmNGUnR2?= =?utf-8?B?TU10TXZibkwyV1Btb2JMOFF1RkRIRzk4cldxZWd1UVE3ODllRHdXNXhPaFd3?= =?utf-8?B?Z1pIdlFLRi9XSm42aCttMFV5aG5zSmFCbW0zUWNRcGxLWWhrVFhjdzUxZDYv?= =?utf-8?B?cDI1K1NLS1N6M2dmbmRpb1FaWGtCWWtHMmR3SnYxQnR3enozdi80by9IM0lT?= =?utf-8?B?RHRVVEhZeHJ0OHlWQnFibDBWcEJrOGdkOS94a3BZcW1WK1JjUk1Icy84UUpi?= =?utf-8?B?aERPd0hLYnpORUZ1TFp1SEo1ODEwd25yN1F3ZlRyZExacGFkSGNrekQxVzhu?= =?utf-8?B?ZC9YekZZUjVWaFMwcEJMQmdKYW9oOFUwUVpvakhEWWNaSVdZeWY2ejZhSHI5?= =?utf-8?B?cHdYMmN6OXJCRHZVb0dOQmtGRFhUWno1dEc0VmRUbDdjeFV4T0J3dW1XTkh0?= =?utf-8?B?d2hPVkl4VmpIbGpNY1pUR1N0bGhxeGJicHhwcEp1aHp5UDZHOEM1T2drQ1p6?= =?utf-8?B?U3Q3c0FjM1Rxa2YyUkQ4cmN0WE55SDFPOXVmaFZXbXNoL3ZZOWJVUUg3RjNx?= =?utf-8?B?bjJUVkN4WitIRU5KNDZyOHJ4NHNXR2phVzJMWk0ybVpKQUNlaS9oWjVlbkYz?= =?utf-8?B?Y1ZoV1RCemxqUTVmTWFQdW8xTVYvbkhLQ2lWYjN3V0FSZ3lBZkIxYnpMb0Vu?= =?utf-8?B?WUorbXJzZmUxRWlDSlpPVXJxSE8rVmFoYWQvMHo3VDB0VmtOSUIwK0JGRjlk?= =?utf-8?B?Qy95ek9ZMFBodVI0Z1lDSmhQVVUzV1BzOGs3ejhnYVV1bUFxdz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2dc2542f-1c6d-4795-3733-08d9db7fefff X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jan 2022 19:14:38.5789 (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: PR3PR03MB6364 Subject: Re: [FFmpeg-devel] [PATCH] avfilter/adelay: Add command support 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: David Lacko: > Adds command 'delays' to the adelay filter. > This command accepts same values as option with one difference, to apply > delay to all channels prefix 'all:' to the arguments is accepted. > > Signed-off-by: David Lacko > --- > libavfilter/af_adelay.c | 183 ++++++++++++++++++++++++++++++++++------ > 1 file changed, 157 insertions(+), 26 deletions(-) > > diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c > index ed8a8ae739..1e13cf7fb0 100644 > --- a/libavfilter/af_adelay.c > +++ b/libavfilter/af_adelay.c > @@ -31,6 +31,7 @@ typedef struct ChanDelay { > int64_t delay; > size_t delay_index; > size_t index; > + unsigned int samples_size; > uint8_t *samples; > } ChanDelay; > > @@ -48,13 +49,14 @@ typedef struct AudioDelayContext { > > void (*delay_channel)(ChanDelay *d, int nb_samples, > const uint8_t *src, uint8_t *dst); > + int (*resize_channel_samples)(ChanDelay *d, int64_t new_delay); > } AudioDelayContext; > > #define OFFSET(x) offsetof(AudioDelayContext, x) > #define A AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM > > static const AVOption adelay_options[] = { > - { "delays", "set list of delays for each channel", OFFSET(delays), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, A }, > + { "delays", "set list of delays for each channel", OFFSET(delays), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, A | AV_OPT_FLAG_RUNTIME_PARAM }, > { "all", "use last available delay for remained channels", OFFSET(all), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, A }, > { NULL } > }; > @@ -96,11 +98,92 @@ DELAY(s32, int32_t, 0) > DELAY(flt, float, 0) > DELAY(dbl, double, 0) > > +#define CHANGE_DELAY(name, type, fill) \ > +static int resize_samples_## name ##p(ChanDelay *d, int64_t new_delay) \ > +{ \ > + type *samples = (type *)d->samples; \ > + \ > + if (new_delay == d->delay) { \ > + return 0; \ > + } \ > + \ > + if (new_delay == 0) { \ > + av_freep(&d->samples); \ > + d->samples_size = 0; \ > + d->delay = 0; \ > + d->index = 0; \ > + return 0; \ > + } \ > + \ > + d->samples = av_fast_realloc(d->samples, &d->samples_size, new_delay * sizeof(type)); \ > + if (!d->samples) { \ > + av_freep(samples); \ av_free(samples) or av_freep(&samples), but not av_freep(samples). The typical way to write this is btw tmp = av_fast_realloc(buf,...) (in your case samples = av_fast_realloc(d->samples, ...) with av_freep(&d->samples); in the error branch and d->samples = samples in the non-error-case. > + return AVERROR(ENOMEM); \ > + } \ _______________________________________________ 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".