summaryrefslogtreecommitdiffstats
path: root/video/d3d.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-12-01 17:51:39 +0100
committerwm4 <wm4@nowhere>2017-12-01 17:58:56 +0100
commit9f52a92899db1acf8ae630d5d06c28eb6be652c6 (patch)
treed221bb44cd0ea2211e0592421bcd89ba517b8269 /video/d3d.h
parent1e4454090683b4cbc20f4422a531eb363ad76092 (diff)
downloadmpv-9f52a92899db1acf8ae630d5d06c28eb6be652c6.tar.bz2
mpv-9f52a92899db1acf8ae630d5d06c28eb6be652c6.tar.xz
video: move d3d.c out of decode sub directory
It makes more sense to have it in the general video directory (along with vdpau.c and vaapi.c), since the decoder source files don't even access it anymore.
Diffstat (limited to 'video/d3d.h')
-rw-r--r--video/d3d.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/video/d3d.h b/video/d3d.h
new file mode 100644
index 0000000000..0058905a27
--- /dev/null
+++ b/video/d3d.h
@@ -0,0 +1,42 @@
+/*
+ * This file is part of mpv.
+ *
+ * mpv is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * mpv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with mpv. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MPV_DECODE_D3D_H
+#define MPV_DECODE_D3D_H
+
+#include <windows.h>
+#include <d3d11.h>
+
+#include <stdbool.h>
+#include <inttypes.h>
+
+// Must call d3d_load_dlls() before accessing. Once this is done, the DLLs
+// remain loaded forever.
+extern HMODULE d3d11_dll, d3d9_dll, dxva2_dll;
+extern PFN_D3D11_CREATE_DEVICE d3d11_D3D11CreateDevice;
+
+void d3d_load_dlls(void);
+
+bool d3d11_check_decoding(ID3D11Device *dev);
+
+struct AVBufferRef;
+struct IDirect3DDevice9;
+
+struct AVBufferRef *d3d11_wrap_device_ref(ID3D11Device *device);
+struct AVBufferRef *d3d9_wrap_device_ref(struct IDirect3DDevice9 *device);
+
+#endif