diff --git a/src/modules/module-client-node/client-node.c b/src/modules/module-client-node/client-node.c index cd86d1bd2..d22a8a1d9 100644 --- a/src/modules/module-client-node/client-node.c +++ b/src/modules/module-client-node/client-node.c @@ -1105,6 +1105,8 @@ static void node_on_data_fd_events(struct spa_source *source) if (source->rmask & SPA_IO_IN) { uint64_t cmd; struct pw_impl_node *node = this->impl->this.node; + struct pw_node_activation *a = node->rt.activation; + int status; if (SPA_UNLIKELY(spa_system_eventfd_read(this->data_system, this->data_source.fd, &cmd) < 0)) @@ -1113,8 +1115,9 @@ static void node_on_data_fd_events(struct spa_source *source) pw_log_info("(%s-%u) client missed %"PRIu64" wakeups", node->name, node->info.id, cmd - 1); - spa_log_trace_fp(this->log, "%p: got ready", this); - spa_node_call_ready(&this->callbacks, SPA_STATUS_HAVE_DATA); + status = a->state[0].status; + spa_log_trace_fp(this->log, "%p: got ready %d", this, status); + spa_node_call_ready(&this->callbacks, status); } } diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index 8e7a88b62..55b4c2d55 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -1189,8 +1189,9 @@ static int node_ready(void *d, int status) spa_node_process(p->mix); } - spa_system_clock_gettime(data_system, CLOCK_MONOTONIC, &ts); + a->state[0].status = status; a->status = PW_NODE_ACTIVATION_TRIGGERED; + spa_system_clock_gettime(data_system, CLOCK_MONOTONIC, &ts); a->signal_time = SPA_TIMESPEC_TO_NSEC(&ts); if (SPA_UNLIKELY(spa_system_eventfd_write(data_system, data->rtwritefd, 1) < 0))