SHA256
1
0
forked from pool/wireplumber
wireplumber/0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
Antonio Larrosa d503c29728 Accepting request 1035773 from home:alarrosa:branches:multimedia:libs
- Add patch from upstream to work around a problem when a link is
  not activated:
  * 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
- Add patch from upstream to fix handling null devices which result
  in lua exceptions:
  * 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch

OBS-URL: https://build.opensuse.org/request/show/1035773
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=52
2022-11-15 08:32:16 +00:00

47 lines
1.7 KiB
Diff

From f79a330849ebf320c42d03c123f48fec6b9ad3a8 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Thu, 3 Nov 2022 19:22:20 +0200
Subject: [PATCH] scripts: policy-node: wait for unactivated links instead of
removing
If a link is not activated, don't remove it. Instead, schedule a rescan
when a link activates, so that we'll handle it once it does.
This is a workaround for some problems, see
https://github.com/Audio4Linux/JDSP4Linux/issues/74
However, the underlying cause is not understood.
---
src/scripts/policy-node.lua | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
index 43df701c..a25d0a5e 100644
--- a/src/scripts/policy-node.lua
+++ b/src/scripts/policy-node.lua
@@ -123,6 +123,7 @@ function createLink (si, si_target, passthrough, exclusive)
end
Log.info (l, "activated si-standard-link")
end
+ scheduleRescan()
end)
end
@@ -696,9 +697,11 @@ function handleLinkable (si)
if link ~= nil then
-- remove old link
if ((link:get_active_features() & Feature.SessionItem.ACTIVE) == 0) then
- -- remove also not yet activated links: they might never become active,
- -- and we should not loop waiting for them
- Log.warning (link, "Link was not activated before removing")
+ -- Link not yet activated. We don't want to remove it now, as that
+ -- may cause problems. Instead, give up for now. A rescan is scheduled
+ -- once the link activates.
+ Log.info (link, "Link to be moved was not activated, will wait for it.")
+ return
end
si_flags[si_id].peer_id = nil
link:remove ()
--
GitLab