pipewire/0006-impl-node-first-start-the-node-then-make-it-schedula.patch
DistroBaker 67142e715e Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/pipewire.git#8efa647705d110709be5e8742e3cd6138889dfbb
2021-03-27 03:20:21 +00:00

37 lines
1.2 KiB
Diff

From f5aba5f0dcf63996bd2444da13f353b290da3601 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Tue, 23 Mar 2021 10:17:01 +0100
Subject: [PATCH 06/10] impl-node: first start the node, then make it
schedulable
We first need to issue the start command for driver nodes and then
we can add the node to be scheduled. Else we might end up with nodes
that receive the _process callback without the Start command being
called first and we can crash.
See #904
---
src/pipewire/impl-node.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c
index 0afcab53e..75a7d2a79 100644
--- a/src/pipewire/impl-node.c
+++ b/src/pipewire/impl-node.c
@@ -338,10 +338,11 @@ 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 && node->driver)
spa_node_send_command(node->node,
&SPA_NODE_COMMAND_INIT(SPA_NODE_COMMAND_Start));
+
+ pw_loop_invoke(node->data_loop, do_node_add, 1, NULL, 0, true, node);
break;
default:
break;
--
2.26.3