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 67BA143200 for ; Fri, 24 Jun 2022 07:01:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9588468B6AC; Fri, 24 Jun 2022 10:01:55 +0300 (EEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7B0E768B201 for ; Fri, 24 Jun 2022 10:01:43 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656054113; x=1687590113; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=iX28WVG9FJY8ujMaLFWtN0G/ejEVqvDgBbml8fSAimg=; b=LJ8u7KR3SGAJkliuR1tJ5YzIewF5mQ6ZK3RlcoqFJA0hooCYeTe2kScs IwE2MIyzgGjrCQt51NIJOsZSTGHC4t6rnAaqdrKXaJ9lC3uXVHo/gOmsa dFZlTqbp1Viml5k7TSBHEuQ64MSnH6buMHmkCq0OJ19x4EJxSdCZ5BNUs QppGrJWZQ/CfFCzQaeY7gBMSpKhRwJ3XrrmddTMKJoJvs/g+C3m3Cs6lw kW24u5ejAM+SilcuQOIJxAlK7oAcFGrjNG432xtbe+YOMzanG7Fe9YoBm UqKevw4t0sR/ev+W8+ksfREL8shwIS8YdcNJscB6o4ZnR3d34QT5lfK22 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10387"; a="342627358" X-IronPort-AV: E=Sophos;i="5.92,218,1650956400"; d="scan'208";a="342627358" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2022 00:01:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,218,1650956400"; d="scan'208";a="835009889" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga006.fm.intel.com with ESMTP; 24 Jun 2022 00:01:38 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Fri, 24 Jun 2022 00:01:37 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Fri, 24 Jun 2022 00:01:37 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.171) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Fri, 24 Jun 2022 00:01:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OLcgT3DKbSmoXRaS2ucRB+l1KPHmuUdiHgwmkyITvLe17pcyBvu2OP5V/ovThYh9++xWfpCcroCDxWS6WC7T8QzqcJ1wetx8Q/Ki6IZ2KwpByuTIi9AEn7P8BkH09EHeRSFAVbgJKnNLTg2o9WIrRSWE+Q8ZwdX2iaZQcEB9B6hcuaqxBpexaGBhMpsMnIH5zIIQCPPaiHk/NDyw9s5QgciOaflGMfsqEaU93WXrvPwbfzzzcbfqt984G058z0/uYHLGYnF48uiDh9GNbfCo0wuqjHLCszz/v+QHanI62ylS+DCNYYvNC5Ozv9mxL7w5WsVlp92YZWu7Q4IOOFO7Mw== 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=iX28WVG9FJY8ujMaLFWtN0G/ejEVqvDgBbml8fSAimg=; b=ct0NI/R9Svld1mDoN7eqB8sy2y8nrzeW+BgVfXDFwvdMrR+vOhId1WfEShDUO1PPilBV6ymiI6zQkyNhCp1q+xX2prFewrxezlwTKUIDsZGR3UqBR9zxL8F6CQ99PmndrztL/4583P6bo3veomlwDqk3/Fqaa3ThTYo0sR1smSJwgKwc1OZEpO9XiZM6KT3F0J05ZxBVt8/0xrXIIksLuaLYrb3TzosGxN0J3HjC6Rvus9xIGrBlpGWKWj7wMUOHuHLMC8RrMeDaS1jzQRv10rYm+FVUmw9cWuJAyVsXnjj4MVKjnMdpSrZsUpIO8m74QdqOnuNOQowQJ8EiEj/OpA== 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 MN2PR11MB4015.namprd11.prod.outlook.com (2603:10b6:208:154::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Fri, 24 Jun 2022 07:01:35 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::f977:9a9f:bad7:d3ce]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::f977:9a9f:bad7:d3ce%5]) with mapi id 15.20.5373.015; Fri, 24 Jun 2022 07:01:35 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v3 1/6] avutil/frame: Add av_frame_copy_side_data() and av_frame_remove_all_side_data() Thread-Index: AQHYdeH2abLnLgtIn06ptKsNQwmQ5q1eRLWA Date: Fri, 24 Jun 2022 07:01:35 +0000 Message-ID: <8cab34105f023f2d40811a79d05726df80ac707a.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: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 41e71b60-6382-420d-278f-08da55af6092 x-ms-traffictypediagnostic: MN2PR11MB4015:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SZYLVIedk/JJZi4m550L6CVnqOSrTT5H4waw70zAht5lDJpZqwdNMoLIR68JAEXs1cXxGcVjQmduTg1oPIWQsHVsgYKBNK3SoMAU5woAL5uLn887s9MThwdc/31irKQdYl5w0JmbHJBs5bmfibJ3lWTlxeSWSzhV29DbDpbMd13nGgaoc9TcPXvVUnMSDhiQQCUsQlUAHEopdkapvpn2eWuSeJe9YmkbqU5r2s/a6mmuG1gZfrDii80BmXWXqyU4EmkA5HAu/JExkB/JUnhOq4ANdFcsynkKFAQbFESrvjWQtjH4LmHSx81Yw1ThkgWdG3eUBmfPgwlMgueOQSKw2DdAfAKopmb64pNW7gUjFDPjZ9zmXmMnZUBXyTXaD6ols4aTnu5as0mcRAykOUrwrPFOufkeCTsh1peCtrIY820AGRWfDGwbq0QOx9aUnrbRwlVhngwzTiljOWvzcSw8pzfRfoLfs9r2G3mUdsjPDqySxtSWhULRU9ufQkPvq4DN0Hhf6bMcalnJai+Z/gC6wYM0k/Oxndoe6xV4ii3iW8ORH14gtAq7PUl+vdHnIp3tjnquh2sl4vBTWyaDDYLefNvjQSbgEIxGKZDNe18549HAVLBOD/T3ZRAPU5UbRDmCH4LIjp0EUNj8l8qjlOyhX2WwdhF7/aVpis5OKd3+aXBtpYzWs4UN3tv6m20vfvG7Bb4nKPWt9mKWQNe6aTARnirFbN4saqgtLlhrUQnjDa+ePKjNwFVCItEgvxIcA+G32iPr4EyBPdTbwWJpayTnT1fhTtZNRGK19OK01tJ9lBgwUHCyh57Taq1cwLR802XYHRDdhPRXcxianX6lv6ydQA== 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:(13230016)(39860400002)(366004)(396003)(376002)(346002)(136003)(66446008)(64756008)(66946007)(66476007)(76116006)(4326008)(8676002)(91956017)(66556008)(71200400001)(54906003)(2616005)(6916009)(38070700005)(86362001)(5660300002)(82960400001)(122000001)(186003)(8936002)(6506007)(83380400001)(38100700002)(6512007)(478600001)(36756003)(41300700001)(26005)(316002)(6486002)(2906002)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ckhvbnRoUVlwTm84NEs5UWdSZ0VObjNjRjdDMG9LcGZHbVBWd05QekUvY2I3?= =?utf-8?B?enhMMFh3SE1lV0JCNGljOFVKZ1hxaHlhdGRKLzV1VFpKRlRMZGdiajVWUnhK?= =?utf-8?B?MUUyci9XNnpnSHYydWc5aXBFWEZaRTR3bEQ3eFBuTGxtWk41enZnamdIeGNR?= =?utf-8?B?eExpUlBCaWpkV1I0ZXlJRE9McktzMzZDNVgxQ1BkT3ZESjFJb0hCbnduNmZZ?= =?utf-8?B?N3ROcDhIcEhBUVIyQjV3OGRUWTkzSzNjMHg1eklmcEdHcmF2V2hUS0FxdWxp?= =?utf-8?B?RHloQlhlbHBUQ3VMdW50azlFZEEwNTQyZUxrNzdTeEd4THBFTnhTc015dFhi?= =?utf-8?B?aWE5RmdVZnQzcit3SjJncTlxYW1BYW55MTVVY2V2WjMwVkpLSHV5QUZ6S1V3?= =?utf-8?B?VVIzMW9tdVBGQ05XSjEvYjFwMmJ1SGpQVjlHcjVuenhXR2ZzdTFPZHBVa0kz?= =?utf-8?B?c01wMXhLT1RQUmNTMXdKQ3IvaU9yanY0OEdxSndQT21wNFZhayt4WG1mRkJ1?= =?utf-8?B?Y05UbTFBRW5KUjJlRUUxeS9NdDZMY0s3TWxaK0VNQUJhT2dEdzNrclBncFRQ?= =?utf-8?B?RWlZU0xycll5OW0xWlBYNXlzQ2F3RExJT3NmMkZkM2NNSzhXTUhLajAvbHNW?= =?utf-8?B?WkxYaW4zZ1lBeUgrNnJFQ0xlTElMaFNmTXVwRFBhZ3p3dG9XVXYvZThJK1NS?= =?utf-8?B?cGdHUXNEbG1Ea01DeENsTUZDQStKcXZVY29xeE5sdmJRRjh6NytVL3lVYnFF?= =?utf-8?B?Z0tBRmRJYldDekdzbUZGcXdvY3NYbnF1Ky9xQVppai9RT0tpNlBScFhQVmpn?= =?utf-8?B?QmNZc05Pd0ZlczBMclhQVjgvRGlzODV5NGdpL25OcEJHTmVUallQdytEUy9M?= =?utf-8?B?MnBFRGRNU3ZOTVJSN000QlVJdXl2M0NqWWxnUzNJNE11d0hRUlJyQkpOMTJW?= =?utf-8?B?N0tMb1FDWkU1VStDV2pZUXdRR1NIOHVMWjhHdTIrSHN3MGdSR3E2MjdRQ1ln?= =?utf-8?B?MnJjd21FM1FSQjRnQUtZK3ZoYkdjVExSdzNsSWcwa2NxRm4wYlM5QlJVc2ov?= =?utf-8?B?Z3JlZEgyRnBaQ1cwdnBzSGlMYmNlYVl5ZFVQMWRmc3VjVXR5U2NMQW43enJl?= =?utf-8?B?Yk4wT3IwTElmRmdnWE4waytRaDJNUnhYUmRHbWpxdE0zUDNPVWVWNVd1RVQv?= =?utf-8?B?RE5QckVKUkxsSG43bWU2Qi82WWVITlViUCs1RnZ3ZEFkR0E1em00YzRpNFQ3?= =?utf-8?B?Yk5XejVXNlFKVUs4bEZvMHdDWDQ2Zjl4cFZoek5GM2lNcXBPMi95MzZ2Y0Jh?= =?utf-8?B?aTNnVWlFSDNqekU4M1RxS2pxSGt2bERHMU1yeHNvbmorandFNUpkdVBwY1Mx?= =?utf-8?B?WGpEVll2b3BmM1BSTVo1Z1ZLendtSVRXUUNPdEQ0cUJhbC9jYmhtT01PbWFx?= =?utf-8?B?cGxlSDVUblhIMFdPK1UxT1psMktoQzI1WmIybURPSzZtcklleGczSFBBQTYr?= =?utf-8?B?U2drL1E3N256WWZOM3lpaGgrNm5jdUgyd0M3VTg3OU1yMHNVZWlNVEVXNTBZ?= =?utf-8?B?dHVBUmlpTjZYNU9zK05yako1a2tFSHZGLzNpejlnT3FYREh0MHZua1dQbk9R?= =?utf-8?B?WTBTblNBQWd5UXQ1OTNPeVpxQ0FNb0lyVWdFRSsyVCtBdTRuaExRampWUU1P?= =?utf-8?B?ckVQaE9zaERudXBIRG1VSUd5VjRCOStoS2Iyb3o0RXNuVXVtSkFLUTJhc05B?= =?utf-8?B?bjNVSGZVOVhvWmszeDhabCtydi9YQUtyYlMxVWt5dnBxMm93RlpYNnVRNTl6?= =?utf-8?B?dXRyRy85ekVoSHQ5eW5aWFVQOC92NEJyZVJjNnpYSytPVUFmamFKNDdCaDYz?= =?utf-8?B?T3ROV3crMWt1Q2p6dkJTSzdMZ3RwT1BKTFB2M0wweVQ4cmE1NFVjcFpOdDNQ?= =?utf-8?B?WFp2VHZ0LzR4RlRwUyszYW1vQTZqUkdreW1Ya2VGb1NKWG9KUTZOblhrbkd3?= =?utf-8?B?Wk1tVk9JN1JCVlBnaDNDd1JnWHVMVGl0TlZRdnRsWHBuQnRkNHhDS1lNcHVC?= =?utf-8?B?ck5pRG03UC9xVWJ5cEdkaDBoY3NuQXM2d0d0TjhudVVwV2lYNkI0M3dybmc4?= =?utf-8?B?c1ZaRG9jTVBibDl0NE5xZU51V2NPQzVKNUZ6bDF2TnlrRFllbDRjU2hNQnQw?= =?utf-8?B?T3c9PQ==?= Content-ID: <1231720C593C8F499891E1EB46394F55@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: 41e71b60-6382-420d-278f-08da55af6092 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2022 07:01:35.4019 (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: 8CbF80gFfGzNrx23I5SvrbD3dt6VVNjXFcXXGjqbxQMjxmGRcQj6ja2DKh5ClSpsjl0GUGuqCHbzL0DxnZbXSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4015 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v3 1/6] 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" 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 Wed, 2022-06-01 at 18:01 +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 337f1466d8..e5dd6f1e83 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.26.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-05-23 - xxxxxxxxx - lavu 57.25.100 - avutil.h > Deprecate av_fopen_utf8() without replacement. > > diff --git a/libavutil/frame.c b/libavutil/frame.c > index fbb869fffa..bfe575612d 100644 > --- a/libavutil/frame.c > +++ b/libavutil/frame.c > @@ -271,9 +271,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; > @@ -309,31 +345,10 @@ static int frame_copy_props(AVFrame *dst, const AVFrame > *src, int force_copy) > > 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 33fac2054c..a868fa70d7 100644 > --- a/libavutil/frame.h > +++ b/libavutil/frame.h > @@ -850,6 +850,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. Can it return a positive value on success ? I only see 0 is returned on success in av_frame_copy_side_data(). May I miss something about your patch ? Thanks Haihao > + * > + * @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. > * > @@ -901,6 +925,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 1b4b41d81f..2c7f4f6b37 100644 > --- a/libavutil/version.h > +++ b/libavutil/version.h > @@ -79,7 +79,7 @@ > */ > > #define LIBAVUTIL_VERSION_MAJOR 57 > -#define LIBAVUTIL_VERSION_MINOR 25 > +#define LIBAVUTIL_VERSION_MINOR 26 > #define LIBAVUTIL_VERSION_MICRO 100 > > #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ _______________________________________________ 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".