From 6c94dc30a2a034222723b1bc3acce5c3ed4efdfe Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 16 Mar 2021 17:28:40 +0100 Subject: [PATCH] impl-node: delay start when both a driver and driving WE can only delay the start for drivers that are driving. Remote nodes are driving themselves but are not drivers so they need to start early. See #879 --- src/pipewire/impl-node.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 42122aba3..e4d070985 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -214,7 +214,7 @@ static int start_node(struct pw_impl_node *this) pw_log_debug(NAME" %p: start node", this); - if (!this->driving) + if (!(this->driving && this->driver)) res = spa_node_send_command(this->node, &SPA_NODE_COMMAND_INIT(SPA_NODE_COMMAND_Start)); @@ -339,7 +339,7 @@ static void node_update_state(struct pw_impl_node *node, enum pw_node_state stat switch (state) { case PW_NODE_STATE_RUNNING: pw_loop_invoke(node->data_loop, do_node_add, 1, NULL, 0, true, node); - if (node->driving) + if (node->driving && node->driver) spa_node_send_command(node->node, &SPA_NODE_COMMAND_INIT(SPA_NODE_COMMAND_Start)); break;