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 EE45742274 for ; Tue, 31 May 2022 08:48:20 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 319F568B620; Tue, 31 May 2022 11:48:16 +0300 (EEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A3A1568B527 for ; Tue, 31 May 2022 11:48:07 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653986893; x=1685522893; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=L/zUdpkJfna6ZM/MXlXVSWua/n1fYtTSWIhMYTsYhUY=; b=fa8sOj1kIpyq43pnQvXR3VX7KA8tpT7du6Wcn6aF/ZyC6ScKvBEJP19f FTBKJwa/k7fReFF59aWCXmgPRqfamlc84lvXHnhFC3kUk5uTVvOKMtqko uyBfYHGHK5PZpHFzgcIiN+ewS6S+zpwhYMn6KY1SwI5v3wmkKT5Giz+pn 91i2pIAZltrlkNrRjOm7voegOIbFt+VLcakkxNQcn02U9qOZEb1cEYlTa PUK9E1C9jjJxdf+NLCSCIuVbVaXhXOGAWmqzhHITWKu3r12dfTIot4evH bOeHyu2ScbtjC18/wuNskMSBxn63HtLPqb/ET/KdfV2jv11aU7y3kzPkv Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10363"; a="275194639" X-IronPort-AV: E=Sophos;i="5.91,264,1647327600"; d="scan'208";a="275194639" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2022 01:48:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,264,1647327600"; d="scan'208";a="529487418" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 31 May 2022 01:48:03 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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; Tue, 31 May 2022 01:48:03 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Tue, 31 May 2022 01:48:03 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.102) 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.2308.27; Tue, 31 May 2022 01:48:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eYDHAEIiX4aIEriYKKrQyq0Lq1AYhr8YpFIbrcNe9tpHu5vV3mO5l9+S74aJnAdmaxICZatU3oM6euK/VuxevSzY3kvhlBFtphVxFSD9IdkiyLWQyqyq06nYRjWgsRNJfWPBR1aGSQ6qhmwFqPfmmJ8KV+Xu+UN3oXzJapn4jkYtQEkE3/MLJiZULAcuofgG+ZUs2UEcPj7RzoOd+R5oA+/LQhjZTNMT70xyMTr7SBQYzy2482G1bgm30aaz7RcZe+cfoQ1wIx+tMMx6GTLVkQgj/a728PRPUVEGmWf61JHURzHQpHqQLCJFplIJZkghP12TF+Yhz442KYX+u7qEgQ== 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=L/zUdpkJfna6ZM/MXlXVSWua/n1fYtTSWIhMYTsYhUY=; b=RwJlq7srGqnZBz1AGVcjmI7E4wnNSoHbcNQgRNR4Dn0iyLFyYcV2c4K7plXywzPJ9x8TDy4UN++7wB+4+zBpM2baxMtNpkuDznde1QAb2k0QsTSl/onTBMmU86Si23VMqf9SlvosOXE4B0CcKlb7lH4N4dul9DdtZnU7uli8QDOaIlnID8ERRYjSgNZ4vL1aRXHvJ0OBj/9m7I6L8mtBOSZFFG5PEHddleLylDgxAXIWlknLpOGyrNxW1AUSEX8Ma8bhIPvD9Ych9VQQHtxui60VCNlJobbKdzbxGjmltoKPQsc7ixKkuOe8x1tZrvHUMh6j6K1A8H9PHFJcrcJbxA== 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 MWHPR11MB1838.namprd11.prod.outlook.com (2603:10b6:300:10c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Tue, 31 May 2022 08:48:01 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::2d06:ec38:937a:da73]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::2d06:ec38:937a:da73%6]) with mapi id 15.20.5293.019; Tue, 31 May 2022 08:48:01 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v08 09/10] qsv: use a new method to create mfx session when using oneVPL Thread-Index: AQHYWuIbsISCdYilBEypdPXyy4beyq0IpOOAgADF/4CAL3WbgA== Date: Tue, 31 May 2022 08:48:01 +0000 Message-ID: References: <20220428092327.16558-1-haihao.xiang@intel.com> <20220428092327.16558-10-haihao.xiang@intel.com> <63eba3b2-afb4-6189-cd36-0ba0c1d45934@jkqxz.net> <0c7fe7d8b5c26b4eec6f0f0bba4d13752edfd300.camel@intel.com> In-Reply-To: <0c7fe7d8b5c26b4eec6f0f0bba4d13752edfd300.camel@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: b15cb151-326d-4f5e-228b-08da42e244e0 x-ms-traffictypediagnostic: MWHPR11MB1838: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: T7yBHkf0xUJ2DAJMz3ooyeRuhLkq3Aa/IWJYNUGzqks0zUSvO3uXIQz1BGhOqONMwxgfNCu+qNvkC+UF0QNvf5/MjGUNmFJ+hNvTMXHSifDhFitrS11Aa+KnLX+7lEw54saAh/8+y0QDEGwiTeGegATQVEE3bVjj5QWSfkuROLSWuDgILe37YQ9QaRYqda/ylzIeelaLeKWMNHH8T+f1JMmhy9wi7/ljRdMWnWdWOEJDhS1SW95J1lvefpRwrpSUPvMp5QmfADv9mvKRyn2oB0CKflCRNLvIXPucVZnavI4Apwfy7qC0MbtE+oL52NkZ8QpfoTcMGUqn4z3daa2DkXAeZiqsovhfS/4Teq790UEIoZXrp1TcKX3LzAkyWZc3eq1lUUVayLXFQN0TP7Bdd3kIE+wRf77+5UuMoaRlJa1yVhhlN7+nNE5oYV1fp/kEv1LwmD/KVm94s+TGcdr8Y7en+0+7i00FdGhxom9NuyB8yxdCLRNwR74h1WRLtf+piOZUMunUQc0VdhGG8F3kCDHsznvlGpsIXcr2UIJ8ZcSz9Aff4VQgq4dVXRU6mPrk2F/aEv9iapxlTRf9iLR2YrqaPZWhwVod8nHrouYeYdbE3HWBKr5/RAxER+iKzDjBBqUEpJ5yGtu2Q4vhFhwDFdFSxPbTYrS123b6iXvzfPZFdXZ2fNzxYN28J8C+tXBKMjcDpye0tLU0m/tpPjjS0uV/Sb9Z9Xr4AqlTCDWGyXjXouHNOzvHYs9Uc1sIgk7gL/TC3owS4dXF5GhihWHmuwes84CKF37VPobJHokKE/xDVAR4u9gheFYVKWChIp1yYp5z8IfQOY0ttNiLFP92DxtN0m+QKWT11a8dtXXbPBA= 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)(86362001)(26005)(966005)(45080400002)(508600001)(38070700005)(76116006)(122000001)(8676002)(6512007)(53546011)(316002)(91956017)(71200400001)(6916009)(5660300002)(6486002)(66556008)(36756003)(64756008)(83380400001)(66446008)(66476007)(8936002)(2906002)(186003)(38100700002)(2616005)(66946007)(82960400001)(6506007)(99106002)(309714004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UzM2eGdJWHJQWFJOQjBFWStnSDNiSG96dXE4c09wVGZ0TzQrS2wzZ1NZSjFz?= =?utf-8?B?b1pRTzRpNm9mVVNYbll2TE5NOGNNd3dSRjZqU0NLb251eHR5RTZCdFBZTGFw?= =?utf-8?B?ZDBVeUxzU1lEckM2TURQYUFNNXBPdktsbCtPelJLVUxEdC9KNHRYUEJvZTh5?= =?utf-8?B?ZGhtYUw5a2dQTmVKKzhwckd5eE5ibmduVUo5TXBTUmY3UUg3R1BhaERzQ1Nm?= =?utf-8?B?akN4enUrMWpEa1I1UlpEdGZOZ2o5RThJWkZEOVdTYWhZMHA0N1pLTk1GOTA4?= =?utf-8?B?a21uRG5CemJ6VUN4Q2JqZUFWQnZBMEg5cDk1a3ptdHVQa05tU09ZU0NHdi8v?= =?utf-8?B?NVNFTm5Wb1hCeURXbWRmRlhKcTFKRFM3WEw4Zms2MUFTeDB0b3NxT3FIRlBn?= =?utf-8?B?anpjM3RrMWRxNVpBREN0OEFBVVNSSk4xVnlHcFdZeWhPN1dLOU96M1RHMlQz?= =?utf-8?B?M3BDVWxnbkNTODZnWm1CQUoyaFM3M1pvYmMzRFNBN0t2UE5NVGF1Sys2Um5W?= =?utf-8?B?bHFIK0xRUHJZbjVsSFlPK0JEcklFVmVYUzVFempsTFQwUFpGMnp6NGh2Tld0?= =?utf-8?B?eUg3SXg3YU4xUFFCdmJ1R1hockt6QkpVZ05uUEVNVUJvcnFQeTBISzAybkdL?= =?utf-8?B?alliVVdZb2lXdkZxdTRQQmFSSXg0Nkx3MDgvdXhzYzdqcXR5NjZkVjBsTjBh?= =?utf-8?B?TEFoRjlmck4zZ1hlU0UzcmVGbS84c2ZJekRTV05aK0dMLzVsc0JzeTBCVm1R?= =?utf-8?B?MDc3TW9aVFR1VDNUR00xNllQM2tQbXl6NEY3RWNEc1lzTHNxUFFhaklEMVll?= =?utf-8?B?dTlXdG8zakxyTmE1cFlvVUFIZlY0T2d1OThDMkVncW9sMktteHoxVFFudXlF?= =?utf-8?B?Um0zWVRnMWRjWElTbVRpeFpGYjhuRmwvU3lGTVBEeTRHaHNWYnZ5RW90eFNS?= =?utf-8?B?WTg0aHBLYVdqUHF4T2Y4c2lSS0l4TzdiMmo4QVpGOFJESTQ0cXBJaGZ3dDN3?= =?utf-8?B?bjZVQXRSZ0Mxb05EbXBhYzgrTFhjY0lkOUVVbW05TjRRS3o0UHRjODdGK3da?= =?utf-8?B?bHY5cDNYT29RTGNOd2Z1aGdUYXdYU0hmOTlpWUNiNEVqVkFWWTlCTkhwTnpK?= =?utf-8?B?V1B6c2VFWjhYNHowY1hieWZsVnF1NGJoNUJ2K1h5Ync3djNsNU9Ib0w2eVNT?= =?utf-8?B?UCtmQjNqamZrUnl5Yzd2K3phb1U3d1F4K0kwcFh0WnZ5U0dXZGhmdVF1aWpv?= =?utf-8?B?ZlFhOE5MTHVTdDZjU04rOEpWWmkxTmxLTzVwZjJGc3RNclYveEovVzIva0pC?= =?utf-8?B?bnVmZzBSbXJobm00L1lKQU1MM3dqaUJoR2V4dXhyZjY5UGlETS9iNWpxNXc5?= =?utf-8?B?NlpKNHdzbXVkQytnSEFJTmFXY1M3Wnhsdy9EMEhmdVhjTXdtdEtCMVN3cVcx?= =?utf-8?B?VldDR0pSUFR4OTQ5Yy9aZkJsMm1HT2grZ00xZWozeGxqZWFtTE5BUnF1aUZk?= =?utf-8?B?dXVCUmJSSSttV05wbEZ6TWJJQU1weGt2dXJTaStRcU9wN1VWSjNER3gxMHQ4?= =?utf-8?B?QTBwdEJtcGI2eGwvODRLQndhcldkNlAydStwSlh3M3VlaUE3SWtPSVFqcTZJ?= =?utf-8?B?VzJiNG0xSDNFeDZKVmxNdVdCdThOVFNOSVBhUDlzTzc4SUZwN2hkQTk4RGMx?= =?utf-8?B?WkQvVlh3ZmJva1pvNlBkK1V0Q3FHVm1Sb3orT3FpY0drWVZjWGJSTVhtK28r?= =?utf-8?B?d2dqUzZ0bCtzeENsVXdnRDIzWXBKWDluT0Q2WE8rYW4xTHpzWk5RRlErNXJo?= =?utf-8?B?d3BzKzlsRjRWMS8zd2VGb014QzhQSXluelNyVDdtald0STNMMmc5bGpjRW9G?= =?utf-8?B?ZTVlTVJJQWUrUlJSN2NERjRXMU94ajJISHg4Sk5WZi9VeWJKVEhSY2RJNjU4?= =?utf-8?B?OVo3VWloL05JVlJzTE5KSktGcHBvT1U1OWdxQTFvOW9IUGpTVElVRklGWWk0?= =?utf-8?B?Q2ZiWDBGUEswZlU4Zmt5TXFrK1VydlV4alcwR0hLOXM5VDhjZ2NEYnJzV3RH?= =?utf-8?B?OHgwUWd0SWJEQ2ZtTUpLQjBLZC9la3FtRlJ1T3psSDFRYzdSMU1RN0tvK256?= =?utf-8?B?SGRpa3BOZHpKdWEwUUlUUXh3eDBQSDFITkRBelppYVkvTVpXMERtRHlsb1hr?= =?utf-8?B?dzEzekIrT3NseTUzQmFVODRFdEJwUm1jazcvaFdXQlJBdXM3TUdWNEpyVkZ2?= =?utf-8?B?akdpbkJVZjBPaG5lMzc0RmRyQ3ArbzlraDJGYjRSeUF6aEhGTXl2eFpteUhK?= =?utf-8?B?elprdURkTDlkVGV1ZWE1dndnUEVJNEhVU3dBam85MENJRjlON1d5TDdVRVVz?= =?utf-8?Q?1X3tSvruN9KOI0iw=3D?= Content-ID: <9A2269EED7DA26489601D074DBB2B082@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: b15cb151-326d-4f5e-228b-08da42e244e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2022 08:48:01.1615 (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: ZwmzlGxUNMNJ2qhek3wXQXBE2YrAMVmX8NMThnBF+98nDDSKwb6I0ie0f28X3LbYsu3CqYckYPHmUnLE13fzVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1838 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v08 09/10] qsv: use a new method to create mfx session when using oneVPL 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 Sun, 2022-05-01 at 04:03 +0000, Xiang, Haihao wrote: > On Sat, 2022-04-30 at 17:14 +0100, Mark Thompson wrote: > > On 28/04/2022 10:23, Haihao Xiang wrote: > > > In oneVPL, MFXLoad() and MFXCreateSession() are required to create a > > > workable mfx session[1] > > > > > > Add config filters for D3D9/D3D11 session (galinart) > > > > > > The default device is changed to d3d11va for oneVPL when both d3d11va > > > and dxva2 are enabled on Microsoft Windows > > > > > > This is in preparation for oneVPL support > > > > > > [1] > > > https://spec.oneapi.io/versions/latest/elements/oneVPL/source/programming_guide/VPL_prg_session.html#onevpl-dispatcher > > > > > > Co-authored-by: galinart > > > Signed-off-by: galinart > > > --- > > > libavcodec/qsv.c | 197 ++++++++++-- > > > libavcodec/qsv_internal.h | 1 + > > > libavcodec/qsvdec.c | 10 + > > > libavcodec/qsvenc.h | 3 + > > > libavcodec/qsvenc_h264.c | 1 - > > > libavcodec/qsvenc_hevc.c | 1 - > > > libavcodec/qsvenc_jpeg.c | 1 - > > > libavcodec/qsvenc_mpeg2.c | 1 - > > > libavcodec/qsvenc_vp9.c | 1 - > > > libavfilter/qsvvpp.c | 113 ++++++- > > > libavfilter/qsvvpp.h | 5 + > > > libavfilter/vf_deinterlace_qsv.c | 14 +- > > > libavfilter/vf_scale_qsv.c | 12 +- > > > libavutil/hwcontext_d3d11va.c | 7 + > > > libavutil/hwcontext_qsv.c | 515 ++++++++++++++++++++++++++++--- > > > libavutil/hwcontext_qsv.h | 1 + > > > libavutil/hwcontext_vaapi.c | 13 + > > > libavutil/hwcontext_vaapi.h | 4 + > > > 18 files changed, 812 insertions(+), 88 deletions(-) > > > > > > ... > > > diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c > > > index 8ab96bad25..fd5fedbdac 100644 > > > --- a/libavutil/hwcontext_d3d11va.c > > > +++ b/libavutil/hwcontext_d3d11va.c > > > @@ -525,6 +525,11 @@ static void d3d11va_device_uninit(AVHWDeviceContext > > > *hwdev) > > > } > > > } > > > > > > +static void d3d11va_device_free(AVHWDeviceContext *ctx) > > > +{ > > > + AVD3D11VADeviceContext *hwctx = ctx->hwctx; > > > +} > > > + > > > static int d3d11va_device_create(AVHWDeviceContext *ctx, const char > > > *device, > > > AVDictionary *opts, int flags) > > > { > > > @@ -537,6 +542,8 @@ static int d3d11va_device_create(AVHWDeviceContext > > > *ctx, > > > const char *device, > > > int is_debug = !!av_dict_get(opts, "debug", NULL, 0); > > > int ret; > > > > > > + ctx->free = d3d11va_device_free; > > > + > > > // (On UWP we can't check this.) > > > #if !HAVE_UWP > > > if (!LoadLibrary("d3d11_1sdklayers.dll")) > > > > This change doesn't do anything. > > thanks, this callback is not used and should be removed. > > > > > > ... > > > diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c > > > index c3a98bc4b1..cb714df934 100644 > > > --- a/libavutil/hwcontext_vaapi.c > > > +++ b/libavutil/hwcontext_vaapi.c > > > @@ -1572,6 +1572,7 @@ static void vaapi_device_free(AVHWDeviceContext > > > *ctx) > > > if (priv->drm_fd >= 0) > > > close(priv->drm_fd); > > > > > > + av_free(hwctx->device_name); > > > av_freep(&priv); > > > } > > > > > > @@ -1620,6 +1621,7 @@ static int vaapi_device_connect(AVHWDeviceContext > > > *ctx, > > > static int vaapi_device_create(AVHWDeviceContext *ctx, const char > > > *device, > > > AVDictionary *opts, int flags) > > > { > > > + AVVAAPIDeviceContext *hwctx = ctx->hwctx; > > > VAAPIDevicePriv *priv; > > > VADisplay display = NULL; > > > const AVDictionaryEntry *ent; > > > @@ -1665,6 +1667,11 @@ static int vaapi_device_create(AVHWDeviceContext > > > *ctx, const char *device, > > > "DRM device node.\n", device); > > > break; > > > } > > > + > > > + hwctx->device_name = av_strdup(device); > > > + > > > + if (!hwctx->device_name) > > > + return AVERROR(ENOMEM); > > > } else { > > > char path[64]; > > > int n, max_devices = 8; > > > @@ -1705,6 +1712,12 @@ static int vaapi_device_create(AVHWDeviceContext > > > *ctx, const char *device, > > > av_log(ctx, AV_LOG_VERBOSE, "Trying to use " > > > "DRM render node for device %d.\n", n); > > > } > > > + > > > + hwctx->device_name = av_strdup(path); > > > + > > > + if (!hwctx->device_name) > > > + return AVERROR(ENOMEM); > > > + > > > break; > > > } > > > if (n >= max_devices) > > > diff --git a/libavutil/hwcontext_vaapi.h b/libavutil/hwcontext_vaapi.h > > > index 0b2e071cb3..3e0b54f5e9 100644 > > > --- a/libavutil/hwcontext_vaapi.h > > > +++ b/libavutil/hwcontext_vaapi.h > > > @@ -78,6 +78,10 @@ typedef struct AVVAAPIDeviceContext { > > > * operations using VAAPI with the same VADisplay. > > > */ > > > unsigned int driver_quirks; > > > + /** > > > + * The string for the used device > > > + */ > > > + char *device_name; > > > > This new user-facing API field needs a lot more explanation. The only > > example > > you've got is for simple creation via DRM, which sets it to a device path. > > > > There are other ways to make a device: > > * Created via X11 (like ":0"). > > * Derived from a DRM device (e.g. from kmsgrab). > > * Manually created by the user (who need not have any path even if they did > > open via DRM, because they could have given the fd by something else like > > DRI3). > > > > What happens for existing users who have build against the current API > > without > > this field and expect it to continue working? > > > > I am generally very sceptical that hacking the library API like this is > > sensible. If you only want it to work in the ffmpeg utility (which is what > > the current version appears to do), then maybe you would be better off > > modifying that instead. > > > > If this new libmfx really does want to open a new device from the filesystem > > then you probably want to add new API to libva to supply that information. > > Thanks for the comments. oneVPL may load implementation per device, so it > needs > some device info when enumerating all implementations. I'll investigate > whether > we can get the required info from the VADisplay handle We may get the corresponding device info via a VADisplay handle, but a new API in libva is needed. Without the corresponding device info, oneVPL will load the default implementation which can work well for single Intel device, so the device info is required only for multiple Intel devices in a machine. I'll update the patchset without changing AVVAAPIDeviceContext, and leave a TODO for multiple devices support. Once the new API is added in libva, I'll submit another patch for multiple devices. Thanks 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".