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 82D824A642 for ; Tue, 2 Apr 2024 06:24:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1A08C68D131; Tue, 2 Apr 2024 09:24:18 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 30FBD68CFF2 for ; Tue, 2 Apr 2024 09:24:10 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712039056; x=1743575056; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=NjHrjbSmaurcEccXuYjyzHkRwiVrcqsb/lk5edgGuVU=; b=c9QsIcCYf47kWKLHOPOL+JyPYH5qpR5kJQAyESzRP1szhSZI1g6VzWXv R4uv+BYKgXtABujOlL3otwTvYBs8R34sFNqDKGYXOKQQDFw+vzIi7gkpx kr+KGTBJTBU06lIX0ubSp23ZqMiiHSajQZc88PPqUB71RB7hhU7vEclDp CvyV83BtzfFYPGovuq0zVzNM/mFCGS6+IkY/SUAKHfGMk9vG6/H4BBtVd xuWzI941Q5Pm877ebUineBQRd9hoXVsvwxUM0wx+rHug92GswjB1Ldx8+ Y1dBcDkloBgJ9yv88TjJQ7in8pFNC1K7yprF+uW7703sU57puwl9Scov6 g==; X-CSE-ConnectionGUID: wWt0oCKoT/uBtUC439JMYw== X-CSE-MsgGUID: WVDvw8o4R76P1oXKLtWjWA== X-IronPort-AV: E=McAfee;i="6600,9927,11031"; a="7029600" X-IronPort-AV: E=Sophos;i="6.07,174,1708416000"; d="scan'208";a="7029600" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2024 23:24:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,174,1708416000"; d="scan'208";a="22436949" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 01 Apr 2024 23:24:06 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.35; Mon, 1 Apr 2024 23:24:05 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Mon, 1 Apr 2024 23:24:05 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Mon, 1 Apr 2024 23:24:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UyLA3xJ0G4MuHt4Wa5hBZ125Ve+o6Xj/hrhEfpOT8onxuP2888VeK5FyD1cwpCSqoYSK525DeOSo6L+v+/DUhcXD04NWO+89FpJ7xLXkfApqXOv852DSeMPDTesBqNIDfrV1Bo8oI49oSRrM9zYzcChVVkxlvB8/VRFlzuPzOSvt5CGSu1IfMXfc600tz67Pevs599E0pAYfeeaNJNbf0dkj+YUCxlMKZr/7sq1C3tMq9qLYj4Qv/lrZ5tS3di3kSbT3et1A+uYBtFz64RWdJGCGPE6AiC2anFC3pnKCH0ml/eiWfYxL6ihCqnPSjRqh2QbDRJwoleQEVTGvTE74pA== 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=NjHrjbSmaurcEccXuYjyzHkRwiVrcqsb/lk5edgGuVU=; b=ippj1i8jBsIBxDYC7h+pBbSQNx9XdOTaHKpdq5t5ziBaExy2UXgzRQjX3jsJe1eTIDNNAaoOOmD8Zu4tfRap7szgJLEwBFr0K4ocy1/IAVi0u4HstTEr0lQcv/0ZgQZcbxIxBti1Pec+yp2kAsi3+jlm6zXhb11TbOQQ12AwUo++qOsuhzDMs7kFzWGgIp6B6zuxQgtAKWQIuf0TLoOW8dp/OsYNEABQRdU3/T5T/nvplzR9/JiXny1tUxGxF33kjBmLI3B9rQsqon12inLulCQYWg5NB3zu2E0TgTSFlgUxJbG+ZSiLAl7w5olVtq2QXj2tNadQOP5FWTofTDAs8A== 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 PH0PR11MB5030.namprd11.prod.outlook.com (2603:10b6:510:41::5) by SJ0PR11MB8270.namprd11.prod.outlook.com (2603:10b6:a03:479::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.25; Tue, 2 Apr 2024 06:24:04 +0000 Received: from PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::566d:2e2d:1fa3:d511]) by PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::566d:2e2d:1fa3:d511%6]) with mapi id 15.20.7409.031; Tue, 2 Apr 2024 06:24:04 +0000 From: "Wang, Fei W" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v1 6/7] lavc/vvc_dec: Add hardware decode API Thread-Index: AQHagLRtPF5qgLqvWkmhrQqtB9PpsrFUi2kA Date: Tue, 2 Apr 2024 06:24:03 +0000 Message-ID: <473c85f564a9b5389d249c3d176fa42d9d296f3d.camel@intel.com> References: <20240328012631.777476-1-fei.w.wang@intel.com> <20240328012631.777476-6-fei.w.wang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5030:EE_|SJ0PR11MB8270:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /M0rv3g5npmuhF/XNz8IAv3RmYU9oHfRDxVR3NOU31C9r6nNwfmULvz9L5qC+lwid995Ph+94yF9OsFtjumNXHviJ3lt+mExdoGYRK3fbn2Hkc8cfDqClI8K7BG0kEHT/jnC9WP6bs4gtL3qLcPqKASOlVUBffVtOT72Uh1YZ+HqXZLOnxCrHb3R0SqcO6vZC6Apmwv4MpA2yMTJ6+F7cb40YQgl+Q8vl0M09yjUAHHL2FCCuchckNVCDeSN7NCgC7M2LB3K7MKYRm36kPzxgWHXAEpVWMrtqUb11JV1gMQQ1oDPRYXDsRmzo2+fz59J3Mlcx1NLsWEbja8HDVxrPcGtHni6jc9lwFOOdPJ09/LA/P1IBLl5glO9Q+ubiefX3Nt5n2+Hm2WBBNSN+g8wrIZtoHL+2XXuaGb0KlCwHBNg0QyWmFQtpa32DaLnmhAljJh5/JWyKO0yNej5qXEpC1rAf5D64/itJXF0HBnBL2s7T9lYOC1g5oyFDBqAfNHjk9Xdq8ICdn531/CPVEU10nAVohnDdrcGZUoT2cCZYZoR9cuX+hUCXXedtgC32v3Q3qANcL3TFe2n7JGmMR8yr0W5+ZSl/TtG22bpzqoR96A= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5030.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(366007)(1800799015); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bUZwNjJKRVg2TlJKUE5JUGpvUHNlSkt5UjNrUXdhKzQvek9EV09Hd0JNbEkr?= =?utf-8?B?WUM1Z3hxSCtXSldvQmlJa3dCNTN6SmttS0syWHhYcVlJeURpY1oxQ1AyVUxN?= =?utf-8?B?QmFsdWFicDZDenMvZjUrZldhc3ZobWM3dXg3dmdlNmgwK1VxRlF4OFN6cEox?= =?utf-8?B?V0lYUmVwSXRGeUErSUFVM0xzemgrOHJaenh5SzZYbFhxNFBSMGlIOXJha2FH?= =?utf-8?B?b1JMeis1dWhtZnZvUFZxeWlmWVRjU2RsV1NnKzFnQ0FXZVJFRmRZNEZ0Ylcx?= =?utf-8?B?d2xkRE1rbHp1WXdzZCtaRDVOZURMUDdxTGNNbURnT0VzcGhrU2huTGhLMllw?= =?utf-8?B?NjJGOGk4R1N2MExITlFZMlVEeWZQZnY3TlhhTmh5aXg4ZUd6bDBCWVZaU3cw?= =?utf-8?B?eTh5NVlIdk9vUDNEaFJGQVJFQ1RqOVpQMnYvNnhjZXk3bmtRSXdKOTk3Zkhz?= =?utf-8?B?MlJ3bERrbnovcUFQRlI2RzhiMzh0Mm4xa2lCM0ZjTjZ1VEdmb0hObHdKUFZO?= =?utf-8?B?L3VWL0dEbjE1Z0RYaFp5bGF6MForT3JBUUdrNCtLbDdXdEFxdGV0S3pnaWRp?= =?utf-8?B?dm5wSnZRV2l2UUNGWXJZWVd6SGxjaTFnUDBpUFBVZzhrR1JKK2RnR3ZoRHBU?= =?utf-8?B?dS9RYzlTaFJKek5mQ2w2WGRpcTJoUWI0amRMN3c1WCszd254OTJueEhNYURv?= =?utf-8?B?ZW5CVTFQQTBVeFV0b2I3WU1TVkRXRGtHOXZsMnZEWkJaUGw4VWlOcElkbkY5?= =?utf-8?B?WUhmUDZWTHN3RVE5ZmdQNEZxcHZzSW1SM2NUMFRaSk93dWxjdUZyVGV1UjNG?= =?utf-8?B?TGRYdjFuWGdLUmRmY28yOFNzTkhTbTBMaGNGb3hGY0EvMzdQZWhQYWs1ZXc1?= =?utf-8?B?YklGZlFGN0JDalZFR2MzMlIrOEtjRExuS2JDZFRYckJ2Yk52emxSVENMNVJJ?= =?utf-8?B?N0V6cWJzT3hlRnpzbUw1SWlUQlh0cjRnMFdRSGZ3eHNOUFR2d0c3Y2FpaEJ0?= =?utf-8?B?YUFibUVVeHRwcjI2TjRrQ2hVeDBuQmhtWS81RUtvMjlCQlVocnJ1VHBVMEV3?= =?utf-8?B?dlB0elBIQkNkdytEbDU2NWpUamY0RzR1L0oyVGRCQnhyVVlWMy9GOHhKRVNt?= =?utf-8?B?b2oyeFdORHJhajlzUnRGaFRPMGxhVUVqRlQrSFpGcUZHUkNXOHNDOXJzV1A4?= =?utf-8?B?MHBsTVhNUzB5clVrTjVkVFJLMnVqeVFSMkNUOExGWVpTMW9seGQyWFloYzJN?= =?utf-8?B?bXJZZlpaRlZuaVRPYnFKSVIxWGJQZlViQ2JqR1dGNW15WFZZTXZzUnhYU2hy?= =?utf-8?B?bW83M0VEU01aeGVnRGVCOU12UjdSOE44VEd1eGdCZlRFWmxrTWZJV0VhZWRh?= =?utf-8?B?cjFBTThOWUtTMmF6alhwSnU1OTNaM3dxSktNRVphYXVEWHBnUEU3VVJzVmE4?= =?utf-8?B?Z1RqYXJkT0RhMnJVcjFtZzNlYitCZjJYQmRlNDJnVHMzVThnL2d6VGRnYVcy?= =?utf-8?B?bU01OHJqSWJjRFFqSUZqVlhzRzR6eW9CWStvQ0VXMktMV2N0ZjBWeUEwV2FC?= =?utf-8?B?UDlzNmxDYjRWM3ZrVUc5bXVBeEQxb0FLdDI5dWNOTVlGN2Z3TlUvODZWTGVW?= =?utf-8?B?bTVJZHV3aTYydzAxZXRwNUtKU25kdkEvb3o0eU4xdDhIQzVTK1ZGeTFHTitH?= =?utf-8?B?QTh3MlVhRElmWUV5TVZoWGpMRUJCelk0N3UvY3ZsbFdhVnJSZVFoRE5Wa285?= =?utf-8?B?S3Vha09mZXFYODhMZ3hLZ21RTW5saHI1b3lNWVJRelRZU25PM2pCblZyQXVU?= =?utf-8?B?NDVZamMxRTlYMVNkM3R2UTRKVDRmYWZDNW1tNlBodWMzeFpaTVUwdHNCWG5t?= =?utf-8?B?QkNGdXo5RGVnanVUMXh1eWg5ek1qV3B6Nng1b2hDU1lvWTYvRjNkdCtuQVU5?= =?utf-8?B?elRrMEsvU0k1UzRHdUlPZ3JDVEg5b3pZWGo5WlJEZWNxdk1wclNvd3FiWndQ?= =?utf-8?B?QVZUbFRqK2p0ZXhOdndsWlRVcGtCNTIyOE0wQ1VxcXdRZ0tqeU5IbHl5NkZL?= =?utf-8?B?UXpZSzhJbnNEb3hUNUt0aDJDai8yOFFWZ0IzVWN0RzNpOEZ2ZmdIWFF5QjBD?= =?utf-8?B?a3U3bFdlcDR1cnljQldxVHBzZGNpSEg4Ti9zcDRyZW5xWnBkZmhuMThRNEZQ?= =?utf-8?B?RWc9PQ==?= Content-ID: <29351D00E63653409CC4A187034772DC@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5030.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 041e4ca6-d049-4fd1-7ec8-08dc52dd7e4b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Apr 2024 06:24:03.9278 (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: WGqgVMP6NWBZwYGuo/4UQKsMqtlsSz8J/RfyG4ccUgoMGD1XqVfWB/ioy8YL5qpZFLmyYtLXpBR6RaF5NxU3RA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB8270 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v1 6/7] lavc/vvc_dec: Add hardware decode API 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: "Wang, Fei W" 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, 2024-03-28 at 03:04 +0100, Andreas Rheinhardt wrote: > fei.w.wang-at-intel.com@ffmpeg.org: > > From: Fei Wang > > > > Signed-off-by: Fei Wang > > --- > > libavcodec/vvc/vvc_refs.c | 6 ++++ > > libavcodec/vvc/vvcdec.c | 67 > > +++++++++++++++++++++++++++++++++++---- > > libavcodec/vvc/vvcdec.h | 5 +++ > > 3 files changed, 72 insertions(+), 6 deletions(-) > > > > diff --git a/libavcodec/vvc/vvc_refs.c b/libavcodec/vvc/vvc_refs.c > > index bf70777550..c9f89a5a0a 100644 > > --- a/libavcodec/vvc/vvc_refs.c > > +++ b/libavcodec/vvc/vvc_refs.c > > @@ -25,6 +25,7 @@ > > #include "libavutil/thread.h" > > #include "libavcodec/refstruct.h" > > #include "libavcodec/thread.h" > > +#include "libavcodec/decode.h" > > > > #include "vvc_refs.h" > > > > @@ -56,6 +57,7 @@ void ff_vvc_unref_frame(VVCFrameContext *fc, > > VVCFrame *frame, int flags) > > ff_refstruct_unref(&frame->rpl_tab); > > > > frame->collocated_ref = NULL; > > + ff_refstruct_unref(&frame->hwaccel_picture_private); > > } > > } > > > > @@ -138,6 +140,10 @@ static VVCFrame *alloc_frame(VVCContext *s, > > VVCFrameContext *fc) > > if (!frame->progress) > > goto fail; > > > > + ret = ff_hwaccel_frame_priv_alloc(s->avctx, &frame- > > >hwaccel_picture_private); > > + if (ret < 0) > > + goto fail; > > + > > return frame; > > fail: > > ff_vvc_unref_frame(fc, frame, ~0); > > diff --git a/libavcodec/vvc/vvcdec.c b/libavcodec/vvc/vvcdec.c > > index d5704aca25..f2e269ce76 100644 > > --- a/libavcodec/vvc/vvcdec.c > > +++ b/libavcodec/vvc/vvcdec.c > > @@ -24,6 +24,8 @@ > > #include "libavcodec/decode.h" > > #include "libavcodec/profiles.h" > > #include "libavcodec/refstruct.h" > > +#include "libavcodec/hwconfig.h" > > +#include "libavcodec/hwaccel_internal.h" > > #include "libavutil/cpu.h" > > #include "libavutil/thread.h" > > > > @@ -563,6 +565,8 @@ static int ref_frame(VVCFrame *dst, const > > VVCFrame *src) > > > > ff_refstruct_replace(&dst->rpl_tab, src->rpl_tab); > > ff_refstruct_replace(&dst->rpl, src->rpl); > > + ff_refstruct_replace(&dst->hwaccel_picture_private, > > + src->hwaccel_picture_private); > > dst->nb_rpl_elems = src->nb_rpl_elems; > > > > dst->poc = src->poc; > > @@ -718,17 +722,41 @@ static int slice_start(SliceContext *sc, > > VVCContext *s, VVCFrameContext *fc, > > return 0; > > } > > > > +static enum AVPixelFormat get_format(AVCodecContext *avctx, const > > VVCSPS *sps) > > +{ > > +#define HWACCEL_MAX 0 > > + > > + enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmt = pix_fmts; > > + > > + switch (sps->pix_fmt) { > > + case AV_PIX_FMT_YUV420P: > > + break; > > + case AV_PIX_FMT_YUV420P10: > > + break; > > + } > > + > > + *fmt++ = sps->pix_fmt; > > + *fmt = AV_PIX_FMT_NONE; > > + > > + return ff_get_format(avctx, pix_fmts); > > +} > > + > > static void export_frame_params(VVCContext *s, const > > VVCFrameContext *fc) > > { > > AVCodecContext *c = s->avctx; > > const VVCSPS *sps = fc->ps.sps; > > const VVCPPS *pps = fc->ps.pps; > > > > - c->pix_fmt = sps->pix_fmt; > > - c->coded_width = pps->width; > > - c->coded_height = pps->height; > > - c->width = pps->width - ((pps->r- > > >pps_conf_win_left_offset + pps->r->pps_conf_win_right_offset) << > > sps->hshift[CHROMA]); > > - c->height = pps->height - ((pps->r- > > >pps_conf_win_top_offset + pps->r->pps_conf_win_bottom_offset) << > > sps->vshift[CHROMA]); > > + // Reset HW config if pix_fmt/w/h change. > > + if (s->pix_fmt != sps->pix_fmt || c->coded_width != pps->width > > || c->coded_height != pps->height) { > > + c->coded_width = pps->width; > > + c->coded_height = pps->height; > > + c->pix_fmt = get_format(c, sps); > > + s->pix_fmt = sps->pix_fmt; > > + } > > + > > + c->width = pps->width - ((pps->r->pps_conf_win_left_offset + > > pps->r->pps_conf_win_right_offset) << sps->hshift[CHROMA]); > > + c->height = pps->height - ((pps->r->pps_conf_win_top_offset + > > pps->r->pps_conf_win_bottom_offset) << sps->vshift[CHROMA]); > > } > > > > static int frame_setup(VVCFrameContext *fc, VVCContext *s) > > @@ -771,6 +799,20 @@ static int decode_slice(VVCContext *s, > > VVCFrameContext *fc, const H2645NAL *nal, > > ret = slice_init_entry_points(sc, fc, nal, unit); > > if (ret < 0) > > return ret; > > + > > + if (s->avctx->hwaccel) { > > + if (is_first_slice) { > > + ret = FF_HW_CALL(s->avctx, start_frame, NULL, 0); > > + if (ret < 0) > > + return ret; > > + } > > + > > + ret = FF_HW_CALL(s->avctx, decode_slice, > > + nal->raw_data, nal->raw_size); > > + if (ret < 0) > > + return ret; > > + } > > + > > fc->nb_slices++; > > > > return 0; > > @@ -885,9 +927,20 @@ static int wait_delayed_frame(VVCContext *s, > > AVFrame *output, int *got_output) > > static int submit_frame(VVCContext *s, VVCFrameContext *fc, > > AVFrame *output, int *got_output) > > { > > int ret; > > + > > + if (s->avctx->hwaccel) { > > + if (ret = FF_HW_SIMPLE_CALL(s->avctx, end_frame) < 0) { > > + av_log(s->avctx, AV_LOG_ERROR, > > + "Hardware accelerator failed to decode > > picture\n"); > > + ff_vvc_unref_frame(fc, fc->ref, ~0); > > + return ret; > > + } > > + } else > > + ff_vvc_frame_submit(s, fc); > > + > > s->nb_frames++; > > s->nb_delayed++; > > - ff_vvc_frame_submit(s, fc); > > + > > if (s->nb_delayed >= s->nb_fcs) { > > if ((ret = wait_delayed_frame(s, output, got_output)) < 0) > > return ret; > > @@ -1027,6 +1080,8 @@ static av_cold int > > vvc_decode_init(AVCodecContext *avctx) > > GDR_SET_RECOVERED(s); > > ff_thread_once(&init_static_once, init_default_scale_m); > > > > + s->pix_fmt = AV_PIX_FMT_NONE; > > + > > return 0; > > } > > > > diff --git a/libavcodec/vvc/vvcdec.h b/libavcodec/vvc/vvcdec.h > > index aa3d715524..009d57424e 100644 > > --- a/libavcodec/vvc/vvcdec.h > > +++ b/libavcodec/vvc/vvcdec.h > > @@ -78,6 +78,9 @@ typedef struct VVCFrame { > > * A combination of VVC_FRAME_FLAG_* > > */ > > uint8_t flags; > > + > > + AVBufferRef *hwaccel_priv_buf; > > Seems unused (hwaccel_picture_private uses RefStruct nowadays; no > other > decoder uses the AVBuffer API for this any more). Thanks, will fix in next version. Fei > > > + void *hwaccel_picture_private; ///< hardware accelerator > > private data > > } VVCFrame; > > > > typedef struct SliceContext { > > @@ -224,6 +227,8 @@ typedef struct VVCContext { > > > > uint64_t nb_frames; ///< processed frames > > int nb_delayed; ///< delayed frames > > + > > + enum AVPixelFormat pix_fmt; ///< pix format of current frame > > } VVCContext ; > > > > #endif /* AVCODEC_VVC_VVCDEC_H */ > > _______________________________________________ > 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". _______________________________________________ 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".