summaryrefslogtreecommitdiffstats
path: root/video/out
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-06-08 21:16:11 +0200
committerwm4 <wm4@nowhere>2017-06-08 21:51:25 +0200
commit0754cbc83eb030ed3c0f0666e8b7c2481631e513 (patch)
treeb4df7e128e0e65704ae62e5a19a73651def4f284 /video/out
parent79dc1834f5932b36b0a2b48388654d2c4dcd2817 (diff)
downloadmpv-0754cbc83eb030ed3c0f0666e8b7c2481631e513.tar.bz2
mpv-0754cbc83eb030ed3c0f0666e8b7c2481631e513.tar.xz
d3d: add support for new libavcodec hwaccel API
Unfortunately quite a mess, in particular due to the need to have some compatibility with the old API. (The old API will be supported only in short term.)
Diffstat (limited to 'video/out')
-rw-r--r--video/out/opengl/hwdec_d3d11egl.c1
-rw-r--r--video/out/opengl/hwdec_d3d11eglrgb.c1
-rw-r--r--video/out/opengl/hwdec_dxva2egl.c1
-rw-r--r--video/out/opengl/hwdec_dxva2gldx.c2
4 files changed, 5 insertions, 0 deletions
diff --git a/video/out/opengl/hwdec_d3d11egl.c b/video/out/opengl/hwdec_d3d11egl.c
index f2607f62f0..686bb99d1a 100644
--- a/video/out/opengl/hwdec_d3d11egl.c
+++ b/video/out/opengl/hwdec_d3d11egl.c
@@ -195,6 +195,7 @@ static int create(struct gl_hwdec *hw)
.driver_name = hw->driver->name,
.ctx = p->d3d11_device,
.download_image = d3d11_download_image,
+ .av_device_ref = d3d11_wrap_device_ref(p->d3d11_device),
};
hwdec_devices_add(hw->devs, &p->hwctx);
diff --git a/video/out/opengl/hwdec_d3d11eglrgb.c b/video/out/opengl/hwdec_d3d11eglrgb.c
index cb49496c5f..5b32290f8f 100644
--- a/video/out/opengl/hwdec_d3d11eglrgb.c
+++ b/video/out/opengl/hwdec_d3d11eglrgb.c
@@ -164,6 +164,7 @@ static int create(struct gl_hwdec *hw)
.type = HWDEC_D3D11VA,
.driver_name = hw->driver->name,
.ctx = p->d3d11_device,
+ .av_device_ref = d3d11_wrap_device_ref(p->d3d11_device),
};
hwdec_devices_add(hw->devs, &p->hwctx);
diff --git a/video/out/opengl/hwdec_dxva2egl.c b/video/out/opengl/hwdec_dxva2egl.c
index aa06c43fbe..65cb90eba3 100644
--- a/video/out/opengl/hwdec_dxva2egl.c
+++ b/video/out/opengl/hwdec_dxva2egl.c
@@ -211,6 +211,7 @@ static int create(struct gl_hwdec *hw)
.type = HWDEC_DXVA2,
.driver_name = hw->driver->name,
.ctx = (IDirect3DDevice9 *)p->device9ex,
+ .av_device_ref = d3d9_wrap_device_ref((IDirect3DDevice9 *)p->device9ex),
};
hwdec_devices_add(hw->devs, &p->hwctx);
diff --git a/video/out/opengl/hwdec_dxva2gldx.c b/video/out/opengl/hwdec_dxva2gldx.c
index eb44f2b38b..7e0ea88b51 100644
--- a/video/out/opengl/hwdec_dxva2gldx.c
+++ b/video/out/opengl/hwdec_dxva2gldx.c
@@ -22,6 +22,7 @@
#include "osdep/windows_utils.h"
#include "hwdec.h"
#include "video/hwdec.h"
+#include "video/decode/d3d.h"
// for WGL_ACCESS_READ_ONLY_NV
#include <GL/wglext.h>
@@ -104,6 +105,7 @@ static int create(struct gl_hwdec *hw)
.type = HWDEC_DXVA2,
.driver_name = hw->driver->name,
.ctx = (IDirect3DDevice9 *)p->device,
+ .av_device_ref = d3d9_wrap_device_ref((IDirect3DDevice9 *)p->device),
};
hwdec_devices_add(hw->devs, &p->hwctx);
return 0;