X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=recipes-multimedia%2Fmusicpd%2Ffiles%2F0003-output-PipeWire-call-pw_stream_flush-in-Cancel.patch;fp=recipes-multimedia%2Fmusicpd%2Ffiles%2F0003-output-PipeWire-call-pw_stream_flush-in-Cancel.patch;h=c63d8615511ff489a73e7cab141c31f33dba00be;hb=eaed764bc0a02029287d2531bedf13ce123641ee;hp=0000000000000000000000000000000000000000;hpb=1b347d8823db32ee0b58bacd8c8d54553aca1f2f;p=AGL%2Fmeta-agl-demo.git diff --git a/recipes-multimedia/musicpd/files/0003-output-PipeWire-call-pw_stream_flush-in-Cancel.patch b/recipes-multimedia/musicpd/files/0003-output-PipeWire-call-pw_stream_flush-in-Cancel.patch new file mode 100644 index 000000000..c63d86155 --- /dev/null +++ b/recipes-multimedia/musicpd/files/0003-output-PipeWire-call-pw_stream_flush-in-Cancel.patch @@ -0,0 +1,35 @@ +From 547a084c7ed95c09136159623240b7c92f6a2f5e Mon Sep 17 00:00:00 2001 +From: Max Kellermann +Date: Fri, 8 Jul 2022 23:38:45 +0200 +Subject: [PATCH] output/PipeWire: call pw_stream_flush() in Cancel() + +Clear not only MPD's ring buffer, but also libpipewire's buffers, to +avoid playing some audio from the previous song after a manual song +change. + +Fixes part 1 of https://github.com/MusicPlayerDaemon/MPD/issues/1354 + +Upstream-Status: Backport [https://github.com/MusicPlayerDaemon/MPD/commit/547a084c7ed95c09136159623240b7c92f6a2f5e] +Signed-off-by: Scott Murray + +--- +diff --git a/src/output/plugins/PipeWireOutputPlugin.cxx b/src/output/plugins/PipeWireOutputPlugin.cxx +index 7184edfa5..0f8550d41 100644 +--- a/src/output/plugins/PipeWireOutputPlugin.cxx ++++ b/src/output/plugins/PipeWireOutputPlugin.cxx +@@ -895,7 +895,12 @@ PipeWireOutput::Cancel() noexcept + if (drained) + return; + ++ /* clear MPD's ring buffer */ + ring_buffer->reset(); ++ ++ /* clear libpipewire's buffer */ ++ pw_stream_flush(stream, false); ++ drained = true; + } + + bool +-- +2.39.0 +