From 1f8a400ad746eb3b03b243c53104f39f18488a94 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 28 Feb 2014 23:18:52 +0100 Subject: timer: add utility function to get relative time --- osdep/timer.c | 11 +++++++++++ osdep/timer.h | 6 ++++++ 2 files changed, 17 insertions(+) (limited to 'osdep') diff --git a/osdep/timer.c b/osdep/timer.c index f2c64959ab..4f506b3d46 100644 --- a/osdep/timer.c +++ b/osdep/timer.c @@ -19,6 +19,7 @@ #include #include "timer.h" +#include "common/msg.h" static uint64_t raw_time_offset; pthread_once_t timer_init_once = PTHREAD_ONCE_INIT; @@ -49,6 +50,16 @@ double mp_time_sec(void) return mp_time_us() / (double)(1000 * 1000); } +int64_t mp_time_relative_us(int64_t *t) +{ + int64_t r = 0; + int64_t now = mp_time_us(); + if (*t) + r = now - *t; + *t = now; + return r; +} + #if 0 #include diff --git a/osdep/timer.h b/osdep/timer.h index 8d5b553f2e..efb596765a 100644 --- a/osdep/timer.h +++ b/osdep/timer.h @@ -38,4 +38,10 @@ uint64_t mp_raw_time_us(void); // Sleep in microseconds. void mp_sleep_us(int64_t us); +// Return the amount of time that has passed since the last call, in +// microseconds. *t is used to calculate the time that has passed by storing +// the current time in it. If *t is 0, the call will return 0. (So that the +// first call will return 0, instead of the absolute current time.) +int64_t mp_time_relative_us(int64_t *t); + #endif /* MPLAYER_TIMER_H */ -- cgit v1.2.3