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
This commit is contained in:
Wim Taymans 2024-05-22 10:26:54 +02:00
parent ccb9f89347
commit 378b196738

View file

@ -295,7 +295,10 @@ static void move_node_to_graph(struct pw_impl_node *node)
{ {
struct pw_impl_node *driver = node->driver_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) { if (node->data_loop == driver->data_loop) {
pw_loop_invoke(node->data_loop, do_node_move, 1, NULL, 0, true, node); pw_loop_invoke(node->data_loop, do_node_move, 1, NULL, 0, true, node);