diff options
Diffstat (limited to 'video/out')
-rw-r--r-- | video/out/opengl/angle_common.c | 13 | ||||
-rw-r--r-- | video/out/opengl/angle_common.h | 13 | ||||
-rw-r--r-- | video/out/opengl/hwdec_d3d11egl.c | 2 | ||||
-rw-r--r-- | video/out/opengl/hwdec_d3d11eglrgb.c | 5 | ||||
-rw-r--r-- | video/out/opengl/hwdec_dxva2egl.c | 12 |
5 files changed, 9 insertions, 36 deletions
diff --git a/video/out/opengl/angle_common.c b/video/out/opengl/angle_common.c deleted file mode 100644 index 21cc924714..0000000000 --- a/video/out/opengl/angle_common.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "angle_common.h" - -// Test if Direct3D11 can be used by us. Basically, this prevents trying to use -// D3D11 on Win7, and then failing somewhere in the process. -bool d3d11_check_decoding(ID3D11Device *dev) -{ - HRESULT hr; - // We assume that NV12 is always supported, if hw decoding is supported at - // all. - UINT supported = 0; - hr = ID3D11Device_CheckFormatSupport(dev, DXGI_FORMAT_NV12, &supported); - return !FAILED(hr) && (supported & D3D11_BIND_DECODER); -} diff --git a/video/out/opengl/angle_common.h b/video/out/opengl/angle_common.h deleted file mode 100644 index 14ecd6ab3c..0000000000 --- a/video/out/opengl/angle_common.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef MP_ANGLE_COMMON_H -#define MP_ANGLE_COMMON_H - -#include <initguid.h> -#include <assert.h> -#include <windows.h> -#include <d3d11.h> - -#include <stdbool.h> - -bool d3d11_check_decoding(ID3D11Device *dev); - -#endif
\ No newline at end of file diff --git a/video/out/opengl/hwdec_d3d11egl.c b/video/out/opengl/hwdec_d3d11egl.c index 549d3f5cac..1e69d87269 100644 --- a/video/out/opengl/hwdec_d3d11egl.c +++ b/video/out/opengl/hwdec_d3d11egl.c @@ -23,7 +23,6 @@ #include <EGL/egl.h> #include <EGL/eglext.h> -#include "angle_common.h" #include "angle_dynamic.h" #include "common/common.h" @@ -31,6 +30,7 @@ #include "osdep/windows_utils.h" #include "hwdec.h" #include "video/hwdec.h" +#include "video/decode/d3d.h" #ifndef EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE #define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x3AAB diff --git a/video/out/opengl/hwdec_d3d11eglrgb.c b/video/out/opengl/hwdec_d3d11eglrgb.c index 2e61189154..be8057cde3 100644 --- a/video/out/opengl/hwdec_d3d11eglrgb.c +++ b/video/out/opengl/hwdec_d3d11eglrgb.c @@ -23,7 +23,6 @@ #include <EGL/egl.h> #include <EGL/eglext.h> -#include "angle_common.h" #include "angle_dynamic.h" #include "common/common.h" @@ -31,6 +30,7 @@ #include "osdep/windows_utils.h" #include "hwdec.h" #include "video/hwdec.h" +#include "video/decode/d3d.h" #ifndef EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE #define EGL_D3D_TEXTURE_SUBRESOURCE_ID_ANGLE 0x3AAB @@ -87,6 +87,8 @@ static int create(struct gl_hwdec *hw) if (!angle_load()) return -1; + d3d_load_dlls(); + EGLDisplay egl_display = eglGetCurrentDisplay(); if (!egl_display) return -1; @@ -104,7 +106,6 @@ static int create(struct gl_hwdec *hw) p->egl_display = egl_display; - HANDLE d3d11_dll = GetModuleHandleW(L"d3d11.dll"); if (!d3d11_dll) { if (!hw->probing) MP_ERR(hw, "Failed to load D3D11 library\n"); diff --git a/video/out/opengl/hwdec_dxva2egl.c b/video/out/opengl/hwdec_dxva2egl.c index d67a85bff5..f206b962d1 100644 --- a/video/out/opengl/hwdec_dxva2egl.c +++ b/video/out/opengl/hwdec_dxva2egl.c @@ -29,11 +29,11 @@ #include "osdep/windows_utils.h" #include "hwdec.h" #include "video/hwdec.h" +#include "video/decode/d3d.h" struct priv { struct mp_hwdec_ctx hwctx; - HMODULE d3d9_dll; IDirect3D9Ex *d3d9ex; IDirect3DDevice9Ex *device9ex; IDirect3DQuery9 *query9; @@ -89,9 +89,6 @@ static void destroy(struct gl_hwdec *hw) if (p->d3d9ex) IDirect3D9Ex_Release(p->d3d9ex); - - if (p->d3d9_dll) - FreeLibrary(p->d3d9_dll); } static int create(struct gl_hwdec *hw) @@ -99,6 +96,8 @@ static int create(struct gl_hwdec *hw) if (!angle_load()) return -1; + d3d_load_dlls(); + EGLDisplay egl_display = eglGetCurrentDisplay(); if (!egl_display) return -1; @@ -118,15 +117,14 @@ static int create(struct gl_hwdec *hw) p->egl_display = egl_display; - p->d3d9_dll = LoadLibraryW(L"d3d9.dll"); - if (!p->d3d9_dll) { + if (!d3d9_dll) { MP_FATAL(hw, "Failed to load \"d3d9.dll\": %s\n", mp_LastError_to_str()); goto fail; } HRESULT (WINAPI *Direct3DCreate9Ex)(UINT SDKVersion, IDirect3D9Ex **ppD3D); - Direct3DCreate9Ex = (void *)GetProcAddress(p->d3d9_dll, "Direct3DCreate9Ex"); + Direct3DCreate9Ex = (void *)GetProcAddress(d3d9_dll, "Direct3DCreate9Ex"); if (!Direct3DCreate9Ex) { MP_FATAL(hw, "Direct3D 9Ex not supported\n"); goto fail; |