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 5BA0A40B62 for ; Mon, 27 Dec 2021 20:31:59 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4DC6E68B04A; Mon, 27 Dec 2021 22:31:57 +0200 (EET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11olkn2092.outbound.protection.outlook.com [40.92.18.92]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E23C768AF50 for ; Mon, 27 Dec 2021 22:31:50 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EyX81Np+lHLLtdz9yT7mPJ1S7sKTp0gGmcfq0BN8WAtveMvf9ABF30hKAIabLIlGZSuD4PPB1EOvmFLWv+mABMJ7w5xrPV0qmvoQt2IKCA1Fp3QzjS0KQZ3XOzYAE2Yek/jUCwy+44ssuo+DRLtgkmSwZeS3OmRSzXIi/Ztsc2RW2s1jOQqIVKglP5x+ODGUsK5sO2T2bSXQmp9UAAjUxWI4Q8hv82Ssgh/JLWulhwO6LAinwKkx020h7KTtIJxEzdozKCRapIu/GH2WS0gSWzX0eTCESvPaccRiseC0zGYut0e5wiiZIdEX+szwjDaS7/I7Xt0F9fipUAiAamk5cQ== 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=tUwvFws0uJCxEB9mNUTPOnk1wKvWtKvfbWnvlUsWzQ4=; b=Twg1PnGag7AmN8mwSLR4hvg4aOjpUQmBvfcD9vdv6B5GzOwPGiujzSQaiab8tfLoXtzSu09I7YI+ne5Sjdq7E3Vig950C4eWM+QPiMBzgd2oGcc8wybhm1TgPxA5ihhPack40pw9n8CLnHE8U4U5wFsSApyqq9qtdZLrFQP1ES0hnVB2emR9i8XCeREHdwv2uGdHaj/6JcXtj4cK0hCsNazcQyko37j7hyWuSNaEx/k1ovhDs0ivqjMIN3s+2wejzh7lbIUlw1DFq7DHUz60yDn3LFstwSiykEPFq0K+mqdhRnFt4+t8WKXf86znzR2QgUdgID0y0nSBOAwlX54a4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tUwvFws0uJCxEB9mNUTPOnk1wKvWtKvfbWnvlUsWzQ4=; b=W47sy2By3/7mZ2bV/c8EaUePPyyC6LzxswP9U+QtLskYabuYMB9nt3vEPnNrxDt9vxYE9BwWJnNyQirtlI0KJFoDX581H5UKuNjAcbBf0wdIPuyXvdemgBbk/Qn2xBGvfzJXoo/n/J13qENRVLB3Aur9tH0wgFaSx+AqQ0FZkozTaKZO5/mkvPFZXo200+kzmPJusWtrVqN9xU+jjvieq+WG5tH6OoP85TT1jH2kkmcrRDFNiMEMWq8G0eVDJ1fm3dt8gc26MI4QKmQPD3RABZPf+s4/iw047x3XDFauZwy9pYJ+/isRfWo3QNFQzsUbCRhW0evObKVk33rTnFkBzg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by DM8P223MB0159.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:5::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.19; Mon, 27 Dec 2021 20:31:47 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::9c8d:fc63:9488:9775]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::9c8d:fc63:9488:9775%7]) with mapi id 15.20.4823.023; Mon, 27 Dec 2021 20:31:47 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl Thread-Index: AQHX2sLbRTyIEmFJc0+hIglvJzmE7KxG7+iAgAAOPbA= Date: Mon, 27 Dec 2021 20:31:47 +0000 Message-ID: References: <20211116081623.3081766-1-wenbin.chen@intel.com> <20211116081623.3081766-3-wenbin.chen@intel.com> <92735cd0-179b-cbf6-b191-e440be779b66@jkqxz.net> In-Reply-To: <92735cd0-179b-cbf6-b191-e440be779b66@jkqxz.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [kfB5jwFB+4a3GHKS6TBZU3wOmiLIePdw] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 370c82d4-fa0c-456c-e5df-08d9c977e7ed x-ms-traffictypediagnostic: DM8P223MB0159:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 241gIWAmRkywEvnqvC6Xwsum8E6Q1L84Ij72JIuklnAtmKsmCIGZbqCLRfd/2IuRQSxx60RGGoudPtczRZ5DP2scZOJubgAPIFjwQr9UNBJ9xx99NBTJmYASVyCeE1DL+nuLn4L5Y5umiyGdA18KXp5x6LQCt6fCt88YsMOQFqNUXbjNptBvAhegQWpNlEObnr65NnuX/zZkhB7ZhpHucGUzLimHIT4FeATy4FYujqY1trR7aqwwq58DjEGrV0JSr8zWSmRobi6xMTk4A/WMjHcj1BbTU+E+EDewXL99jZahu+g0S8h72YE4QIyRSZII7aTZrROy3tEUpd5EeiOGVBnLOifyfKlzs+w3MNYUz3xejxIioJAmfe/sl5ms8DVjEldcZxm1rrlwdOO6k5HrYFkuuXidDzc6VFaRK/la4AnZlazHQFjm/BCtAJ5ElgmKpRn/G0ioxEV2O+1Ks98+yo/l9uynqDws4P/BAwmpXSME3SJg2Ar7i1ee/GCpHzoPcA9Hdp48HvyCadMPdVPMKOXDGigvsPB1fKPof2+tm1CwLlYGHN+pgGQR2vEuoO1E2u1gwTkVOUIEvbUpUPWTBQ== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: VwQVhTpoE3dxF3gaeEjynWbwiTkwEXllyrOW++bJ49XLJNT9QviuJ0YrqFjaok2bhn5YOJhDTFHg6kbBqbikg/0xtg4+CW3xa1tLlACCPmFLrwQeJG7zTYNagZW9pjbOg6RnF1rW8id+eXZMLS7dS8aOeCSiQIwkg0kmrhPLZMCnZUGkAW/WQ1r4qCG2K59JP1AqWtgEfcv679GYRx4/lvgqCK2h2Ry3zDNcvHaD+RPHDnS7fei6vRDMkSvD2tvEbKT4c/LeLXj8PdP38sKP5dPG73rDIDwEYhmgsCCscxB9+AHnUZ6vuMZ/BiTp4ozjaUzigwGlvNqQ3d2lRomdWY3vXI8FJf8+CS6eXf4U2DSxUBRZMYA88hxVX+5QiImaeu75xvZ8AWCZIH5s9DFHZzv79DH8mrNbwCQLtHvrVAlviXSJVdMpL9fn1mVcPfPaXAcEPCp4Ifc3+GYyb8EdWGjB3YBa0Jbsjx6mUMLGxhy/C2nwlEnC+uEt8PFXUvfFPS5uwtIDqa1canaC2cL7XkePCFLXi9NH3X3cUjzYqqSAZJS2s7cCNdh1fvPbc7TqEaCThxboWYBY5B+N94Vux95nbCzwj4+RaQ0V1MWY519uGU2qYL5A1huhGknOay4r3g4lH41wTRx5Le/4zq9N/26ngTMgIq96Ox67Az5jXUoUUwLwHNfshju18Dhlme8uuQtJrQkEMcOyTdfN4ueJlmNIbiBvGupl7va+vJwMeE/p5VLO2ocPgUnLcBpc66N081NwghUFjPRXWpcP4M/WUKedlIuUYWVix2UBHbqBnMizfI53MDXFz2xXDVxM7V7OoNCHHnDeadaAkWfxD2Jj6QnS0QCD/hIzU5bPDH/hal7qnTEp07TWrHuenzSrWA03EjwgSj+t76BYy7buPWa9EvMmxeAonJv02eJDjOiil6wcqnsWizEW4NPWjafPD/bS MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 370c82d4-fa0c-456c-e5df-08d9c977e7ed X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Dec 2021 20:31:47.8696 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8P223MB0159 Subject: Re: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Mark > Thompson > Sent: Monday, December 27, 2021 7:51 PM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug > for mapping qsv frame to opencl > > On 16/11/2021 08:16, Wenbin Chen wrote: > > From: nyanmisaka > > > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > > Now the following commandline works: > > > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > > -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va -filter_hw_device > ocl \ > > -hwaccel qsv -hwaccel_output_format qsv -hwaccel_device qs -c:v h264_qsv \ > > -i input.264 -vf "hwmap=derive_device=opencl,format=opencl,avgblur_opencl, > \ > > hwmap=derive_device=qsv:reverse=1:extra_hw_frames=32,format=qsv" \ > > -c:v h264_qsv output.264 > > > > Signed-off-by: nyanmisaka > > Signed-off-by: Wenbin Chen > > --- > > libavutil/hwcontext_opencl.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/libavutil/hwcontext_opencl.c b/libavutil/hwcontext_opencl.c > > index 26a3a24593..4b6e74ff6f 100644 > > --- a/libavutil/hwcontext_opencl.c > > +++ b/libavutil/hwcontext_opencl.c > > @@ -2249,7 +2249,8 @@ static int opencl_map_from_qsv(AVHWFramesContext > *dst_fc, AVFrame *dst, > > #if CONFIG_LIBMFX > > if (src->format == AV_PIX_FMT_QSV) { > > mfxFrameSurface1 *mfx_surface = (mfxFrameSurface1*)src->data[3]; > > - va_surface = *(VASurfaceID*)mfx_surface->Data.MemId; > > + mfxHDLPair *pair = (mfxHDLPair*)mfx_surface->Data.MemId; > > + va_surface = *(VASurfaceID*)pair->first; > > } else > > #endif > > if (src->format == AV_PIX_FMT_VAAPI) { > > Since these frames can be user-supplied, this implies that the user-facing > API/ABI for AV_PIX_FMT_QSV has changed. > > It looks like this was broken by using HDLPairs when D3D11 was introduced, > which silently changed the existing API for DXVA2 and VAAPI as well. > > Could someone related to that please document it properly (clearly not all > possible valid mfxFrameSurface1s are allowed), and note in APIchanges when > the API change happened? Hi Mark, QSV contexts always need to be backed by a child context, which can be DXVA2, D3D11VA or VAAPI. You can create a QSV context either by deriving from one of those contexts or when create a new QSV context, it automatically creates an appropriate child context - either implicitly (auto mode) or explicitly, like the ffmpeg implementation does in most cases. When working with "user-supplied" frames on Linux, you need to create a VAAPI context with those frames and derive a QSV context from that context. There is no way to create or supply QSV frames directly. Looking at the code: > *mfx_surface = (mfxFrameSurface1*)src->data[3]; A QSV frames context is using the mfxFrameSurface1 structure for describing the individual frames and mfxFrameSurface1 can only come from the MSDK runtime, it cannot be user-supplied. I don't think that there's something that needs to be documented because whatever user-side manipulation an API consumer would want to perform, it would always need to derive the context either from QSV to D3D/VAAPI or from D3D to VAAPI in order to access and manipulate individual frames. Kind regards, softworkz _______________________________________________ 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".