av_gettime: support Win32 without gettimeofday()
Based on patch by Ronald S. Bultje. Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
980f81d961
commit
61183b5ab4
4
configure
vendored
4
configure
vendored
@ -1084,7 +1084,9 @@ HAVE_LIST="
|
|||||||
GetProcessAffinityMask
|
GetProcessAffinityMask
|
||||||
GetProcessMemoryInfo
|
GetProcessMemoryInfo
|
||||||
GetProcessTimes
|
GetProcessTimes
|
||||||
|
GetSystemTimeAsFileTime
|
||||||
getrusage
|
getrusage
|
||||||
|
gettimeofday
|
||||||
gnu_as
|
gnu_as
|
||||||
ibm_asm
|
ibm_asm
|
||||||
inet_aton
|
inet_aton
|
||||||
@ -2832,6 +2834,7 @@ check_func getaddrinfo $network_extralibs
|
|||||||
check_func gethrtime
|
check_func gethrtime
|
||||||
check_func getrusage
|
check_func getrusage
|
||||||
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
|
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
|
||||||
|
check_func gettimeofday
|
||||||
check_func inet_aton $network_extralibs
|
check_func inet_aton $network_extralibs
|
||||||
check_func isatty
|
check_func isatty
|
||||||
check_func localtime_r
|
check_func localtime_r
|
||||||
@ -2851,6 +2854,7 @@ check_func_headers io.h setmode
|
|||||||
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
|
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
|
||||||
check_func_headers windows.h GetProcessAffinityMask
|
check_func_headers windows.h GetProcessAffinityMask
|
||||||
check_func_headers windows.h GetProcessTimes
|
check_func_headers windows.h GetProcessTimes
|
||||||
|
check_func_headers windows.h GetSystemTimeAsFileTime
|
||||||
check_func_headers windows.h MapViewOfFile
|
check_func_headers windows.h MapViewOfFile
|
||||||
check_func_headers windows.h VirtualAlloc
|
check_func_headers windows.h VirtualAlloc
|
||||||
|
|
||||||
|
@ -16,15 +16,31 @@
|
|||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#if HAVE_GETTIMEOFDAY
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#elif HAVE_GETSYSTEMTIMEASFILETIME
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "libavutil/time.h"
|
#include "libavutil/time.h"
|
||||||
|
|
||||||
int64_t av_gettime(void)
|
int64_t av_gettime(void)
|
||||||
{
|
{
|
||||||
|
#if HAVE_GETTIMEOFDAY
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
|
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
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user