forked from len0rd/rockbox
Fix FS#10101 and FS#8999. Buffering was stopped prematurely if a manual track skip occured in between, leaving the CPU boosted, because audio_fill_file_buffer() returned if a new track was requested no matter of the filling state. Now keep buffering if it's currently filling the buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21244 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
ec7c4895fe
commit
fc0c2fb546
1 changed files with 4 additions and 3 deletions
|
|
@ -1954,12 +1954,13 @@ static void audio_finish_load_track(void)
|
|||
|
||||
static void audio_fill_file_buffer(bool start_play, size_t offset)
|
||||
{
|
||||
filling = STATE_FILLING;
|
||||
trigger_cpu_boost();
|
||||
|
||||
/* No need to rebuffer if there are track skips pending. */
|
||||
if (ci.new_track != 0)
|
||||
/* No need to rebuffer if there are track skips pending,
|
||||
* however don't cancel buffering on skipping while filling. */
|
||||
if (ci.new_track != 0 && filling != STATE_FILLING)
|
||||
return;
|
||||
filling = STATE_FILLING;
|
||||
|
||||
/* Must reset the buffer before use if trashed or voice only - voice
|
||||
file size shouldn't have changed so we can go straight from
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue