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 86F9644ECC for ; Mon, 28 Nov 2022 05:05:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3230368B43E; Mon, 28 Nov 2022 07:05:08 +0200 (EET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F5896880B3 for ; Mon, 28 Nov 2022 07:04:55 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669611905; x=1701147905; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ssxuq1UkkPSrOzOSC7hT0XP9DMPYy04v+/PNFm+ljCg=; b=VepkkwC00jtX81Q+92hEtsCyp/exdRMzNm3w+OAq/tjDWd7Oof/jqH6B B7RIPQtI4m0gco15zLP4r/lXHtT7L/sZhWJbMkGfIxwyGBi0yz4WjnbdI lSy8L+ocIo9f3EiEPCm+S0fZZrc3aPqXJa3F2e1y2oPpQop3goDxkFYlN Fv55YaNBtaCh1VNTVsN2oUJCEtITl7k3psrz/T6FRkg4IZXhQ7O+7EoiT sL9S1bezgI6o9GgTHLwX0ElUQRwZW+SlxrbcY9DwArEjlZ6TLfxol/HM3 sJG/shq+skhuP468F+ao8jdG4fYT2Vge4a/2DlPyxTYVsplhGQfoO8xf8 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10544"; a="294447457" X-IronPort-AV: E=Sophos;i="5.96,199,1665471600"; d="scan'208";a="294447457" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2022 21:04:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10544"; a="706645622" X-IronPort-AV: E=Sophos;i="5.96,199,1665471600"; d="scan'208";a="706645622" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga008.fm.intel.com with ESMTP; 27 Nov 2022 21:04:51 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 27 Nov 2022 21:04:51 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 27 Nov 2022 21:04:50 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Sun, 27 Nov 2022 21:04:50 -0800 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.173) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Sun, 27 Nov 2022 21:04:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KiqvtD1dmshx3GUw3ND5EI9xDqjC2JZr5UlSmmqHeC9cVOxMLkcoKUC7dIMXRu5BMz6JdHMg6qjy40rBp+hNXO3zw1NJWNaHwWimFC0anmaY555rVcCoZBvg1YT/M9bEQcVz+BYD+h2Pb1H6aztTVA+2NWVRVaQQjUBCBtZ9B0KO2SZi3xfcNDFRZw+lVksFHHTaacadul4t9H7+fpZgQJMvTeTYnktY1A8IRfChtT+rV3spnJSN3b8ikr4l1UbUJkQ4TIs3tjNgT1JZN6XgY/KflRBJ8qXXz008siJf9dCj3jgqj8MMqiY9Lt4ojcF47MKpcEA7X/IEkGKst2jGYw== 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=ssxuq1UkkPSrOzOSC7hT0XP9DMPYy04v+/PNFm+ljCg=; b=IdEkNsEINDHDEsyCxAgWym6Y385TM/CBdvh1df9oIw76DfftnJtCWaHVpbPIEijjav2PM87meB7LXzKpBiHyNxynXTzsdAVJbZXjAyZaHBuANeE6veCUjc7dCTHIul448/yutHuYCSL5wyIbgAKKS5HFGzsBL6ZbRJAPJ2RIZPDmaidkL4AhEObrYpclK+ofJJMa5IoU4RGgpgGWKrQzPSC+AGLPKJ0dVcxjlxV+G1uHF7aEWw7w8h14EA+/+mZjQusF+wsk/vL7KKg3uQHmcXKTU1CR01diyGcxLE4SxI6FBzIjXRUTFvhq5omia7MK0FCSIHLK7Xj4pElont8nHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by SJ0PR11MB5182.namprd11.prod.outlook.com (2603:10b6:a03:2ae::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20; Mon, 28 Nov 2022 05:04:49 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::e3ef:177c:4008:7ee9]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::e3ef:177c:4008:7ee9%5]) with mapi id 15.20.5857.022; Mon, 28 Nov 2022 05:04:49 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2 1/2] avutil/frame: Add av_frame_copy_side_data() and av_frame_remove_all_side_data() Thread-Index: AQHY73lfZuws2qPSQUO7g4TaZeqbcq5T7maA Date: Mon, 28 Nov 2022 05:04:48 +0000 Message-ID: <7a93daa5799687338f9fb58f4f2d0f6688ba55ac.camel@intel.com> References: In-Reply-To: Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5515:EE_|SJ0PR11MB5182:EE_ x-ms-office365-filtering-correlation-id: 11fdb8bd-db4a-4431-5203-08dad0fe1356 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3KcXKo06BYz84KRmgWZ0KfAePbnr4ZdibbLzstfCpYT6seOnHfW6TsO2iyKs9nm0rg70iBGg/6pIDy0vbT/IXyQWEyqnybRuPYcJgj/ujMKeuEY/FP3OvLcWhBq2AB0InlJvZyYn0R/WCsLLCQIG5AttjqMilBRlnESrXTbt5435+EWfErOTaRAHNEp8iP9FjgxKAcwOAMR32xra9Nh2NKtwyK1tydGXJnklxDfYjx4Cho9XOlwr89d20ZZAYmB7+/H7L542W9q34nNaTaed/rTenx5At6GyxTPcZqJDUH4jmYiQSIij00dnmKMYT90EJrjZatZzUpAh0d3OYQ6gUEtHWHChEc9xKr2K3HtDt07newGsPRgAivn+jDooWP0VQs05K6zTB67ZPolJ81AesLpeOtBo5mp3/NA9yxrwA+x99KGATsyx2HBgbjTZvSRsgGpZsH1ZeyVUB02z45CpnEaigrExoP+v5zsUGNMY2qjbyQQhfAbAR5z/GnFs0trHgSe4jtBfU1mo+3OOrBUf1osBoiepo6NJJDeAhnx1sT+u18FX2zxVz8UbZXhxrGOG83pcDB2h9TuXHA7Nlrfh7xFFU6HzzZuXgQWa4YW7YnzfyaYhxMYX9aCd4RRqkkTgISnzHzMBt19297CqR1b667SOvtf9JZr67b8Lf0HRKuufKXVOnjeD4JTrD0Ful0gYO17YNhZWE0jfmPdwV0d08A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(346002)(376002)(366004)(136003)(39860400002)(396003)(451199015)(6916009)(316002)(54906003)(8676002)(8936002)(5660300002)(4326008)(41300700001)(36756003)(66946007)(66556008)(66446008)(66476007)(83380400001)(2616005)(38100700002)(186003)(82960400001)(122000001)(6486002)(478600001)(64756008)(26005)(86362001)(76116006)(38070700005)(71200400001)(6506007)(6512007)(91956017)(2906002)(4001150100001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L1o0cE5weFN2WVRZU3lTcXpTVWxCTVlRaVRqa0xVYVpHZnBNYVF4MjdtT0NW?= =?utf-8?B?bVRnb2RXcUgwTVZnczNyOTJ5eG5zZlBxbTgxZXk2cVdpNi9QcWdkcUErMzBI?= =?utf-8?B?MTlib1RCa1VmRS9XK1JHbUtiSVVPUS96d0txOTNMcE9JVWRZNVJUV2k5ZkFL?= =?utf-8?B?S01PY0ExVXFjbCt1ZXBUTm1IamlINFNoWVY4NGlZbFpwblVLUnRFOHE4VlMx?= =?utf-8?B?cFhPL0JVd3BOZ010U3Q0Rklaak50NXcrREp5Wml4MTdLemVkc2NJaEdCRFJa?= =?utf-8?B?V20vdVlIdU91UDVzcWkrY25lUElEc0lzMkhTcWJ6UFo4Y2lxcHN1MG43Wmo4?= =?utf-8?B?LzhoQjBkbzI4ZDdoaG9yNHRRNDQxTzBGYVgyOXNoaWJXUDZNcHpXYW1XQkgy?= =?utf-8?B?RmxDSGVwMUN4bHJCN0lzVkt5S1VaWWFCZStMSVkrVCtDSzB6T05WaWlNZkRV?= =?utf-8?B?YjZrcWhMN0oydmhWTDZCWU5jM3JrMVZqL3NGcWdNRXNLcGhWYUlGRitXOWdq?= =?utf-8?B?bktqWDNuaGx4NjBRd0VNa2h3SHJ3cndWTldmZktwZ2R4MDB5SmxjbzBNSzRI?= =?utf-8?B?SHl4cHZ5YmtldlA2a3I1dDJUVmsrYVBabCtkdmFaWTM1TERIT3NtTjZmbU9m?= =?utf-8?B?SzlucW9STkw2MkZ3WXRhWTBLVWZzZjhMbXB0Vm9odWI5cGNMK2hWcExQZG1P?= =?utf-8?B?T2NnZmwxUEk2cHBxSHhZcXpmamRReHVkZUJEQnRvN24yd1p6c1JHaUtScHZW?= =?utf-8?B?VVRmWTZXS3ZNbWtIdElmWUp6Ti9pblE2d2thandWZWhraEFLU3FDOHUyaFkv?= =?utf-8?B?d1dzQ05wMHFVTWtkSW1UVk00bVJYYU1xMGMrbmxGSW0zalRwNVJUUmJTYjJv?= =?utf-8?B?RVJLRmNzT1lHMXExT0pNK2o3Sm45OUJoTCszN0k1aU1NMnJLNTgvWDUrLzJI?= =?utf-8?B?WlhGM1RCMmVHV2NpcDhXTERJejQ2bzI2bFpjekVzWW9ydG5BRXBZYlFuNStS?= =?utf-8?B?VEFiWVpyeGRuTnF2SEtma0wvZzFCcEwwQS9sZkdRVVhTa2ZZVzAwcVd0a2xR?= =?utf-8?B?SzMxa0kvenVzOHhoTFZrK2VuV1RBazZCUzJGRitDeXkyMXZha08yU3NCV2Z5?= =?utf-8?B?TVQzRk1LVFlVVmg1aUVlZ3I0QytiL1BoblVZRFo4c2pwY2V0RjQ0cC8vWmNq?= =?utf-8?B?UXJYZE9odFJkRTZ4OXVxemFkSElvUlpjM1dYWHNVVzVLVExNSkduelpLV3Rv?= =?utf-8?B?ZHRxZmo0azh5M0Y4YitDT1IvMWh5SERGdFFQd2RwYVBzdXFDUGp4K1pDZ0R1?= =?utf-8?B?YWdKMFMyak0zZEFnY1JKV3J6SUdKTFJxM1RWVlEwUGRtSlY0bHhkN2hHbERP?= =?utf-8?B?ZWQvSzdUek5vVVRzd3hWeXFlalVubjVLRG96SUt1UEdrNnVUVzI5ZDJQdXgz?= =?utf-8?B?eU9oQUpxNWJiZVlPTGxaV1l6RmgyeHNXZWI0U3E0cUN4ZFVaT0FsSFJscUd3?= =?utf-8?B?L21WUXBZVWdoSmRNY2kwY3dMb090S3hTemVSN2dzbm5NcDdIeUlNcFBxc0hD?= =?utf-8?B?L1o3eDJWU2FMRXZhQlJXQ1F4Mkk0K3UzZWZQY1FuUVE4SGhpZUljVnFmY3hU?= =?utf-8?B?RnAzYkdnd1ZnVkU5ZEZEcXlWVjFXTmV5WWgvTG9JMi9ZNnVYL25BSWdwREpY?= =?utf-8?B?TG4wVkNEMkpEcFoxRzBOd2RwbklVMUhseFh3dkYxcm5JanIydkRiejFVS1Ar?= =?utf-8?B?RDBGU3pKNzdLZDE2U0hQMWlyVUZWNmEwOGJQbzJGRnp5eXBNamFnaEI1NDh6?= =?utf-8?B?d3RHZmtzaW8vZlh3cncyMldaY0piRlRpdjgwajl3aXA4VVplZUJQSmMxRDgv?= =?utf-8?B?QnJ6UkpxSkpJSFJsZ003bjEyZDRTQ3J3SElyZ3RXN0tjTXEyUVF1Z2VVUmU1?= =?utf-8?B?ZGdOOVJyS2FKNUNuR1pnOEpvbXNOQ1JqTHZSUC9UZUZYY2NiL3lhSmJEb2tD?= =?utf-8?B?TFJ0RkpRQ2FaNkRWYzlGd1ZtNHRaSnRFWXJOdUtJUytHcEpDMkRHeHdjd2pO?= =?utf-8?B?aEo2Rk01cDcxamVsaFNmSXFWMHB1Z2k0eHVLNmRyb0JUQ3BRSVh6R1NSWjEx?= =?utf-8?B?Tk9Lb2V0NWQ5OHk0cWluR3hsTHd0dmJaRkhvaFJPcC9iazV3cmNHZVQ2Vkx0?= =?utf-8?B?REE9PQ==?= Content-ID: <5C86FACAA5FF214D99F33821C6EE4CF1@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11fdb8bd-db4a-4431-5203-08dad0fe1356 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2022 05:04:49.0884 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /FlKi4ePynaIKUyhKZPGbApp5w4FefZTNWzY4YrRXumL8kYfcPsB7rG59Fly7QmOEy4TC55qBAEs9gdLHcvuXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5182 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2 1/2] avutil/frame: Add av_frame_copy_side_data() and av_frame_remove_all_side_data() 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 Cc: "softworkz@hotmail.com" , "haihao.xiang-at-intel.com@ffmpeg.org" , "andreas.rheinhardt@outlook.com" 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: On Thu, 2022-11-03 at 11:41 +0000, softworkz wrote: > From: softworkz > > Signed-off-by: softworkz > Signed-off-by: Anton Khirnov > --- > doc/APIchanges | 4 +++ > libavutil/frame.c | 67 +++++++++++++++++++++++++++------------------ > libavutil/frame.h | 32 ++++++++++++++++++++++ > libavutil/version.h | 2 +- > 4 files changed, 78 insertions(+), 27 deletions(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index 3c86f24285..e88cf7b4aa 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -14,6 +14,10 @@ libavutil: 2021-04-27 > > API changes, most recent first: > > +2022-05-26 - xxxxxxxxx - lavu 57.41.100 - frame.h > + Add av_frame_remove_all_side_data(), av_frame_copy_side_data(), > + AV_FRAME_TRANSFER_SD_COPY, and AV_FRAME_TRANSFER_SD_FILTER. > + > 2022-10-30 - xxxxxxxxxx - lavu 57.40.100 - channel_layout.h > Add AV_CH_LAYOUT_CUBE and AV_CHANNEL_LAYOUT_CUBE. > > diff --git a/libavutil/frame.c b/libavutil/frame.c > index de4ad1f94d..8eb0e1ec95 100644 > --- a/libavutil/frame.c > +++ b/libavutil/frame.c > @@ -276,9 +276,45 @@ FF_ENABLE_DEPRECATION_WARNINGS > return AVERROR(EINVAL); > } > > +void av_frame_remove_all_side_data(AVFrame *frame) > +{ > + wipe_side_data(frame); > +} > + > +int av_frame_copy_side_data(AVFrame* dst, const AVFrame* src, int flags) > +{ > + for (unsigned i = 0; i < src->nb_side_data; i++) { > + const AVFrameSideData *sd_src = src->side_data[i]; > + AVFrameSideData *sd_dst; > + if ((flags & AV_FRAME_TRANSFER_SD_FILTER) && > + sd_src->type == AV_FRAME_DATA_PANSCAN && > + (src->width != dst->width || src->height != dst->height)) > + continue; > + if (flags & AV_FRAME_TRANSFER_SD_COPY) { > + sd_dst = av_frame_new_side_data(dst, sd_src->type, > + sd_src->size); > + if (!sd_dst) { > + wipe_side_data(dst); > + return AVERROR(ENOMEM); > + } > + memcpy(sd_dst->data, sd_src->data, sd_src->size); > + } else { > + AVBufferRef *ref = av_buffer_ref(sd_src->buf); > + sd_dst = av_frame_new_side_data_from_buf(dst, sd_src->type, ref); > + if (!sd_dst) { > + av_buffer_unref(&ref); > + wipe_side_data(dst); > + return AVERROR(ENOMEM); > + } > + } > + av_dict_copy(&sd_dst->metadata, sd_src->metadata, 0); > + } > + return 0; > +} > + > static int frame_copy_props(AVFrame *dst, const AVFrame *src, int force_copy) > { > - int ret, i; > + int ret; > > dst->key_frame = src->key_frame; > dst->pict_type = src->pict_type; > @@ -319,31 +355,10 @@ FF_ENABLE_DEPRECATION_WARNINGS > > av_dict_copy(&dst->metadata, src->metadata, 0); > > - for (i = 0; i < src->nb_side_data; i++) { > - const AVFrameSideData *sd_src = src->side_data[i]; > - AVFrameSideData *sd_dst; > - if ( sd_src->type == AV_FRAME_DATA_PANSCAN > - && (src->width != dst->width || src->height != dst->height)) > - continue; > - if (force_copy) { > - sd_dst = av_frame_new_side_data(dst, sd_src->type, > - sd_src->size); > - if (!sd_dst) { > - wipe_side_data(dst); > - return AVERROR(ENOMEM); > - } > - memcpy(sd_dst->data, sd_src->data, sd_src->size); > - } else { > - AVBufferRef *ref = av_buffer_ref(sd_src->buf); > - sd_dst = av_frame_new_side_data_from_buf(dst, sd_src->type, ref); > - if (!sd_dst) { > - av_buffer_unref(&ref); > - wipe_side_data(dst); > - return AVERROR(ENOMEM); > - } > - } > - av_dict_copy(&sd_dst->metadata, sd_src->metadata, 0); > - } > + if ((ret = av_frame_copy_side_data(dst, src, > + (force_copy ? AV_FRAME_TRANSFER_SD_COPY : 0) | > + AV_FRAME_TRANSFER_SD_FILTER) < 0)) > + return ret; > > ret = av_buffer_replace(&dst->opaque_ref, src->opaque_ref); > ret |= av_buffer_replace(&dst->private_ref, src->private_ref); > diff --git a/libavutil/frame.h b/libavutil/frame.h > index e60a82f6c0..5a3362fb55 100644 > --- a/libavutil/frame.h > +++ b/libavutil/frame.h > @@ -861,6 +861,30 @@ int av_frame_copy(AVFrame *dst, const AVFrame *src); > */ > int av_frame_copy_props(AVFrame *dst, const AVFrame *src); > > + > +/** > + * Copy side data, rather than creating new references. > + */ > +#define AV_FRAME_TRANSFER_SD_COPY (1 << 0) > +/** > + * Filter out side data that does not match dst properties. > + */ > +#define AV_FRAME_TRANSFER_SD_FILTER (1 << 1) > + > +/** > + * Copy all side-data from src to dst. > + * > + * @param dst a frame to which the side data should be copied. > + * @param src a frame from which to copy the side data. > + * @param flags a combination of AV_FRAME_TRANSFER_SD_* > + * > + * @return 0 on success, a negative AVERROR on error. > + * > + * @note This function will create new references to side data buffers in > src, > + * unless the AV_FRAME_TRANSFER_SD_COPY flag is passed. > + */ > +int av_frame_copy_side_data(AVFrame* dst, const AVFrame* src, int flags); > + > /** > * Get the buffer reference a given data plane is stored in. > * > @@ -913,6 +937,14 @@ AVFrameSideData *av_frame_get_side_data(const AVFrame > *frame, > */ > void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType > type); > > +/** > + * Remove and free all side data instances. > + * > + * @param frame from which to remove all side data. > + */ > +void av_frame_remove_all_side_data(AVFrame *frame); > + > + > > /** > * Flags for frame cropping. > diff --git a/libavutil/version.h b/libavutil/version.h > index 2df788e529..b913f9d6c5 100644 > --- a/libavutil/version.h > +++ b/libavutil/version.h > @@ -79,7 +79,7 @@ > */ > > #define LIBAVUTIL_VERSION_MAJOR 57 > -#define LIBAVUTIL_VERSION_MINOR 40 > +#define LIBAVUTIL_VERSION_MINOR 41 > #define LIBAVUTIL_VERSION_MICRO 100 > > #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ >>> Patchset LGTM, I'll push this patchset if no more comment or objection. >> Can you wait a few days on this? I'd like to take a look at #1. Hi Andreas, Do you have any other thought about this patchset ? I'd like to merge this patchset to fix qsv overlay. BRs Haihao _______________________________________________ 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".