diff options
| author | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2008-03-29 17:28:30 +0000 |
|---|---|---|
| committer | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2008-03-29 17:28:30 +0000 |
| commit | 732df386af71dfcf3aa800c2fa2b29073dd94ee7 (patch) | |
| tree | d32c1a7004445b54ef248b0ec088b0b62dda37e3 | |
| parent | 3b46671a40f4338b7ace8cdb64cf716f73626f31 (diff) | |
| download | rockbox-732df386af71dfcf3aa800c2fa2b29073dd94ee7.zip rockbox-732df386af71dfcf3aa800c2fa2b29073dd94ee7.tar.gz rockbox-732df386af71dfcf3aa800c2fa2b29073dd94ee7.tar.bz2 rockbox-732df386af71dfcf3aa800c2fa2b29073dd94ee7.tar.xz | |
Boost the audio thread while it's filling the buffer. In the audio and the buffering threads, only cancel cpu boost when not filling.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16880 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/buffering.c | 6 | ||||
| -rw-r--r-- | apps/playback.c | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/apps/buffering.c b/apps/buffering.c index e642142..e7dda98 100644 --- a/apps/buffering.c +++ b/apps/buffering.c @@ -1338,8 +1338,10 @@ void buffering_thread(void) while (true) { - cancel_cpu_boost(); - queue_wait_w_tmo(&buffering_queue, &ev, filling?5:HZ/2); + if (!filling) + cancel_cpu_boost(); + + queue_wait_w_tmo(&buffering_queue, &ev, filling ? 5 : HZ/2); switch (ev.id) { diff --git a/apps/playback.c b/apps/playback.c index 0531818..328f6fc 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1848,6 +1848,7 @@ static void audio_fill_file_buffer(bool start_play, size_t offset) bool continue_buffering; filling = STATE_FILLING; + trigger_cpu_boost(); /* No need to rebuffer if there are track skips pending. */ if (ci.new_track != 0) @@ -2357,7 +2358,9 @@ static void audio_thread(void) while (1) { - cancel_cpu_boost(); + if (filling != STATE_FILLING) + cancel_cpu_boost(); + if (!pcmbuf_queue_scan(&ev)) queue_wait_w_tmo(&audio_queue, &ev, HZ/2); |