aboutsummaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/wireplumber
diff options
context:
space:
mode:
authorAshok Sidipotu <ashok.sidipotu@collabora.com>2022-02-24 11:46:15 +0530
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2022-03-05 19:16:04 +0000
commitdebe203be9bf5e842b082751f53cb0502be02db1 (patch)
tree6303438434b673d9ea80608e6eee6f3072b576e2 /meta-pipewire/recipes-multimedia/wireplumber
parent76af8fd0941168ca3bbd1cf3b7c283a87c382281 (diff)
pipewire: Update pw to v0.3.47 and wp to v0.4.8
Highlights of Pipewire. - Removed check and warnings to catch leaked listeners on the proxy. - Fix critical bug where alsa devices would not show when the kernel was compiled without VERBOSE_PROCFS - Almost all limits on number of ports, clients and nodes are removed. - Many more bug fixes and imporovements. Highlights of Wireplumber. - Added bluetooth profile auto-switching support between A2DP and HFP modes - Better default audio sources and sinks selection - Backported a fix for a known issue with selecting the default devices on top of 0.4.8 (ae6c9a5e) - Many more bug fixes and imporovements. Change-Id: Id5414aed065593893a237437a8c77645cbf15804 Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27220 Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-pipewire/recipes-multimedia/wireplumber')
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-tests-add-pipewire-env-variables-when-running.patch (renamed from meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch)17
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-wp-uninstalled-build-this-script-with-the-mes.patch (renamed from meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch)13
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0003-spa-json-fix-va_list-APIs-for-different-architecture.patch214
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb11
4 files changed, 235 insertions, 20 deletions
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-tests-add-pipewire-env-variables-when-running.patch
index 7a24d1554..88301d56f 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-tests-add-pipewire-env-variables-when-running.patch
@@ -1,8 +1,8 @@
-From 4ea8ddc256df636208479a5b64bf8bdc6e413aca Mon Sep 17 00:00:00 2001
+From 1197f31d2b681d0cf0ca1309d50c8ab8ea80ac5e Mon Sep 17 00:00:00 2001
From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
Date: Thu, 2 Dec 2021 16:57:54 +0530
-Subject: [PATCH] Revert "tests: add pipewire env variables when running tests,
- tidy up common_env"
+Subject: [PATCH 1/2] Revert "tests: add pipewire env variables when running
+ tests, tidy up common_env"
This reverts commit c24db9f3539f9b7ebe9e74c991cc3037f28ea22c.
@@ -75,7 +75,7 @@ index ffab80b..2fc46dc 100644
'-DG_LOG_USE_STRUCTURED',
]
diff --git a/tests/wp/meson.build b/tests/wp/meson.build
-index adc9cef..e75640c 100644
+index 178564d..b64ccae 100644
--- a/tests/wp/meson.build
+++ b/tests/wp/meson.build
@@ -1,7 +1,11 @@
@@ -94,7 +94,7 @@ index adc9cef..e75640c 100644
'-DG_LOG_USE_STRUCTURED',
]
diff --git a/tests/wplua/meson.build b/tests/wplua/meson.build
-index 128cc30..cd45c1c 100644
+index a7ff033..fcf4b51 100644
--- a/tests/wplua/meson.build
+++ b/tests/wplua/meson.build
@@ -1,13 +1,18 @@
@@ -120,19 +120,20 @@ index 128cc30..cd45c1c 100644
)
script_tester = executable('script-tester',
-@@ -20,10 +25,12 @@ test(
+@@ -20,6 +25,7 @@ test(
script_tester,
args: ['pod.lua'],
env: common_env,
+ workdir : meson.current_source_dir(),
)
test(
- 'test-lua-monitor-rules',
+ 'test-lua-json',
+@@ -32,4 +38,5 @@ test(
script_tester,
args: ['monitor-rules.lua'],
env: common_env,
+ workdir : meson.current_source_dir(),
)
--
-2.33.1
+2.35.1
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-wp-uninstalled-build-this-script-with-the-mes.patch
index 658b89946..d20634d8b 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-wp-uninstalled-build-this-script-with-the-mes.patch
@@ -1,11 +1,10 @@
-From 78cde5e91ba5d9aa7bfe918ce6bad3b4af30c796 Mon Sep 17 00:00:00 2001
+From 8e959b7894047030edca21a04dd91994e8868a1f Mon Sep 17 00:00:00 2001
From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
-Date: Fri, 14 Jan 2022 20:14:56 +0530
-Subject: [PATCH] Revert "wp-uninstalled: build this script with the meson dirs
- filled in"
+Date: Fri, 25 Feb 2022 06:05:43 +0530
+Subject: [PATCH 2/2] Revert "wp-uninstalled: build this script with the meson
+ dirs filled in"
This reverts commit 52aaf96179584292f493c4b329bc2c409e6d3dee.
-
Upstream-Status: Inappropriate[meson version dependent]
---
meson.build | 31 -------------------------------
@@ -13,7 +12,7 @@ Upstream-Status: Inappropriate[meson version dependent]
2 files changed, 2 insertions(+), 40 deletions(-)
diff --git a/meson.build b/meson.build
-index 1f9c9d8..7e02b29 100644
+index e4323dc..185248f 100644
--- a/meson.build
+++ b/meson.build
@@ -120,34 +120,3 @@ subdir('src')
@@ -74,5 +73,5 @@ index 79e53f2..d6279ff 100755
while getopts ":b:c:" opt; do
--
-2.33.1
+2.35.1
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0003-spa-json-fix-va_list-APIs-for-different-architecture.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0003-spa-json-fix-va_list-APIs-for-different-architecture.patch
new file mode 100644
index 000000000..9d0c68d58
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0003-spa-json-fix-va_list-APIs-for-different-architecture.patch
@@ -0,0 +1,214 @@
+From ae6c9a5e612c343dd307fe34a1a282b7a4f17a5c Mon Sep 17 00:00:00 2001
+From: Julian Bouzas <julian.bouzas@collabora.com>
+Date: Wed, 9 Feb 2022 07:59:59 -0500
+Subject: [PATCH 3/3] spa-json: fix va_list APIs for different architectures
+
+The va_list type might not always be a pointer in some architectures, so we
+cannot guarantee it will be modified after using it for a second time in another
+function. This fixes the issue by using macros so args does not get copied, and
+always gets modified when using it more than once.
+
+Upstream-Status: Backport
+---
+ lib/wp/spa-json.c | 156 ++++++++++++++++++++++++----------------------
+ 1 file changed, 80 insertions(+), 76 deletions(-)
+
+diff --git a/lib/wp/spa-json.c b/lib/wp/spa-json.c
+index f14f395..c5e59a3 100644
+--- a/lib/wp/spa-json.c
++++ b/lib/wp/spa-json.c
+@@ -363,33 +363,33 @@ wp_spa_json_new_string (const gchar *value)
+ wp_spa_json_builder_new_formatted ("\"%s\"", value));
+ }
+
+-static void
+-wp_spa_json_builder_add_value (WpSpaJsonBuilder *self, const gchar *fmt,
+- va_list args)
+-{
+- switch (*fmt) {
+- case 'n':
+- wp_spa_json_builder_add_null (self);
+- break;
+- case 'b':
+- wp_spa_json_builder_add_boolean (self, va_arg(args, gboolean));
+- break;
+- case 'i':
+- wp_spa_json_builder_add_int (self, va_arg(args, gint));
+- break;
+- case 'f':
+- wp_spa_json_builder_add_float (self, (float)va_arg(args, double));
+- break;
+- case 's':
+- wp_spa_json_builder_add_string (self, va_arg(args, const gchar *));
+- break;
+- case 'J':
+- wp_spa_json_builder_add_json (self, va_arg(args, WpSpaJson *));
+- break;
+- default:
+- return;
+- }
+-}
++/* Args is not a pointer in some architectures, so this needs to be a macro to
++ * avoid args being copied */
++#define wp_spa_json_builder_add_value(self,fmt,args) \
++do { \
++ switch (*fmt) { \
++ case 'n': \
++ wp_spa_json_builder_add_null (self); \
++ break; \
++ case 'b': \
++ wp_spa_json_builder_add_boolean (self, va_arg(args, gboolean)); \
++ break; \
++ case 'i': \
++ wp_spa_json_builder_add_int (self, va_arg(args, gint)); \
++ break; \
++ case 'f': \
++ wp_spa_json_builder_add_float (self, (float)va_arg(args, double)); \
++ break; \
++ case 's': \
++ wp_spa_json_builder_add_string (self, va_arg(args, const gchar *)); \
++ break; \
++ case 'J': \
++ wp_spa_json_builder_add_json (self, va_arg(args, WpSpaJson *)); \
++ break; \
++ default: \
++ break; \
++ } \
++} while(false)
+
+ /*!
+ * \brief Creates a spa json of type array
+@@ -724,48 +724,46 @@ wp_spa_json_parse_object_valist (WpSpaJson *self, va_list args)
+ return res;
+ }
+
+-static gboolean
+-wp_spa_json_parse_value (const gchar *data, int len, const gchar *fmt,
+- va_list args)
+-{
+- switch (*fmt) {
+- case 'n':
+- if (!spa_json_is_null (data, len))
+- return FALSE;
+- break;
+- case 'b':
+- if (!wp_spa_json_parse_boolean_internal (data, len,
+- va_arg(args, gboolean *)))
+- return FALSE;
+- break;
+- case 'i':
+- if (spa_json_parse_int (data, len, va_arg(args, gint *)) < 0)
+- return FALSE;
+- break;
+- case 'f':
+- if (spa_json_parse_float (data, len,
+- (float *)va_arg(args, double *)) < 0)
+- return FALSE;
+- break;
+- case 's': {
+- gchar *str = wp_spa_json_parse_string_internal (data, len);
+- if (!str)
+- return FALSE;
+- *va_arg(args, gchar **) = str;
+- break;
+- }
+- case 'J': {
+- WpSpaJson *j = wp_spa_json_new (data, len);
+- if (!j)
+- return FALSE;
+- *va_arg(args, WpSpaJson **) = j;
+- break;
+- }
+- default:
+- return FALSE;
+- }
+- return TRUE;
+-}
++/* Args is not a pointer in some architectures, so this needs to be a macro to
++ * avoid args being copied */
++#define wp_spa_json_parse_value(data,len,fmt,args) \
++do { \
++ switch (*fmt) { \
++ case 'n': \
++ if (!spa_json_is_null (data, len)) \
++ return FALSE; \
++ break; \
++ case 'b': \
++ if (!wp_spa_json_parse_boolean_internal (data, len, \
++ va_arg(args, gboolean *))) \
++ return FALSE; \
++ break; \
++ case 'i': \
++ if (spa_json_parse_int (data, len, va_arg(args, gint *)) < 0) \
++ return FALSE; \
++ break; \
++ case 'f': \
++ if (spa_json_parse_float (data, len, va_arg(args, float *)) < 0) \
++ return FALSE; \
++ break; \
++ case 's': { \
++ gchar *str = wp_spa_json_parse_string_internal (data, len); \
++ if (!str) \
++ return FALSE; \
++ *va_arg(args, gchar **) = str; \
++ break; \
++ } \
++ case 'J': { \
++ WpSpaJson *j = wp_spa_json_new (data, len); \
++ if (!j) \
++ return FALSE; \
++ *va_arg(args, WpSpaJson **) = j; \
++ break; \
++ } \
++ default: \
++ return FALSE; \
++ } \
++} while(false)
+
+ /*!
+ * \brief Parses the object property values of a spa json object
+@@ -827,8 +825,7 @@ wp_spa_json_object_get_valist (WpSpaJson *self, va_list args)
+ value = g_value_get_boxed (&item);
+
+ if (g_strcmp0 (key_str, lookup_key) == 0) {
+- if (!wp_spa_json_parse_value (value->data, value->size, lookup_fmt, args))
+- return FALSE;
++ wp_spa_json_parse_value (value->data, value->size, lookup_fmt, args);
+ lookup_key = va_arg(args, const gchar *);
+ if (!lookup_key)
+ return TRUE;
+@@ -1366,9 +1363,12 @@ gboolean
+ wp_spa_json_parser_get_value (WpSpaJsonParser *self, const gchar *fmt,
+ va_list args)
+ {
+- return wp_spa_json_parser_advance (self) &&
+- wp_spa_json_parse_value (self->curr.cur,
+- self->curr.end - self->curr.cur, fmt, args);
++ if (wp_spa_json_parser_advance (self)) {
++ wp_spa_json_parse_value (self->curr.cur, self->curr.end - self->curr.cur,
++ fmt, args);
++ return TRUE;
++ }
++ return FALSE;
+ }
+
+ /*!
+@@ -1419,9 +1419,13 @@ wp_spa_json_parser_get_valist (WpSpaJsonParser *self, va_list args)
+ if (!format)
+ return TRUE;
+
+- /* parse value */
+- if (!wp_spa_json_parser_get_value (self, format, args))
++ /* advance */
++ if (!wp_spa_json_parser_advance (self))
+ return FALSE;
++
++ /* parse value */
++ wp_spa_json_parse_value (self->curr.cur, self->curr.end - self->curr.cur,
++ format, args);
+ } while (TRUE);
+
+ return FALSE;
+--
+2.35.1
+
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
index a08ebbbed..f42b12770 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
@@ -14,16 +14,17 @@ DEPENDS = "glib-2.0 glib-2.0-native pipewire lua"
SRC_URI = "\
git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \
"
-# v0.4.7
-SRCREV = "afb177b5e0840d54dc41d02920702c3c9580ce02"
+# v0.4.8
+SRCREV = "e14bb72dcc85e2130d0ea96768e5ae3b375a041e"
# patches to be able to compile with lower version of meson that is available in AGL.
SRC_URI += "\
- file://0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch \
- file://0002-Revert-tests-add-pipewire-env-variables-when-running.patch \
+ file://0001-Revert-tests-add-pipewire-env-variables-when-running.patch \
+ file://0002-Revert-wp-uninstalled-build-this-script-with-the-mes.patch \
+ file://0003-spa-json-fix-va_list-APIs-for-different-architecture.patch \
"
-PV = "0.4.5"
+PV = "0.4.8"
S = "${WORKDIR}/git"
WPAPI="0.4"