Accepting request 1168471 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1168471
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=34
This commit is contained in:
Ana Guerrero 2024-04-18 20:10:39 +00:00 committed by Git OBS Bridge
commit 1d2386cd73
5 changed files with 136 additions and 0 deletions

View File

@ -0,0 +1,28 @@
From 7856124df0ebd28e259ce5b84b186cc4c859acd7 Mon Sep 17 00:00:00 2001
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
Date: Wed, 3 Apr 2024 11:52:18 +0300
Subject: [PATCH] core: set context.modules.allow-empty to silence warning in
pw_context
See https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/cddea858d9e8894d777b1830d76db18e57791e29
Closes: #620
---
lib/wp/core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/wp/core.c b/lib/wp/core.c
index 9de0e69b..7e59447a 100644
--- a/lib/wp/core.c
+++ b/lib/wp/core.c
@@ -330,6 +330,7 @@ wp_core_constructed (GObject *object)
/* disable loading of a configuration file in pw_context */
wp_properties_set (self->properties, PW_KEY_CONFIG_NAME, "null");
+ wp_properties_set (self->properties, "context.modules.allow-empty", "true");
}
/* properties are fully stored in the pw_context, no need to keep a copy */
--
GitLab

View File

@ -0,0 +1,47 @@
From 8ee351838dac5ac25224ca2a22bb1a55eace0291 Mon Sep 17 00:00:00 2001
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
Date: Wed, 3 Apr 2024 11:32:35 +0300
Subject: [PATCH] monitor-utils: clear cam data after creating nodes
The cam_data structure stores a reference to the "parent" WpSpaDevice
and doesn't allow it to be destroyed when the monitor detects that
the device is no longer present. Clear it right after pushing the event
to make sure there's no dangling reference left around
Fixes: #627
---
src/scripts/lib/monitor-utils.lua | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/scripts/lib/monitor-utils.lua b/src/scripts/lib/monitor-utils.lua
index 5c58cd68..c23ec1cd 100644
--- a/src/scripts/lib/monitor-utils.lua
+++ b/src/scripts/lib/monitor-utils.lua
@@ -40,6 +40,15 @@ function mutils.get_cam_data (self, dev_string)
return self.cam_data[dev_num], dev_num
end
+function mutils.clear_cam_data (self, dev_string)
+ local dev_num = tonumber (dev_string)
+ if not dev_num then
+ return
+ end
+
+ self.cam_data[dev_num] = nil
+end
+
function mutils.create_cam_node (self, dev_num)
local api = nil
local cam_data = self:get_cam_data (dev_num)
@@ -65,6 +74,8 @@ function mutils.create_cam_node (self, dev_num)
e:set_data ("node-sub-id", cam_data[api].id)
EventDispatcher.push_event (e)
+
+ self:clear_cam_data (dev_num)
end
-- arbitrates between v4l2 and libcamera on who gets to create the device node
--
GitLab

View File

@ -0,0 +1,47 @@
From 9d7c6b85d0d2f8e26298cbaf072491662a9d2702 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Sat, 6 Apr 2024 21:59:16 +0300
Subject: [PATCH] monitors/bluez: fix BAP device set node naming
It is intended that its name is the actual device node name.
Fix this, as it was broken in some recent changes.
---
src/scripts/monitors/bluez.lua | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/scripts/monitors/bluez.lua b/src/scripts/monitors/bluez.lua
index 336cd619..c3c00c60 100644
--- a/src/scripts/monitors/bluez.lua
+++ b/src/scripts/monitors/bluez.lua
@@ -171,7 +171,6 @@ end)
function createSetNode(parent, id, type, factory, properties)
local args = {}
- local name
local target_class
local stream_class
local rules = {}
@@ -181,12 +180,10 @@ function createSetNode(parent, id, type, factory, properties)
local channels = channels_json:parse ()
if properties["media.class"] == "Audio/Sink" then
- name = "bluez_output_internal"
args["combine.mode"] = "sink"
target_class = "Audio/Sink/Internal"
stream_class = "Stream/Output/Audio/Internal"
else
- name = "bluez_input_internal"
args["combine.mode"] = "source"
target_class = "Audio/Source/Internal"
stream_class = "Stream/Input/Audio/Internal"
@@ -214,7 +211,6 @@ function createSetNode(parent, id, type, factory, properties)
)
end
- properties["node.name"] = name
properties["node.virtual"] = false
properties["device.api"] = "bluez5"
properties["api.bluez5.set.members"] = nil
--
GitLab

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Apr 15 07:54:54 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Add patch from upstream to silence a warning on pipewire
(since 1.0.5):
* 0001-core-set-context.modules.allow-empty-to-silence-warning-in.patch
- Add patch from upstream to fix a dangling reference to a device:
* 0002-monitor-utils-clear-cam-data-after-creating-nodes.patch
- Add patch from upstream to fix BAP node naming:
* 0003-monitors_bluez-fix-BAP-device-set-node-naming.patch
-------------------------------------------------------------------
Mon Apr 1 07:53:59 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -30,6 +30,9 @@ 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-core-set-context.modules.allow-empty-to-silence-warning-in.patch
Patch1: 0002-monitor-utils-clear-cam-data-after-creating-nodes.patch
Patch2: 0003-monitors_bluez-fix-BAP-device-set-node-naming.patch
# docs
BuildRequires: doxygen
BuildRequires: graphviz