summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia/musicpd/files/0001-output-PipeWire-activate-stream-in-Drain.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-multimedia/musicpd/files/0001-output-PipeWire-activate-stream-in-Drain.patch')
-rw-r--r--recipes-multimedia/musicpd/files/0001-output-PipeWire-activate-stream-in-Drain.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/recipes-multimedia/musicpd/files/0001-output-PipeWire-activate-stream-in-Drain.patch b/recipes-multimedia/musicpd/files/0001-output-PipeWire-activate-stream-in-Drain.patch
new file mode 100644
index 00000000..429e4650
--- /dev/null
+++ b/recipes-multimedia/musicpd/files/0001-output-PipeWire-activate-stream-in-Drain.patch
@@ -0,0 +1,34 @@
+From 6b430ba271f6d45b3f58c256cb8fede3b04f3b7a Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max.kellermann@gmail.com>
+Date: Sat, 9 Jul 2022 00:21:27 +0200
+Subject: [PATCH] output/PipeWire: activate stream in Drain()
+
+Upstream-Status: Backport [https://github.com/MusicPlayerDaemon/MPD/commit/6b430ba271f6d45b3f58c256cb8fede3b04f3b7a]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+diff --git a/src/output/plugins/PipeWireOutputPlugin.cxx b/src/output/plugins/PipeWireOutputPlugin.cxx
+index 524ab3d87..ccdf5c0e4 100644
+--- a/src/output/plugins/PipeWireOutputPlugin.cxx
++++ b/src/output/plugins/PipeWireOutputPlugin.cxx
+@@ -866,6 +866,17 @@ PipeWireOutput::Drain()
+ {
+ const PipeWire::ThreadLoopLock lock(thread_loop);
+
++ if (drained)
++ return;
++
++ if (!active) {
++ /* there is data in the ring_buffer, but the stream is
++ not yet active; activate it now to ensure it is
++ played before this method returns */
++ active = true;
++ pw_stream_set_active(stream, true);
++ }
++
+ drain_requested = true;
+ AtScopeExit(this) { drain_requested = false; };
+
+--
+2.39.0
+