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 9EF634397A for ; Wed, 2 Nov 2022 21:02:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B099A68BEAB; Wed, 2 Nov 2022 23:02:05 +0200 (EET) Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2028.outbound.protection.outlook.com [40.92.59.28]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 42ED368BD5A for ; Wed, 2 Nov 2022 23:01:59 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BfueSlU5MfEgv38kPipkFpcLm1RomOfCy2xPz9Y9syJfWV2nC4MUwGBHppx4gYSvImhRCj3vdQeVmsA76xjnJfqlInf5NmnZbmyozuaIIH1FRrA902wVIjn6mAxLXq1StFE+bWfBDbwDFQy4k+FSupnW+zzDCbLXwlubi93dVrsBIum1oRQ8f/DOsuPq+RNG92MRgeMZLQOgmvmBFNMqSCp6V9dFR1w8tLbwIOwUBWQ1tGd6yU27fiVZyKWym0Ibr/RSeLKa2F8KZ/YGXwKCpXlvnXbs6L7F55Mjq3jZU59yUfZCdx9kBKGNO9pBlvjID8Sm20USAUBB/FyKdb5Drg== 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=qo3kFThPrwpUglFgkwGuwuCYwjdhR05baXR8ZjiIrf4=; b=iYN8hJSJbVLnHBKkbxE9zdxGQswLwjACxq1r7gZfiNMfC+79FfdeNhlFb3WROMdiG51p4t23+hGNDADzLdPmPuvQ/LYwj1yO1D1B9wNAAovp8c/q7vlASwwGgwavv/tLHoU0c0ZuKiNzPwTPL49kIdKEQWMMFCibQHJIAldzZTEnAsQL87XYr7ABrxI97U0UzxIixWfFfg3DouwJ7Z4cTOQ6hWTWuxY/EKOplEVE9KLPTwnFs+/L1txiQb3D/taEvxcFteniG9ZC99HCEbHN8vv5HGXyhUetmhGvf+WyHg2pQqFdWFBCABKPG/+6QgmptPbZq5eGR9tq5fqW4uENkA== 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=qo3kFThPrwpUglFgkwGuwuCYwjdhR05baXR8ZjiIrf4=; b=myLwhqag0r/nA4fkNJWAeqWSKcjMlQ52zgBLDc/qBEmymW1R8NSA8YX01DTwx7LfhOt1iFEHSs59fu7LbuBErDdFwoivHJ8BoDjjpcLeJuOpT+JCiYG/1zjXecLAMXLnWsA6phcU3KYLpDF7O7lqGFQoyUswepcpC3TFvKnBE8KsVgaWRlbUKchtKKvcWgKMde7Y1rOkGypgD39lrFYSNY2gLcOK0PtaH0wakg+yfZtY+HT+aqNJua8uLNuQO0pISp1NYq2DoQoCDILtnSJb3Zc//NmeoWuvk8UzMuzlTWu/LovFxUXPG653wxx8GxetD+2+iZnEvCx6MsdXb360sQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0717.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:538::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Wed, 2 Nov 2022 21:01:57 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Wed, 2 Nov 2022 21:01:57 +0000 Message-ID: Date: Wed, 2 Nov 2022 22:02:08 +0100 To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [/6JN9hnbIyjNAdAQOUdFHdS6z7srQbx4MqX3byY+zF4=] X-ClientProxiedBy: AS9PR05CA0007.eurprd05.prod.outlook.com (2603:10a6:20b:488::27) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0717:EE_ X-MS-Office365-Filtering-Correlation-Id: dbaee162-098d-457f-2cd5-08dabd157a41 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: enLomyp1xW7yojBMXYA0dRM4v8t/y/OBAJSh1JKiEwUzuYQfUd3FN6MqSbcISH4NtGIyxklUdW3Ds/89iG8uYjEZMjccPM+5Opox+K2KFMuNalD4JHlyLsEjDS7TYueA/xFL/wvFX7syLVLVW8fCDBXny0rVcCxCJCz0pj01d3gx7O37tei9xbSnI8p7i5V10DqxgBEXogNX+VWFE5DXV/rRWb6hvHtRs9UFYQz7reo3KWGHO+9RmLphvdsCbaFFfBbHV7SdfyY21d3xYoU2to0eYHMjbRmhK9P8G9JlZ7G5VpvyARtijCMK5lQAzG36+o52oZzn9W96gy69etwLxw2zYcFP1ZgrYByl49+ishRNeHwP2q2ztm4QNQSTVDBmWpooANflMVPvDCilglrM4+4ADtXrV0Y1X0VjefJnq4qpdqZnyfhbaKL+sGjrQCPUvfEg+1cDfIPTuHwCr682Bcvgiry6oTCOi+IkKIjxJrdipQk5vNFLi0/X4SMpQxHFd3z0AR7kticGBGn1MxYvIBd+JlyMQid1Tk3mWae7uQEZRGk/hnFqGlkWIb+HeNNsRgHL8dReEZ94ytoTzPdUrnQKkyRjX47klHOIoS/NHdKEursk5e3mkYR5O9HhRzmeej9lQcaTuUZhMMwWSEhaqct+i8VfO+S0lPUQ5avquUF04TWm1eFSeoY4hzffLFdN X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q25weXl6SlBqKy9qVWU2ZkVtMTl3QnFGelk2bFZ6VEZIUWUremRYMU04OHFp?= =?utf-8?B?Y1M3dU1oRXpEQ3RiNVBrd0tWNXk4SXNRUFdKQlNHa0FBVFUxMys5VVRHL3pp?= =?utf-8?B?OHdLR3k5Um40ZEt5Y2ZvUDBSVDVvVTFKd2hlUU04ZUNQalZWNXI2NU1GL29k?= =?utf-8?B?UUJtZmQzcndSQTByOWljZ003REhKeHRHUkZwcERVaFBNSTNldnRQc0xKeEJL?= =?utf-8?B?a0djTWp5OFM0aXBWNi9wclU0MEhTeitoU1NEVVhtV1dNa3FaaXBtN1hadFV0?= =?utf-8?B?b3ZwU0NkbzlMWUlvODR0c3NENDF0dTJPN0xZckgxazdscXk1WThDMkw2Y3BQ?= =?utf-8?B?emFBRktTS2FwTTJJK1EramZOMXZBTnVFTVpLNWR3L05yRFVUejJNb1RTd3Ay?= =?utf-8?B?VHVPT3ExajRmSS9tQ3pJTHNuZENUeHJMMnNhR0JMNFluZkF1aW5rZWY0QUxz?= =?utf-8?B?ckgzVzNCNk1ndHFqdmppb3VoS01PUk01b0lYRGxOaDRtRFRYem9DZTYrZW5V?= =?utf-8?B?Z3F1aXl1bitUOWpQNUd1eUF4MEhxcm9reHQzRlg2dzV3SE9FeDdBclNRVXhi?= =?utf-8?B?RUpYUXJpcTJQV0JnTkw2S1pSMlNJQXBPMjh2OVBpcmdibVI3cWRiejUxSW40?= =?utf-8?B?Y2dzL0ZpcVNnbko5OFFycUZKYjZ3OHIwMUVLb203TktkRS9nV2VKMXpwemw4?= =?utf-8?B?UGxNbzVWNGdHM2RSd0YxcC85UURWWVR2SnlZZGJwMVE2TXRsVENkWTI1a3Nx?= =?utf-8?B?VWxQMmw5Z1lHc0I4c0ovRURTd0xYcm9jQyt2bmd5SmFseVZGRzdTMnQ1SE5O?= =?utf-8?B?aHc4OWs5bGRDelVERkk4T3kxQ3R2MDBtTEtmNm4wUVpCakZFVnhjZUlLRnBu?= =?utf-8?B?VzZ5M3RNNnpNSmwydU1zT2lxQ1N1c2t2NzlyaEJrQjRNcnFXa0lqRXorQm12?= =?utf-8?B?SjNkaFdKVC9lOGdVMWF4aUtpL3h6R1hWRVU2NUQybHRIdHBnTTFpRHhRaUlZ?= =?utf-8?B?RUVPcWt4N1lucVdyWEpaVzdPNUR3U3pXQlNFNEo3NFM1OFhTMHhHc2g3WjNl?= =?utf-8?B?dU9WWk9iZHd1UkgxK1BCV2E2eWhUdzFVVEZFZ0FqeW9EOHJFTWNvTktzbWRi?= =?utf-8?B?MVo4Z0RISkZjbDh4TU5NNGoxUCtRdVYzbXZzSHd5UC9SeGxOSFJiSExYS0FO?= =?utf-8?B?NXRWTzBrVkZNcnh1dG54N1JiN0wzV3N4TktEWXp3ZHBUUjBlYjlNWXhtSnV3?= =?utf-8?B?Y1RGTUVOYnBJWjJYZ3luakJhQk5UQmhnSnBYdjJTWWJiMFBReFp1WGFhdEsz?= =?utf-8?B?Z0E5RHYyNWtFcTQrYlQ5N3FSWXhPckxxWjczY2E3M2ZKT0VSV244REt2Vnd2?= =?utf-8?B?WFJlUXNiTy9GTVNkMWs5TjZVWldvQUJ1Q0RzN3hlMGdIN2M2WURDTS9GVVd3?= =?utf-8?B?OTNkSnBRaGtUcFdScFhiZ1RJbUVUdFJnMnloSTNTcWx2ekF1VzNGUDVpN0wv?= =?utf-8?B?YU91ODMrRHBxZzFacGJrL0l3VUdTdDFTTmJWNlBZMys3T2VPQ2QvUUl6bFdz?= =?utf-8?B?QjY1NEZQM3NkbUE2aUs0RE02NFdEQ3huMnJWTFEvbmtMTWxVTnJaWTJSNXBQ?= =?utf-8?B?SnJVam5pMUZkV1l2S0o0czlkNmJYZHVCQ3FydGF3U2VHTEpLaU44N25rWlRq?= =?utf-8?B?Z2dBYS83RUdMdGUyQitiaXBUdFpJZzZvQ1NZUlNKWmZ4N3h3TERKWEsveGM3?= =?utf-8?Q?t6L49zUnUaVKQ8r52TynzdqIhuSJVlKM3622mDA?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dbaee162-098d-457f-2cd5-08dabd157a41 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2022 21:01:57.2213 (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: AS8P250MB0717 Subject: Re: [FFmpeg-devel] [PATCH] avfilter: add backgroundkey video filter 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: Paul B Mahol: > +static int filter_frame(AVFilterLink *link, AVFrame *frame) > +{ > + AVFilterContext *avctx = link->dst; > + BackgroundkeyContext *s = avctx->priv; > + int64_t sum = 0; > + int ret; > + > + if (!s->background) { > + s->background = av_frame_clone(frame); > + if (!s->background) > + return AVERROR(ENOMEM); > + av_frame_make_writable(s->background); You are never writing to the background frame, so there is no point in making it writable; what you actually want to achieve here is making frame writable again and to achieve this you should make frame, not background writable (and of course you should check said call). (Actually, you never > + } > + > + if (ret = ff_filter_execute(avctx, s->do_slice, frame, NULL, > + FFMIN(frame->height, s->nb_threads))) > + return ret; > + > + for (int n = 0; n < s->nb_threads; n++) > + sum += s->sums[n]; > + if (s->max_sum * s->threshold < sum) { > + av_frame_free(&s->background); > + s->background = av_frame_clone(frame); > + if (!s->background) > + return AVERROR(ENOMEM); > + av_frame_make_writable(s->background); Given that you never write to background, there is no need to make it writable. This time, there is also no need to make frame writable (the next filter in the chain may not need a writable frame anyway), so just remove this. And the av_frame_free+av_frame_clone can become an av_frame_unref+av_frame_ref (this will necessitate modifying the check above to not only check for to existence of s->background). > + } > + > + return ff_filter_frame(avctx->outputs[0], frame); > +} _______________________________________________ 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".