summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch')
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch b/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch
new file mode 100644
index 000000000000..0ce16a647697
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch
@@ -0,0 +1,34 @@
+From 83041b0ce277c95afaf1824f525ea0bec516f03f Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Thu, 18 Nov 2021 15:23:23 +0100
+Subject: [PATCH 2/3] policy-node: wait for nodes when we become unlinked
+
+If we were linked before but our node is removed, wait until a new node
+becomes available instead of failing.
+
+This fixes an issue where there is only 1 sink available and the card
+profile is toggeled between pro and stereo. After the profile is
+toggled, the sink is removed and the node would be killed with an error
+because there is no fallback sink. The fix is similar to the
+pipewire-media-session logic.
+---
+ src/scripts/policy-node.lua | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
+index 5029d1b..445b1a7 100644
+--- a/src/scripts/policy-node.lua
++++ b/src/scripts/policy-node.lua
+@@ -493,6 +493,9 @@ function handleLinkable (si)
+ if not reconnect then
+ Log.info (si, "... destroy node")
+ node:request_destroy()
++ elseif si_flags[si.id].was_handled then
++ Log.info (si, "... waiting reconnect")
++ return
+ end
+
+ local client_id = node.properties["client.id"]
+--
+2.34.0
+