Skip to content

d3d11: Add d3d11colorconvert element for GPU accelerated colorspace conversion

This is one of requirement for d3d11 decoder (DXVA2 on D3D11) support. Also #1035 (closed) might be solved by this MR.

d3d11: Register d3d11upload and d3d11colorconvert only if OS can support them

D3D11 Video Processor APIs require at least Windows8
d3d11: Introduce d3d11colorconvert element

New element of colorspace conversion using D3D11 Video Processor APIs
d3d11utils: Add NV12 and P010_10LE to knwon format list
d3d11videosink: Specify d3d11 memory caps feature on sinkpad template
d3d11: Introduce d3d11 upload/download element

That's equivalent to glupload and gldownload elements but for d3d11
d3d11memory: Refactor CPU access code

* Create staging texture only if the CPU access is requested.
The CPU access to d3d11 memory should be avoided as mush as possible.

* Two depth staging for alignment, padding requirement. We should not
request alignment to d3d11 staging memory and therefore mapped staging memory
should not be exposed directly.
d3d11: Add method for querying d3d11 memory type

... and make gst_d3d11_buffer_pool_new() return GstBufferPool
instead of GstD3D11BufferPool
d3d11: Check requested adapter during context sharing

Do not accept any GstD3D11Device context which has different adapter
index from the required one. For example, if a d3d11 element is expecting
d3d11 device with adapter 1 (i.e., the second GPU), any d3d11 device
context having different adapter could not be shared with
the d3d11 element.
d3d11: Rename native handle getter and context utils functions

Make them consistent with cuda context utils functions.
Put in-only parameter before all in-out parameters, and add _handle()
suffix to native handle getter functions.

Fixes: #1035 (closed)

Edited by Seungha Yang

Merge request reports