summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-12-16 04:55:05 +0000
committerSam James <sam@gentoo.org>2022-12-16 04:55:05 +0000
commit8ea8aa1c9332813077b3aaf13ddf79988041f403 (patch)
treecd1222f9091fdbea8995bac49312f3b43e4ae1e2 /media-video/pipewire/files
parentmedia-video/pipewire: add 0.3.63 (diff)
downloadgentoo-8ea8aa1c9332813077b3aaf13ddf79988041f403.tar.gz
gentoo-8ea8aa1c9332813077b3aaf13ddf79988041f403.tar.bz2
gentoo-8ea8aa1c9332813077b3aaf13ddf79988041f403.zip
media-video/pipewire: drop 0.3.60-r1, 0.3.62, 0.3.62-r1
0.3.62 was very short-lived, we'd backported the critical stuff in 0.3.62-r1, but 0.3.63 is one of those pure bug fixes releases anyway so let's clenaup immediately. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-video/pipewire/files')
-rw-r--r--media-video/pipewire/files/pipewire-0.3.60-profile-switch-crash.patch28
-rw-r--r--media-video/pipewire/files/pipewire-0.3.60-pulse-server-also-advance-read-pointer-in-underrun.patch29
-rw-r--r--media-video/pipewire/files/pipewire-0.3.60-qemu.patch22
-rw-r--r--media-video/pipewire/files/pipewire-0.3.62-distorted-avx2.patch41
-rw-r--r--media-video/pipewire/files/pipewire-0.3.62-use-after-free.patch185
5 files changed, 0 insertions, 305 deletions
diff --git a/media-video/pipewire/files/pipewire-0.3.60-profile-switch-crash.patch b/media-video/pipewire/files/pipewire-0.3.60-profile-switch-crash.patch
deleted file mode 100644
index cd126d627d20..000000000000
--- a/media-video/pipewire/files/pipewire-0.3.60-profile-switch-crash.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/bf3516ba0496b644b3944b114253f23964178897
-
-From bf3516ba0496b644b3944b114253f23964178897 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Tue, 15 Nov 2022 15:40:47 +0100
-Subject: [PATCH] audioadapter: perform setup again after a PortConfig
-
-After the ports are reconfigured, we need to perform the setup again so
-that buffers and processing can happen with the right settings.
-
-This fixes an issue when autoswitching between A2DP and HFP with
-bluetooth headsets when there is also a stereo capture device available.
-The input stream of the browser is quickly reconfigured between stereo
-and mono with only a Pause command in between, clearing the setup state
-is enough to redo the setup when going back to Playing.
-
-Fixes #2764
---- a/spa/plugins/audioconvert/audioconvert.c
-+++ b/spa/plugins/audioconvert/audioconvert.c
-@@ -979,6 +979,7 @@ static int reconfigure_mode(struct impl *this, enum spa_param_port_config_mode m
- }
-
- this->monitor = monitor;
-+ this->setup = false;
- dir->control = control;
- dir->have_profile = true;
- dir->mode = mode;
-GitLab
diff --git a/media-video/pipewire/files/pipewire-0.3.60-pulse-server-also-advance-read-pointer-in-underrun.patch b/media-video/pipewire/files/pipewire-0.3.60-pulse-server-also-advance-read-pointer-in-underrun.patch
deleted file mode 100644
index 99e752391885..000000000000
--- a/media-video/pipewire/files/pipewire-0.3.60-pulse-server-also-advance-read-pointer-in-underrun.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/b720da771efa950cf380101bed42d5d5ee177908
-
-From b720da771efa950cf380101bed42d5d5ee177908 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Thu, 10 Nov 2022 16:13:33 +0100
-Subject: [PATCH] pulse-server: also advance read pointer in underrun
-
-So that we ask for more data from the client.
-
-Also retested with #2799 that caused this regression.
-
-Fixes #2821
---- a/src/modules/module-protocol-pulse/pulse-server.c
-+++ b/src/modules/module-protocol-pulse/pulse-server.c
-@@ -1433,10 +1433,11 @@ static void stream_process(void *data)
- stream->buffer, MAXLENGTH,
- index % MAXLENGTH,
- p, avail);
-- index += avail;
-- pd.read_inc = avail;
-- spa_ringbuffer_read_update(&stream->ring, index);
- }
-+ index += size;
-+ pd.read_inc = size;
-+ spa_ringbuffer_read_update(&stream->ring, index);
-+
- pd.playing_for = size;
- }
- pw_log_debug("%p: [%s] underrun read:%u avail:%d max:%u",
diff --git a/media-video/pipewire/files/pipewire-0.3.60-qemu.patch b/media-video/pipewire/files/pipewire-0.3.60-qemu.patch
deleted file mode 100644
index 87d34ec609cf..000000000000
--- a/media-video/pipewire/files/pipewire-0.3.60-qemu.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From b46d8a8c921a8da6883610ad4b68da95bf59b59e Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Wed, 16 Nov 2022 20:45:38 +0100
-Subject: [PATCH] alsa: force playback start when buffer is full
-
-When we try to play data but the ringbuffer is full, we need to start
-the device or else we will stay in this situation forever and stay
-silent.
-
-Fixes #2830
---- a/spa/plugins/alsa/alsa-pcm.c
-+++ b/spa/plugins/alsa/alsa-pcm.c
-@@ -2128,7 +2128,7 @@ again:
-
- state->sample_count += total_written;
-
-- if (SPA_UNLIKELY(!state->alsa_started && total_written > 0))
-+ if (SPA_UNLIKELY(!state->alsa_started && (total_written > 0 || frames == 0)))
- do_start(state);
-
- return 0;
-GitLab
diff --git a/media-video/pipewire/files/pipewire-0.3.62-distorted-avx2.patch b/media-video/pipewire/files/pipewire-0.3.62-distorted-avx2.patch
deleted file mode 100644
index 5b2f0817d048..000000000000
--- a/media-video/pipewire/files/pipewire-0.3.62-distorted-avx2.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/b927063b89b791c5fc5485ce4d9eac2cd17a4ad6
-
-From b927063b89b791c5fc5485ce4d9eac2cd17a4ad6 Mon Sep 17 00:00:00 2001
-From: Sefa Eyeoglu <contact@scrumplex.net>
-Date: Sun, 11 Dec 2022 20:14:09 +0100
-Subject: [PATCH] audioconvert: fix distorted audio on AVX2
-
-Closes pipewire/pipewire#2885
-
-Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
---- a/spa/plugins/audioconvert/fmt-ops-avx2.c
-+++ b/spa/plugins/audioconvert/fmt-ops-avx2.c
-@@ -339,7 +339,7 @@ conv_s32_to_f32d_4s_avx2(void *data, void * SPA_RESTRICT dst[], const void * SPA
- __m256i in[4];
- __m256 out[4], factor = _mm256_set1_ps(1.0f / S24_SCALE);
- __m256i mask1 = _mm256_setr_epi32(0*n_channels, 1*n_channels, 2*n_channels, 3*n_channels,
-- 3*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
-+ 4*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
-
- if (SPA_IS_ALIGNED(d0, 32) &&
- SPA_IS_ALIGNED(d1, 32) &&
-@@ -405,7 +405,7 @@ conv_s32_to_f32d_2s_avx2(void *data, void * SPA_RESTRICT dst[], const void * SPA
- __m256i in[4];
- __m256 out[4], factor = _mm256_set1_ps(1.0f / S24_SCALE);
- __m256i mask1 = _mm256_setr_epi32(0*n_channels, 1*n_channels, 2*n_channels, 3*n_channels,
-- 3*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
-+ 4*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
-
- if (SPA_IS_ALIGNED(d0, 32) &&
- SPA_IS_ALIGNED(d1, 32))
-@@ -453,7 +453,7 @@ conv_s32_to_f32d_1s_avx2(void *data, void * SPA_RESTRICT dst[], const void * SPA
- __m256i in[2];
- __m256 out[2], factor = _mm256_set1_ps(1.0f / S24_SCALE);
- __m256i mask1 = _mm256_setr_epi32(0*n_channels, 1*n_channels, 2*n_channels, 3*n_channels,
-- 3*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
-+ 4*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
-
- if (SPA_IS_ALIGNED(d0, 32))
- unrolled = n_samples & ~15;
---
-GitLab
diff --git a/media-video/pipewire/files/pipewire-0.3.62-use-after-free.patch b/media-video/pipewire/files/pipewire-0.3.62-use-after-free.patch
deleted file mode 100644
index 66d21caf3195..000000000000
--- a/media-video/pipewire/files/pipewire-0.3.62-use-after-free.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/3bdd2e01c56ec13179340ecdce0b766f72e4339e
-https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/8c892443eb5989ea3e660dedc6a506a9bfb42eac
-
-From 3bdd2e01c56ec13179340ecdce0b766f72e4339e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
-Date: Sat, 10 Dec 2022 00:40:21 +0100
-Subject: [PATCH] pipewire: store SPA handles in a global list by age
-
-Operating on the assumption that every SPA handle
-can reference any other older SPA handle, the only
-safe destruction order is from youngest to oldest.
-
-To achieve this, store all handles across all plugins
-sorted by age (youngest first), and use that as the
-order of destruction in `pw_deinit()`.
-
-This line of thinking does not account for what happens
-when a handle that is referenced by others is unloaded,
-but it does not make that case worse either.
-
-See #2881
---- a/src/pipewire/pipewire.c
-+++ b/src/pipewire/pipewire.c
-@@ -64,7 +64,6 @@ struct plugin {
- char *filename;
- void *hnd;
- spa_handle_factory_enum_func_t enum_func;
-- struct spa_list handles;
- int ref;
- };
-
-@@ -78,6 +77,7 @@ struct handle {
-
- struct registry {
- struct spa_list plugins;
-+ struct spa_list handles; /* all handles across all plugins by age (youngest first) */
- };
-
- struct support {
-@@ -149,7 +149,6 @@ open_plugin(struct registry *registry,
- plugin->filename = strdup(filename);
- plugin->hnd = hnd;
- plugin->enum_func = enum_func;
-- spa_list_init(&plugin->handles);
-
- spa_list_append(&registry->plugins, &plugin->link);
-
-@@ -290,7 +289,7 @@ static struct spa_handle *load_spa_handle(const char *lib,
- handle->ref = 1;
- handle->plugin = plugin;
- handle->factory_name = strdup(factory_name);
-- spa_list_append(&plugin->handles, &handle->link);
-+ spa_list_prepend(&sup->registry.handles, &handle->link);
-
- return &handle->handle;
-
-@@ -321,15 +320,13 @@ struct spa_handle *pw_load_spa_handle(const char *lib,
- static struct handle *find_handle(struct spa_handle *handle)
- {
- struct registry *registry = &global_support.registry;
-- struct plugin *p;
- struct handle *h;
-
-- spa_list_for_each(p, &registry->plugins, link) {
-- spa_list_for_each(h, &p->handles, link) {
-- if (&h->handle == handle)
-- return h;
-- }
-+ spa_list_for_each(h, &registry->handles, link) {
-+ if (&h->handle == handle)
-+ return h;
- }
-+
- return NULL;
- }
-
-@@ -611,6 +608,7 @@ void pw_init(int *argc, char **argv[])
- support->support_lib = str;
-
- spa_list_init(&support->registry.plugins);
-+ spa_list_init(&support->registry.handles);
-
- if (pw_log_is_default()) {
- char *patterns = NULL;
-@@ -684,7 +682,7 @@ void pw_deinit(void)
- {
- struct support *support = &global_support;
- struct registry *registry = &support->registry;
-- struct plugin *p;
-+ struct handle *h;
-
- pthread_mutex_lock(&init_lock);
- if (support->init_count == 0)
-@@ -694,13 +692,10 @@ void pw_deinit(void)
-
- pthread_mutex_lock(&support_lock);
- pw_log_set(NULL);
-- spa_list_consume(p, &registry->plugins, link) {
-- struct handle *h;
-- p->ref++;
-- spa_list_consume(h, &p->handles, link)
-- unref_handle(h);
-- unref_plugin(p);
-- }
-+
-+ spa_list_consume(h, &registry->handles, link)
-+ unref_handle(h);
-+
- pw_free_strv(support->categories);
- free(support->i18n_domain);
- spa_zero(global_support);
---
-GitLab
-
-From 8c892443eb5989ea3e660dedc6a506a9bfb42eac Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
-Date: Sat, 10 Dec 2022 02:43:13 +0100
-Subject: [PATCH] spa: audioadapter: fix stack-use-after-scope when configuring
- format
-
-It is not enough for `buffer` to be alive in its current
-scope because when execution enters that branch, `format`
-will be set to `fmt`, which points inside `buffer`. And
-since `format` is used outside that scope, `buffer` must
-live longer.
-
-This was detected by ASAN when Audacity was starting up.
-
- ==25007==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7ffdbcfef560 at pc 0x7fe44ca95db3 bp 0x7ffdbcfeeda0 sp 0x7ffdbcfeed90
- READ of size 4 at 0x7ffdbcfef560 thread T0
- #0 0x7fe44ca95db2 in spa_pod_parser_pod ../spa/include/spa/pod/parser.h:67
- #1 0x7fe44ca9a805 in spa_format_parse ../spa/include/spa/param/format-utils.h:44
- #2 0x7fe44cad293a in port_set_format ../spa/plugins/audioconvert/audioconvert.c:1934
- #3 0x7fe44cadad14 in impl_node_port_set_param ../spa/plugins/audioconvert/audioconvert.c:2038
- #4 0x7fe44ca587e2 in configure_format ../spa/plugins/audioconvert/audioadapter.c:509
- #5 0x7fe44ca60dff in negotiate_format ../spa/plugins/audioconvert/audioadapter.c:822
- #6 0x7fe44ca62bbf in impl_node_send_command ../spa/plugins/audioconvert/audioadapter.c:846
- #7 0x7fe45ea1c2f1 in node_update_state ../src/pipewire/impl-node.c:407
- #8 0x7fe45ea5137e in pw_impl_node_set_state ../src/pipewire/impl-node.c:2251
- #9 0x7fe45eb3355f in pw_work_queue_destroy ../src/pipewire/work-queue.c:142
- #10 0x7fe45b2cd6f4 in source_event_func ../spa/plugins/support/loop.c:615
- #11 0x7fe45b2c634f in loop_iterate ../spa/plugins/support/loop.c:452
- #12 0x7fe45e9ebebc in spa_hook_list_clean ../spa/include/spa/utils/hook.h:395
- #13 0x5561e03dc722 in main ../src/daemon/pipewire.c:131
- #14 0x7fe45da3c28f (/usr/lib/libc.so.6+0x2328f)
- #15 0x7fe45da3c349 in __libc_start_main (/usr/lib/libc.so.6+0x23349)
- #16 0x5561e03db2a4 in _start ../sysdeps/x86_64/start.S:115
-
- Address 0x7ffdbcfef560 is located in stack of thread T0 at offset 160 in frame
- #0 0x7fe44ca56fa9 in configure_format ../spa/plugins/audioconvert/audioadapter.c:475
-
- This frame has 4 object(s):
- [32, 36) 'state' (line 493)
- [48, 56) 'fmt' (line 494)
- [80, 128) 'b' (line 492)
- [160, 4256) 'buffer' (line 491) <== Memory access at offset 160 is inside this variable
---- a/spa/plugins/audioconvert/audioadapter.c
-+++ b/spa/plugins/audioconvert/audioadapter.c
-@@ -473,6 +473,7 @@ static int negotiate_buffers(struct impl *this)
-
- static int configure_format(struct impl *this, uint32_t flags, const struct spa_pod *format)
- {
-+ uint8_t buffer[4096];
- int res;
-
- if (format == NULL && !this->have_format)
-@@ -487,14 +488,13 @@ static int configure_format(struct impl *this, uint32_t flags, const struct spa_
- SPA_PARAM_Format, flags,
- format)) < 0)
- return res;
-+
- if (res > 0) {
-- uint8_t buffer[4096];
-- struct spa_pod_builder b = { 0 };
-+ struct spa_pod_builder b = SPA_POD_BUILDER_INIT(buffer, sizeof(buffer));
- uint32_t state = 0;
- struct spa_pod *fmt;
-
- /* format was changed to nearest compatible format */
-- spa_pod_builder_init(&b, buffer, sizeof(buffer));
-
- if ((res = spa_node_port_enum_params_sync(this->follower,
- this->direction, 0,
---
-GitLab