Based on patch by Ronald S. Bultje.
---
configure | 4 ++++
libavutil/time.c | 14 ++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/configure b/configure
index 3e17d6a..0a40bf6 100755
--- a/configure
+++ b/configure
@@ -1092,7 +1092,9 @@ HAVE_LIST="
GetProcessAffinityMask
GetProcessMemoryInfo
GetProcessTimes
+ GetSystemTimeAsFileTime
getrusage
+ gettimeofday
gnu_as
ibm_asm
inet_aton
@@ -2870,6 +2872,7 @@ check_func getaddrinfo $network_extralibs
check_func gethrtime
check_func getrusage
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
+check_func gettimeofday
check_func inet_aton $network_extralibs
check_func isatty
check_func localtime_r
@@ -2889,6 +2892,7 @@ check_func_headers io.h setmode
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
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 VirtualAlloc
diff --git a/libavutil/time.c b/libavutil/time.c
index a0b713e..e10363b 100644
--- a/libavutil/time.c
+++ b/libavutil/time.c
@@ -18,13 +18,27 @@
#include <stddef.h>
#include <stdint.h>
+#if HAVE_GETTIMEOFDAY
#include <sys/time.h>
+#elif HAVE_GETSYSTEMTIMEASFILETIME
+#include <windows.h>
+#endif
#include "libavutil/time.h"
int64_t av_gettime(void)
{
+#if HAVE_GETTIMEOFDAY
struct timeval tv;
gettimeofday(&tv, NULL);
return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
+#elif HAVE_GETSYSTEMTIMEASFILETIME
+ FILETIME ft;
+ int64_t t;
+ GetSystemTimeAsFileTime(&ft);
+ t = (int64_t)ft.dwHighDateTime << 32 | ft.dwLowDateTime;
+ return t / 10 - 11644473600000000; /* Jan 1, 1601 */
+#else
+ return -1;
+#endif
}
--
1.7.10.2
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel