summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/APIchanges3
-rw-r--r--libavutil/time.c20
-rw-r--r--libavutil/time.h9
-rw-r--r--libavutil/version.h2
4 files changed, 27 insertions, 7 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index a8b7091..ad444e1 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,9 @@ libavutil: 2014-08-09
API changes, most recent first:
+2014-10-xx - xxxxxxx - lavu 54.5.0 - time.h
+ Add av_gettime_relative().
+
2014-10-xx - xxxxxxx - lavc 56.5.0 - avcodec.h
Replace AVCodecContext.time_base used for decoding
with AVCodecContext.framerate.
diff --git a/libavutil/time.c b/libavutil/time.c
index 42497da..7a3604e 100644
--- a/libavutil/time.c
+++ b/libavutil/time.c
@@ -23,7 +23,8 @@
#include <time.h>
#if HAVE_CLOCK_GETTIME
#include <time.h>
-#elif HAVE_GETTIMEOFDAY
+#endif
+#if HAVE_GETTIMEOFDAY
#include <sys/time.h>
#endif
#if HAVE_UNISTD_H
@@ -38,11 +39,7 @@
int64_t av_gettime(void)
{
-#if HAVE_CLOCK_GETTIME
- struct timespec ts;
- clock_gettime(CLOCK_MONOTONIC, &ts);
- return (int64_t)ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
-#elif HAVE_GETTIMEOFDAY
+#if HAVE_GETTIMEOFDAY
struct timeval tv;
gettimeofday(&tv, NULL);
return (int64_t)tv.tv_sec * 1000000 + tv.tv_usec;
@@ -57,6 +54,17 @@ int64_t av_gettime(void)
#endif
}
+int64_t av_gettime_relative(void)
+{
+#if HAVE_CLOCK_GETTIME
+ struct timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+ return (int64_t)ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
+#else
+ return av_gettime() + 42 * 60 * 60 * INT64_C(1000000);
+#endif
+}
+
int av_usleep(unsigned usec)
{
#if HAVE_NANOSLEEP
diff --git a/libavutil/time.h b/libavutil/time.h
index b01a97d..463bcfc 100644
--- a/libavutil/time.h
+++ b/libavutil/time.h
@@ -27,6 +27,15 @@
int64_t av_gettime(void);
/**
+ * Get the current time in microseconds since some unspecified starting point.
+ * On platforms that support it, the time comes from a monotonic clock
+ * This property makes this time source ideal for measuring relative time.
+ * The returned values may not be monotonic on platforms where a monotonic
+ * clock is not available.
+ */
+int64_t av_gettime_relative(void);
+
+/**
* Sleep for a period of time. Although the duration is expressed in
* microseconds, the actual delay may be rounded to the precision of the
* system timer.
diff --git a/libavutil/version.h b/libavutil/version.h
index 8279635..b40009e 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -54,7 +54,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 54
-#define LIBAVUTIL_VERSION_MINOR 4
+#define LIBAVUTIL_VERSION_MINOR 5
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
OpenPOWER on IntegriCloud