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 CD0D447BAF for ; Wed, 1 May 2024 20:40:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4777168D72C; Wed, 1 May 2024 23:40:39 +0300 (EEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2013.outbound.protection.outlook.com [40.92.58.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9969168D704 for ; Wed, 1 May 2024 23:40:32 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GeuwmmDYoRh1HqJzBf27gxOlZ3zX0Be+AGXPGFpY26vaj5i/sUSp1978znlAFMBmMYEiclxiYSXlf8FbS2iMA7LiZCYyRLiCbGYLsutZAAZT6M7pDQ96HJ4AojzygnPMa2Mte7iqeNG7mGvJ87eWGdIroDj6QvToah3nFIHsZpleDzcfk06Iv0R7fx5IoJL+wWlk+SLLHaz67mS9irJzFmPKsdxXkEKi0H1k1iYpe0VqO7UPN7u4FlmduU1m+jn8Pl9GpSmJJQxBT8efLHrDq9kdVSa13PIQz3sWkQhqrB/rqlTDU9pO/GVsTrrPAq5gWAp/lmZe5bRuEN5rl1r8xw== 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=5RHL/J/0pFVlJ1Ebhd9vyDC9bxznz+dACP8G3w9/WQ0=; b=D7ctsEpTEIteF5o7Ldaj7ZD3c9LyXi4HU6tXCP/Z+wrxE/DRAdVC2Q/D7PAG+DLc0wkfu+mSKlj9aC7PM8UUovm9sDdMdJ8SheYst6gU2d/PDf/z7iu/YhTwB8ROSu21fa1DHNVxb6e7ae5gBdvFdRlHa5VHq5PrET5Odh7GNjVJaPf408Cpv1adQ00cbRYq+QkII2oAz2VnnZ8pJM+Ux9IgS65Jm5AAA3pCdXU47UEF+Wn1d0kmYwpKrmITUj9W8wxHBLzDloUEib86oOCZJraEbpStbtESWF97HUpXmdONEkoTvJMN0A8sUdwSD18TZGMyMyE6QI3B/SxGFR6OOw== 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=5RHL/J/0pFVlJ1Ebhd9vyDC9bxznz+dACP8G3w9/WQ0=; b=RnEMxbaPE2pe7JEsFgq8WPlNK8goISHQkIWm2PMZ3jwHS5HgcVMNRQXw9//UkONE+zffKivskqolsmEkMV5plCfQgBOsoRBFd236RIByChTTFNUOf+r1ouvQFKcM4yv2apRKKfZrJHxToYJ/pFXcKl/iSKJiABl/AlVhY3PqUEZZbaYd2ZVRKyKdXsBdl5VJk37POEeYK+47jL82ujlIF60KRTDAk97Oe6h3DLjrmMsb45mUK1ozKi37Is4wmeRHESdt33QAB2ojFuyOpBJg2W8XknHSUAL7F6Pcegld2+wg0qTkpuJKU+kFe2Ef605Q5qLpCAddhWGg9ockWOzf9g== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS4P250MB0414.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4c1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.28; Wed, 1 May 2024 20:40:30 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::1f29:8206:b8c3:45bb%3]) with mapi id 15.20.7519.031; Wed, 1 May 2024 20:40:25 +0000 Message-ID: Date: Wed, 1 May 2024 22:40:22 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240501190156.36095-1-jamrial@gmail.com> <20240501190156.36095-2-jamrial@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20240501190156.36095-2-jamrial@gmail.com> X-TMN: [Vst5kf7ATdKGGLPDgRtk3CJU71vCIr6xWb1ut071300=] X-ClientProxiedBy: ZRAP278CA0002.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::12) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <61ebac97-b33b-4581-beb3-49e1c5e9d20a@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS4P250MB0414:EE_ X-MS-Office365-Filtering-Correlation-Id: 061b61f8-3ffb-47ad-0de7-08dc6a1eedfd X-Microsoft-Antispam: BCL:0;ARA:14566002|461199019|440099019|3412199016; X-Microsoft-Antispam-Message-Info: 7qlYTiKeg9CaKaqebL9AUKw7ZmL3b5p7QpEcDWAOcHJ7/msMz0ykOqJhmUV6/Noofrs7VS9pzV5HEd0A+oEx5og1S9v7T4JqFcEBNp5xcCFC2HEwBYg7G7WtipC+HG+yuKi2VYtfn+hG/0fF4FHLPiR4EENZkVY6zill1ebovbigtRJSqgRtpL7N6MHWhwQntiC7KTHCzetuOX9rZxu5QYwGT66M6R9xIFHK9YOJy/+J2h85MissNys05LAnfXEVSxsWfcOD1IBDVuKlV3iOLRdhokErRIgEgJAXIg+Qa3RNsMjDHFAjcRsa1CuYeRmmomIF0OLkEPTzsfQ6xO2jdYo4mImyg+DtJH+hbFEXjbe6T5bM/AiIDrn/uMiSWVbAxdSfUpgMg37vlKtyR/L1e7uadyux4KcUw8cc1MN8Dq2HpNU1sCRKIhhxElfKgQl1QDr5ozwpWTxS24ws8jqSfQU2VzgrtGZnWqCa2clen14F/3q26tQEzRgBND7gbTYc6CgrRI+p3ue+H5yJfZdSL+aDHP/E21UpnCh/Brb0ejXcLAS0DS/TMcqP7CflouJp X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cEdsU1RUZ214cEk2MHpVUk5Vc2xyUE83cG5kbHpEVys3aXNnek5xK3FHR1Z0?= =?utf-8?B?NmpJb3FzYUdvMlcvK2tIVXF2cWhXaW9BdG5jWWNMcXpKQzlLNC9SVEY2ckJ5?= =?utf-8?B?QzFEelNIVWpGRVBFTVR3K1l0VmtzcjN4ZU9uSllOanRJcmY1T2ZGWW9LY2Q2?= =?utf-8?B?STVWNVk1bEZOWVF5d3AwV1czQ2dxQlVzc1VYUFJ2UTU4YTFPTjhKM3NvVC9D?= =?utf-8?B?SGpFbDVoSWR3NkVvN3h1R3Z5Mm9rS1hYaWw2dS95K3dvRFZMTXMxSGloc2gz?= =?utf-8?B?SnN0aEw3aUc0bUQ3cThnZkN3Z05IaHA2OVN2Tk9QYVZuOEE5ZEJ1TE5VK0RS?= =?utf-8?B?akxIdmdiQnZXdHdQNG9leWFVaStQRWdtRVQxanovNjBRbyt5NUlJR3cxQkF5?= =?utf-8?B?VU9tVzdHSGFBYzA3dVlhOWNUR0hGd0NacEZvV0NmODBFM05EdGlkd2tFcENz?= =?utf-8?B?eHk3c2RTSk4ydUhEZHRrQjlnMXI3RVA1dk4xYWFEandOcFpEWXpsZTFZTE8v?= =?utf-8?B?MzZ5K2JlaWRmeFdjUkx0MVp5QTNQa1IwaHloSzEvZEpialFPdmg4d3A4c2RM?= =?utf-8?B?V0VsY2U3YTUxZER3TERtUERXK3AwaWd1Ni9MR3o5dFpiUjRBQXJLSWkxQ3B6?= =?utf-8?B?NFQ1Yjg0dXJMTnBIREkrZHEzK3JLY01lajRZOW9GS2xiVHp3RDBiVlJxNHFp?= =?utf-8?B?WHpxS0JzdWNITGlvNnoxY0szK3JaOWxNMTVIL0N1aDVMREh6bjVYQ2t0U2JH?= =?utf-8?B?YVZiTUlhSVF2QzQvSnJKK291d0N2emtWTURhUnBRQ3B3Qkg1MzNEcldLODlR?= =?utf-8?B?YU93Nkp2dlI0UkJYT29UdGUzT2JmQkFtbVFKbWN5a2ZEbkVUMTNjMys3UFdr?= =?utf-8?B?aUo3L3E3NVNzZFRQSHZqME5yc2tVRW1kRFRuT2RVMHpjL2VTQlN0K0o0S3RW?= =?utf-8?B?US9seXBxSm1BYmxxNGl5VjBWclkwU0F4NXkvR0JielkvaFhFOVZldFFGbk9K?= =?utf-8?B?QnlET0VONWV6MkJZbzludkgvbVhmb2F1VHFXRDdBRkRvZ2kyRDFBdFk3U1Jr?= =?utf-8?B?OGhUL3ZkM1NvZUFmMEdTTW1hVjV2b0ZFZGJ0bjdMMHM2K2JjeGxKT2NhOExT?= =?utf-8?B?Y1VqVm55NXE2dTBwcVFzVWV1M3h0cnFtaUdVMXZrM2NJM0JxTGRQajlWcVFz?= =?utf-8?B?YjJEMEdqVExRMkJQWlpPczUxU0FicTVGMlB3QjN6M2tBUk9iT0FkQUtybWNy?= =?utf-8?B?bm1LdGZYM2tZYytmeG90QWpBZ2dxbVFPcG5OQy9RZTFKV3NFUm1PYWFGR3VG?= =?utf-8?B?MXc2RUtPdDllVTdpbVp5dTJFMWVvNDYrR1F1OVFJNE5LSHlvdG42T3JWck53?= =?utf-8?B?TlB3aGREYWFqSGFrK3E3b05iQlRZQnZpbzZRUFZnWXdreVJqVFIvSERKSEFi?= =?utf-8?B?UXVIMm5hdDd0LzlYL3FaYnY0RGhzSXlrVDBBQWIyZVhVNERZc0FzM2JVdHRn?= =?utf-8?B?Z2xMeXpPSW9GSjZCOThwMDN2dkpSdmxVeUhCNHVCdlpQOVRJYmdENGs0T1Fp?= =?utf-8?B?STJhRWNjdVVXSnhqV1ZwTlUyQlJpZ0tLMFdISmNYZ1VSemU3U3NOdTVuTmRQ?= =?utf-8?B?WloxbjZJVFlQdVp2eS80Ylo5dHZhUTRtNzNpdEZjb0ZqaXRrNzh1c1lKc09j?= =?utf-8?B?cDBhN1NldllORE9vTzYrMGYzeElJZHJyQUlsNHlPRlhNWDBia0dzUjVnPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 061b61f8-3ffb-47ad-0de7-08dc6a1eedfd X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2024 20:40:25.5542 (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: AS4P250MB0414 Subject: Re: [FFmpeg-devel] [PATCH 2/3] avcodec/avcodec: don't free coded_side_data in ff_codec_close() when decoding 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: James Almer: > It's a user-set parameter shared with AVCodecParameters, so it should only > be freed by avcodec_free_context(). > > Signed-off-by: James Almer > --- > libavcodec/avcodec.c | 11 ++++++----- > libavcodec/options.c | 4 ++++ > 2 files changed, 10 insertions(+), 5 deletions(-) > > diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c > index fc8a40e4db..e560efff6a 100644 > --- a/libavcodec/avcodec.c > +++ b/libavcodec/avcodec.c > @@ -458,11 +458,12 @@ av_cold void ff_codec_close(AVCodecContext *avctx) > > av_freep(&avctx->internal); > } > - > - for (i = 0; i < avctx->nb_coded_side_data; i++) > - av_freep(&avctx->coded_side_data[i].data); > - av_freep(&avctx->coded_side_data); > - avctx->nb_coded_side_data = 0; > + if (av_codec_is_encoder(avctx->codec)) { > + for (i = 0; i < avctx->nb_coded_side_data; i++) > + av_freep(&avctx->coded_side_data[i].data); > + av_freep(&avctx->coded_side_data); > + avctx->nb_coded_side_data = 0; > + } > > av_buffer_unref(&avctx->hw_frames_ctx); > av_buffer_unref(&avctx->hw_device_ctx); > diff --git a/libavcodec/options.c b/libavcodec/options.c > index 0c3b40a186..7c32a71275 100644 > --- a/libavcodec/options.c > +++ b/libavcodec/options.c > @@ -177,6 +177,10 @@ void avcodec_free_context(AVCodecContext **pavctx) > av_freep(&avctx->inter_matrix); > av_freep(&avctx->rc_override); > av_channel_layout_uninit(&avctx->ch_layout); > + for (int i = 0; i < avctx->nb_coded_side_data; i++) > + av_freep(&avctx->coded_side_data[i].data); > + av_freep(&avctx->coded_side_data); > + avctx->nb_coded_side_data = 0; > av_frame_side_data_free( > &avctx->decoded_side_data, &avctx->nb_decoded_side_data); > 1. ff_codec_close() already has an "if is_encoder" branch, it does not need another one. 2. The code in ff_codec_close() will be redundant as soon as FF_API_AVCODEC_CLOSE is no more, so it should be inside FF_API_AVCODEC_CLOSE. 3. The documentation of this field does not mention ownership, but given that this field existed for a long time lavc's previous behaviour established the implicit contract that lavc will free this in avcodec_close(). You are breaking this implicit contract for no good reason apart from this new principle that user-set stuff shared with AVCodecParameters should not be freed in avcodec_close(). Which is crazy given that the relevant AVCodecParameters field has only been added recently. - Andreas _______________________________________________ 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".