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
This commit is contained in:
parent
8ee7ffce00
commit
2ef744cb87
@ -1,25 +0,0 @@
|
||||
From 651f0decea5f83730c271e9bed03cdd0048fcd49 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
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
|
||||
|
@ -1,80 +0,0 @@
|
||||
From c07f0ccb71a9d95944ce3e4d7e453cb50a26b0a2 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
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
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 5dfc3494dc4635918e74b9f3d717a39a74b28554 Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
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
|
||||
|
2
_service
2
_service
@ -3,7 +3,7 @@
|
||||
<service name="obs_scm" mode="disabled">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/pipewire.git</param>
|
||||
<param name="revision">refs/tags/0.3.39</param>
|
||||
<param name="revision">refs/tags/0.3.40</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<!-- <param name="revision">master</param>
|
||||
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:33c060d434bff4130c4640b1093119e6c46b82601e82afe3fef7bd128ee1811e
|
||||
size 10106381
|
3
pipewire-0.3.40.obscpio
Normal file
3
pipewire-0.3.40.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:db983408546f6ae30870ba82650bd8de19f6750a1fbbfbab5ac88f091cb9fb06
|
||||
size 10141197
|
@ -1,3 +1,81 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 12 12:47:56 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- 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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 3 08:47:41 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: pipewire
|
||||
version: 0.3.39
|
||||
mtime: 1634742038
|
||||
commit: 5b7ef959d1fed35f6ddfcf94b6f57891fae23b31
|
||||
version: 0.3.40
|
||||
mtime: 1636633289
|
||||
commit: 7afd80052b7c49754a13c9ab49c368f95b60e0a7
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
%endif
|
||||
|
||||
Name: pipewire
|
||||
Version: 0.3.39
|
||||
Version: 0.3.40
|
||||
Release: 0
|
||||
Summary: A Multimedia Framework designed to be an audio and video server and more
|
||||
License: MIT
|
||||
@ -53,9 +53,7 @@ URL: https://pipewire.org/
|
||||
Source0: %{name}-%{version}.tar.xz
|
||||
Source1: %{name}-rpmlintrc
|
||||
Source99: baselibs.conf
|
||||
Patch0: 0001-cpu-fix-compilation-on-some-architectures.patch
|
||||
Patch1: 0001-map-make-_insert_at-fail-on-a-removed-item.patch
|
||||
Patch2: 0002-map-use-uintptr_t-for-the-next-pointer.patch
|
||||
|
||||
BuildRequires: docutils
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
@ -665,6 +663,7 @@ fi
|
||||
|
||||
%files pulseaudio
|
||||
%{_bindir}/pipewire-pulse
|
||||
%{_mandir}/man1/pipewire-pulse.1%{ext_man}
|
||||
%{_userunitdir}/pipewire-pulse.*
|
||||
%ghost %{_localstatedir}/lib/pipewire/pipewire-pulseaudio_post_workaround
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user