From ee9013bfde62a00385400632c283b964957d6272d6a43a2f9d6f04fe9ba8efdf Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 19 Oct 2021 08:38:02 +0000 Subject: [PATCH] Accepting request 926162 from home:alarrosa:branches:multimedia:libs - Add patch from upstream to fix a crash when there's a link error (glfo#pipewire/wireplumber#76): * 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch - Update to version 0.4.4: * Highlights: - Implemented linking nodes in passthrough mode, which enables encoded iec958 / dsd audio passthrough - Streams are now sent an error if it was not possible to link them to a target (#63) - When linking nodes where at least one of them has an unpositioned channel layout, the other one is not reconfigured to match the channel layout; it is instead linked with a best effort port matching logic - Output route switches automatically to the latest one that has become available (#69) - Policy now respects the 'node.exclusive' and 'node.passive' properties - Many other minor policy fixes for a smoother desktop usage experience * API: - Fixed an issue with the LocalModule() constructor not accepting nil as well as the properties table properly - Added WpClient.send_error(), WpSpaPod.fixate() and - WpSpaPod.filter() (both in C and Lua) * Misc: - Bumped meson version requirement to 0.56 to be able to use meson.project_{source,build}_root() and ease integration with pipewire's build system as a subproject - wireplumber.service is now an alias to OBS-URL: https://build.opensuse.org/request/show/926162 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=5 --- ...x-crash-after-returning-a-link-error.patch | 36 ++++ _service | 2 +- _servicedata | 2 +- wireplumber-0.4.1.obscpio | 3 - wireplumber-0.4.4.obscpio | 3 + wireplumber.changes | 154 ++++++++++++++++++ wireplumber.obsinfo | 6 +- wireplumber.spec | 27 +-- 8 files changed, 215 insertions(+), 18 deletions(-) create mode 100644 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch delete mode 100644 wireplumber-0.4.1.obscpio create mode 100644 wireplumber-0.4.4.obscpio diff --git a/0001-si-standard-link-fix-crash-after-returning-a-link-error.patch b/0001-si-standard-link-fix-crash-after-returning-a-link-error.patch new file mode 100644 index 0000000..277e870 --- /dev/null +++ b/0001-si-standard-link-fix-crash-after-returning-a-link-error.patch @@ -0,0 +1,36 @@ +From 6e67000d5e42fc30e6f7ff3ec5544e0be8dcbf00 Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis +Date: Sat, 16 Oct 2021 09:51:00 +0300 +Subject: [PATCH] si-standard-link: fix crash after returning a link error + +If one link fails, the activation transition will return, but then +other links will continue to call the callback and try to access +the now invalid activation transition. With this change, the callback +is bound to the lifetime of the transition and will stop being called +after the transition returns + +Fixes #76 +--- + modules/module-si-standard-link.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules/module-si-standard-link.c b/modules/module-si-standard-link.c +index 5dda0581..95ec7ca5 100644 +--- a/modules/module-si-standard-link.c ++++ b/modules/module-si-standard-link.c +@@ -310,9 +310,10 @@ create_links (WpSiStandardLink * self, WpTransition * transition, + + /* activate to ensure it is created without errors */ + self->n_async_ops_wait++; +- wp_object_activate (WP_OBJECT (link), ++ wp_object_activate_closure (WP_OBJECT (link), + WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL, NULL, +- (GAsyncReadyCallback) on_link_activated, transition); ++ g_cclosure_new_object ( ++ (GCallback) on_link_activated, G_OBJECT (transition))); + } + g_variant_iter_free (iter); + return self->node_links->len > 0; +-- +GitLab + diff --git a/_service b/_service index 701485f..b6bd227 100644 --- a/_service +++ b/_service @@ -4,7 +4,7 @@ git https://gitlab.freedesktop.org/pipewire/wireplumber.git enable - 0.4.1 + 0.4.4 @PARENT_TAG@