pipewire/0001-pulse-server-clear-the-drained-state-correctly.patch
Antonio Larrosa 77255f9033 Accepting request 1057763 from home:alarrosa:branches:multimedia:libs
- Add several patches from upstream to fix several issues
  (glfo#pipewire/pipewire#2925, glfo#pipewire/pipewire#2928,
   glfo#pipewire/pipewire#2929):
  * 0001-module-rt-fix-warning-when-xdg-desktop-portal-isnt-running.patch
  * 0001-midifile-error-won-invalid-track-size.patch
  * 0001-impl-node-move-2-state-variables-to-private.patch
  * 0001-context-rename-a-method.patch
  * 0002-impl-node-restore-running-state-after-reconfigure.patch
  * 0001-context-keep-per-node-quantum-and-rate-settings.patch
  * 0001-fix-use_buffers-checks.patch
  * 0001-pulse-server-clear-the-drained-state-correctly.patch

OBS-URL: https://build.opensuse.org/request/show/1057763
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=102
2023-01-11 11:40:27 +00:00

35 lines
1.2 KiB
Diff

From 624e265fd6e5027e11027822eb943c533feab85f Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Tue, 10 Jan 2023 12:49:22 +0100
Subject: [PATCH] pulse-server: clear the drained state correctly
When we start the drain, we unpause the stream. When we conplete the
drain, we unpause again, which does nothing when the stream was already
unpaused. However, this leaves the drained state on the stream and so
the stream will never be able to play new data.
Trigger a new pw_stream_set_active() with the current stream state to
clear the drained state.
Fixes #2928
---
src/modules/module-protocol-pulse/pulse-server.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c
index 97405e039..97d247d26 100644
--- a/src/modules/module-protocol-pulse/pulse-server.c
+++ b/src/modules/module-protocol-pulse/pulse-server.c
@@ -1541,7 +1541,7 @@ static void stream_drained(void *data)
reply_simple_ack(stream->client, stream->drain_tag);
stream->drain_tag = 0;
- stream_set_paused(stream, false, "complete drain");
+ pw_stream_set_active(stream->stream, !stream->is_paused);
}
}
--
GitLab