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;