lavd: Use av_gettime_relative()

Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Since v4l2 is compiled only on Linux where av_gettime_relative()
is monotonic, a small wrapper function av_gettime_monotonic() is used
(should be inlined the compiler) to put emphasis on that fact.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Olivier Langlois 2014-05-12 16:26:36 -04:00 committed by Michael Niedermayer
parent 6e8fe44815
commit 0a15067047

View File

@ -427,10 +427,7 @@ static void mmap_release_buffer(void *opaque, uint8_t *data)
#if HAVE_CLOCK_GETTIME && defined(CLOCK_MONOTONIC) #if HAVE_CLOCK_GETTIME && defined(CLOCK_MONOTONIC)
static int64_t av_gettime_monotonic(void) static int64_t av_gettime_monotonic(void)
{ {
struct timespec tv; return av_gettime_relative();
clock_gettime(CLOCK_MONOTONIC, &tv);
return (int64_t)tv.tv_sec * 1000000 + tv.tv_nsec / 1000;
} }
#endif #endif