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 B93F0402FE for ; Mon, 21 Feb 2022 06:31:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2FC8A68B0D2; Mon, 21 Feb 2022 08:31:03 +0200 (EET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EDFB668A70F for ; Mon, 21 Feb 2022 08:30: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=1645425061; x=1676961061; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=+hk8xAylSAEJHGs2OLAXYPmQtRbPCPfkuZBprq0xZGg=; b=Lh6VADlFFZY15IiyW7BMdb16d8p8Q8mTM7mSLbWsHN0UEp4KSOQeuZSL zmxgROacWcKiEb4YyL0Ft3jxOL1N3PO5wYka6F6FWkEiWWdiHXNUNGHUF Zk4vaXEIGuA/nHXsJRi32QgoORwo0d38gBfdDb+DFwm5DRCvN2iGOIFPI dfTcfUXYjnv7KbSywm7PGrCW41W+6wr44WaFrJvYfixzhbr0M+g/7oTDj fq878imvd46egTMDBiSfeWPsMvBraumCZ/H193XPNukiNgApGcgROpekY a1kjpKMsg+kMpjQ+KHuAzHD+OQu9YeaRy/IDT16qmZJIttXUGUX5PzoE0 w==; X-IronPort-AV: E=McAfee;i="6200,9189,10264"; a="251198312" X-IronPort-AV: E=Sophos;i="5.88,385,1635231600"; d="scan'208";a="251198312" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2022 22:30:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,385,1635231600"; d="scan'208";a="638447293" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga004.jf.intel.com with ESMTP; 20 Feb 2022 22:30:53 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 20 Feb 2022 22:30:53 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 20 Feb 2022 22:30:53 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Sun, 20 Feb 2022 22:30:53 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) 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.2308.20; Sun, 20 Feb 2022 22:30:52 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AMF51HCaule8M+WOTrrDYgkNpCiNcqtbqcZzOSdO6kF7rZQwo5oscUCjirZvQbkl8Qvrli8VTuiFj2VY3bb6s8DwomJlkadfXyJpFKeg+zEav4fQpDeXcNG1YGVFr0MfQ9vQLwzTfu5U5CGcAqNJXCU1PyEZz8manKl0dwWH3Eqs9OPCtdkWP4rpruml+3zLnubF3SmxhUzL/ywEQcg8JvRUUmzUwArP+YNuxiCRnEhcdtyylz3uXpxx7AeBYuPmmFcM2AUKKV2eji7ekzT1gaDWdjOAIOStANEuY/0HNsB2zoUOQVbfpK9ayBA9+1N3K/WO1x9WyOkFtiiUegKFww== 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=+hk8xAylSAEJHGs2OLAXYPmQtRbPCPfkuZBprq0xZGg=; b=b2HgiDLFAbJGY6yPdIZ4fVhxhLjPK3vW6QhKTe3PcGSfA6Vse4Aam8/b7Txtrthn7/jSQaJZlUkOYZZICLgKdDP8XxXtSptp7PlGqBoeEowR1gBLZgo0eCRCeh2h4QoIo+AbrNZPyUYX9AuYgRWziqjYQSTUwDLAdv3LVsg+yY5xjf3p/DfFuLYAHfnz/rfRrjYyEZE2fyTpxDYGNbrRVng2kApk7UvL3yyp84P9KliQ6L/JFR2WzLGK1vui07gLcjlYnTuOJkkNsWowdN2nnBbtw5TNITsr8B9a/HzQ+TG8WfzRZAnqK8c5Av7H/XPch+nwdluyKrn7zUHuDlFqIg== 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 DM5PR11MB1354.namprd11.prod.outlook.com (2603:10b6:3:15::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Mon, 21 Feb 2022 06:30:51 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::9b4:2af2:de92:517f]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::9b4:2af2:de92:517f%4]) with mapi id 15.20.4995.027; Mon, 21 Feb 2022 06:30:50 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2 1/4] lavc/vaapi_encode_h265: Add P frame to GPB frame support for hevc_vaapi Thread-Index: AQHYJslr6wNF22oJ/E6/JMLgr3pNHqydi46A Date: Mon, 21 Feb 2022 06:30:50 +0000 Message-ID: <3b9c2f6c57250944fdc03ab6fbbe0bc3bf27c5f6.camel@intel.com> References: <20220221021337.2190359-1-fei.w.wang@intel.com> In-Reply-To: <20220221021337.2190359-1-fei.w.wang@intel.com> 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: ce667a2a-3f00-400e-2e20-08d9f503b460 x-ms-traffictypediagnostic: DM5PR11MB1354:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ACsenGr2d1Fe4NR7s6zrEcmp8LChvN4xtlaTfxKuUoDe4uIm8wF1exRp13pLpsQ2aUdf9ZDWFeaYbcWjfvqXKBHiokXmh8wvXuk8UfivzSwqUCfyBsSMJDHVhphA0mpJ7+mRfiUEBA9B510kPnVaVVsW3Rw7+OhSknYecdOXw17hOtkE3QklyiGwOmfMp5n35KtGQEicHTLigqwrt2HY3VOfnxEGYXx4iADz0/I+P7+2hIyIkyCZx5rKVb0bKQV+wsFszjm/xUfsrIn/qWYeFeJ+qszydq9+PopORc5P80VxMjVb8UOx/lqORia3vr5zov38BEFQE4woHRw0unIZXIL9tGyJyGQoRTMHuNWCoIU2GtmyFmpCsYAaSHOFtlvn3SoOrU8wfaZdh2g54odHcryETVcHNiPC0IEelojD3tGetuiP1tsEzQXQ2diNkEeXYsojWPLlgdmG68imqnJEYieG1+vjjTjACBRMTfwww5KgPhtYMQr/cEx3+TeGIJlvDFrH1MixkNb7nGgMrU/0lRhyJ63fVqHwUkAgOlk8u84+VaNDRraMe/E/ubUuOe9heviQrlfJNrHkCANC+gW5lQjgytnjsBYr9/6NOKuIfLb6sJl4bTWz3QilJ+N57wdTxVmTCcAMV6m7Bx2KNfQIAaZw4Ctc48zfF9HbZnKkFvdD8moYE7LbfCIr3AhtVgo54yuItlh8FEJNSPYVK+aLs9r9wAoIiig8IV8AD+VRtFE= 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:(13230001)(366004)(4326008)(38070700005)(38100700002)(83380400001)(36756003)(5660300002)(2906002)(8936002)(66476007)(64756008)(54906003)(8676002)(66446008)(6916009)(6486002)(91956017)(6506007)(186003)(26005)(66946007)(6512007)(76116006)(2616005)(107886003)(66556008)(122000001)(82960400001)(316002)(508600001)(71200400001)(86362001)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TzlGZC9BNnZBRHBvM0RKd0UrdHdqZmMzMXU2dWpwZ28vSW1IVG8zajJuMlB3?= =?utf-8?B?elZ4N1RwMjNXUC9jMEdMR3M1QVZreFREdWpES1haVURoZUZjVGRDUG1TK1pp?= =?utf-8?B?K1VYdHozUGgxdjFmYUs5cW9XM2hJcnA2WTRYQW5PZUVPK2FMUVh4NzIzMmEy?= =?utf-8?B?cVdORUNHa211VWtUdW9YeDF0NVczRGVJbmdBWnlvTndlVmt0MXBTM29lK1Bk?= =?utf-8?B?dDQzVDI3NU84VTkwVy9Vamh5Rm1MUlZBRkR5elpIOGJVbG1mT3A1Qmw4Z3gy?= =?utf-8?B?N2FhRkZ3UlNZNzZ0ekgvVHJvUElSMG1qb3NqZ0twZEdOdTV5Wno1dSt4dW5W?= =?utf-8?B?YVVLeHVJakpoQjlZbFVyTlhnb3Q5NXFLQWtSakw0ZWtEVVFoeUFZeE9teU5S?= =?utf-8?B?VUE3UVFhckxFQVNRMExWbmk5OGtqVmhSeHBJb3ZwMlBSMTF2RFRoa0xFdjVL?= =?utf-8?B?SWtsck5SZnRXSW1HVFlhYVpvZ0h1NWNaMGhWUGtiVlI0eFVZbXRKVk9WVVBv?= =?utf-8?B?L0xuTjRNd2NxNzAxSnhucTAzZ3JFM2VhVnFycWVZWDQ5cmJiNG5XL3A1bGtU?= =?utf-8?B?LzVkbnBYNjNmV1pReWs3YU00ZDZ5dzhlaGpYRG85YlR2NlFURi9JcDUzQUFE?= =?utf-8?B?eXQyWXlIOVN2M1V2SnczaDYzOEJZdE9QRXVvejdrc240b240TUtReHloQy91?= =?utf-8?B?bU9LZDNsN1E1QXM3VS82aHR4SFJndzBBMnRwaDVDUlBLWWtyUXFiNmlkSmlm?= =?utf-8?B?V3FONHNaV2dHQkphQ1JhK1FoQ2k3QkpiNHlFUU1ZdHhOSUpjOXJaNWRhMjN5?= =?utf-8?B?eVZiWlVXZGlOblRhVzdTamxGZklyenMzSFZuZFpndjZJQkJ5bG5DbEk3MGZB?= =?utf-8?B?L0dMdkJCR0dzWG1TY0dqamV0VUFjTW9UNkREWXAxeG00N0VFRkN6NG1Bem5D?= =?utf-8?B?NlVsMDh0UkFXcVJjV3JiVTR0eTkxendqcHNqYU1uamNuTFRRRXdXek5MTWdr?= =?utf-8?B?S3FBOG5vV3k3NW03MFFhWHJIeFZxRTJITXZzRWkwRnVSMThWaDJoODQ2Qnps?= =?utf-8?B?ZC9BRzA4NUszWjhMOTNvcmlCU1ZRU1ovaUFmY2o2NUdoTXRSRnM2TDVHWFl5?= =?utf-8?B?ZmVKWkdGZ2E3czBqSXhWeDMzdWsrSmRPaE5MN29zUHNsLzJYRkt6WEpOT2V1?= =?utf-8?B?UXROVlA2bStMYlY5d0Y3WDlUeUkvcE9GdzhNS05pR0xZZnNPOC9FS3FKWmFS?= =?utf-8?B?V01aUGFyYlFsalZSRlJwOGFRQmFWNUxzOHAvT2ZCeWd0S3RLRjdaQnlmZzdi?= =?utf-8?B?a1laSXVnVi9iVndFWmN6bXBiTjFPalZpbk9jNmQvT2FDMDFwdHhIK1dYbnNE?= =?utf-8?B?QmJrYVVVQmZLNFRUVGVRTTJaYWg1V1RPelFCdkNvMkNCcFVsNXEyNGFvVlQ1?= =?utf-8?B?VnFpNUh0TUlZV2cxVDlkbWRJc0tFKzJ5UStvb3Q1dEFmalJxRTVaNjAycWJB?= =?utf-8?B?ZmNuaU01ZUFtMU9xZG1DQjJyRkRMN3JRZHJjZklUYUoxRjZwTUFRYlRiU1E1?= =?utf-8?B?Wm5JaW9vQUpZOHJZbDExU2JjYTM0UnBZS1V2NDhVSFZDY1cvWG9YWXpVd0JD?= =?utf-8?B?VHljNDQ1TWt4TVNlMCtTZ3pZYWtuS1o1dmJpVmtIRHZoN25MSTJJbkRsTWpz?= =?utf-8?B?WXJBNktHd2tJSWgzUXNaS1NuWDNKbXIya1dteVN4UlFRUWNvWlFaRTBOeUEw?= =?utf-8?B?bFRpSEdSMjJOSk5mdjMxVUJ3TzdEczhhbzBOVUkrOWMvSEZVbUZ2WnpheDE1?= =?utf-8?B?L2xhdFVsYjFhcVVIdWE4Y0VUSmwwNEFDNDlvYWlSRFpvcjk5eGkxcnNRbEtN?= =?utf-8?B?bmFxWnZPVkFVUzd0ZnBTeXdwY1Q0Rk1XSnJCU1pMYWs1R05mVUdNdGl5ZVVO?= =?utf-8?B?R01ZUGRWaDBBd0R3T1NpUVR2MW1jdldYZHE5R2hCM2hKak5Qd3JOVFhDZkVw?= =?utf-8?B?S3RFTXhhaG8xeUd4cmNhL2RJMnZwY05YVUVyUmRvRzM0ekEyR29nL2tvYno1?= =?utf-8?B?UnNzd1YwempQZDdMUXorL2RNMzZDcXpTY0xLQm9RekFYdk1rbytheVNBeHJh?= =?utf-8?B?YVJSSVo4QWhoSGlhQkxRWitrd0ZqYmZGVkd6MUZBNTBQSXNYYnNocnNMK2xT?= =?utf-8?Q?jrAJeamAZ7SRLs68sJWITP0=3D?= Content-ID: <2D8997BB6079C54BA5BAC7FBF74C04F7@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: ce667a2a-3f00-400e-2e20-08d9f503b460 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2022 06:30:50.8295 (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: AaR0LMn1zYQ/6DLgmehmDPOgPHeCra+ALg8GYO2BxdvfFzGMsqbCYXF6+hFV07qXJtyioP9PvLAot1HadOredg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1354 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2 1/4] lavc/vaapi_encode_h265: Add P frame to GPB frame support for hevc_vaapi 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" , "linjie.fu@intel.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 Mon, 2022-02-21 at 10:13 +0800, Fei Wang wrote: > From: Linjie Fu > > Use GPB frames to replace regular P frames if backend driver does not > support it. > > - GPB: > Generalized P and B picture. P frames replaced by B frames with > forward-predict only, L0 == L1. Normal B frames still have 2 > different ref_lists and allow bi-prediction > > Signed-off-by: Linjie Fu > Signed-off-by: Fei Wang > --- > libavcodec/vaapi_encode.c | 33 +++++++++++++++++++++++++++++++-- > libavcodec/vaapi_encode.h | 1 + > libavcodec/vaapi_encode_h265.c | 15 +++++++++++++++ > 3 files changed, 47 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c > index 3bf379b1a0..95eca7c288 100644 > --- a/libavcodec/vaapi_encode.c > +++ b/libavcodec/vaapi_encode.c > @@ -1845,6 +1845,30 @@ static av_cold int > vaapi_encode_init_gop_structure(AVCodecContext *avctx) > ref_l1 = attr.value >> 16 & 0xffff; > } > > + ctx->p_to_gpb = 0; > + > +#if VA_CHECK_VERSION(1, 9, 0) > + attr = (VAConfigAttrib) { VAConfigAttribPredictionDirection }; > + vas = vaGetConfigAttributes(ctx->hwctx->display, > + ctx->va_profile, > + ctx->va_entrypoint, > + &attr, 1); > + if (vas != VA_STATUS_SUCCESS) { > + av_log(avctx, AV_LOG_WARNING, "Failed to query prediction direction " > + "attribute: %d (%s).\n", vas, vaErrorStr(vas)); > + } else if (attr.value == VA_ATTRIB_NOT_SUPPORTED) { > + av_log(avctx, AV_LOG_VERBOSE, "Driver does not report whether " > + "support GPB, use regular P frames.\n"); > + } else { > + if (attr.value & VA_PREDICTION_DIRECTION_BI_NOT_EMPTY) { > + ctx->p_to_gpb = 1; > + av_log(avctx, AV_LOG_VERBOSE, "Use GPB B frames to replace " > + "regular P frames.\n"); > + } else > + av_log(avctx, AV_LOG_VERBOSE, "Use regular P frames.\n"); > + } > +#endif > + > if (ctx->codec->flags & FLAG_INTRA_ONLY || > avctx->gop_size <= 1) { > av_log(avctx, AV_LOG_VERBOSE, "Using intra frames only.\n"); > @@ -1861,8 +1885,13 @@ static av_cold int > vaapi_encode_init_gop_structure(AVCodecContext *avctx) > ctx->p_per_i = INT_MAX; > ctx->b_per_p = 0; > } else { > - av_log(avctx, AV_LOG_VERBOSE, "Using intra, P- and B-frames " > - "(supported references: %d / %d).\n", ref_l0, ref_l1); > + if (ctx->p_to_gpb) > + av_log(avctx, AV_LOG_VERBOSE, "Using intra, GPB-B-frames and " > + "B-frames (supported references: %d / %d).\n", > + ref_l0, ref_l1); > + else > + av_log(avctx, AV_LOG_VERBOSE, "Using intra, P- and B-frames " > + "(supported references: %d / %d).\n", ref_l0, ref_l1); > ctx->gop_size = avctx->gop_size; > ctx->p_per_i = INT_MAX; > ctx->b_per_p = avctx->max_b_frames; > diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h > index b41604a883..61c5615eb8 100644 > --- a/libavcodec/vaapi_encode.h > +++ b/libavcodec/vaapi_encode.h > @@ -328,6 +328,7 @@ typedef struct VAAPIEncodeContext { > int idr_counter; > int gop_counter; > int end_of_stream; > + int p_to_gpb; > > // Whether the driver supports ROI at all. > int roi_allowed; > diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c > index e1dc53dfa9..ea45893508 100644 > --- a/libavcodec/vaapi_encode_h265.c > +++ b/libavcodec/vaapi_encode_h265.c > @@ -886,6 +886,7 @@ static int > vaapi_encode_h265_init_slice_params(AVCodecContext *avctx, > VAAPIEncodePicture *pic, > VAAPIEncodeSlice *slice) > { > + VAAPIEncodeContext *ctx = avctx->priv_data; > VAAPIEncodeH265Context *priv = avctx->priv_data; > VAAPIEncodeH265Picture *hpic = pic->priv_data; > const H265RawSPS *sps = &priv->raw_sps; > @@ -908,6 +909,9 @@ static int > vaapi_encode_h265_init_slice_params(AVCodecContext *avctx, > > sh->slice_type = hpic->slice_type; > > + if (sh->slice_type == HEVC_SLICE_P && ctx->p_to_gpb) > + sh->slice_type = HEVC_SLICE_B; > + > sh->slice_pic_order_cnt_lsb = hpic->pic_order_cnt & > (1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4)) - 1; > > @@ -1066,6 +1070,9 @@ static int > vaapi_encode_h265_init_slice_params(AVCodecContext *avctx, > av_assert0(pic->type == PICTURE_TYPE_P || > pic->type == PICTURE_TYPE_B); > vslice->ref_pic_list0[0] = vpic->reference_frames[0]; > + if (ctx->p_to_gpb && pic->type == PICTURE_TYPE_P) > + // Reference for GPB B-frame, L0 == L1 > + vslice->ref_pic_list1[0] = vpic->reference_frames[0]; > } > if (pic->nb_refs >= 2) { > // Forward reference for B-frame. > @@ -1073,6 +1080,14 @@ static int > vaapi_encode_h265_init_slice_params(AVCodecContext *avctx, > vslice->ref_pic_list1[0] = vpic->reference_frames[1]; > } > > + if (pic->type == PICTURE_TYPE_P && ctx->p_to_gpb) { > + vslice->slice_type = HEVC_SLICE_B; > + for (i = 0; i < FF_ARRAY_ELEMS(vslice->ref_pic_list0); i++) { > + vslice->ref_pic_list1[i].picture_id = vslice- > >ref_pic_list0[i].picture_id; > + vslice->ref_pic_list1[i].flags = vslice- > >ref_pic_list0[i].flags; > + } > + } > + > return 0; > } Patchset LGTM, will apply -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".