X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=recipes-multimedia%2Fmusicpd%2Ffiles%2F0001-output-PipeWire-activate-stream-in-Drain.patch;fp=recipes-multimedia%2Fmusicpd%2Ffiles%2F0001-output-PipeWire-activate-stream-in-Drain.patch;h=429e465083ff691e363b1fbe8f569eb50f282695;hb=eaed764bc0a02029287d2531bedf13ce123641ee;hp=0000000000000000000000000000000000000000;hpb=1b347d8823db32ee0b58bacd8c8d54553aca1f2f;p=AGL%2Fmeta-agl-demo.git 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 000000000..429e46508 --- /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 +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 + +--- +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 +