Accepting request 949044 from multimedia:libs
OBS-URL: https://build.opensuse.org/request/show/949044 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=4
This commit is contained in:
parent
4269a918a4
commit
559ce75d31
47
0001-default-nodes-handle-nodes-without-Routes.patch
Normal file
47
0001-default-nodes-handle-nodes-without-Routes.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From 211f1e6b6cd4898121e4c2b821fae4dea6cc3317 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Fri, 14 Jan 2022 16:28:48 +0100
|
||||
Subject: [PATCH] default-nodes: handle nodes without Routes
|
||||
|
||||
When a node has not part of any EnumRoute, we must assume it is
|
||||
available.
|
||||
|
||||
Fixes selection of Pro Audio nodes as default nodes.
|
||||
---
|
||||
modules/module-default-nodes.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/modules/module-default-nodes.c b/modules/module-default-nodes.c
|
||||
index 32b2725b..15aadeaa 100644
|
||||
--- a/modules/module-default-nodes.c
|
||||
+++ b/modules/module-default-nodes.c
|
||||
@@ -108,6 +108,7 @@ node_has_available_routes (WpDefaultNodes * self, WpNode *node)
|
||||
gint dev_id = dev_id_str ? atoi (dev_id_str) : -1;
|
||||
gint cpd = cpd_str ? atoi (cpd_str) : -1;
|
||||
g_autoptr (WpDevice) device = NULL;
|
||||
+ gint found = 0;
|
||||
|
||||
if (dev_id == -1 || cpd == -1)
|
||||
return TRUE;
|
||||
@@ -168,6 +169,7 @@ node_has_available_routes (WpDefaultNodes * self, WpNode *node)
|
||||
for (; wp_iterator_next (it, &v); g_value_unset (&v)) {
|
||||
gint32 *d = (gint32 *)g_value_get_pointer (&v);
|
||||
if (d && *d == cpd) {
|
||||
+ found++;
|
||||
if (route_avail != SPA_PARAM_AVAILABILITY_no)
|
||||
return TRUE;
|
||||
}
|
||||
@@ -175,6 +177,10 @@ node_has_available_routes (WpDefaultNodes * self, WpNode *node)
|
||||
}
|
||||
}
|
||||
}
|
||||
+ /* The node is part of a profile without routes so we assume it
|
||||
+ * is available. This can happen for Pro Audio profiles */
|
||||
+ if (found == 0)
|
||||
+ return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
@ -1,46 +0,0 @@
|
||||
From afe71d7e48c28b0ae5cbd9327433e3c55c103fcb Mon Sep 17 00:00:00 2001
|
||||
From: Julian Bouzas <julian.bouzas@collabora.com>
|
||||
Date: Thu, 6 Jan 2022 10:53:38 -0500
|
||||
Subject: [PATCH] policy-node: schedule a rescan without timeout if defined
|
||||
target is not found
|
||||
|
||||
Fixes #146
|
||||
---
|
||||
src/scripts/policy-node.lua | 17 ++++-------------
|
||||
1 file changed, 4 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
|
||||
index 8ca5a695..c273c1fe 100644
|
||||
--- a/src/scripts/policy-node.lua
|
||||
+++ b/src/scripts/policy-node.lua
|
||||
@@ -552,25 +552,16 @@ function handleLinkable (si)
|
||||
si_target = nil
|
||||
end
|
||||
|
||||
- -- wait up to 2 seconds for the requested target to become available
|
||||
- -- this is because the client may have already "seen" a target that we haven't
|
||||
- -- yet prepared, which leads to a race condition
|
||||
+ -- if the client has seen a target that we haven't yet prepared, schedule
|
||||
+ -- a rescan one more time and hope for the best
|
||||
local si_id = si.id
|
||||
if si_props["node.target"] and si_props["node.target"] ~= "-1"
|
||||
and not si_target
|
||||
and not si_flags[si_id].was_handled
|
||||
and not si_flags[si_id].done_waiting then
|
||||
- if not si_flags[si_id].timeout_source then
|
||||
- si_flags[si_id].timeout_source = Core.timeout_add(2000, function()
|
||||
- if si_flags[si_id] then
|
||||
- si_flags[si_id].done_waiting = true
|
||||
- si_flags[si_id].timeout_source = nil
|
||||
- scheduleRescan()
|
||||
- end
|
||||
- return false
|
||||
- end)
|
||||
- end
|
||||
Log.info (si, "... waiting for target")
|
||||
+ si_flags[si_id].done_waiting = true
|
||||
+ scheduleRescan()
|
||||
return
|
||||
end
|
||||
|
||||
--
|
@ -1,45 +0,0 @@
|
||||
From bee9827ae376b75feceea926b0afc727fecca51b Mon Sep 17 00:00:00 2001
|
||||
From: Julian Bouzas <julian.bouzas@collabora.com>
|
||||
Date: Fri, 7 Jan 2022 15:35:10 -0500
|
||||
Subject: [PATCH] policy-node: find best linkable if default one cannot be
|
||||
linked
|
||||
|
||||
Fixes issue with echo cancellation pipewire module.
|
||||
---
|
||||
src/scripts/policy-node.lua | 21 +++++++++++++++------
|
||||
1 file changed, 15 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
|
||||
index 8ca5a695..3210f579 100644
|
||||
--- a/src/scripts/policy-node.lua
|
||||
+++ b/src/scripts/policy-node.lua
|
||||
@@ -477,13 +477,22 @@ function findBestLinkable (si)
|
||||
end
|
||||
|
||||
function findUndefinedTarget (si)
|
||||
- -- Find the default linkable if the default nodes module is loaded, otherwise
|
||||
- -- just find the best linkable based on priority and routes
|
||||
- if default_nodes ~= nil then
|
||||
- return findDefaultlinkable (si)
|
||||
- else
|
||||
- return findBestlinkable (si)
|
||||
+ -- Just find the best linkable if default nodes module is not loaded
|
||||
+ if default_nodes == nil then
|
||||
+ return findBestLinkable (si)
|
||||
end
|
||||
+
|
||||
+ -- Otherwise find the default linkable. If the default linkabke cannot link,
|
||||
+ -- we find the best one instead. We return nil if default does not exist.
|
||||
+ local si_target, can_passthrough = findDefaultlinkable (si)
|
||||
+ if si_target then
|
||||
+ if canLink (si.properties, si_target) then
|
||||
+ return si_target, can_passthrough
|
||||
+ else
|
||||
+ return findBestLinkable (si)
|
||||
+ end
|
||||
+ end
|
||||
+ return nil, nil
|
||||
end
|
||||
|
||||
function lookupLink (si_id, si_target_id)
|
||||
--
|
2
_service
2
_service
@ -4,7 +4,7 @@
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="revision">0.4.6</param>
|
||||
<param name="revision">0.4.7</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<!--
|
||||
<param name="versionprefix">0.4.6+git</param>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="changesrevision">9a733293d7d39554d0c9b04741a64ece023dbac6</param></service></servicedata>
|
||||
<param name="changesrevision">afb177b5e0840d54dc41d02920702c3c9580ce02</param></service></servicedata>
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ed1b38dd1e18d48f7b8002deb81157fb402a9b04303b20b1ef46b6d43dfa45f9
|
||||
size 1798668
|
3
wireplumber-0.4.7.obscpio
Normal file
3
wireplumber-0.4.7.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4731fd072ee13bbdaf270b10af3639a8f8abfd8aa43d9062fa46783584edb23b
|
||||
size 1806348
|
@ -1,3 +1,30 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 25 15:08:59 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Update to version 0.4.7:
|
||||
* Fixed a regression in 0.4.6 that caused the selection of the
|
||||
default audio sources and sinks to be delayed until some event,
|
||||
which effectively caused losing audio output in many
|
||||
circumstances (glfo#pipewire/wireplumber#148,
|
||||
glfo#pipewire/wireplumber#150, glfo#pipewire/wireplumber#151,
|
||||
glfo#pipewire/wireplumber#153)
|
||||
* Fixed a regression in 0.4.6 that caused the echo-cancellation
|
||||
pipewire module (and possibly others) to not work
|
||||
* A default sink or source is now not selected if there is no
|
||||
available route for it (glfo#pipewire/wireplumber#145)
|
||||
* Fixed an issue where some clients would wait for a bit while
|
||||
seeking (glfo#pipewire/wireplumber#146)
|
||||
* Fixed audio capture in the endpoints-based policy
|
||||
* Fixed an issue that would cause certain lua scripts to error
|
||||
out with older configuration files
|
||||
(glfo#pipewire/wireplumber#158)
|
||||
- Drop patches already included upstream:
|
||||
* 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
|
||||
* 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
|
||||
- Add patch from upstream to fix selection of Pro Audio nodes
|
||||
as default nodes:
|
||||
* 0001-default-nodes-handle-nodes-without-Routes.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 10 09:50:15 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
name: wireplumber
|
||||
version: 0.4.6
|
||||
mtime: 1641485511
|
||||
commit: 9a733293d7d39554d0c9b04741a64ece023dbac6
|
||||
version: 0.4.7
|
||||
mtime: 1642066064
|
||||
commit: afb177b5e0840d54dc41d02920702c3c9580ce02
|
||||
|
@ -22,7 +22,7 @@
|
||||
%define sover 0
|
||||
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
|
||||
Name: wireplumber
|
||||
Version: 0.4.6
|
||||
Version: 0.4.7
|
||||
Release: 0
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
License: MIT
|
||||
@ -30,8 +30,8 @@ Group: Development/Libraries/C and C++
|
||||
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
|
||||
Source0: wireplumber-%{version}.tar.xz
|
||||
Source1: split-config-file.py
|
||||
Patch0: 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
|
||||
Patch1: 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
|
||||
Patch0: 0001-default-nodes-handle-nodes-without-Routes.patch
|
||||
|
||||
Patch100: reduce-meson-required-version.patch
|
||||
# docs
|
||||
BuildRequires: doxygen
|
||||
|
Loading…
Reference in New Issue
Block a user