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 32DEE40C77 for ; Thu, 5 Jan 2023 06:07:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0CD3B68B74D; Thu, 5 Jan 2023 08:07:53 +0200 (EET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B90E8689E14 for ; Thu, 5 Jan 2023 08:07:45 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672898870; x=1704434870; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=N7V+8MZ/GYsvFbYH9eQrFDwXysJsMq45k1mXWGBQ5vE=; b=S5uDh7qkIm6e6tSaHnRZRfzYE9sBt3oahaSKbZnDhAV8aBCzz1p/vfcA rrIWN/mDwtClFDxoNVA+r57hw3UYI9bMEDIaQ3i0H+IjQ9WSEGOMAqIeJ ky6qfnNmQvwBmGdw/IpkDZJgde8Z9ApmN/U0v/jK4SoBB7UD89H3VLX5C Ey3RhO4QX9pxcjglWJ5VUZKPxV+7l4uIvKstj0eLX7NyF6jy+IcmRZHg5 3l61vLr7/asnQqHX1+K8hB8AphtRdIVl4ekddo3BgcLCf1MXGHtSSjIFy Y/rSLczzQHS3FbW977QgGZ5xsO7g/RCXv2b1fh5iaDIN3kkfKb2EpfVbC A==; X-IronPort-AV: E=McAfee;i="6500,9779,10580"; a="309896488" X-IronPort-AV: E=Sophos;i="5.96,302,1665471600"; d="scan'208";a="309896488" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2023 22:07:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10580"; a="984168925" X-IronPort-AV: E=Sophos;i="5.96,302,1665471600"; d="scan'208";a="984168925" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga005.fm.intel.com with ESMTP; 04 Jan 2023 22:07:42 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 4 Jan 2023 22:07:42 -0800 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.16 via Frontend Transport; Wed, 4 Jan 2023 22:07:42 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.175) 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.16; Wed, 4 Jan 2023 22:07:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fj1vJNB6TREsKRLsQXC9mUPp6Ctp8lI74B379G15KsU7Ms5u66Ks3e/Zi3v7Gdgie28qu8R3ntWdZ+0BHqdsaWn1XUnxQP+TXGYkYARBFPwxWeijh91lKdXMhGtUBvK+CBhCV/PdIUlZd7oNvZJTPpAd9lCTTc8XttbHuYCJfYk/3+xsvTLXYTxxJhXpYBiss9sW11MlWFuNGzSjWRYqqs4vwJigrCZ99MGOsQ5qFvUUp26rqfdcCkCsHZdnzt3rzkrtkCsWUEysJ0Ra/iNpfFkbem8wLpZgQTvNfM0nkUAGyhnnTUTMn7ZuE6XPH14Wr+CFxOoon0kVBLqMTYMTMQ== 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=N7V+8MZ/GYsvFbYH9eQrFDwXysJsMq45k1mXWGBQ5vE=; b=eMBz73nfrEmwNfV7ebxh+3aWtbpnjYL9tWTSqYCIQwj/YFHmpoD4SPYnp2Ngtz7wFtgsUsbICjGkL/ZGLrfbMwnKqaHR5AyjJakAKPlPqBNWd7djbkVH82ezTjduh/PZ1xWLzhQKeqUrJSGwjJoouWqJL1PNVCrBDpLDDlIWD3T2qw6ldJ8Muvt3CK7Rkye74iz7VIC96lv6Q03fPJfGRoix7C5NMgzMWwkYloeFXfQZ4slZYwV9phbMOPv3qg76qDDRf4ilQ6jIZDbbdEwKYn4KNZrkP4tYl5Y/2s7PoF6K+bLtLomcNdh11rbWE83waKa+/VAFMAoDS8HfVqHKRw== 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 DS7PR11MB7805.namprd11.prod.outlook.com (2603:10b6:8:ea::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 06:07:40 +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.5944.019; Thu, 5 Jan 2023 06:07:40 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2] vaapi: support VAProfileH264High10 Thread-Index: AQHZGaFHNnSYFjW2i06HG0GrsjE+kK6PZMKA Date: Thu, 5 Jan 2023 06:07:39 +0000 Message-ID: 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_|DS7PR11MB7805:EE_ x-ms-office365-filtering-correlation-id: 05c05bea-0a45-4e4b-f8a3-08daeee326ab x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Co3RFXq+9OTi7HTmEgBW7NbjSQ8s5hVbShzprq6tXG1ZP2elBHt77rIuwD9rsKgw5PEoWuftIkYCFC/CLhU1yU+mFBhhvuVwWsIJwU0jHv/tc7jPgjabVsYKGui2fuu+zEWvOjp+n7eMSYXika9FhidPOOTYMSvmLSLl2raeIhFj77hmSDVkE15Ni1V+3/7vhd5kYy9dW7KHn2mr/klI5GZDFrKUMhXFOCrySEOICuZfXNAsRmW1FFq242u094dVzs1+hg6LKwl9UlQggrRsPMjGYrypNzVwAN3tSf8b+fsMGlX7zsmSEQ0a6Jq3ZpW7rnL+rEk9nRDbAnqrm4tYGAfM4bC+GfvlgcoN3EAPGNg/PtyzZuV3wGB2ParGk6ngqoKGFo0fZKMrzksZ9TOppPW4Ko6pdMFiK8N5Y5Vf4r+XF/ATCBgKPy9nkBFF96XvLjlKnTvmOlExLA4ccBsh0tRvDAoVE9UUIHb6FNiFi9StCAQR1x7hdzku+3QL/EJoPDLo1dA2o5z956Aj5u8cBhM7l2b44QEQ4vNsD0Wh3FdLcXd872zmEfnh/cxzJ0fe8ErEFHpYVhKUPZ1KzAbr5VgsuKHyRO/gFXaUxgg5g+6fYD7wBLYJeTBsns0jYcvXeP5Yfre2c9Fc4rFOAIrdA+lF5DVLCb/8RrxIg1RXVtTQoWnIPV+1XWgl6TCXr8jnFXMLtehYPBsVtigybHTKzKKa8R10It18eXGpGGIvGi4= 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)(136003)(396003)(366004)(346002)(39860400002)(376002)(451199015)(6486002)(966005)(6506007)(478600001)(36756003)(82960400001)(38070700005)(38100700002)(122000001)(6512007)(186003)(26005)(83380400001)(86362001)(71200400001)(2616005)(5660300002)(91956017)(76116006)(66899015)(8676002)(64756008)(66446008)(66946007)(8936002)(19627235002)(66476007)(316002)(66556008)(2906002)(41300700001)(4001150100001)(6916009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bFAveHpqSk5VMXkwakhHVEdzZGZVV3hXNHVyU1ErNUYvSjVyUFJUVDN6Zmdh?= =?utf-8?B?QkFXQityVnFNR2RQTUZEeHdFekpsRXE5WlZMN0QzVWwzVHlQNkNTY2tyc1pi?= =?utf-8?B?UXZNcE5FUnE2QmF2TGJlS1lIbVd2RHZ6VjMyTXkrUWw1T3ZKTU1uakVZdU1H?= =?utf-8?B?MExwVS9BRS9Pb3NZUlEwaUt0V1V3ai9STHo2cGxQLzdsTjViZXJPN2J2VkVF?= =?utf-8?B?cW11dDN3SFpaUWNRTWRoQ2h4dVA4bHQ4S0VzSEFPTEpuaEw5azFkUHZNN2pI?= =?utf-8?B?YjkvbXk2N3ZuTDJZeHZoVlcxTkY1UFg2RnpVRjExR2piYTZ0Smhma21vMHRB?= =?utf-8?B?OGZndkVTQ0hRUUJ5NHp5OXVZVnNoWUFnK2FaZ290OTN2ajZNTkR6b3RRaldx?= =?utf-8?B?RDkrVHVPUUN5bFFZQWFnUXMwdjV2dVN1bXNFMi9RZ1ZYVFZONEhHTFVwSHZx?= =?utf-8?B?cU8rK0thcVkyU3hRRTgwblFhNWNJdXhsZFpxclVkNnRCNW01V1hqOWt4a1kx?= =?utf-8?B?czljaWpuNGwrdFZtUjVWbjB6UEhRMlVNWnd1d1I0Uk82R3ZuYmhyZXZtVUlZ?= =?utf-8?B?MlM3Mjk2VGFBSzV3cnZzcXVIcVlXaE5PZWdISS9ldWt2ckx3VjhsbVA2Vms5?= =?utf-8?B?VDBxeG83bTdzL1JjVFo4eG9BS1hBQkRCa2diMlVLL3N6bU9aVzc3cUZzVlhZ?= =?utf-8?B?SVVUcUpKanZLU3NuU3hMSmtUYmF2VDdkekh1Snd4ZDZ1Vmg1YUtrT1JRMUEz?= =?utf-8?B?UDUyVVJYY3R6T2VCQTBGQ0FVLzY2VUpuajJwT2JGUmlxc2R5dmVTMlpIWHNj?= =?utf-8?B?cTd0WTBEdXBUT3drNTBLUTliZDg2akdXT1Q4ZjZvQUpuL1o0cEdJOGJCRlRS?= =?utf-8?B?ZllvWnZrTjI4TUV6MzdONGFUWXlrdy9EdFlIbTMwWGVBR0lCRVhiVndiM1Vr?= =?utf-8?B?RjY0YlNlbG12QXppUW1wMkIzOUpBY3dNQXFPMHV3V2ltalh2TDNqSzZDYk9w?= =?utf-8?B?czRYaG9Ed1FJM1J1ZXJEVW5uT2U4WGdHQ2pEUWxJN2w1YkM3TmtMdm94NGJt?= =?utf-8?B?ZEZFVDJOYnRxZHlyaFJkS2tJZjVLZkx1Zm1nandDditaSmpHSVBiMlpaM2hH?= =?utf-8?B?enIzd3ByanozOGFpUEpOalREMnlCZ0l1SHNmcUJXenhCK0s0THNNb3BJa3NH?= =?utf-8?B?RzllSENMamtCWldnL0RrdG5UajVnU0FJWExCZzRvdnRGV2hkdkFISFcvTjhF?= =?utf-8?B?RCtCdE5yamlJQS9sV0xXY1o5ZkRVdFRNSGlNeGdTcm5kQ3YrL1lWOGdVbFlk?= =?utf-8?B?MUlIb3lYbk5IalRvTXRhL085c2JTdnJpSlIwa3lWL09HbU1EeG1ZOEdIWXJQ?= =?utf-8?B?Sk9NQ0UveVpnSWorU1ppdVZMRVJMMXlUaEpJUTB1aHRvLzhuRURCVlJaczNi?= =?utf-8?B?dUg4aXFVa2REbEZOOGFUYit6WmNlRGwrTklqUzhJNGcwLzdmcEpzK2pyWGhn?= =?utf-8?B?Nm9lS3I0Um8xb2t3WWtmQlJLZk41Qy9Yc2p1UFovdldybDhDM3JVY1p6eDlo?= =?utf-8?B?cFMxbHhQK25tZEViSXJ6R2lzYlNvTXlLODZDMndiNGRkbDhHMXBZZ0JVTEVi?= =?utf-8?B?aG5mbGlYY3NjdGJsTDhZTzIweWI2ejZQK09MMC9rb1RVMEpwWDR0V05SN0FN?= =?utf-8?B?SjlybmxlRzNwK0RuOHcrenFXRlE2NVFLRjZYanlCUS9zdWZjUlg0RlJONk45?= =?utf-8?B?a2ZHVGt2aThob3l3U00vYWkyWHFaRE5CQ1VmTFl4ZjdvM2M0cUZ6anovcnBx?= =?utf-8?B?N2taQjlmNkY5Q1cyWW1EL2VlSUI3bTVtL0dpeFRmUGhad2VYU084RlpQK1E1?= =?utf-8?B?VkRVOTNvcU5QVGdqUVphc2MzMHI1bmN2S2wxYlNkTWpwQy9MNVlWUjlFTjdj?= =?utf-8?B?WXQvL21YT1VaVXVBNC9hUkV5STdqQ2VRYnlDQmp4MHcyYU8zb2hUb29VZnlG?= =?utf-8?B?dXVBdXVyODhzaWpNMFp4RjdNNjZabzZIV3g3N3ovY29LMUhEYmI4N1pNcTQ1?= =?utf-8?B?UlUvbE1lelFsOEZmRjZPR1pmMGFjK28waFhjYWJhalU1d1NUUlRpeUwyK3c1?= =?utf-8?B?MHpuSS9hZFc4SS9Lbzl3elVRZjdwS0xaSXp6a0Exd0tYYTREaWNEMzlHUU42?= =?utf-8?B?a0E9PQ==?= Content-ID: <5767EB436714504F8170A3252D96A59D@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: 05c05bea-0a45-4e4b-f8a3-08daeee326ab X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2023 06:07:39.9825 (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: BlNkr1jEKdG8TQsyQ1f/5mbXlFw0I0JjJ4/wW6D1280sGB+GGVXh51000zBNATH2dnG+J6CMrSxcyc0rxtG22w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7805 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2] vaapi: support VAProfileH264High10 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: On Di, 2022-12-27 at 11:12 +0800, Jianfeng Zheng wrote: > see https://github.com/intel/libva/pull/664 > > Signed-off-by: jianfeng.zheng > --- > configure | 13 +++++++++++++ > libavcodec/h264_slice.c | 6 ++++++ > libavcodec/vaapi_decode.c | 10 ++++++++++ > libavcodec/vaapi_encode_h264.c | 24 ++++++++++++++++++++++-- > libavcodec/vaapi_h264.c | 5 +++-- > 5 files changed, 54 insertions(+), 4 deletions(-) > > diff --git a/configure b/configure > index f08cdab3d1..ac199d97cb 100755 > --- a/configure > +++ b/configure > @@ -2410,6 +2410,7 @@ HAVE_LIST=" > texi2html > xmllint > zlib_gzip > + va_profile_h264_high10 > " > > # options emitted with CONFIG_ prefix but not available on the command line > @@ -6958,6 +6959,18 @@ if enabled vaapi; then > check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG" > check_type "va/va.h va/va_enc_vp8.h" "VAEncPictureParameterBufferVP8" > check_type "va/va.h va/va_enc_vp9.h" "VAEncPictureParameterBufferVP9" > + > + # > + # Using 'VA_CHECK_VERSION' in source codes make things easy. But > we have to wait > + # until newly added VAProfile being distributed by VAAPI released > version. > + # > + # Before or after that, we can use auto-detection to keep version > compatibility. > + # It always works. > + # > + disable va_profile_h264_high10 && enabled h264_vaapi_hwaccel > + test_code cc va/va.h "VAProfile p = VAProfileH264High10" && > + enable va_profile_h264_high10 > + I think we should wait for a new VA-API version, otherwise it is meaningless to merge this patch without vaapi support. > fi > > if enabled_all opencl libdrm ; then > diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c > index 420758ba0a..b9236281b1 100644 > --- a/libavcodec/h264_slice.c > +++ b/libavcodec/h264_slice.c > @@ -806,6 +806,12 @@ static enum AVPixelFormat > get_pixel_format(H264Context *h, int force_callback) > } else if (CHROMA422(h)) > *fmt++ = AV_PIX_FMT_YUV422P10; > else > +#if CONFIG_H264_VAAPI_HWACCEL > + // Just add as candidate. Whether VAProfileH264High10 usable or > + // not is decided by vaapi_decode_make_config() defined in FFmpeg > + // and vaQueryCodingProfile() defined in libva. > + *fmt++ = AV_PIX_FMT_VAAPI; > +#endif > *fmt++ = AV_PIX_FMT_YUV420P10; After applying this change, AV_PIX_FMT_YUV420P10 is always added as candidate for all 10bit videos when CONFIG_H264_VAAPI_HWACCEL is 1. It should be: else { #if CONFIG_H264_VAAPI_HWACCEL *fmt++ = AV_PIX_FMT_VAAPI; #endif *fmt++ = AV_PIX_FMT_YUV420P10; } > break; > case 12: > diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c > index 134f10eca5..551c7593b9 100644 > --- a/libavcodec/vaapi_decode.c > +++ b/libavcodec/vaapi_decode.c > @@ -402,6 +402,9 @@ static const struct { > H264ConstrainedBaseline), > MAP(H264, H264_MAIN, H264Main ), > MAP(H264, H264_HIGH, H264High ), > +#if HAVE_VA_PROFILE_H264_HIGH10 > + MAP(H264, H264_HIGH_10, H264High10 ), > +#endif > #if VA_CHECK_VERSION(0, 37, 0) > MAP(HEVC, HEVC_MAIN, HEVCMain ), > MAP(HEVC, HEVC_MAIN_10, HEVCMain10 ), > @@ -510,6 +513,13 @@ static int vaapi_decode_make_config(AVCodecContext > *avctx, > if (exact_match) > break; > } > +#if HAVE_VA_PROFILE_H264_HIGH10 > + //incase 8bit stream being decoded under VAProfileH264High10 > + if (avctx->codec_id == AV_CODEC_ID_H264 && > + (avctx->profile == FF_PROFILE_H264_EXTENDED || > avctx->profile == FF_PROFILE_H264_BASELINE) && > + matched_va_profile == VAProfileH264High) > + break; > +#endif How about to take bit depth into account when finding out the matched va profile ? > } > av_freep(&profile_list); > > diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c > index dd17be2190..0d2b4631b8 100644 > --- a/libavcodec/vaapi_encode_h264.c > +++ b/libavcodec/vaapi_encode_h264.c > @@ -23,6 +23,7 @@ > > #include "libavutil/avassert.h" > #include "libavutil/common.h" > +#include "libavutil/pixdesc.h" > #include "libavutil/internal.h" > #include "libavutil/opt.h" > > @@ -290,10 +291,21 @@ static int > vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx) > H264RawPPS *pps = &priv->raw_pps; > VAEncSequenceParameterBufferH264 *vseq = ctx->codec_sequence_params; > VAEncPictureParameterBufferH264 *vpic = ctx->codec_picture_params; > + const AVPixFmtDescriptor *desc; > + int bit_depth; > > memset(sps, 0, sizeof(*sps)); > memset(pps, 0, sizeof(*pps)); > > + desc = av_pix_fmt_desc_get(priv->common.input_frames->sw_format); > + av_assert0(desc); > + if (desc->nb_components == 1 || desc->log2_chroma_w != 1 || > desc->log2_chroma_h != 1) { > + av_log(avctx, AV_LOG_ERROR, "Chroma format of input pixel format " > + "%s is not supported.\n", desc->name); > + return AVERROR(EINVAL); > + } Is it possible a new vaapi driver would support new formats? e.g. vuyx for high profile 4:4:4 ? > + bit_depth = desc->comp[0].depth; > + > sps->nal_unit_header.nal_ref_idc = 3; > sps->nal_unit_header.nal_unit_type = H264_NAL_SPS; > > @@ -303,11 +315,11 @@ static int > vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx) > avctx->profile == FF_PROFILE_H264_MAIN) > sps->constraint_set1_flag = 1; > > - if (avctx->profile == FF_PROFILE_H264_HIGH) > + if (avctx->profile == FF_PROFILE_H264_HIGH || avctx->profile == > FF_PROFILE_H264_HIGH_10) > sps->constraint_set3_flag = ctx->gop_size == 1; > > if (avctx->profile == FF_PROFILE_H264_MAIN || > - avctx->profile == FF_PROFILE_H264_HIGH) { > + avctx->profile == FF_PROFILE_H264_HIGH || avctx->profile == > FF_PROFILE_H264_HIGH_10) { > sps->constraint_set4_flag = 1; > sps->constraint_set5_flag = ctx->b_per_p == 0; > } > @@ -348,6 +360,8 @@ static int > vaapi_encode_h264_init_sequence_params(AVCodecContext *avctx) > > sps->seq_parameter_set_id = 0; > sps->chroma_format_idc = 1; > + sps->bit_depth_luma_minus8 = bit_depth - 8; > + sps->bit_depth_chroma_minus8 = bit_depth - 8; > > sps->log2_max_frame_num_minus4 = 4; > sps->pic_order_cnt_type = 0; > @@ -1111,6 +1125,9 @@ static av_cold int > vaapi_encode_h264_configure(AVCodecContext *avctx) > } > > static const VAAPIEncodeProfile vaapi_encode_h264_profiles[] = { > +#if HAVE_VA_PROFILE_H264_HIGH10 > + { FF_PROFILE_H264_HIGH_10, 10, 3, 1, 1, VAProfileH264High10 }, > +#endif > { FF_PROFILE_H264_HIGH, 8, 3, 1, 1, VAProfileH264High }, > { FF_PROFILE_H264_MAIN, 8, 3, 1, 1, VAProfileH264Main }, > { FF_PROFILE_H264_CONSTRAINED_BASELINE, > @@ -1175,11 +1192,13 @@ static av_cold int > vaapi_encode_h264_init(AVCodecContext *avctx) > av_log(avctx, AV_LOG_ERROR, "H.264 extended profile " > "is not supported.\n"); > return AVERROR_PATCHWELCOME; > +#if !HAVE_VA_PROFILE_H264_HIGH10 > case FF_PROFILE_H264_HIGH_10: > case FF_PROFILE_H264_HIGH_10_INTRA: Is FF_PROFILE_H264_HIGH_10_INTRA supported when HAVE_VA_PROFILE_H264_HIGH10 is 1 ? FF_PROFILE_H264_HIGH_10_INTRA is not added into vaapi_encode_h264_profiles[]. BTW fate server failed to apply your patch, please check your patch format. See https://patchwork.ffmpeg.org/project/ffmpeg/patch/CAFWZL8qpn_+ehMrexRg+J8TQqjKZxBES7SKMwQjfW0vS3vHWMg@mail.gmail.com/ Thanks Haihao > av_log(avctx, AV_LOG_ERROR, "H.264 10-bit profiles " > "are not supported.\n"); > return AVERROR_PATCHWELCOME; > +#endif > case FF_PROFILE_H264_HIGH_422: > case FF_PROFILE_H264_HIGH_422_INTRA: > case FF_PROFILE_H264_HIGH_444: > @@ -1267,6 +1286,7 @@ static const AVOption vaapi_encode_h264_options[] = { > { PROFILE("constrained_baseline", FF_PROFILE_H264_CONSTRAINED_BASELINE) > }, > { PROFILE("main", FF_PROFILE_H264_MAIN) }, > { PROFILE("high", FF_PROFILE_H264_HIGH) }, > + { PROFILE("high10", FF_PROFILE_H264_HIGH_10) }, > #undef PROFILE > > { "level", "Set level (level_idc)", > diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c > index 9332aa6f31..3e44c8caf6 100644 > --- a/libavcodec/vaapi_h264.c > +++ b/libavcodec/vaapi_h264.c > @@ -234,6 +234,7 @@ static int vaapi_h264_start_frame(AVCodecContext > *avctx, > VAPictureParameterBufferH264 pic_param; > VAIQMatrixBufferH264 iq_matrix; > int err; > + int qp_bd_offset = 6 * (sps->bit_depth_luma - 8); > > pic->output_surface = ff_vaapi_get_surface_id(h->cur_pic_ptr->f); > > @@ -256,8 +257,8 @@ static int vaapi_h264_start_frame(AVCodecContext > *avctx, > .log2_max_pic_order_cnt_lsb_minus4 = > sps->log2_max_poc_lsb - 4, > .delta_pic_order_always_zero_flag = > sps->delta_pic_order_always_zero_flag, > }, > - .pic_init_qp_minus26 = pps->init_qp - 26, > - .pic_init_qs_minus26 = pps->init_qs - 26, > + .pic_init_qp_minus26 = pps->init_qp - > 26 - qp_bd_offset, > + .pic_init_qs_minus26 = pps->init_qs - > 26 - qp_bd_offset, > .chroma_qp_index_offset = > pps->chroma_qp_index_offset[0], > .second_chroma_qp_index_offset = > pps->chroma_qp_index_offset[1], > .pic_fields.bits = { _______________________________________________ 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".