[FFmpeg-devel] [PATCH] configure: Check for the SetDllDirectory and GetModuleHandle functions
Martin Storsjö
martin at martin.st
Tue Dec 10 22:08:48 EET 2019
These functions aren't available when building for the restricted
UWP/WinRT/WinStore API subsets.
Normally when building in this mode, one is probably only building
the libraries, but being able to build ffmpeg.exe still is useful
(and a ffmpeg.exe targeting these API subsets still can be run
e.g. in wine, for testing).
---
configure | 4 ++++
fftools/cmdutils.c | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 922cd8d0ee..bb504b144c 100755
--- a/configure
+++ b/configure
@@ -2196,6 +2196,7 @@ SYSTEM_FUNCS="
getaddrinfo
gethrtime
getopt
+ GetModuleHandle
GetProcessAffinityMask
GetProcessMemoryInfo
GetProcessTimes
@@ -2225,6 +2226,7 @@ SYSTEM_FUNCS="
SecItemImport
SetConsoleTextAttribute
SetConsoleCtrlHandler
+ SetDllDirectory
setmode
setrlimit
Sleep
@@ -6035,6 +6037,7 @@ check_func_headers mach/mach_time.h mach_absolute_time
check_func_headers stdlib.h getenv
check_func_headers sys/stat.h lstat
+check_func_headers windows.h GetModuleHandle
check_func_headers windows.h GetProcessAffinityMask
check_func_headers windows.h GetProcessTimes
check_func_headers windows.h GetSystemTimeAsFileTime
@@ -6043,6 +6046,7 @@ check_func_headers windows.h MapViewOfFile
check_func_headers windows.h PeekNamedPipe
check_func_headers windows.h SetConsoleTextAttribute
check_func_headers windows.h SetConsoleCtrlHandler
+check_func_headers windows.h SetDllDirectory
check_func_headers windows.h Sleep
check_func_headers windows.h VirtualAlloc
check_func_headers glob.h glob
diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index 84f98b7c04..fe903fa4da 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -119,7 +119,7 @@ static void log_callback_report(void *ptr, int level, const char *fmt, va_list v
void init_dynload(void)
{
-#ifdef _WIN32
+#if HAVE_SETDLLDIRECTORY
/* Calling SetDllDirectory with the empty string (but not NULL) removes the
* current working directory from the DLL search path as a security pre-caution. */
SetDllDirectory("");
@@ -2039,7 +2039,7 @@ FILE *get_preset_file(char *filename, size_t filename_size,
av_strlcpy(filename, preset_name, filename_size);
f = fopen(filename, "r");
} else {
-#ifdef _WIN32
+#if HAVE_GETMODULEHANDLE
char datadir[MAX_PATH], *ls;
base[2] = NULL;
--
2.17.1
More information about the ffmpeg-devel
mailing list