[FFmpeg-devel] [PATCH 4/4] libavutil/qsv: enabling d3d11va support
Soft Works
softworkz at hotmail.com
Fri Apr 10 09:29:04 EEST 2020
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> artem.galin at gmail.com
> Sent: Thursday, April 9, 2020 7:51 PM
> To: ffmpeg-devel at ffmpeg.org
> Cc: Artem Galin <artem.galin at intel.com>
> Subject: [FFmpeg-devel] [PATCH 4/4] libavutil/qsv: enabling d3d11va support
>
> From: Artem Galin <artem.galin at intel.com>
>
> Makes selection of d3d11va device type by default and over DirectX 9, which
> is still supported but requires explicit selection.
> This enables usage of non-powered/headless GPU, better HDR support.
> Pool of resources is allocated as one texture with array of slices.
>
> Added d3d11va device selection by vendor id.
> Example: --init_hw_device d3d11va:,vendor=0x8086
>
> DirectX 9 usage.
> Example: --init_hw_device qsv:hw,child_device_type=0x8086
For transparency: I had developed a similar change some months ago which is
a bit more complete with regards to filtering and compatibility with older
CPU models, though I hadn't found the time to polish and submit the code yet.
Now I'm sharing my variant with the Intel guys allowing them to cherry-pick those
things they are missing.
Nonetheless there are things open for discussion. This is my point of view:
1. The QSV codecs are implemented as standalone hw encoders and decoders in
ffmpeg, and as such, there should be a way to switch between DX9 and DX11
that doesn't require to explicitly work with hw contexts.
https://github.com/softworkz/ffmpeg_dx11/issues/3
2. With the -qsv_device parameter it has always been possible to specify
an individual GPU adapter id. It doesn't make sense to me to drop this
behavior and it makes even less sense to me to introduce a 'vendor'
parameter, which is in no way suitable to select a specific device.
https://github.com/softworkz/ffmpeg_dx11/issues/4
3. I am skeptical about making DX11 the default. There are many cases
where DX11 doesn't work with QuickSync. Changing the default would
be a breaking change. More details here:
https://github.com/softworkz/ffmpeg_dx11/issues/2
Note: For privacy, I have copied only my part of the discussion to a
public GitHub repo.
softworkz
More information about the ffmpeg-devel
mailing list