summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAshok Sidipotu <ashok.sidipotu@collabora.com>2023-12-20 01:05:41 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-12-29 15:57:56 +0000
commit4b6d23485d23dad66b2e5572cdedacca5c1f6362 (patch)
tree0455f936859ddcc7490ed9998f46bc3d843e26af
parent64258485d6d09977a27c1313a39c4567b0d5ac71 (diff)
pipewire: Update PipeWire to v1.0.0 and WirePlumber to v0.4.17
The PipeWire project is immensely proud to announce the 1.0 release of PipeWire. Highlights of Pipewire. - Fix a memfd/dmabuf leak when uploading buffers while shutting down. - Handle concurrent jack_port_get_buffer() calls because ardour seems to be doing this. - Improve time reporting (less jitter) in ALSA when using IRQ. - Many doc improvements Highlights of wireplumber. - Fixed a reference counting issue in the object managers that could cause crashes due to memory corruption (#534) - Fixed an issue with filters linking to wrong targets, often with two sets of links (#536) - Fixed a crash in the endpoints policy that would show up when log messages were enabled at level 3 or higher Bug-AGL: SPEC-5022 Change-Id: Ibeff85f7f4b02b8b667e4c6caf6beab4487854bc Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/29546 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-gst-avoid-reporting-error-twice.patch62
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-gstpipewiresrc-break-out-of-wait_started-also-on-STA.patch38
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bb (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.83.bb)5
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bbappend (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.83.bbappend)2
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-policy-endpoint-device.lua-fix-dangling-logs-issue.patch47
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb7
6 files changed, 6 insertions, 155 deletions
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-gst-avoid-reporting-error-twice.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-gst-avoid-reporting-error-twice.patch
deleted file mode 100644
index fa123a07f..000000000
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-gst-avoid-reporting-error-twice.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From cbb12450c2f258ef3ac8239889784e1a97dfeaa8 Mon Sep 17 00:00:00 2001
-From: George Kiagiadakis <george.kiagiadakis@collabora.com>
-Date: Wed, 8 Nov 2023 18:12:59 +0200
-Subject: [PATCH 1/2] gst: avoid reporting error twice
-
-First, make the error permanent by calling pw_stream_set_error()
-and when this emits an error state again, report that to GStreamer.
-
-Do the same in pipewiresink, which didn't even have the
-pw_stream_set_error() call before, so the stream wasn't really going
-into an error state at all.
-
-Upstream-Status: Pipewire MR1763 merged
----
- src/gst/gstpipewiresink.c | 9 +++++++--
- src/gst/gstpipewiresrc.c | 10 +++++++---
- 2 files changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/src/gst/gstpipewiresink.c b/src/gst/gstpipewiresink.c
-index 36d158095..001ede9d5 100644
---- a/src/gst/gstpipewiresink.c
-+++ b/src/gst/gstpipewiresink.c
-@@ -532,8 +532,13 @@ on_state_changed (void *data, enum pw_stream_state old, enum pw_stream_state sta
- pw_stream_trigger_process (pwsink->stream);
- break;
- case PW_STREAM_STATE_ERROR:
-- GST_ELEMENT_ERROR (pwsink, RESOURCE, FAILED,
-- ("stream error: %s", error), (NULL));
-+ /* make the error permanent, if it is not already;
-+ pw_stream_set_error() will recursively call us again */
-+ if (pw_stream_get_state (pwsink->stream, NULL) != PW_STREAM_STATE_ERROR)
-+ pw_stream_set_error (pwsink->stream, -EPIPE, "%s", error);
-+ else
-+ GST_ELEMENT_ERROR (pwsink, RESOURCE, FAILED,
-+ ("stream error: %s", error), (NULL));
- break;
- }
- pw_thread_loop_signal (pwsink->core->loop, FALSE);
-diff --git a/src/gst/gstpipewiresrc.c b/src/gst/gstpipewiresrc.c
-index 0514e4caa..e473338ba 100644
---- a/src/gst/gstpipewiresrc.c
-+++ b/src/gst/gstpipewiresrc.c
-@@ -681,9 +681,13 @@ on_state_changed (void *data,
- case PW_STREAM_STATE_STREAMING:
- break;
- case PW_STREAM_STATE_ERROR:
-- pw_stream_set_error (pwsrc->stream, -EPIPE, "%s", error);
-- GST_ELEMENT_ERROR (pwsrc, RESOURCE, FAILED,
-- ("stream error: %s", error), (NULL));
-+ /* make the error permanent, if it is not already;
-+ pw_stream_set_error() will recursively call us again */
-+ if (pw_stream_get_state (pwsrc->stream, NULL) != PW_STREAM_STATE_ERROR)
-+ pw_stream_set_error (pwsrc->stream, -EPIPE, "%s", error);
-+ else
-+ GST_ELEMENT_ERROR (pwsrc, RESOURCE, FAILED,
-+ ("stream error: %s", error), (NULL));
- break;
- }
- pw_thread_loop_signal (pwsrc->core->loop, FALSE);
---
-2.41.0
-
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-gstpipewiresrc-break-out-of-wait_started-also-on-STA.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-gstpipewiresrc-break-out-of-wait_started-also-on-STA.patch
deleted file mode 100644
index 29bc50472..000000000
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-gstpipewiresrc-break-out-of-wait_started-also-on-STA.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4fb8417b201033ae2de20032b44d52cae1394ff8 Mon Sep 17 00:00:00 2001
-From: George Kiagiadakis <george.kiagiadakis@collabora.com>
-Date: Wed, 8 Nov 2023 18:23:02 +0200
-Subject: [PATCH 2/2] gstpipewiresrc: break out of wait_started() also on
- STATE_UNCONNECTED
-
-When the session manager sends an error to the client, it typically
-also destroys the node after the error, which causes the stream to go
-to STATE_UNCONNECTED via proxy_removed(). In that case, make sure
-we exit the loop early, otherwise it will take 30 seconds to unblock
-gst_element_set_state()
-
-Upstream-Status: Pipewire MR1763 merged
----
- src/gst/gstpipewiresrc.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/gst/gstpipewiresrc.c b/src/gst/gstpipewiresrc.c
-index e473338ba..e3b86b373 100644
---- a/src/gst/gstpipewiresrc.c
-+++ b/src/gst/gstpipewiresrc.c
-@@ -783,10 +783,9 @@ wait_started (GstPipeWireSrc *this)
- GST_DEBUG_OBJECT (this, "waiting for started signal, state now %s",
- pw_stream_state_as_string (state));
-
-- if (state == PW_STREAM_STATE_ERROR)
-- break;
--
-- if (this->flushing) {
-+ if (state == PW_STREAM_STATE_ERROR ||
-+ state == PW_STREAM_STATE_UNCONNECTED ||
-+ this->flushing) {
- state = PW_STREAM_STATE_ERROR;
- break;
- }
---
-2.41.0
-
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.83.bb b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bb
index 0ac4d0937..641c97e8f 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.83.bb
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bb
@@ -20,8 +20,8 @@ SECTION = "multimedia"
DEPENDS = "dbus"
-# v0.3.83
-SRCREV = "6fd7f39dbec9c3a65aa2de0123c6bfbda7c53a85"
+# v1.0.0(El Presidente)
+SRCREV = "4debdcd40b055b3eaa83a8f4443aa990ea566bfe"
SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -233,6 +233,7 @@ FILES:${PN} = " \
${datadir}/pipewire/filter-chain.conf \
${datadir}/pipewire/filter-chain \
${systemd_user_unitdir}/pipewire.* \
+ ${systemd_system_unitdir}/pipewire* \
${bindir}/pipewire \
${datadir}/pipewire/pipewire-avb.conf \
${bindir}/pipewire-avb \
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.83.bbappend b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bbappend
index 6b920abd3..beb7c0817 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.83.bbappend
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bbappend
@@ -1,7 +1,5 @@
SRC_URI += "\
file://0001-systemd-Do-not-override-rootprefix.patch \
- file://0002-gst-avoid-reporting-error-twice.patch \
- file://0003-gstpipewiresrc-break-out-of-wait_started-also-on-STA.patch \
"
PACKAGECONFIG = "\
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-policy-endpoint-device.lua-fix-dangling-logs-issue.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-policy-endpoint-device.lua-fix-dangling-logs-issue.patch
deleted file mode 100644
index ef7192192..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-policy-endpoint-device.lua-fix-dangling-logs-issue.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From d1624b1648512ead7f6b222bc64cda94016fb0c6 Mon Sep 17 00:00:00 2001
-From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
-Date: Fri, 24 Nov 2023 02:45:41 +0100
-Subject: [PATCH] policy-endpoint-device.lua: fix dangling logs issue.
-
-When logs are enabled sometimes the new log msgs added to print the link
-string can assert.
-
-Upstream-Status: WirePlumber MR570 submitted
----
- src/scripts/policy-endpoint-device.lua | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/src/scripts/policy-endpoint-device.lua b/src/scripts/policy-endpoint-device.lua
-index 4440c17c..4c74077b 100644
---- a/src/scripts/policy-endpoint-device.lua
-+++ b/src/scripts/policy-endpoint-device.lua
-@@ -116,7 +116,7 @@ function createLink (si_ep, si_target)
- local in_item = nil
- local ep_props = si_ep.properties
- local target_props = si_target.properties
--
-+ local is_filter = (ep_props["node.link-group"] ~= nil)
- if target_props["item.node.direction"] == "input" then
- -- playback
- out_item = si_ep
-@@ -131,10 +131,10 @@ function createLink (si_ep, si_target)
- (is_filter and ep_props["node.name"] or ep_props["name"]),
- target_props["node.name"])
-
-- Log.info(si_link, link_string)
--
- -- create and configure link
- local si_link = SessionItem ( "si-standard-link" )
-+
-+ Log.info(si_link, "creating link " .. link_string)
- if not si_link:configure {
- ["out.item"] = out_item,
- ["in.item"] = in_item,
-@@ -146,6 +146,7 @@ function createLink (si_ep, si_target)
- return
- end
-
-+
- -- register
- si_link:register ()
-
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
index 0d7e354fb..698b9a534 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
@@ -13,16 +13,15 @@ DEPENDS = "glib-2.0 glib-2.0-native pipewire lua"
SRC_URI = "\
git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \
- file://0001-policy-endpoint-device.lua-fix-dangling-logs-issue.patch \
"
-# v0.4.16
-SRCREV = "0d249b8a13d7168fe54fa6eb1db1c4a5fcc8d3f8"
+# v0.4.17
+SRCREV = "d3eb77b292655cef333a8f4cab4e861415bc37c2"
# patches to be able to compile with lower version of meson that is available in AGL.
SRC_URI += "\
"
-PV = "0.4.16"
+PV = "0.4.17"
S = "${WORKDIR}/git"
WPAPI="0.4"