forked from len0rd/rockbox
Fix a (very unlikely) bug in buffering
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9611 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
b6607459c2
commit
73365c8bda
1 changed files with 4 additions and 10 deletions
|
|
@ -1590,17 +1590,11 @@ static void initialize_buffer_fill(bool start_play)
|
||||||
/* Recalculate remaining bytes to buffer, but always leave extra
|
/* Recalculate remaining bytes to buffer, but always leave extra
|
||||||
* data for the currently playing codec to seek back into */
|
* data for the currently playing codec to seek back into */
|
||||||
size_t buf_bytesleft = filebuflen - filebufused;
|
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 - subtract;
|
||||||
fill_bytesleft = buf_bytesleft - AUDIO_REBUFFER_GUESS_SIZE;
|
tracks[track_ridx].start_pos = ci.curpos - subtract;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
logf("Starting buffer fill");
|
logf("Starting buffer fill");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue