summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/pipewire
diff options
context:
space:
mode:
authorAshok Sidipotu <ashok.sidipotu@collabora.com>2023-03-29 04:48:32 +0530
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-04-18 12:14:51 +0000
commit7a954ce701c71db4ef17bb0d8b39c423f4062f0a (patch)
tree3063de80bce971cd29bde5f1a357a2e0e864ecff /meta-pipewire/recipes-multimedia/pipewire
parent528cab9f7d1b103cd4a95260a024c3e7e4bfaa63 (diff)
pipewire: Update pw to v0.3.67 and wp to v0.4.14
Highlights of Pipewire. - The loopback module and other couples streams will now not randomly fail in some cases. (#3028). - PipeWire can now generate a limits.d config file with our recommended settings for priorities and memlock. - Add back the deprecated symbols but make sure a deprecated warning is emitted for them. This fixes compilation issues in bindings. - Clear old buffer memory on ports to fix some SIGBUS errors. - Fix a critical bug that causes audio distortion in some cases when using. AVX2. Highlights of Wireplumber. - Added bluetooth SCO (HSP/HFP) hardware offload support, together with an example script that enables this functionality on the PinePhone. - WirePlumber now maintains a stack of previously configured default nodes and prioritizes to one of those when the actively configured default node becomes unavailable, before calculating the next default using priorities (see !396). - The libcamera monitor is now enabled by default, so if the libcamera source is enabled in PipeWire, cameras discovered with the libcamera API will be available out of the box. This is safe to use alongside V4L2, as long as the user does not try to use the same camera over different APIs at the same time. - Added i18n support to be able to translate some user-visible strings. Bug-AGL: SPEC-4732 Change-Id: Ie394e57df6483f9dc8f7b85e441b5f56ddca7189 Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28582 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>
Diffstat (limited to 'meta-pipewire/recipes-multimedia/pipewire')
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-loop-remove-destroy-list.patch120
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.67.bb (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.47.bb)10
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.67.bbappend (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.47.bbappend)1
3 files changed, 8 insertions, 123 deletions
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-loop-remove-destroy-list.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-loop-remove-destroy-list.patch
deleted file mode 100644
index 8a988b024..000000000
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-loop-remove-destroy-list.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 16f63a3c8fa227625bade5a9edea22354b347d18 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
-Date: Fri, 18 Feb 2022 18:36:36 +0100
-Subject: [PATCH] Revert "loop: remove destroy list"
-
-This reverts commit c474846c42967c44db069a23b76a29da6f496f33.
-In addition, `s->loop` is also checked before dispatching a source.
-
-The destroy list is needed in the presence of threads. The
-issue is that a source may be destroyed between `epoll_wait()`
-returning and thread loop lock being acquired. If this
-source is active, then a use-after-free will be triggered
-when the thread loop acquires the lock and starts dispatching
-the sources.
-
- thread 1 thread 2
- ---------- ----------
- loop_iterate
- spa_loop_control_hook_before
- // release lock
-
- pw_thread_loop_lock
-
- spa_system_pollfd_wait
- // assume it returns with source A
-
- pw_loop_destroy_source(..., A)
- // frees storage of A
-
- pw_thread_loop_unlock
- spa_loop_control_hook_after
- // acquire the lock
-
- for (...) {
- struct spa_source *s = ep[i].data;
- s->rmask = ep[i].events;
- // use-after-free if `s` refers to
- // the previously freed `A`
-
-Fixes #2147
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/16f63a3c]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- spa/plugins/support/loop.c | 19 +++++++++++++++++--
- 1 file changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/spa/plugins/support/loop.c b/spa/plugins/support/loop.c
-index 0588ce770..04739eb2a 100644
---- a/spa/plugins/support/loop.c
-+++ b/spa/plugins/support/loop.c
-@@ -75,6 +75,7 @@ struct impl {
- struct spa_system *system;
-
- struct spa_list source_list;
-+ struct spa_list destroy_list;
- struct spa_hook_list hooks_list;
-
- int poll_fd;
-@@ -325,6 +326,14 @@ static void loop_leave(void *object)
- impl->thread = 0;
- }
-
-+static inline void process_destroy(struct impl *impl)
-+{
-+ struct source_impl *source, *tmp;
-+ spa_list_for_each_safe(source, tmp, &impl->destroy_list, link)
-+ free(source);
-+ spa_list_init(&impl->destroy_list);
-+}
-+
- static int loop_iterate(void *object, int timeout)
- {
- struct impl *impl = object;
-@@ -354,11 +363,14 @@ static int loop_iterate(void *object, int timeout)
- }
- for (i = 0; i < nfds; i++) {
- struct spa_source *s = ep[i].data;
-- if (SPA_LIKELY(s && s->rmask)) {
-+ if (SPA_LIKELY(s && s->rmask && s->loop)) {
- s->priv = NULL;
- s->func(s);
- }
- }
-+ if (SPA_UNLIKELY(!spa_list_is_empty(&impl->destroy_list)))
-+ process_destroy(impl);
-+
- return nfds;
- }
-
-@@ -712,7 +724,7 @@ static void loop_destroy_source(void *object, struct spa_source *source)
- spa_system_close(impl->impl->system, source->fd);
- source->fd = -1;
- }
-- free(source);
-+ spa_list_insert(&impl->impl->destroy_list, &impl->link);
- }
-
- static const struct spa_loop_methods impl_loop = {
-@@ -783,6 +795,8 @@ static int impl_clear(struct spa_handle *handle)
- spa_list_consume(source, &impl->source_list, link)
- loop_destroy_source(impl, &source->source);
-
-+ process_destroy(impl);
-+
- spa_system_close(impl->system, impl->ack_fd);
- spa_system_close(impl->system, impl->poll_fd);
-
-@@ -844,6 +858,7 @@ impl_init(const struct spa_handle_factory *factory,
- impl->poll_fd = res;
-
- spa_list_init(&impl->source_list);
-+ spa_list_init(&impl->destroy_list);
- spa_hook_list_init(&impl->hooks_list);
-
- impl->buffer_data = SPA_PTR_ALIGN(impl->buffer_mem, MAX_ALIGN, uint8_t);
---
-2.35.1
-
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.47.bb b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.67.bb
index c7479bec9..30e27b2fd 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.47.bb
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.67.bb
@@ -20,8 +20,8 @@ SECTION = "multimedia"
DEPENDS = "dbus"
-# v0.3.47
-SRCREV = "2af393889358723a2789caa3c856700b1c968ef0"
+# v0.3.67
+SRCREV = "26623ff8cb3c9ba774537379a1835c5efb0d5159"
SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -230,9 +230,15 @@ SYSTEMD_SERVICE:${PN} = "pipewire.service"
CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
FILES:${PN} = " \
${datadir}/pipewire/pipewire.conf \
+ ${datadir}/pipewire/filter-chain.conf \
${datadir}/pipewire/filter-chain \
${systemd_user_unitdir}/pipewire.* \
${bindir}/pipewire \
+ ${datadir}/pipewire/pipewire-avb.conf \
+ ${bindir}/pipewire-avb \
+ ${datadir}/pipewire/pipewire-aes67.conf \
+ ${bindir}/pipewire-aes67 \
+ ${sysconfdir}/security/limits.d \
"
FILES:${PN}-dev += " \
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.47.bbappend b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.67.bbappend
index 4cd74a818..beb7c0817 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.47.bbappend
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.67.bbappend
@@ -1,6 +1,5 @@
SRC_URI += "\
file://0001-systemd-Do-not-override-rootprefix.patch \
- file://0002-Revert-loop-remove-destroy-list.patch \
"
PACKAGECONFIG = "\