From b3cb83b5eaf82a70d7f4572d6feed6566f0b9350 Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Mon, 22 Oct 2007 19:50:25 +0200 Subject: [PATCH] audio_fill_file_buffer() cleaning and tweaking * Sleep a bit between each track loading, to allow the codec thread to run * Remove audio_initialize_buffer_fill() and inline it, since it has become small. --- apps/playback.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/apps/playback.c b/apps/playback.c index cdd1cdbc2..1a6d0e8d4 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -2653,19 +2653,6 @@ static void low_buffer_callback(void) queue_post(&audio_queue, Q_AUDIO_FILL_BUFFER, 0); } -static bool audio_initialize_buffer_fill(bool clear_tracks) -{ - logf("Starting buffer fill"); - - if (clear_tracks) - audio_clear_track_entries(false); - - /* Save the current resume position once. */ - playlist_update_resume_info(audio_current_track()); - - return true; -} - static void audio_fill_file_buffer( bool start_play, bool rebuffer, size_t offset) { @@ -2678,13 +2665,19 @@ static void audio_fill_file_buffer( if (buffer_state != BUFFER_STATE_INITIALIZED) audio_reset_buffer(); - if (!audio_initialize_buffer_fill(!start_play)) - return ; + logf("Starting buffer fill"); + + if (!start_play) + audio_clear_track_entries(false); + + /* Save the current resume position once. */ + playlist_update_resume_info(audio_current_track()); do { continue_buffering = audio_load_track(offset, start_play, rebuffer); start_play = false; offset = 0; + sleep(1); } while (continue_buffering); if (!had_next_track && audio_next_track()) -- 2.11.4.GIT