diff options
author | James Ross-Gowan <rossy@jrg.systems> | 2017-12-05 23:47:59 +1100 |
---|---|---|
committer | James Ross-Gowan <rossy@jrg.systems> | 2018-01-06 11:26:15 +1100 |
commit | 88c29b13011175b77c8255d82d5fc1c1610345d5 (patch) | |
tree | bc47cdb1db7ec2b63b4d3b968c31b8c9cf6f7da2 /video/out/gpu/hwdec.c | |
parent | 185e63a3e2a84fe4d006054960481460072a8243 (diff) | |
download | mpv-88c29b13011175b77c8255d82d5fc1c1610345d5.tar.bz2 mpv-88c29b13011175b77c8255d82d5fc1c1610345d5.tar.xz |
vo_gpu: hwdec_dxva2dxgi: initial implementation
This enables DXVA2 hardware decoding with ra_d3d11. It should be useful
for Windows 7, where D3D11VA is not available. Images are transfered
from D3D9 to D3D11 using D3D9Ex surface sharing[1].
Following Microsoft's recommendations, it uses a queue of shared
surfaces, similar to Microsoft's ISurfaceQueue. This will hopefully
prevent surface sharing from impacting parallelism and allow multiple
D3D11 frames to be in-flight at once.
[1]: https://msdn.microsoft.com/en-us/library/windows/desktop/ee913554.aspx
Diffstat (limited to 'video/out/gpu/hwdec.c')
-rw-r--r-- | video/out/gpu/hwdec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/video/out/gpu/hwdec.c b/video/out/gpu/hwdec.c index 5284116b57..75d12b27f3 100644 --- a/video/out/gpu/hwdec.c +++ b/video/out/gpu/hwdec.c @@ -35,6 +35,7 @@ extern const struct ra_hwdec_driver ra_hwdec_d3d11eglrgb; extern const struct ra_hwdec_driver ra_hwdec_dxva2gldx; extern const struct ra_hwdec_driver ra_hwdec_dxva2; extern const struct ra_hwdec_driver ra_hwdec_d3d11va; +extern const struct ra_hwdec_driver ra_hwdec_dxva2dxgi; extern const struct ra_hwdec_driver ra_hwdec_cuda; extern const struct ra_hwdec_driver ra_hwdec_cuda_nvdec; extern const struct ra_hwdec_driver ra_hwdec_rpi_overlay; @@ -55,6 +56,9 @@ const struct ra_hwdec_driver *const ra_hwdec_drivers[] = { #endif #if HAVE_D3D11 &ra_hwdec_d3d11va, + #if HAVE_D3D9_HWACCEL + &ra_hwdec_dxva2dxgi, + #endif #endif #endif #if HAVE_GL_DXINTEROP_D3D9 |