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 C4A284C584 for ; Fri, 7 Feb 2025 12:18:06 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F212B68BD59; Fri, 7 Feb 2025 14:17:59 +0200 (EET) Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02olkn2012.outbound.protection.outlook.com [40.92.48.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 71A7D68BC23 for ; Fri, 7 Feb 2025 14:17:52 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Dj3sELizzUpwKwEyuDDiB/GbNyVopt1LOrOy8seYGJ1fdlA9BHOdiH3ttupNjMhpB4p7QHdG1cbpcYlxbGYwPGAA17xBJe7CkSjRJq7s5OJXvPTTYMQPjA1YOw+JTmKALHQdIAr2zJhB07nEva3bSdXg/AApHInooWoS8tHFjfkEMdPRkGdwV++0hDPvNvjUUVXiz97DBY3Y/6rDndVahybDffdS4oxzHPBQ69UwA2PnyyKfdQ2tDjOzs8BwkIHorei/94b7SYgykLAxZsJQyALrZVgjviruOTQX85CBjLsszLe0M2yumUDrCQQE+BcqyWFgRRAr3W5334cZ42I/uA== 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=fWGFRQ0T8525C+pTWcOCu9DPa5ujIobyMQwiarlD8P0=; b=HfLbbiN8T8seyGBJrkLyV5gG984N6lRtwaCv6pGLWalQZLF9YSE9vwOnqxC1RtMu1OyyaA2HZpHa0LhU2hzTaYl6oxFCtbOuZTupzKzcIukk6qA52FV4O6b+UvXlVtXs2P/9cSlHMnFYsEMweZVSubMBkUnkITmR69bKKvLvCOJUtGIakHl2QBHsgvoQU0HGVimQ2b0RKjCXHBBcXLwI+ShOM+8c/EJiR7hOzdP9s2pm04mQ1cteBYMXqtblPZV6qpEOO7szBR/5K6t9pY4MduwfHqluTlYIByYTWxI1yIKNjPWQdHVbQ+Dk9Y7/nG3wntJkwHmuUg16Z77zGJkjag== 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=fWGFRQ0T8525C+pTWcOCu9DPa5ujIobyMQwiarlD8P0=; b=YANL4WW3tF41GD7fUrtlTuu9G25KGVWZ9n5FnTJhhfCCy7MrfBcdZkZhU3kMvK4zY8Nq2+XiD0hSUxFAsF85mT93J4tyL/MxjDWaCPSodnt87QP6r99ZAjwrN60IKG4GLIs3rX+M58qlRvVX/bkGIq6dEhPFIFMdbOIrABl8c8+MQyiqM48ENooxIMhwM7Kkfcc3upDGayEgEU0NMR+48IRHiqALy40TDaM6SnklvaXu8DoRRV/3HjftXIJ1J/PxS60nhI857gRV/LDoDNcRgxP6CBvCxKBJN4tJVegkJ9oQh1KzN6TqTbf8k8loCPKRElOV9jwFBc4ONC8bkdaqZw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PAXP250MB0541.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:28a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.11; Fri, 7 Feb 2025 12:17:51 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.8422.009; Fri, 7 Feb 2025 12:17:51 +0000 Message-ID: Date: Fri, 7 Feb 2025 13:17:49 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250204211256.10228-1-jamrial@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250204211256.10228-1-jamrial@gmail.com> X-ClientProxiedBy: ZR0P278CA0082.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::15) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <2f55b94f-7f5d-4878-a3f4-e750ffad4cf6@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PAXP250MB0541:EE_ X-MS-Office365-Filtering-Correlation-Id: bbfdb731-07e7-4466-e9ff-08dd47717117 X-Microsoft-Antispam: BCL:0; ARA:14566002|7092599003|461199028|19110799003|5072599009|8060799006|15080799006|6090799003|41001999003|3412199025|440099028; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aTk3N2xqeENKMzVzQ0IxKzdrZmRrcnFaVUo3eXZBSjl5Wkl6SE5SQUwyZTE2?= =?utf-8?B?U0VxTm9xVGJ6WnFJNFV4NjJ6c0JWKzdaYXpCZVRIWVFmaTZUNUxKakRqaHMw?= =?utf-8?B?M0RGUGlJekRtdW02VGdEci9nQ2x6eFlBR0ZSU3NxZzRkay9XbFVKaGtJUE9S?= =?utf-8?B?a1hKNDQ1SytMeS9KWUo1Tzl2QkE3LzBhN3lrMlQ2M25QZkJPaXpQZVFoUDE5?= =?utf-8?B?SENKdmF3d3Bvc05PSllGK2xEZzl2MC94L3lCRjQ5Ni9BcCtuWXV0SStJZnFZ?= =?utf-8?B?b1ovUE5lR0RXajRGOC85cFdNZVN5SzFwTitDTXQwL2YxeHJ5d2pMYldIbUJr?= =?utf-8?B?OUt1MjJJTU9OVmxXaFZLM3FwZjVydDNrK0RXOWVhZ0w0SVR3WWFodzhVNEVG?= =?utf-8?B?ZTVYTVNCcEVvcEt5c3VleWtrUDVDbXZENDRMY2RkeUJLNXFRc0JlUjRNVWZT?= =?utf-8?B?MVBIYUc2QlU0d1hHeGRieXpxQW43UkNKWWZhSHBrZjVNLzQxbmtENnRrdFl5?= =?utf-8?B?bFlmSjFJWWpqTEhUYU5NdE9tQ2laaC9SSjJBOEtxSUNrV2FpM21JTTlXRUVG?= =?utf-8?B?SGd6c2tlWnZ2VDFRN2JWYVJRNjdKUXBYL25MSXVrU0EvL29sRlFXdjAyU0NX?= =?utf-8?B?K0NrR3pncmJ3R2NnRDh1cGp0Q3RzRWdOS2NVUnNHemk4VGxrTzZCVU9jQndL?= =?utf-8?B?UGhwMDN0QXB1dHVwRmlORVVWQjVRKy96dmFiWllYRlBUeWtUMmxSNkhtZUFH?= =?utf-8?B?Q1ZQUVpWeDRPbzdEN2ZacCtLZFhHRFRxM0xYNVZURVd5aUtqZ2V1cWE0dVBK?= =?utf-8?B?bkFPOWhVOTI2ejFSM2xBRTdBQWFJVzlMY0R2WU1IMXJCeUhrRkVKSi94VmtV?= =?utf-8?B?Q3EvSXVBUllIRnVCMUd1dTZLN05JQTZiWXJBZnlqK3RwanpOZFVLZ3Fya25E?= =?utf-8?B?Y2p1cHg1SzQ5NUNjMDVuM0IvdHZnQ2FpWjEybytsUXF5Y01iS2tlaFRUNGhi?= =?utf-8?B?cnBZcEpKakNmVVhZY2dCaEx3aEZWTVRmQ0JmL0l5SFRWNTJ6SzFoYmxqd21n?= =?utf-8?B?Z0ZzQjRxN1gzc2dnU3JPYTROaDEvWnQzbGh6MWhFeU1td09ra3dBWDk2L3ls?= =?utf-8?B?SG5oWnpsTllQZjdLcVJYL29FaGRtbTlqUldTYTM4OTJBM3FMa3Rpc2JpYkwx?= =?utf-8?B?Z2o3Slltei9MRGlGWFhRYnlIeTlPdG10VitxdFY0cU1XbjRTNG1uay8wd0xT?= =?utf-8?B?alZVRE9waEllMXJIMER4UFJTQVZ6eTYvdys2OHVhQ01VTnV5eSszZE5VQTg1?= =?utf-8?B?RXBhRVlWd052MGJUeDdPRkMwa2NUcUNGYmFNQVBYV2swaXVoRkJ3RXNVMytS?= =?utf-8?B?ZU9yUER1aFVTRjF0RUNGNmQ2OHVMS3ZGSSt2d1ppajRJdDdVYzVsa1dHeGNa?= =?utf-8?B?Z3lXSUlrSlpBSG5IQzRrWnJCM3RNWHR2UzUwVnJJanNGZEpKMHRkMzFZcmZv?= =?utf-8?B?a0FPRjBEbUNKTUZRTjZNbEtGMVdpY3dXeHUxSlN1N2o4Z1RydGJZRmRaYmY0?= =?utf-8?B?OXFvQT09?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dzZRalBpMnAyOVRxdE9RWVUrY2hjSnI5dFlDN3c0ZUZtV1NNODRxSjZnSjZ1?= =?utf-8?B?a3E3d3NNUkc1RG1vZTB0eDRUciswQ3dUOVN2VXN6ZFJGVmFGbFVzK0lLVlNn?= =?utf-8?B?SGRab2g2R0ttR0M1cjVHa1N3Y3hpTVY1TmRLNTc2Q3B2NEoxbURVN25LT2Ju?= =?utf-8?B?dDMrWG9zNGxPQWNuUzhoa1JmdUkzV1ZwNG5nYnZRR2RIUXZPN2RQWC85NXJx?= =?utf-8?B?WU5CN2h4WkxmRE4ya2I3TVBkVTJNaEQ3ZkFkaHl1MExIY2txa0d1cjJpb2JP?= =?utf-8?B?NXJwTktFZ1dqUHlBRVVOdkJDaDBHZWVxemg3ejhUVnpkV0RWb1ZzVFAydzVl?= =?utf-8?B?RVBWZFEybTZOY1ZSUjVBU1lwQUhxeXB6cXhDdGhhcWpvdittSnlHY25BMXZ6?= =?utf-8?B?RVFXd3duaFIwMWF2ZzZKd0k5K0JkRDRoRzBRNHlMQ2VRaEpnYUllT3djV2k4?= =?utf-8?B?WVc2ZXR2SVlnbjBtTmEvWXkzUW5ZUmFNcHZCdkI1SGZWMVJyamhiYUNpY25l?= =?utf-8?B?eDVzMVkzVGIrb2VQUkNCa2tjUE1lOGI5QkpPSmdoRzhmV2N6cDk0aEl6YlNW?= =?utf-8?B?U0tnVEsxZTFRc01VZVBMMWlFOHRiUGdPOGhwNFcwS0Nma2R4SDZheW1vV3Js?= =?utf-8?B?VkExT016YzUrTmZhbHk5ek1Kb0d5bnFWL2Q4WHdzQ3dpUWVnR0Mrdk9MRG42?= =?utf-8?B?UWZFMEliNEhnMGlGb2VBK05ZcVIraVRsYUtiUjJ0SkRMNFFJM0VxVEx6U2hp?= =?utf-8?B?Y01mWTJnSmNUZ0tGdFVFQjBlZWhXdGh6K3BHWjN3THhpenlqZm8xVHJxdGFJ?= =?utf-8?B?dGlVdDVHSHFYbmUrWllGY1U3S2FoTDgyb2huQUZVMDZaQjdBekFaeFd4K2pi?= =?utf-8?B?MFpzV2t1ZmI1eVFxUWp1RlkvcnFDVWtSZitHamNxQzR0OXU4UDZrR1E3eUt6?= =?utf-8?B?UTVaVFJXUzlxSW5IQkNScFkwSTZqN3dsT0ozL3kwdmNGem1pRGxhM2d5T2xl?= =?utf-8?B?VEhvMGcxNWxySm5aVURRcEJGTDNQWENqbkNFc0MxWUIvbEZSSjJwWm5BWENw?= =?utf-8?B?YXRDUTd0TDRBTjFLdUxWdWI3cUNnRDRDenhlbFNhY1k2L1l0aHZLNkJvNm0x?= =?utf-8?B?ODF2U09rTENBYjFCNjR1cUJtUlRXVE9ZSnpBUHdOY0pIYzhscTYyanppMXA0?= =?utf-8?B?NUx5VEZHMHE4RXFYemRnaUhQcldIMFA2dVNueWk3VE5PZVVQaXpLamhBMUlj?= =?utf-8?B?K0RmMWdBdzFvNzMxOTlsR3hld3dSelcwVk0xL3VnVHFYVXVLdGJTbCtJWC82?= =?utf-8?B?WlJ1T1BqdERhcDlENWUybGpCb0lkYU5lRXcrakpCNHpPNmFNcXBEY1dhVDg4?= =?utf-8?B?WTdTbmZsWmxxSlRxbFpuN1FRSVBBQkdFc0lhc1hxY1pLdmRQZUowR2ZpbGw5?= =?utf-8?B?amhkeFZLd2QvSFd2alFGSXhNTTd1bkdhUmdjaERXcTFPYjgwN0F2OUd6Q3Zj?= =?utf-8?B?M2VXaUdjMysySUVNaTc2eXlQeWxHamltaW1vN2k0OW9CNTc0V2xKWkIySXZO?= =?utf-8?B?eXVXK29HUUM5NUM3UUVmcGVWNzRBaWl2eXhOSC96b3dXTGxzeGUwYlRhMEpN?= =?utf-8?B?R2xBeDBtaGdsc1NyUHVSU21qOU4ybjQ3OU9tYlJaVkFmWVZWdmk5MXpGSkt2?= =?utf-8?B?T3F1WFpYSUJlSnoweGhPZEpUVnlWa0szUkcvNnQxR0E2dWZQR3FhK25BPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbfdb731-07e7-4466-e9ff-08dd47717117 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2025 12:17:51.3141 (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: PAXP250MB0541 Subject: Re: [FFmpeg-devel] [PATCH 1/2] avcodec/decode: make ff_frame_new_side_data_from_buf behave like the function it's a wrapper for 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 less confusing to have ff_frame_new_side_data_from_buf() be a drop in > replacement for av_frame_side_data_add(), and the addition of the missing flags > field will make it more versatile, as will be seen in the following commit. > > Signed-off-by: James Almer > --- > libavcodec/av1dec.c | 6 ++++-- > libavcodec/decode.c | 13 +++++-------- > libavcodec/decode.h | 11 +++++++---- > libavcodec/h2645_sei.c | 12 ++++++++---- > libavcodec/hevc/hevcdec.c | 7 +++++-- > libavcodec/hevc/refs.c | 6 ++++-- > libavcodec/libdav1d.c | 6 ++++-- > libavcodec/libjxldec.c | 6 ++++-- > libavcodec/mpeg12dec.c | 6 ++++-- > 9 files changed, 45 insertions(+), 28 deletions(-) > > diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c > index 7c54e36220..11b6100f9f 100644 > --- a/libavcodec/av1dec.c > +++ b/libavcodec/av1dec.c > @@ -983,9 +983,11 @@ static int export_itut_t35(AVCodecContext *avctx, AVFrame *frame, > if (!ret) > break; > > - ret = ff_frame_new_side_data_from_buf(avctx, frame, AV_FRAME_DATA_A53_CC, &buf); > - if (ret < 0) > + ret = ff_frame_new_side_data_from_buf(avctx, frame, AV_FRAME_DATA_A53_CC, &buf, 0); > + if (ret < 0) { > + av_buffer_unref(&buf); > return ret; > + } > > #if FF_API_CODEC_PROPS > FF_DISABLE_DEPRECATION_WARNINGS > diff --git a/libavcodec/decode.c b/libavcodec/decode.c > index cac7e620d2..794e84c1a2 100644 > --- a/libavcodec/decode.c > +++ b/libavcodec/decode.c > @@ -2118,29 +2118,26 @@ int ff_frame_new_side_data(const AVCodecContext *avctx, AVFrame *frame, > int ff_frame_new_side_data_from_buf_ext(const AVCodecContext *avctx, > AVFrameSideData ***sd, int *nb_sd, > enum AVFrameSideDataType type, > - AVBufferRef **buf) > + AVBufferRef **buf, int flags) > { > int ret = 0; > > if (side_data_pref(avctx, sd, nb_sd, type)) > - goto finish; > + return 0; > > - if (!av_frame_side_data_add(sd, nb_sd, type, buf, 0)) > + if (!av_frame_side_data_add(sd, nb_sd, type, buf, flags)) > ret = AVERROR(ENOMEM); > > -finish: > - av_buffer_unref(buf); > - > return ret; > } > > int ff_frame_new_side_data_from_buf(const AVCodecContext *avctx, > AVFrame *frame, enum AVFrameSideDataType type, > - AVBufferRef **buf) > + AVBufferRef **buf, int flags) > { > return ff_frame_new_side_data_from_buf_ext(avctx, > &frame->side_data, &frame->nb_side_data, > - type, buf); > + type, buf, flags); > } > > int ff_decode_mastering_display_new_ext(const AVCodecContext *avctx, > diff --git a/libavcodec/decode.h b/libavcodec/decode.h > index 2c3719a8d0..dc2802d782 100644 > --- a/libavcodec/decode.h > +++ b/libavcodec/decode.h > @@ -168,12 +168,15 @@ int ff_frame_new_side_data(const AVCodecContext *avctx, AVFrame *frame, > /** > * Similar to `ff_frame_new_side_data`, but using an existing buffer ref. > * > - * *buf is ALWAYS consumed by this function and NULL written in its place, even > - * on failure. > + * @param buf Pointer to AVBufferRef to add to the array. On success, > + * the function takes ownership of the AVBufferRef and *buf is > + * set to NULL, unless AV_FRAME_SIDE_DATA_FLAG_NEW_REF is set > + * in which case the ownership will remain with the caller. > + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. > */ > int ff_frame_new_side_data_from_buf(const AVCodecContext *avctx, > AVFrame *frame, enum AVFrameSideDataType type, > - AVBufferRef **buf); > + AVBufferRef **buf, int flags); > > /** > * Same as `ff_frame_new_side_data_from_buf`, but taking a AVFrameSideData > @@ -182,7 +185,7 @@ int ff_frame_new_side_data_from_buf(const AVCodecContext *avctx, > int ff_frame_new_side_data_from_buf_ext(const AVCodecContext *avctx, > AVFrameSideData ***sd, int *nb_sd, > enum AVFrameSideDataType type, > - AVBufferRef **buf); > + AVBufferRef **buf, int flags); > > struct AVMasteringDisplayMetadata; > struct AVContentLightMetadata; > diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c > index 2494daaf3c..d48a9b5f2c 100644 > --- a/libavcodec/h2645_sei.c > +++ b/libavcodec/h2645_sei.c > @@ -610,10 +610,12 @@ static int h2645_sei_to_side_data(AVCodecContext *avctx, H2645SEI *sei, > } > > ret = ff_frame_new_side_data_from_buf_ext(avctx, sd, nb_sd, > - AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT, &buf); > + AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT, &buf, 0); > > - if (ret < 0) > + if (ret < 0) { > + av_buffer_unref(&buf); > return ret; > + } > > dst_env->ambient_illuminance = av_make_q(env->ambient_illuminance, 10000); > dst_env->ambient_light_x = av_make_q(env->ambient_light_x, 50000); > @@ -830,9 +832,11 @@ FF_ENABLE_DEPRECATION_WARNINGS > > if (sei->lcevc.info) { > HEVCSEILCEVC *lcevc = &sei->lcevc; > - ret = ff_frame_new_side_data_from_buf(avctx, frame, AV_FRAME_DATA_LCEVC, &lcevc->info); > - if (ret < 0) > + ret = ff_frame_new_side_data_from_buf(avctx, frame, AV_FRAME_DATA_LCEVC, &lcevc->info, 0); > + if (ret < 0) { > + av_buffer_unref(&lcevc->info); > return ret; > + } > } > > if (sei->film_grain_characteristics && sei->film_grain_characteristics->present) { > diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c > index e9c045f7a1..cf4062c75c 100644 > --- a/libavcodec/hevc/hevcdec.c > +++ b/libavcodec/hevc/hevcdec.c > @@ -3085,9 +3085,12 @@ static int set_side_data(HEVCContext *s) > if (!info_ref) > return AVERROR(ENOMEM); > > - ret = ff_frame_new_side_data_from_buf(s->avctx, out, AV_FRAME_DATA_DYNAMIC_HDR_PLUS, &info_ref); > - if (ret < 0) > + ret = ff_frame_new_side_data_from_buf(s->avctx, out, AV_FRAME_DATA_DYNAMIC_HDR_PLUS, > + &info_ref, 0); > + if (ret < 0) { > + av_buffer_unref(&info_ref); > return ret; > + } > } > > if (s->rpu_buf) { > diff --git a/libavcodec/hevc/refs.c b/libavcodec/hevc/refs.c > index dd7f7f95a8..04cecd9770 100644 > --- a/libavcodec/hevc/refs.c > +++ b/libavcodec/hevc/refs.c > @@ -97,9 +97,11 @@ static HEVCFrame *alloc_frame(HEVCContext *s, HEVCLayerContext *l) > if (s->sei.common.lcevc.info) { > HEVCSEILCEVC *lcevc = &s->sei.common.lcevc; > ret = ff_frame_new_side_data_from_buf(s->avctx, frame->tf.f, > - AV_FRAME_DATA_LCEVC, &lcevc->info); > - if (ret < 0) > + AV_FRAME_DATA_LCEVC, &lcevc->info, 0); > + if (ret < 0) { > + av_buffer_unref(&lcevc->info); > goto fail; > + } > } > > // add view ID side data if it's nontrivial > diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c > index f4cbc927b5..d2c7342e55 100644 > --- a/libavcodec/libdav1d.c > +++ b/libavcodec/libdav1d.c > @@ -533,9 +533,11 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) > if (!res) > break; > > - res = ff_frame_new_side_data_from_buf(c, frame, AV_FRAME_DATA_A53_CC, &buf); > - if (res < 0) > + res = ff_frame_new_side_data_from_buf(c, frame, AV_FRAME_DATA_A53_CC, &buf, 0); > + if (res < 0) { > + av_buffer_unref(&buf); > goto fail; > + } > > #if FF_API_CODEC_PROPS > FF_DISABLE_DEPRECATION_WARNINGS > diff --git a/libavcodec/libjxldec.c b/libavcodec/libjxldec.c > index 96c338d1b4..a9261f5016 100644 > --- a/libavcodec/libjxldec.c > +++ b/libavcodec/libjxldec.c > @@ -483,9 +483,11 @@ static int libjxl_receive_frame(AVCodecContext *avctx, AVFrame *frame) > /* full image is one frame, even if animated */ > av_log(avctx, AV_LOG_DEBUG, "FULL_IMAGE event emitted\n"); > if (ctx->iccp) { > - ret = ff_frame_new_side_data_from_buf(avctx, ctx->frame, AV_FRAME_DATA_ICC_PROFILE, &ctx->iccp); > - if (ret < 0) > + ret = ff_frame_new_side_data_from_buf(avctx, ctx->frame, AV_FRAME_DATA_ICC_PROFILE, &ctx->iccp, 0); > + if (ret < 0) { > + av_buffer_unref(&ctx->iccp); > return ret; > + } > } > if (ctx->basic_info.have_animation) { > ctx->frame->pts = av_rescale_q(ctx->accumulated_pts, ctx->anim_timebase, avctx->pkt_timebase); > diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c > index 0002f016e9..b181852b6e 100644 > --- a/libavcodec/mpeg12dec.c > +++ b/libavcodec/mpeg12dec.c > @@ -1308,9 +1308,11 @@ static int mpeg_field_start(Mpeg1Context *s1, const uint8_t *buf, int buf_size) > if (s1->a53_buf_ref) { > ret = ff_frame_new_side_data_from_buf( > s->avctx, s->cur_pic.ptr->f, AV_FRAME_DATA_A53_CC, > - &s1->a53_buf_ref); > - if (ret < 0) > + &s1->a53_buf_ref, 0); > + if (ret < 0) { > + av_buffer_unref(&s1->a53_buf_ref); This adds these cleanup av_buffer_unref() everywhere. That is not an improvement. > return ret; > + } > } > > if (s1->has_stereo3d) { _______________________________________________ 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".