From 73365c8bdac1fc0c2d4f67b050b397b8e16f9c5b Mon Sep 17 00:00:00 2001 From: Brandon Low Date: Tue, 11 Apr 2006 15:45:11 +0000 Subject: [PATCH] Fix a (very unlikely) bug in buffering git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9611 a1c6a512-1295-4272-9138-f99709370657 --- apps/playback.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/apps/playback.c b/apps/playback.c index 99de8ada2b..2cf07f4ec4 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1590,17 +1590,11 @@ static void initialize_buffer_fill(bool start_play) /* Recalculate remaining bytes to buffer, but always leave extra * data for the currently playing codec to seek back into */ size_t buf_bytesleft = filebuflen - filebufused; + size_t subtract = + MIN(MIN(AUDIO_REBUFFER_GUESS_SIZE, ci.curpos), buf_bytesleft); - if (buf_bytesleft > AUDIO_REBUFFER_GUESS_SIZE) - fill_bytesleft = buf_bytesleft - AUDIO_REBUFFER_GUESS_SIZE; - else - fill_bytesleft = 0; - - if (ci.curpos > AUDIO_REBUFFER_GUESS_SIZE) - tracks[track_ridx].start_pos = - ci.curpos - AUDIO_REBUFFER_GUESS_SIZE; - else - tracks[track_ridx].start_pos = 0; + fill_bytesleft = buf_bytesleft - subtract; + tracks[track_ridx].start_pos = ci.curpos - subtract; } logf("Starting buffer fill");