pcm: use CLOCK_REALTIME for non-monotonic ts

gettimeofday() is the same than clock_gettime(CLOCK_REALTIME)
except for the loss of precision and the double unnecessary
conversion timespec <-> timeval.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Olivier Langlois 2014-01-23 19:03:00 -05:00 committed by Takashi Iwai
parent 507cdc1318
commit 66f07aa3b7

View file

@ -961,17 +961,21 @@ typedef union snd_tmp_double {
/* get the current timestamp */ /* get the current timestamp */
static inline void gettimestamp(snd_htimestamp_t *tstamp, int monotonic) static inline void gettimestamp(snd_htimestamp_t *tstamp, int monotonic)
{ {
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) #if defined(HAVE_CLOCK_GETTIME)
#if defined(CLOCK_MONOTONIC)
if (monotonic) { if (monotonic) {
clock_gettime(CLOCK_MONOTONIC, tstamp); clock_gettime(CLOCK_MONOTONIC, tstamp);
} else { } else {
#endif #endif
clock_gettime(CLOCK_REALTIME, tstamp);
#else
struct timeval tv; struct timeval tv;
gettimeofday(&tv, 0); gettimeofday(&tv, 0);
tstamp->tv_sec = tv.tv_sec; tstamp->tv_sec = tv.tv_sec;
tstamp->tv_nsec = tv.tv_usec * 1000L; tstamp->tv_nsec = tv.tv_usec * 1000L;
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) #endif
#if defined(HAVE_CLOCK_GETTIME)
} }
#endif #endif
} }