From 378b1967388111cb8a889dcec2c7ee51dc1219e4 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 22 May 2024 10:26:54 +0200 Subject: [PATCH] impl-node: don't move unprepared nodes If a node was unprepared and we're moving it to another driver, don't try to unprepare and prepare it to the new driver because then we end up with a prepare node that should not be scheduled. Fixes #4017 --- src/pipewire/impl-node.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index f663baf42..e2431a5e4 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -295,7 +295,10 @@ static void move_node_to_graph(struct pw_impl_node *node) { struct pw_impl_node *driver = node->driver_node; - pw_log_debug("%p: driver:%p", node, driver); + pw_log_debug("%p: driver:%p prepared:%d", node, driver, node->rt.prepared); + + if (!node->rt.prepared) + return; if (node->data_loop == driver->data_loop) { pw_loop_invoke(node->data_loop, do_node_move, 1, NULL, 0, true, node);