diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-12-20 00:49:12 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-20 00:49:47 +0100 |
commit | 3d6545d51e6c031a77b0abf7470c681034dd8193 (patch) | |
tree | c08af2c4aa65e0197a20258c4206993a052acd6b | |
parent | a701a9cff4d53791ff811ebeaf1a644fca74191c (diff) | |
parent | 8ebf02f8f530240edf7e45f35f7647ef9dd44a58 (diff) | |
download | ffmpeg-3d6545d51e6c031a77b0abf7470c681034dd8193.tar.gz |
Merge commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58'
* commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58':
libavformat: Only use MoveFileExA when targeting the desktop API subset
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rwxr-xr-x | configure | 2 | ||||
-rw-r--r-- | libavformat/os_support.h | 19 |
2 files changed, 16 insertions, 5 deletions
@@ -1741,7 +1741,6 @@ SYSTEM_FUNCS=" lzo1x_999_compress mach_absolute_time MapViewOfFile - MoveFileExA memalign mkstemp mmap @@ -4759,7 +4758,6 @@ check_func_headers windows.h GetProcessAffinityMask check_func_headers windows.h GetProcessTimes check_func_headers windows.h GetSystemTimeAsFileTime check_func_headers windows.h MapViewOfFile -check_func_headers windows.h MoveFileExA check_func_headers windows.h PeekNamedPipe check_func_headers windows.h SetConsoleTextAttribute check_func_headers windows.h Sleep diff --git a/libavformat/os_support.h b/libavformat/os_support.h index ffae4b7293..a3329119c0 100644 --- a/libavformat/os_support.h +++ b/libavformat/os_support.h @@ -146,6 +146,18 @@ int ff_poll(struct pollfd *fds, nfds_t numfds, int timeout); #include <windows.h> #include "libavutil/wchar_filename.h" +#ifdef WINAPI_FAMILY +#include <winapifamily.h> +// If a WINAPI_FAMILY is defined, check that the desktop API subset +// is enabled +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#define USE_MOVEFILEEXA +#endif +#else +// If no WINAPI_FAMILY is defined, assume the full API subset +#define USE_MOVEFILEEXA +#endif + #define DEF_FS_FUNCTION(name, wfunc, afunc) \ static inline int win32_##name(const char *filename_utf8) \ { \ @@ -197,13 +209,14 @@ static inline int win32_rename(const char *src_utf8, const char *dest_utf8) fallback: /* filename may be be in CP_ACP */ -#if HAVE_MOVEFILEEXA +#ifdef USE_MOVEFILEEXA ret = MoveFileExA(src_utf8, dest_utf8, MOVEFILE_REPLACE_EXISTING); if (ret) errno = EPERM; #else - /* Windows Phone doesn't have MoveFileExA. However, it's unlikely - * that anybody would input filenames in CP_ACP there, so this + /* Windows Phone doesn't have MoveFileExA, and for Windows Store apps, + * it is available but not allowed by the app certification kit. However, + * it's unlikely that anybody would input filenames in CP_ACP there, so this * fallback is kept mostly for completeness. Alternatively we could * do MultiByteToWideChar(CP_ACP) and use MoveFileExW, but doing * explicit conversions with CP_ACP is allegedly forbidden in windows |