summaryrefslogtreecommitdiff
path: root/libavcodec/dxva2_internal.h
diff options
context:
space:
mode:
authorSteve Lhomme <robux4@gmail.com>2015-07-26 13:35:47 +0200
committerMartin Storsjö <martin@martin.st>2015-07-26 20:18:03 +0300
commit9b4b96c0dee90d260891ec765b28f6ca15594340 (patch)
tree06344db14e1b64da32d062ca6743e6396718ad08 /libavcodec/dxva2_internal.h
parent4d0d55cd623bcd504867f948849380f6b4060b4d (diff)
force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to be able to use dxva.h
The struct definitions in dxva.h, which are necessary in order to actually use d3d11va, are hidden when WINAPI_FAMILY targets Windows Phone or WindowsRT. Building with WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP is disallowed when targeting ARM. ("Compiling Desktop applications for the ARM platform is not supported.") So we set _CRT_BUILD_DESKTOP_APP to 0 to tell the runtime not to detect some issues with this mismatching. The same tweaks to detect if the API is available is done in dxva2_internal.h when compiling each DXVA2/D3D11VA decoders. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec/dxva2_internal.h')
-rw-r--r--libavcodec/dxva2_internal.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
index 3b651a42bc..7155123b5d 100644
--- a/libavcodec/dxva2_internal.h
+++ b/libavcodec/dxva2_internal.h
@@ -27,6 +27,9 @@
#include "config.h"
+/* define the proper COM entries before forcing desktop APIs */
+#include <objbase.h>
+
#if CONFIG_DXVA2
#include "dxva2.h"
#endif
@@ -34,6 +37,12 @@
#include "d3d11va.h"
#endif
#if HAVE_DXVA_H
+/* When targeting WINAPI_FAMILY_PHONE_APP or WINAPI_FAMILY_APP, dxva.h
+ * defines nothing. Force the struct definitions to be visible. */
+#undef WINAPI_FAMILY
+#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP
+#undef _CRT_BUILD_DESKTOP_APP
+#define _CRT_BUILD_DESKTOP_APP 0
#include <dxva.h>
#endif