diff options
author | Mans Rullgard <mans@mansr.com> | 2012-06-20 13:46:52 +0100 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2012-06-20 17:09:03 +0100 |
commit | 61183b5ab4c203363ee0ee696bdf4819be307230 (patch) | |
tree | 037f8d404cafae1ca295949793ca79572050d97b | |
parent | 980f81d961e62dd38b9dbe6091e72638d6535ccd (diff) | |
download | ffmpeg-61183b5ab4c203363ee0ee696bdf4819be307230.tar.gz |
av_gettime: support Win32 without gettimeofday()
Based on patch by Ronald S. Bultje.
Signed-off-by: Mans Rullgard <mans@mansr.com>
-rwxr-xr-x | configure | 4 | ||||
-rw-r--r-- | libavutil/time.c | 16 |
2 files changed, 20 insertions, 0 deletions
@@ -1084,7 +1084,9 @@ HAVE_LIST=" GetProcessAffinityMask GetProcessMemoryInfo GetProcessTimes + GetSystemTimeAsFileTime getrusage + gettimeofday gnu_as ibm_asm inet_aton @@ -2832,6 +2834,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 @@ -2851,6 +2854,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 a0b713e803..80c4029d9b 100644 --- a/libavutil/time.c +++ b/libavutil/time.c @@ -16,15 +16,31 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "config.h" + #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 } |