summaryrefslogtreecommitdiff
path: root/libavutil/time.c
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2012-06-20 13:46:52 +0100
committerMans Rullgard <mans@mansr.com>2012-06-20 17:09:03 +0100
commit61183b5ab4c203363ee0ee696bdf4819be307230 (patch)
tree037f8d404cafae1ca295949793ca79572050d97b /libavutil/time.c
parent980f81d961e62dd38b9dbe6091e72638d6535ccd (diff)
av_gettime: support Win32 without gettimeofday()
Based on patch by Ronald S. Bultje. Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavutil/time.c')
-rw-r--r--libavutil/time.c16
1 files changed, 16 insertions, 0 deletions
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
}