diff options
author | Steve Lhomme <robux4@gmail.com> | 2015-07-26 13:35:47 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-07-26 22:02:20 +0200 |
commit | c5327df838396e7c43a56bdd141c0f01ba3edc94 (patch) | |
tree | 048f11660a1dbd07c4f12e55968a25d834084848 | |
parent | f21fcf60eca9f9fde80095eea11b0d54b116d683 (diff) | |
download | ffmpeg-c5327df838396e7c43a56bdd141c0f01ba3edc94.tar.gz |
force WINAPI_FAMILY to WINAPI_FAMILY_DESKTOP_APP to use DVXA
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: Michael Niedermayer <michael@niedermayer.cc>
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | libavcodec/dxva2_internal.h | 7 |
2 files changed, 8 insertions, 1 deletions
@@ -5098,7 +5098,7 @@ check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss -check_type "windows.h dxva.h" "DXVA_PicParams_HEVC" +check_type "windows.h dxva.h" "DXVA_PicParams_HEVC" -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -D_CRT_BUILD_DESKTOP_APP=0 check_type "windows.h d3d11.h" "ID3D11VideoDecoder" check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0600 diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h index 426de9dc16..d5cc01ef4f 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 @@ -35,6 +38,10 @@ #endif #if HAVE_DXVA_H +/* dxva.h defines nothing otherwise but it works */ +#undef WINAPI_FAMILY +#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP +#define _CRT_BUILD_DESKTOP_APP 0 #include <dxva.h> #endif |