wireplumber 0.4.6
This commit is contained in:
parent
b45f1cd227
commit
6bfab6d0d2
@ -1,40 +0,0 @@
|
||||
From 756c5222d698f143142b69318d5af22a377df0a0 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Mon, 15 Nov 2021 11:51:11 +0100
|
||||
Subject: [PATCH 1/3] policy-node: Remove direction check
|
||||
|
||||
Remove the direction check in findDefinedTarget. We already to a
|
||||
better direction check in canLink().
|
||||
|
||||
This fixes the case where a capture stream has the node.target set
|
||||
to a sink. The directions don't match and the capture stream is not
|
||||
linked to the monitor ports of the sink. Removing the check triggers
|
||||
the right logic in canLink() and obs studio can link to monitor
|
||||
ports again.
|
||||
---
|
||||
src/scripts/policy-node.lua | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
|
||||
index b2e1e14..5029d1b 100644
|
||||
--- a/src/scripts/policy-node.lua
|
||||
+++ b/src/scripts/policy-node.lua
|
||||
@@ -237,7 +237,6 @@ function findDefinedTarget (properties)
|
||||
local target_id = metadata
|
||||
and metadata:find(properties["node.id"], "target.node")
|
||||
or properties["node.target"]
|
||||
- local target_direction = getTargetDirection(properties)
|
||||
|
||||
if target_id and tonumber(target_id) then
|
||||
local si_target = linkables_om:lookup {
|
||||
@@ -253,7 +252,6 @@ function findDefinedTarget (properties)
|
||||
local target_props = si_target.properties
|
||||
if (target_props["node.name"] == target_id or
|
||||
target_props["object.path"] == target_id) and
|
||||
- target_props["item.node.direction"] == target_direction and
|
||||
canLink (properties, si_target) then
|
||||
return si_target
|
||||
end
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
From 3795906f33dbd4af4c2d2603788a18cf9a24cbe1 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri, 12 Nov 2021 11:19:54 +1000
|
||||
Subject: [PATCH 2/3] m-reserve-device: replace the hash table key on new
|
||||
insert
|
||||
|
||||
We're using the WpReserveDevice's name as key in the hash table, so we
|
||||
must update the key as well when we replace an item in the hashtable -
|
||||
the old device (and its name) will be released.
|
||||
|
||||
The side-effect of this is that the *third* device with an identical
|
||||
name will no longer replace the previous device. This results in the
|
||||
following sequence:
|
||||
|
||||
- dev1 added: name Audio0
|
||||
- dev1 requests name owner Audio0
|
||||
- dev2 added: name Audio0
|
||||
- replace dev1 in the hashtable
|
||||
- dev1 emits "release" signal
|
||||
- dev1 unowns the Audio0 name
|
||||
- dev2 requests name owner Audio0
|
||||
- dev3 added: name Audio0
|
||||
- adds to the hashtable because the existing key is now undefined
|
||||
- dev3 requests name owner Audio0
|
||||
- error, you cannot request ownership for the same name twice
|
||||
|
||||
Fixes #93
|
||||
---
|
||||
modules/module-reserve-device/plugin.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules/module-reserve-device/plugin.c b/modules/module-reserve-device/plugin.c
|
||||
index d8e4e09..68df6ee 100644
|
||||
--- a/modules/module-reserve-device/plugin.c
|
||||
+++ b/modules/module-reserve-device/plugin.c
|
||||
@@ -221,7 +221,7 @@ wp_reserve_device_plugin_create_reservation (WpReserveDevicePlugin *self,
|
||||
NULL);
|
||||
|
||||
/* use rd->name to avoid copying @em name again */
|
||||
- g_hash_table_insert (self->reserve_devices, rd->name, rd);
|
||||
+ g_hash_table_replace (self->reserve_devices, rd->name, rd);
|
||||
|
||||
return g_object_ref (rd);
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
From 7b56ba347d44507ff510e88b6e0a984c37524de6 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Thu, 18 Nov 2021 15:23:23 +0100
|
||||
Subject: [PATCH 3/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.31.1
|
||||
|
||||
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (wireplumber-0.4.5.tar.bz2) = edff16bf257f1898c58b6375de6f72ae1583dcd35dfb5b3f62cc10b43a038611aeecee8e145ea8c7ed964e9242979974dcd52bfb38125e04d058c76fedc42063
|
||||
SHA512 (wireplumber-0.4.6.tar.bz2) = ae7df1e2aaeff77584ecfbf60f0ae59068bd38f6d075c6db5e6b4ed3722d78ba1ce48e6f61c297952512c33e1cecff60dd9a6a9858bde1da7123b24a3afa4682
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: wireplumber
|
||||
Version: 0.4.5
|
||||
Release: 3%{?dist}
|
||||
Version: 0.4.6
|
||||
Release: 1%{?dist}
|
||||
Summary: A modular session/policy manager for PipeWire
|
||||
|
||||
License: MIT
|
||||
@ -8,9 +8,6 @@ URL: https://pipewire.pages.freedesktop.org/wireplumber/
|
||||
Source0: https://gitlab.freedesktop.org/pipewire/%{name}/-/archive/%{version}/%{name}-%{version}.tar.bz2
|
||||
|
||||
## upstream patches
|
||||
Patch0001: 0001-policy-node-Remove-direction-check.patch
|
||||
Patch0002: 0002-m-reserve-device-replace-the-hash-table-key-on-new-i.patch
|
||||
Patch0003: 0003-policy-node-wait-for-nodes-when-we-become-unlinked.patch
|
||||
|
||||
## upstreamable patches
|
||||
|
||||
@ -118,6 +115,9 @@ fi
|
||||
%{_datadir}/gir-1.0/Wp-0.4.gir
|
||||
|
||||
%changelog
|
||||
* Fri Jan 07 2022 Wim Taymans <wim.taymans@redhat.com> - 0.4.6-1
|
||||
- wireplumber 0.4.6
|
||||
|
||||
* Fri Nov 19 2021 Wim Taymans <wim.taymans@redhat.com> - 0.4.5-3
|
||||
- Add some upstream patches for OBS audio output capture and
|
||||
device switching.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user