diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2014-08-24 18:14:47 +0200 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2014-09-03 02:38:03 +0200 |
commit | ebef9f5a56d7df91e010a177a80cfc8dbe394305 (patch) | |
tree | c508c8775aa760085a599d3d65e7ca24bc0225e8 | |
parent | 65e78a2e4b111627c0ebdf2c9baec95e5e21560d (diff) | |
download | ffmpeg-ebef9f5a56d7df91e010a177a80cfc8dbe394305.tar.gz |
time: Use clock_gettime if the monotonic clock is available
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-rwxr-xr-x | configure | 4 | ||||
-rw-r--r-- | libavutil/time.c | 10 |
2 files changed, 12 insertions, 2 deletions
@@ -1432,6 +1432,7 @@ MATH_FUNCS=" SYSTEM_FUNCS=" aligned_malloc + clock_gettime closesocket CommandLineToArgvW CoTaskMemFree @@ -4038,6 +4039,9 @@ check_func_headers malloc.h _aligned_malloc && enable aligned_malloc check_func ${malloc_prefix}memalign && enable memalign check_func ${malloc_prefix}posix_memalign && enable posix_memalign +check_cpp_condition unistd.h "defined(_POSIX_MONOTONIC_CLOCK)" && + check_func_headers time.h clock_gettime || { check_func_headers time.h clock_gettime -lrt && add_extralibs -lrt; } + check_func fcntl check_func fork check_func gethrtime diff --git a/libavutil/time.c b/libavutil/time.c index 62cd445dbc..e833cd0d17 100644 --- a/libavutil/time.c +++ b/libavutil/time.c @@ -21,7 +21,9 @@ #include <stddef.h> #include <stdint.h> #include <time.h> -#if HAVE_GETTIMEOFDAY +#if HAVE_CLOCK_GETTIME +#include <time.h> +#elif HAVE_GETTIMEOFDAY #include <sys/time.h> #endif #if HAVE_UNISTD_H @@ -36,7 +38,11 @@ int64_t av_gettime(void) { -#if HAVE_GETTIMEOFDAY +#if HAVE_CLOCK_GETTIME + struct timespec ts; + clock_gettime(CLOCK_MONOTONIC, &ts); + return (int64_t)ts.tv_sec * 100000 + ts.tv_nsec / 1000; +#elif HAVE_GETTIMEOFDAY struct timeval tv; gettimeofday(&tv, NULL); return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec; |