summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/pipewire
diff options
context:
space:
mode:
authorAshok Sidipotu <ashok.sidipotu@collabora.com>2023-03-20 18:09:30 +0530
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-04-04 09:15:08 +0000
commit535bc8f54ce5fcb4a94204df5f2b3317beb53f23 (patch)
treed76d6b561133e76e72e5ed265e69b0dda0f26287 /meta-pipewire/recipes-multimedia/pipewire
parente9f25619d276d2d12142658313d730056109351e (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: Ie2f9cb99b4594d21e5c2acd092fe54e93d067410 Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28590 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 = "\