From 2104ee585effde6babfdefcfb42b9fc1b0b77097 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 14 Dec 2021 20:47:36 +0100 Subject: [PATCH] impl-node: sync current rate and quantum with position --- src/pipewire/impl-node.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 25b606a25..212b911c6 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -658,6 +658,9 @@ static void update_io(struct pw_impl_node *node) sizeof(struct spa_io_position)) >= 0) { pw_log_debug("%p: set position %p", node, &node->rt.activation->position); node->rt.position = &node->rt.activation->position; + + node->current_rate = node->rt.position->clock.rate; + node->current_quantum = node->rt.position->clock.duration; } else if (node->driver) { pw_log_warn("%p: can't set position on driver", node); } @@ -780,6 +783,9 @@ do_move_nodes(struct spa_loop *loop, pw_log_trace("%p: set position %p", node, &driver->rt.activation->position); node->rt.position = &driver->rt.activation->position; + node->current_rate = node->rt.position->clock.rate; + node->current_quantum = node->rt.position->clock.duration; + if (node->source.loop != NULL) { remove_node(node); add_node(node, driver);