1 |
commit: d20fea5200a3c33b1873f28cb48f7c3f658503d5 |
2 |
Author: Niklāvs Koļesņikovs <89q1r14hd <AT> relay <DOT> firefox <DOT> com> |
3 |
AuthorDate: Fri Jan 14 18:25:44 2022 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Jan 14 19:57:22 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d20fea52 |
7 |
|
8 |
media-video/wireplumber: add fix for Pro Audio breaking PA routing |
9 |
|
10 |
Signed-off-by: Niklāvs Koļesņikovs <89q1r14hd <AT> relay.firefox.com> |
11 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
12 |
|
13 |
...default-nodes-handle-nodes-without-Routes.patch | 48 ++++++++++++++++++++++ |
14 |
...er-0.4.7.ebuild => wireplumber-0.4.7-r1.ebuild} | 4 ++ |
15 |
2 files changed, 52 insertions(+) |
16 |
|
17 |
diff --git a/media-video/wireplumber/files/wireplumber-0.4.7-default-nodes-handle-nodes-without-Routes.patch b/media-video/wireplumber/files/wireplumber-0.4.7-default-nodes-handle-nodes-without-Routes.patch |
18 |
new file mode 100644 |
19 |
index 000000000000..aeb5ce067615 |
20 |
--- /dev/null |
21 |
+++ b/media-video/wireplumber/files/wireplumber-0.4.7-default-nodes-handle-nodes-without-Routes.patch |
22 |
@@ -0,0 +1,48 @@ |
23 |
+From 211f1e6b6cd4898121e4c2b821fae4dea6cc3317 Mon Sep 17 00:00:00 2001 |
24 |
+From: Wim Taymans <wtaymans@××××××.com> |
25 |
+Date: Fri, 14 Jan 2022 16:28:48 +0100 |
26 |
+Subject: [PATCH] default-nodes: handle nodes without Routes |
27 |
+ |
28 |
+When a node has not part of any EnumRoute, we must assume it is |
29 |
+available. |
30 |
+ |
31 |
+Fixes selection of Pro Audio nodes as default nodes. |
32 |
+--- |
33 |
+ modules/module-default-nodes.c | 6 ++++++ |
34 |
+ 1 file changed, 6 insertions(+) |
35 |
+ |
36 |
+diff --git a/modules/module-default-nodes.c b/modules/module-default-nodes.c |
37 |
+index 32b2725b..15aadeaa 100644 |
38 |
+--- a/modules/module-default-nodes.c |
39 |
++++ b/modules/module-default-nodes.c |
40 |
+@@ -108,6 +108,7 @@ node_has_available_routes (WpDefaultNodes * self, WpNode *node) |
41 |
+ gint dev_id = dev_id_str ? atoi (dev_id_str) : -1; |
42 |
+ gint cpd = cpd_str ? atoi (cpd_str) : -1; |
43 |
+ g_autoptr (WpDevice) device = NULL; |
44 |
++ gint found = 0; |
45 |
+ |
46 |
+ if (dev_id == -1 || cpd == -1) |
47 |
+ return TRUE; |
48 |
+@@ -168,6 +169,7 @@ node_has_available_routes (WpDefaultNodes * self, WpNode *node) |
49 |
+ for (; wp_iterator_next (it, &v); g_value_unset (&v)) { |
50 |
+ gint32 *d = (gint32 *)g_value_get_pointer (&v); |
51 |
+ if (d && *d == cpd) { |
52 |
++ found++; |
53 |
+ if (route_avail != SPA_PARAM_AVAILABILITY_no) |
54 |
+ return TRUE; |
55 |
+ } |
56 |
+@@ -175,6 +177,10 @@ node_has_available_routes (WpDefaultNodes * self, WpNode *node) |
57 |
+ } |
58 |
+ } |
59 |
+ } |
60 |
++ /* The node is part of a profile without routes so we assume it |
61 |
++ * is available. This can happen for Pro Audio profiles */ |
62 |
++ if (found == 0) |
63 |
++ return TRUE; |
64 |
+ |
65 |
+ return FALSE; |
66 |
+ } |
67 |
+-- |
68 |
+GitLab |
69 |
+ |
70 |
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/211f1e6b6cd4898121e4c2b821fae4dea6cc3317 |
71 |
|
72 |
diff --git a/media-video/wireplumber/wireplumber-0.4.7.ebuild b/media-video/wireplumber/wireplumber-0.4.7-r1.ebuild |
73 |
similarity index 97% |
74 |
rename from media-video/wireplumber/wireplumber-0.4.7.ebuild |
75 |
rename to media-video/wireplumber/wireplumber-0.4.7-r1.ebuild |
76 |
index 2e6c068b1ee9..bbd72a311e17 100644 |
77 |
--- a/media-video/wireplumber/wireplumber-0.4.7.ebuild |
78 |
+++ b/media-video/wireplumber/wireplumber-0.4.7-r1.ebuild |
79 |
@@ -54,6 +54,10 @@ RDEPEND="${DEPEND}" |
80 |
|
81 |
DOCS=( {NEWS,README}.rst ) |
82 |
|
83 |
+PATCHES=( |
84 |
+ "$FILESDIR"/${P}-default-nodes-handle-nodes-without-Routes.patch |
85 |
+) |
86 |
+ |
87 |
src_configure() { |
88 |
local emesonargs=( |
89 |
-Ddoc=disabled # Ebuild not wired up yet (Sphinx, Doxygen?) |