From 5e5bab46808b3009778303ba93d976e20dbe210e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 31 Jan 2020 13:35:39 +0100 Subject: [PATCH] jack: don't take clock time as awake timestamp Take a sample from the monotonic clock to generate the AWAKE timestamp. --- pipewire-jack/src/pipewire-jack.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pipewire-jack/src/pipewire-jack.c b/pipewire-jack/src/pipewire-jack.c index c92e91605..9c3d67014 100644 --- a/pipewire-jack/src/pipewire-jack.c +++ b/pipewire-jack/src/pipewire-jack.c @@ -905,7 +905,8 @@ static inline jack_transport_state_t position_to_jack(struct pw_node_activation static inline uint32_t cycle_run(struct client *c) { - uint64_t cmd, nsec; + uint64_t cmd; + struct timespec ts; int fd = c->socket_source->fd; uint32_t buffer_frames, sample_rate; struct spa_io_position *pos = c->position; @@ -926,9 +927,10 @@ static inline uint32_t cycle_run(struct client *c) return 0; } - nsec = pos->clock.nsec; + clock_gettime(CLOCK_MONOTONIC, &ts); activation->status = PW_NODE_ACTIVATION_AWAKE; - activation->awake_time = nsec; + activation->awake_time = SPA_TIMESPEC_TO_NSEC(&ts); + if (c->first) { if (c->thread_init_callback) c->thread_init_callback(c->thread_init_arg);