From 2867c8e9b1656c8f8a3c1a8a39a1fde13a0020cb Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 29 Oct 2008 18:35:10 +0100 Subject: player: handle songs shorter than the initial buffer When the decoder exited before the buffer has grown big enough ("buffer_before_play"), the player thread waited forever. Add an additional check which disables buffering as soon as the decoder exits. --- src/player_thread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/player_thread.c') diff --git a/src/player_thread.c b/src/player_thread.c index b8bc92af8..35796d95d 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -265,7 +265,8 @@ static void do_play(void) } if (player.buffering) { - if (ob_available() < pc.buffered_before_play) { + if (ob_available() < pc.buffered_before_play && + !decoder_is_idle()) { /* not enough decoded buffer space yet */ notify_wait(&pc.notify); continue; -- cgit v1.2.3