From: Jan Palus Date: Tue, 22 Mar 2022 13:16:33 +0000 (+0100) Subject: up to 0.4.9 X-Git-Tag: auto/th/pipewire-wireplumber-0.4.9-1 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=b649302d9144b045d2c12cf509e9603511281bba;p=packages%2Fpipewire-wireplumber.git up to 0.4.9 --- diff --git a/876.patch b/876.patch deleted file mode 100644 index 01fb154..0000000 --- a/876.patch +++ /dev/null @@ -1,42 +0,0 @@ -From afbc0ce57aac7aee8dc1651de4620f15c73dbace Mon Sep 17 00:00:00 2001 -From: Wim Taymans -Date: Mon, 21 Feb 2022 15:21:36 +0100 -Subject: [PATCH] si-audio-adapter: relax format parsing - -Some nodes can omit the format/rate/channels to indicate that they can -deal with all possibilities and adapt to what they are linked to. - -See pipewire#876 ---- - modules/module-si-audio-adapter.c | 11 ++--------- - 1 file changed, 2 insertions(+), 9 deletions(-) - -diff --git a/modules/module-si-audio-adapter.c b/modules/module-si-audio-adapter.c -index f1f62185..84e393fd 100644 ---- a/modules/module-si-audio-adapter.c -+++ b/modules/module-si-audio-adapter.c -@@ -158,19 +158,12 @@ si_audio_adapter_find_format (WpSiAudioAdapter * self, WpNode * node) - struct spa_pod *position = NULL; - wp_spa_pod_fixate (pod); - -- /* defaults */ - spa_zero(raw_format); -- raw_format.format = SPA_AUDIO_FORMAT_F32; -- raw_format.rate = si_audio_adapter_get_default_clock_rate (self); -- raw_format.channels = 2; -- raw_format.position[0] = SPA_AUDIO_CHANNEL_FL; -- raw_format.position[1] = SPA_AUDIO_CHANNEL_FR; -- - if (spa_pod_parse_object(wp_spa_pod_get_spa_pod (pod), - SPA_TYPE_OBJECT_Format, NULL, -- SPA_FORMAT_AUDIO_format, SPA_POD_Id(&raw_format.format), -+ SPA_FORMAT_AUDIO_format, SPA_POD_OPT_Id(&raw_format.format), - SPA_FORMAT_AUDIO_rate, SPA_POD_OPT_Int(&raw_format.rate), -- SPA_FORMAT_AUDIO_channels, SPA_POD_Int(&raw_format.channels), -+ SPA_FORMAT_AUDIO_channels, SPA_POD_OPT_Int(&raw_format.channels), - SPA_FORMAT_AUDIO_position, SPA_POD_OPT_Pod(&position)) < 0) - continue; - --- -GitLab - diff --git a/pipewire-wireplumber.spec b/pipewire-wireplumber.spec index f0eabac..8dbffee 100644 --- a/pipewire-wireplumber.spec +++ b/pipewire-wireplumber.spec @@ -4,14 +4,12 @@ Summary: Session / policy manager implementation for PipeWire Name: pipewire-wireplumber -Version: 0.4.8 -Release: 2 +Version: 0.4.9 +Release: 1 License: MIT Group: Libraries Source0: https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/%{version}/wireplumber-%{version}.tar.bz2 -# Source0-md5: a5a405f0f8e973df9d644a20a8c0620b -Patch0: va_list.patch -Patch1: 876.patch +# Source0-md5: b77170b2740ef7bc5e943d0878452a6c URL: https://pipewire.org/ # required for both docs and introspection BuildRequires: doxygen >= 1.8.0 @@ -22,7 +20,7 @@ BuildRequires: gobject-introspection-devel BuildRequires: lua-devel >= 5.3.0 BuildRequires: meson >= 0.56.0 BuildRequires: ninja -BuildRequires: pipewire-devel >= 0.3.45 +BuildRequires: pipewire-devel >= 0.3.48 BuildRequires: pkgconfig BuildRequires: python3 BuildRequires: python3-lxml @@ -57,7 +55,7 @@ the actual management functionality. Summary: WirePlumber shared library Group: Libraries Requires: glib2 >= 1:2.62 -Requires: pipewire-libs >= 0.3.45 +Requires: pipewire-libs >= 0.3.48 %description libs WirePlumber shared library. @@ -88,8 +86,6 @@ API documentation for PipeWire WirePlumber. %prep %setup -q -n wireplumber-%{version} -%patch0 -p1 -%patch1 -p1 %build %meson build \ @@ -128,7 +124,6 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-default-nodes-api.so %attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-default-nodes.so %attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-default-profile.so -%attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-device-activation.so %attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-file-monitor-api.so %attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-logind.so %attr(755,root,root) %{_libdir}/wireplumber-0.4/libwireplumber-module-lua-scripting.so diff --git a/va_list.patch b/va_list.patch deleted file mode 100644 index 27b6f03..0000000 --- a/va_list.patch +++ /dev/null @@ -1,212 +0,0 @@ -From e429db7e8c266045aee25e153fb2308bd61fe233 Mon Sep 17 00:00:00 2001 -From: Julian Bouzas -Date: Wed, 9 Feb 2022 07:59:59 -0500 -Subject: [PATCH] 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. ---- - 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 f14f395d..c5e59a3e 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; --- -GitLab -