player/Thread: drain outputs at end of song in "single" mode
Without this, the Pause() call would drop the ring buffers and would skip a considerable portion of the end of the song. Closes https://github.com/MusicPlayerDaemon/MPD/issues/824
This commit is contained in:
parent
8d2079482f
commit
32a5bf043b
2
NEWS
2
NEWS
@ -1,4 +1,6 @@
|
|||||||
ver 0.21.23 (not yet released)
|
ver 0.21.23 (not yet released)
|
||||||
|
* player
|
||||||
|
- drain outputs at end of song in "single" mode
|
||||||
|
|
||||||
ver 0.21.22 (2020/04/02)
|
ver 0.21.22 (2020/04/02)
|
||||||
* database
|
* database
|
||||||
|
@ -964,6 +964,12 @@ Player::SongBorder() noexcept
|
|||||||
if (border_pause) {
|
if (border_pause) {
|
||||||
paused = true;
|
paused = true;
|
||||||
pc.listener.OnBorderPause();
|
pc.listener.OnBorderPause();
|
||||||
|
|
||||||
|
/* drain all outputs to guarantee the current song is
|
||||||
|
really being played to the end; without this, the
|
||||||
|
Pause() call would drop all ring buffers */
|
||||||
|
pc.outputs.Drain();
|
||||||
|
|
||||||
pc.outputs.Pause();
|
pc.outputs.Pause();
|
||||||
idle_add(IDLE_PLAYER);
|
idle_add(IDLE_PLAYER);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user