[FFmpeg-devel] [PATCH v7 3/8] libavutil/hwcontext_qsv: enabling d3d11va usage by default, add usage child_device_type argument

Soft Works softworkz at hotmail.com
Thu Mar 11 08:13:26 EET 2021



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> Soft Works
> Sent: Thursday, February 25, 2021 8:50 PM
> To: FFmpeg development discussions and patches <ffmpeg-
> devel at ffmpeg.org>
> Cc: Artem Galin <artem.galin at intel.com>
> Subject: Re: [FFmpeg-devel] [PATCH v7 3/8] libavutil/hwcontext_qsv:
> enabling d3d11va usage by default, add usage child_device_type argument
> 
> 
> 
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> > Artem Galin
> > Sent: Tuesday, November 3, 2020 7:46 PM
> > To: ffmpeg-devel at ffmpeg.org
> > Cc: Artem Galin <artem.galin at intel.com>
> > Subject: [FFmpeg-devel] [PATCH v7 3/8] libavutil/hwcontext_qsv:
> > enabling d3d11va usage by default, add usage child_device_type
> > argument
> >
> > Makes selection of d3d11va device type by default and over DirectX 9,
> > which might break users with older drivers/systems.
> > DCH driver with Gen6th support should be still fine.
> >
> > Decode, encode, transcode have been validated.
> >
> > child_device_type option is responsible for d3d11va/dxva2 device
> > selection
> >
> > Usage examples:
> >
> > DirectX 11
> > -init_hw_device qsv:hw,child_device_type=d3d11va
> >
> > DirectX 9 is still supported but requires explicit selection
> > -init_hw_device
> > qsv:hw,child_device_type=dxva2
> >
> 
> Hi Artem,
> 
> Could you please show a complete command line, demonstrating how to use
> a D3D9/DXVA2 hardware context with your patch?
> 
> Something like qsv decoder, scale_qsv and qsv encoder...
> 
> Thanks,
> Softworkz

Hello Artem,

I don't know whether you read my message above, but in case you did, I suppose that you have realized that this would be no longer possible with your patch.
The QSV decoders do not allow setting a hardware device, and that means that the command snippet in your commit message (-init_hw_device qsv:hw,child_device_type=dxva2) doesn't affect decoders, but only filters and encoders at best.

That's why I had that global parameter (qsv_use_dx11) in my original patch (that follows the existing implementation of the qsc_device parameter, which is global as well).

As long as the patch breaks usage of D3D9 (for QSV decoding), I don't think it will ever get merged.
(not insisting to change the default to DX11 might help as well)

Kind regards,
Softworkz






More information about the ffmpeg-devel mailing list