summaryrefslogtreecommitdiff
path: root/media-video/pipewire
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-10-25 08:44:28 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-10-25 08:44:28 +0100
commit6d57946e8f20a2294b96eca2e379d3e8e1c93384 (patch)
tree499ffd0e5fb14b9d907fa0d8bb11de0b757c6950 /media-video/pipewire
parent237ad05f4a374a9f1707c3413a5094a6ce93e7ab (diff)
gentoo auto-resync : 25:10:2023 - 08:44:27
Diffstat (limited to 'media-video/pipewire')
-rw-r--r--media-video/pipewire/Manifest5
-rw-r--r--media-video/pipewire/files/0.3.83/0001-stream-improve-queued_buffers-reporting.patch53
-rw-r--r--media-video/pipewire/files/0.3.83/0002-module-echo-cancel-playback-source-async.patch36
-rw-r--r--media-video/pipewire/files/0.3.83/0003-alsa-guard-against-null-areas.patch52
-rw-r--r--media-video/pipewire/pipewire-0.3.83-r1.ebuild (renamed from media-video/pipewire/pipewire-0.3.83.ebuild)0
5 files changed, 145 insertions, 1 deletions
diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest
index fb4d6e08e52f..dc1bad3b706a 100644
--- a/media-video/pipewire/Manifest
+++ b/media-video/pipewire/Manifest
@@ -7,6 +7,9 @@ AUX 0.3.80/0001-aes-support-both-webrtc-versions.patch 9037 BLAKE2B 9222a1b9004c
AUX 0.3.82/0001-alsa-Ignore-PCM-devices-with-udev-env-ACP_IGNORE.patch 2373 BLAKE2B 3e983c5d194d17b6d2e3c6759b766185959154e0b499e363e63c1b5d0c84922dc61acf5e66ac10c7a2a542f193fc95c5a356a049f52d83da13094e3a95257f2b SHA512 cadf4ac80dd719f9776e91e4927cd6c7cdfacaded4583814006c826e8cf0e5933094a0295bc6d44f571ff971a2cd17058f5e1d024d33d74b0df59df6dc646a11
AUX 0.3.82/0002-alsa-don-t-try-to-link-when-prepare-fails.patch 935 BLAKE2B ed947ed93ed0b750c6fc5d8ebc34b0fca0d8bcd72e303ac13575a061056cbbeb2b85b5f7666ac6513948648162ea88ebde2542697b4619a845826d4fdedf4b5b SHA512 38961a2fff5a2e68fb6102abf56b0325bd9f962771bb1c5749f435faa76983a710e6fc87ba316d9acde8cf253789c26fb6912944f44028f2cf81a383966c437f
AUX 0.3.82/0003-context-relax-quantum-change-conditions.patch 1277 BLAKE2B b60f924b2b113cdbbec6c715615726e1957cf2c0204da088e3f4cbce77885c12f9b8f3951749a051c5337e1410d9acd2fdd227ec4564dd16a1629783d2ae0993 SHA512 a8afa701b568e1ecf8872633d8c568da6c5037cc99f2e9d08420ec36e049982d391e5d261031849c14a2547f580e99964dd4a444c3f7b2632e93bd67f4abd631
+AUX 0.3.83/0001-stream-improve-queued_buffers-reporting.patch 2329 BLAKE2B 4830e8e12c91f47649bbef00428a6b687ba1373dc0124870d9e1713157c8c356af44ba077705d288b95bd375f35feb23ea719a5ef7bfc79b879e01bd66da72f5 SHA512 0373b71b4b622a191512df385ee21ddb7e7a102b99937d29f22d71fee1b5ecd47c7dc6965a3d9fb7510dd5ac7232fee5d6fb265a7102ef88c7f5900bf910eaa8
+AUX 0.3.83/0002-module-echo-cancel-playback-source-async.patch 1230 BLAKE2B 94499ea89635e07f7f026c0a76bd5c0533b5d2153611fead30dbfdd35306fd18269148d8ee1a9a88ee0fede86c8dc0ba8eae68f35a6ce7344b0db89dd05abcda SHA512 33af7e302978a68288d32644553af355039fb2dfd8805363acfea9e66355689d0cd3304a2f6035e7b43f22c5671a436beacf4c816eac1bf0cb2dca6b5e0fc524
+AUX 0.3.83/0003-alsa-guard-against-null-areas.patch 1675 BLAKE2B ff8613d30bb7dcd615ba6f2334931d2e95e69965adc82d2cdeeb6c9748309ffbafe6fd3bc8491e03c0264b06893856de54886b4e5e1da111d5134cffe33ac791 SHA512 9ca0dac0ec63c64782fed92de0308a9cf25fc0aa4d0abd3862beff0775fb63b52137f69d4952a097a7487929fd89af5bcf854c4cd4a78eba9810c5628471a4e0
AUX 99-pipewire-default-hook.conf 540 BLAKE2B cec76e78db9db290054bf766774c284d7a7a1374c453802eb1bdc19db9289856ec7b8643acbab916a39ca859d543deca111e3b0f110d1904343221c1573ffc17 SHA512 ef891e38c6f40fce2904e240307147a58c48d780e8470dac8e28044cfb86ddeb163885a2362687791779379ad814f58ad5649b75ac4e82931c5bdd3f37a6ed01
AUX gentoo-pipewire-launcher.1 1633 BLAKE2B 36c8888693bd0389dc9b1e49d0501d2679956d88f6b7ac42f0347c3fe2259775dd7082cb0bbdeb54a232fcc8902faa8086203e0fe2437c0eea5f1927ba2d0de4 SHA512 8085c9a989f21ee7f2528d56d5b104c0d14024df06f5cb6cd2aa8168b58469c71b91c788706b11021d9dbddb647a2203175603f4f8aa7b33a63a7b7cf8b59d1f
AUX gentoo-pipewire-launcher.in-r2 2630 BLAKE2B e1a176c2b8558c56e250970cf99b78425384cafbc7086856ad389af47041d9b5203f201ebe53510e2e0d663b95447d482d219b0c3476eba7caf26c270b334ae7 SHA512 f5200fc99071aa8b7f4dde4cb9518909db3a79ebeb98d6c25bb216bf794028c4cb9573761a1a8ea6441d3a9478ab8cca7c31239f1f497cb2e9e8231f069d00bc
@@ -24,6 +27,6 @@ EBUILD pipewire-0.3.77-r2.ebuild 18118 BLAKE2B 08963fa4917ac0413ddc5eccd5415a218
EBUILD pipewire-0.3.80.ebuild 18190 BLAKE2B aaccdf9f7abd161932653f3183e939d3d8f2c0e1ae1221b389fd35d4d598cbd8bfedf7594fe0becfff063754c5712582265b453ec70ca5a368ca8826ef60439e SHA512 c0a71db2f574718f4576bfac5b682ce064ab051699c511def6ca8e3dee76cc6980ee0a977ced35e1b7e0ae400e441d05ceb863f29012b72016fe5b8aaa75e177
EBUILD pipewire-0.3.81.ebuild 18195 BLAKE2B 7b0a755c6ba881e8aad07683c3662e2891624ab7aa0c9567c9b3a33083892e3b753d387b3d718e26dc5b320720e364fae0253a5fa50614410aaf7b73287636c4 SHA512 750adb3020413ec3bffdc321090d699fb2e1cc14de8d1b25aebf408afd0866f83211914519a0062ea8698d87a4e44f0e0a0e8179e39ad68630b4bcfb62372e98
EBUILD pipewire-0.3.82-r1.ebuild 18264 BLAKE2B 7c36c5a221589805779e60ee412fc8e99ab370b41b1a8fc0345cb6fe918560e0429a035ffe9a7b0f2e31af450e2cd26ca3152481b6ff1adef3a1332dd8f8fbeb SHA512 a50a99514a1ab330926dedc76c6f18788a2b44a71d61896d5e0944b9320f8dd3d559e4205720abb1c9d26af4dd003e76c8e94255aea3b5a2a6168baceec62bed
-EBUILD pipewire-0.3.83.ebuild 18264 BLAKE2B 7c36c5a221589805779e60ee412fc8e99ab370b41b1a8fc0345cb6fe918560e0429a035ffe9a7b0f2e31af450e2cd26ca3152481b6ff1adef3a1332dd8f8fbeb SHA512 a50a99514a1ab330926dedc76c6f18788a2b44a71d61896d5e0944b9320f8dd3d559e4205720abb1c9d26af4dd003e76c8e94255aea3b5a2a6168baceec62bed
+EBUILD pipewire-0.3.83-r1.ebuild 18264 BLAKE2B 7c36c5a221589805779e60ee412fc8e99ab370b41b1a8fc0345cb6fe918560e0429a035ffe9a7b0f2e31af450e2cd26ca3152481b6ff1adef3a1332dd8f8fbeb SHA512 a50a99514a1ab330926dedc76c6f18788a2b44a71d61896d5e0944b9320f8dd3d559e4205720abb1c9d26af4dd003e76c8e94255aea3b5a2a6168baceec62bed
EBUILD pipewire-9999.ebuild 18264 BLAKE2B 7c36c5a221589805779e60ee412fc8e99ab370b41b1a8fc0345cb6fe918560e0429a035ffe9a7b0f2e31af450e2cd26ca3152481b6ff1adef3a1332dd8f8fbeb SHA512 a50a99514a1ab330926dedc76c6f18788a2b44a71d61896d5e0944b9320f8dd3d559e4205720abb1c9d26af4dd003e76c8e94255aea3b5a2a6168baceec62bed
MISC metadata.xml 2156 BLAKE2B 974459115e0f3cf4e4c3ac15159740b42e01a093da37d8a27f80e122c9ab2a3fe9194443eaf08f9b66d613db90a14465abbe1b76816bce90e11a46c8409c7513 SHA512 cfe0fdb86c993f167507e22635878d6d7d5dcd48f4c23323231263551ceff986fc454700428ecb7d2ee2abe82093c35d8e7bd491020fd6dd3f3889c09e9020bb
diff --git a/media-video/pipewire/files/0.3.83/0001-stream-improve-queued_buffers-reporting.patch b/media-video/pipewire/files/0.3.83/0001-stream-improve-queued_buffers-reporting.patch
new file mode 100644
index 000000000000..029a7930a60e
--- /dev/null
+++ b/media-video/pipewire/files/0.3.83/0001-stream-improve-queued_buffers-reporting.patch
@@ -0,0 +1,53 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3592
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/3d8c7c40b5cc16eaf7bd1fb72c17783ce42e2d0e
+
+From 3d8c7c40b5cc16eaf7bd1fb72c17783ce42e2d0e Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Fri, 20 Oct 2023 09:57:52 +0200
+Subject: [PATCH] stream: improve queued_buffers reporting
+
+Also add the queued buffers in the converter to the pw_time.queued_buffers
+field. This means that queued_buffers + avail_buffers always equal the
+total amount of allocated buffers, which makes more sense.
+
+Fixes #3592
+--- a/src/pipewire/stream.c
++++ b/src/pipewire/stream.c
+@@ -2340,6 +2340,7 @@ int pw_stream_get_time_n(struct pw_stream *stream, struct pw_time *time, size_t
+ struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this);
+ uintptr_t seq1, seq2;
+ uint32_t buffered, quantum, index;
++ int32_t avail_buffers;
+
+ do {
+ seq1 = SPA_SEQ_READ(impl->seq);
+@@ -2358,19 +2359,23 @@ int pw_stream_get_time_n(struct pw_stream *stream, struct pw_time *time, size_t
+ time->delay += (impl->latency.min_rate + impl->latency.max_rate) / 2;
+ time->delay += ((impl->latency.min_ns + impl->latency.max_ns) / 2) * time->rate.denom / SPA_NSEC_PER_SEC;
+
++ avail_buffers = spa_ringbuffer_get_read_index(&impl->dequeued.ring, &index);
++ avail_buffers = SPA_CLAMP(avail_buffers, 0, (int32_t)impl->n_buffers);
++
+ if (size >= offsetof(struct pw_time, queued_buffers))
+ time->buffered = buffered;
+ if (size >= offsetof(struct pw_time, avail_buffers))
+- time->queued_buffers = spa_ringbuffer_get_read_index(&impl->queued.ring, &index);
++ time->queued_buffers = impl->n_buffers - avail_buffers;
+ if (size >= sizeof(struct pw_time))
+- time->avail_buffers = spa_ringbuffer_get_read_index(&impl->dequeued.ring, &index);
++ time->avail_buffers = avail_buffers;
+
+ pw_log_trace_fp("%p: %"PRIi64" %"PRIi64" %"PRIu64" %d/%d %"PRIu64" %"
+- PRIu64" %"PRIu64" %"PRIu64" %"PRIu64, stream,
++ PRIu64" %"PRIu64" %"PRIu64" %"PRIu64" %d/%d", stream,
+ time->now, time->delay, time->ticks,
+ time->rate.num, time->rate.denom, time->queued,
+ impl->dequeued.outcount, impl->dequeued.incount,
+- impl->queued.outcount, impl->queued.incount);
++ impl->queued.outcount, impl->queued.incount,
++ avail_buffers, impl->n_buffers);
+ return 0;
+ }
+
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.83/0002-module-echo-cancel-playback-source-async.patch b/media-video/pipewire/files/0.3.83/0002-module-echo-cancel-playback-source-async.patch
new file mode 100644
index 000000000000..ee96f949a2bb
--- /dev/null
+++ b/media-video/pipewire/files/0.3.83/0002-module-echo-cancel-playback-source-async.patch
@@ -0,0 +1,36 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3593
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/93d5848031cd9101d830fb4c37c5a7404ac5f276
+
+From 93d5848031cd9101d830fb4c37c5a7404ac5f276 Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Sat, 21 Oct 2023 09:27:43 +0200
+Subject: [PATCH] module-echo-cancel: playback and source are async
+
+The playback and source streams don't dequeue/queue buffers from
+the process function and so need to be marked async.
+
+Fixes #3593
+--- a/src/modules/module-echo-cancel.c
++++ b/src/modules/module-echo-cancel.c
+@@ -1002,7 +1002,8 @@ static int setup_streams(struct impl *impl)
+ PW_DIRECTION_OUTPUT,
+ PW_ID_ANY,
+ PW_STREAM_FLAG_MAP_BUFFERS |
+- PW_STREAM_FLAG_RT_PROCESS,
++ PW_STREAM_FLAG_RT_PROCESS |
++ PW_STREAM_FLAG_ASYNC,
+ params, n_params)) < 0) {
+ spa_pod_dynamic_builder_clean(&b);
+ return res;
+@@ -1036,7 +1037,8 @@ static int setup_streams(struct impl *impl)
+ PW_ID_ANY,
+ PW_STREAM_FLAG_AUTOCONNECT |
+ PW_STREAM_FLAG_MAP_BUFFERS |
+- PW_STREAM_FLAG_RT_PROCESS,
++ PW_STREAM_FLAG_RT_PROCESS |
++ PW_STREAM_FLAG_ASYNC,
+ params, n_params)) < 0) {
+ spa_pod_dynamic_builder_clean(&b);
+ return res;
+--
+GitLab
diff --git a/media-video/pipewire/files/0.3.83/0003-alsa-guard-against-null-areas.patch b/media-video/pipewire/files/0.3.83/0003-alsa-guard-against-null-areas.patch
new file mode 100644
index 000000000000..e16b44538b1b
--- /dev/null
+++ b/media-video/pipewire/files/0.3.83/0003-alsa-guard-against-null-areas.patch
@@ -0,0 +1,52 @@
+https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3600
+https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/920beea3eb55ee7156bd8c00a201bdcafa0df5b0
+
+From 920beea3eb55ee7156bd8c00a201bdcafa0df5b0 Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Sun, 22 Oct 2023 17:26:25 +0200
+Subject: [PATCH] alsa: guard agaist NULL areas
+
+snd_pcm_ioplug_mmap_areas() can fail and return NULL
+
+Fixes #3600
+--- a/pipewire-alsa/alsa-plugins/pcm_pipewire.c
++++ b/pipewire-alsa/alsa-plugins/pcm_pipewire.c
+@@ -309,21 +309,21 @@ snd_pcm_pipewire_process(snd_pcm_pipewire_t *pw, struct pw_buffer *b,
+ xfer = nframes;
+ if (xfer > 0) {
+ const snd_pcm_channel_area_t *areas = snd_pcm_ioplug_mmap_areas(io);
+- const snd_pcm_uframes_t offset = hw_ptr % io->buffer_size;
+-
+- if (io->stream == SND_PCM_STREAM_PLAYBACK)
+- snd_pcm_areas_copy_wrap(pwareas, 0, nframes,
+- areas, offset,
+- io->buffer_size,
+- io->channels, xfer,
+- io->format);
+- else
+- snd_pcm_areas_copy_wrap(areas, offset,
+- io->buffer_size,
+- pwareas, 0, nframes,
+- io->channels, xfer,
+- io->format);
+-
++ if (areas != NULL) {
++ const snd_pcm_uframes_t offset = hw_ptr % io->buffer_size;
++ if (io->stream == SND_PCM_STREAM_PLAYBACK)
++ snd_pcm_areas_copy_wrap(pwareas, 0, nframes,
++ areas, offset,
++ io->buffer_size,
++ io->channels, xfer,
++ io->format);
++ else
++ snd_pcm_areas_copy_wrap(areas, offset,
++ io->buffer_size,
++ pwareas, 0, nframes,
++ io->channels, xfer,
++ io->format);
++ }
+ hw_ptr += xfer;
+ if (hw_ptr >= pw->boundary)
+ hw_ptr -= pw->boundary;
+--
+GitLab
diff --git a/media-video/pipewire/pipewire-0.3.83.ebuild b/media-video/pipewire/pipewire-0.3.83-r1.ebuild
index 96ac98602cae..96ac98602cae 100644
--- a/media-video/pipewire/pipewire-0.3.83.ebuild
+++ b/media-video/pipewire/pipewire-0.3.83-r1.ebuild