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
This commit is contained in:
parent
493677ff81
commit
547a084c7e
1
NEWS
1
NEWS
|
@ -6,6 +6,7 @@ ver 0.23.8 (not yet released)
|
||||||
- cdio_paranoia: faster cancellation
|
- cdio_paranoia: faster cancellation
|
||||||
- cdio_paranoia: don't scan for replay gain tags
|
- cdio_paranoia: don't scan for replay gain tags
|
||||||
- pipewire: fix playback of very short tracks
|
- pipewire: fix playback of very short tracks
|
||||||
|
- pipewire: drop all buffers before manual song change
|
||||||
- snapcast: fix busy loop while paused
|
- snapcast: fix busy loop while paused
|
||||||
- snapcast: fix stuttering after resuming playback
|
- snapcast: fix stuttering after resuming playback
|
||||||
* mixer
|
* mixer
|
||||||
|
|
|
@ -895,7 +895,12 @@ PipeWireOutput::Cancel() noexcept
|
||||||
if (drained)
|
if (drained)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* clear MPD's ring buffer */
|
||||||
ring_buffer->reset();
|
ring_buffer->reset();
|
||||||
|
|
||||||
|
/* clear libpipewire's buffer */
|
||||||
|
pw_stream_flush(stream, false);
|
||||||
|
drained = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
Loading…
Reference in New Issue