From 8ee7ffce00195787be6da7754b23b17fd21b23a587290a634b9bfe2109b57b62 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 8 Nov 2021 17:19:35 +0000 Subject: [PATCH 1/7] Accepting request 930091 from home:alarrosa:branches:multimedia:libs - Recommend wireplumber so it's preferred to pipewire-media-session OBS-URL: https://build.opensuse.org/request/show/930091 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=26 --- pipewire.changes | 5 +++++ pipewire.spec | 1 + 2 files changed, 6 insertions(+) diff --git a/pipewire.changes b/pipewire.changes index 5a65a21..6ef5f17 100644 --- a/pipewire.changes +++ b/pipewire.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Nov 3 08:47:41 UTC 2021 - Antonio Larrosa + +- Recommend wireplumber so it's preferred to pipewire-media-session + ------------------------------------------------------------------- Fri Oct 29 15:17:51 UTC 2021 - Antonio Larrosa diff --git a/pipewire.spec b/pipewire.spec index 7680ef2..07c71a8 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -120,6 +120,7 @@ Requires: %{name}-session-manager Requires: %{name}-spa-plugins-%{spa_ver_str} = %{version} Requires: %{name}-spa-tools = %{version} Requires: %{name}-tools = %{version} +Recommends: wireplumber %{?systemd_ordering} %description From 2ef744cb87161b00e17de8a303bd15906cf5181f1a84b7042f2234509701ecc9 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 16 Nov 2021 13:48:45 +0000 Subject: [PATCH 2/7] Accepting request 931141 from home:iznogood:branches:multimedia:libs - Update to version 0.3.40: * Highlights: - Producers and consumers can now incrementally negotiate a format by narrowing down the options. This can be used to select an optimal combination of format and modifiers. - Driver nodes such as the consumer of a headless compositor can now throttle the speed based on a new trigger_done event. - Headless compositors can now signal a damage event to consumers to start the processing of the graph. - Compatibility improvements in JACK. - Draining and resuming is now working correctly in pulse and alsa. - Many bugfixes and improvements. * PipeWire: - Many BSD fixes. - clang compilation fixes. - Fix map implementation on big-endian machines. - Improve tracking of param changes in pw-stream. - Add support for renegotiation. With this change, producer and consumer can incrementally renegotiate a format until it is fixed. This will be used to do complex negotiation of DRM modifiers. - Add a trigger-done event in the stream. This can be used to know when processing of the complete graph has finished after issuing a trigger_process() and it can be used to throttle processing. - Add a RequestProcess node event and command. This can be used by non-driver nodes to suggest to a driver to start processing. One case is where a compositor can emit this event as a result of a screen update to let the headless compositor start an update. - Fix zeroconf sample format. - pw-mon outputs to stderr now and has colors. * SPA: - Fix compilation on ppc and armv7. - Fix port type check for ALSA seq midi ports so that they are not falsely listed as hardware. - Fix crash when running SSE code on unsupported HW. - The libcamera plugin was rewritten. It now supports hotplug, format enumeration and an easier to read codebase. - Fix compatibility some more for cards with 64 channels. * pulse-server: - Flush data in pause in combine-sink to avoid stray audio fragments. - Fix a race where not all objects were removed correctly. - The latency calculations and setup was improved to more closely match pulseaudio behaviour. PULSE_LATENCY_MSEC should now resemble pulseaudio more closely. - The drained reply is now sent only once and new data will be accepted once the drain completes. - Fix a potential crasher bug where the stream started processing before the setup was completed. - The server will now drop the client connections when the pipewire connection is lost. * JACK: - Rework the jack_port_get_buffer() method to return the same memory when called multiple times during the process() callback. This makes things work on a new Hydrogen. - Add an option to disable showing the monitor ports. - JACK ports are now sorted per node/client and port_id. This should more closely match JACK behaviour and avoid random port order. * v4l2: - Fix v4l2 LD_PRELOAD script. - Make sure we destroy the proxy when the global is destroyed. * ALSA: - _prepare should exit the draining state. - Fix the precision of the _delay function by taking into account the amount of queued samples are the correct samplerate. - Drop patches fixed upstream: * 0001-cpu-fix-compilation-on-some-architectures.patch * 0001-map-make-_insert_at-fail-on-a-removed-item.patch * 0002-map-use-uintptr_t-for-the-next-pointer.patch OBS-URL: https://build.opensuse.org/request/show/931141 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=27 --- ...ix-compilation-on-some-architectures.patch | 25 ------ ...ke-_insert_at-fail-on-a-removed-item.patch | 80 ------------------- ...p-use-uintptr_t-for-the-next-pointer.patch | 29 ------- _service | 2 +- pipewire-0.3.39.obscpio | 3 - pipewire-0.3.40.obscpio | 3 + pipewire.changes | 78 ++++++++++++++++++ pipewire.obsinfo | 6 +- pipewire.spec | 7 +- 9 files changed, 88 insertions(+), 145 deletions(-) delete mode 100644 0001-cpu-fix-compilation-on-some-architectures.patch delete mode 100644 0001-map-make-_insert_at-fail-on-a-removed-item.patch delete mode 100644 0002-map-use-uintptr_t-for-the-next-pointer.patch delete mode 100644 pipewire-0.3.39.obscpio create mode 100644 pipewire-0.3.40.obscpio diff --git a/0001-cpu-fix-compilation-on-some-architectures.patch b/0001-cpu-fix-compilation-on-some-architectures.patch deleted file mode 100644 index 69f00d7..0000000 --- a/0001-cpu-fix-compilation-on-some-architectures.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 651f0decea5f83730c271e9bed03cdd0048fcd49 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -Date: Thu, 21 Oct 2021 11:09:48 +0200 -Subject: [PATCH] cpu: fix compilation on some architectures - ---- - spa/plugins/support/cpu.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/spa/plugins/support/cpu.c b/spa/plugins/support/cpu.c -index ee1816512..01cff4854 100644 ---- a/spa/plugins/support/cpu.c -+++ b/spa/plugins/support/cpu.c -@@ -270,7 +270,7 @@ impl_init(const struct spa_handle_factory *factory, - if ((str = spa_dict_lookup(info, SPA_KEY_CPU_VM_TYPE)) != NULL) - this->vm_type = atoi(str); - if ((str = spa_dict_lookup(info, SPA_KEY_CPU_ZERO_DENORMALS)) != NULL) -- impl_cpu_zero_denormals(this, spa_atob(str)); -+ spa_cpu_zero_denormals(&this->cpu, spa_atob(str)); - } - - spa_log_debug(this->log, "%p: count:%d align:%d flags:%08x", --- -2.31.1 - diff --git a/0001-map-make-_insert_at-fail-on-a-removed-item.patch b/0001-map-make-_insert_at-fail-on-a-removed-item.patch deleted file mode 100644 index dfb1d09..0000000 --- a/0001-map-make-_insert_at-fail-on-a-removed-item.patch +++ /dev/null @@ -1,80 +0,0 @@ -From c07f0ccb71a9d95944ce3e4d7e453cb50a26b0a2 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -Date: Mon, 25 Oct 2021 16:11:56 +0200 -Subject: [PATCH] map: make _insert_at() fail on a removed item - -You are only supposed to use _insert_new()/_remove() or _insert_at() -on the map, If we detect a _insert_at() to a removed item, -return an error because else we might corrupt the free list. - -Update unit test accordingly. ---- - src/pipewire/map.h | 15 ++------------- - test/test-map.c | 17 +---------------- - 2 files changed, 3 insertions(+), 29 deletions(-) - -diff --git a/src/pipewire/map.h b/src/pipewire/map.h -index fd57f7f7c..f47dfa6b3 100644 ---- a/src/pipewire/map.h -+++ b/src/pipewire/map.h -@@ -182,20 +182,9 @@ static inline int pw_map_insert_at(struct pw_map *map, uint32_t id, void *data) - if (item == NULL) - return -errno; - } else { -- if (pw_map_id_is_free(map, id)) { -- uint32_t *current = &map->free_list; -- while (*current != SPA_ID_INVALID) { -- uint32_t current_id = (*current) >> 1; -- uint32_t *next = &pw_map_get_item(map, current_id)->next; -- -- if (current_id == id) { -- *current = *next; -- break; -- } -- current = next; -- } -- } - item = pw_map_get_item(map, id); -+ if (pw_map_item_is_free(item)) -+ return -EINVAL; - } - item->data = data; - return 0; -diff --git a/test/test-map.c b/test/test-map.c -index dd1df77a8..b6d7681ce 100644 ---- a/test/test-map.c -+++ b/test/test-map.c -@@ -188,7 +188,6 @@ PWTEST(map_insert_at_free) - int data[3] = {1, 2, 3}; - int new_data = 4; - int *ptr[3] = {&data[0], &data[1], &data[3]}; -- int *new_ptr = &new_data; - int idx[3]; - int rc; - -@@ -225,21 +224,7 @@ PWTEST(map_insert_at_free) - } - - rc = pw_map_insert_at(&map, item_idx, &new_data); -- pwtest_neg_errno_ok(rc); -- pwtest_ptr_eq(new_ptr, pw_map_lookup(&map, item_idx)); -- -- if (before_idx != SKIP && before_idx != item_idx) { -- rc = pw_map_insert_at(&map, before_idx, &ptr[before_idx]); -- pwtest_neg_errno_ok(rc); -- pwtest_ptr_eq(&ptr[before_idx], pw_map_lookup(&map, before_idx)); -- } -- -- if (after_idx != SKIP && after_idx != item_idx) { -- rc = pw_map_insert_at(&map, after_idx, &ptr[after_idx]); -- pwtest_neg_errno_ok(rc); -- pwtest_ptr_eq(&ptr[after_idx], pw_map_lookup(&map, after_idx)); -- } -- -+ pwtest_neg_errno(rc, -EINVAL); - pw_map_clear(&map); - - return PWTEST_PASS; --- -GitLab - diff --git a/0002-map-use-uintptr_t-for-the-next-pointer.patch b/0002-map-use-uintptr_t-for-the-next-pointer.patch deleted file mode 100644 index 87f3d20..0000000 --- a/0002-map-use-uintptr_t-for-the-next-pointer.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 5dfc3494dc4635918e74b9f3d717a39a74b28554 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -Date: Mon, 25 Oct 2021 16:15:17 +0200 -Subject: [PATCH] map: use uintptr_t for the next pointer - -This aligns the low bits of the next field with the low bits of the -pointer on big endian cpus. - -Fixes #1747 ---- - src/pipewire/map.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pipewire/map.h b/src/pipewire/map.h -index f47dfa6b3..1867fa4d3 100644 ---- a/src/pipewire/map.h -+++ b/src/pipewire/map.h -@@ -74,7 +74,7 @@ extern "C" { - * first item to get re-used on the next insert. - */ - union pw_map_item { -- uint32_t next; /* next free index */ -+ uintptr_t next; /* next free index */ - void *data; /* data of this item, must be an even address */ - }; - --- -GitLab - diff --git a/_service b/_service index 0630f33..77d68f8 100644 --- a/_service +++ b/_service @@ -3,7 +3,7 @@ git https://gitlab.freedesktop.org/pipewire/pipewire.git - refs/tags/0.3.39 + refs/tags/0.3.40 @PARENT_TAG@