summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2007-10-27 01:25:47 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2007-10-27 01:25:47 +0000
commitd08131a1172b09a701de9fc0b24e045866c9fe6a (patch)
treead87bb1efa5a0d66cb58f1e47b05bc437617381b /apps
parent0652663367268f0c418d10cc7918804c51a54cb5 (diff)
downloadrockbox-d08131a1172b09a701de9fc0b24e045866c9fe6a.zip
rockbox-d08131a1172b09a701de9fc0b24e045866c9fe6a.tar.gz
rockbox-d08131a1172b09a701de9fc0b24e045866c9fe6a.tar.bz2
rockbox-d08131a1172b09a701de9fc0b24e045866c9fe6a.tar.xz
* Only call bufgetcodec once
* Fix/Improve some queue logf messages * Complete buffering_init git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15325 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/buffering.c9
-rw-r--r--apps/playback.c8
2 files changed, 11 insertions, 6 deletions
diff --git a/apps/buffering.c b/apps/buffering.c
index 7ebcbae..44d3e60 100644
--- a/apps/buffering.c
+++ b/apps/buffering.c
@@ -819,7 +819,7 @@ bool bufclose(int handle_id)
{
logf("bufclose(%d)", handle_id);
- LOGFQUEUE("buffering >| Q_CLOSE_HANDLE");
+ LOGFQUEUE("buffering >| Q_CLOSE_HANDLE %d", handle_id);
return queue_send(&buffering_queue, Q_CLOSE_HANDLE, handle_id);
}
@@ -981,13 +981,13 @@ ssize_t buf_handle_offset(int handle_id)
void buf_request_buffer_handle(int handle_id)
{
- LOGFQUEUE("buffering >| buffering Q_BUFFER_HANDLE");
+ LOGFQUEUE("buffering >| buffering Q_BUFFER_HANDLE %d", handle_id);
queue_send(&buffering_queue, Q_BUFFER_HANDLE, handle_id);
}
void buf_set_base_handle(int handle_id)
{
- LOGFQUEUE("buffering >| buffering Q_BUFFER_HANDLE");
+ LOGFQUEUE("buffering > buffering Q_BASE_HANDLE %d", handle_id);
queue_post(&buffering_queue, Q_BASE_HANDLE, handle_id);
}
@@ -1198,7 +1198,10 @@ bool buffering_init(char *buf, size_t buflen)
buf_ridx = 0;
first_handle = NULL;
+ cur_handle = NULL;
+ cached_handle = NULL;
num_handles = 0;
+ base_handle_id = 0;
buffer_callback_count = 0;
memset(buffer_low_callback_funcs, 0, sizeof(buffer_low_callback_funcs));
diff --git a/apps/playback.c b/apps/playback.c
index 1a0283e..c26a39e 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -1895,6 +1895,7 @@ static void codec_thread(void)
struct queue_event ev;
int status;
size_t wrap;
+ void *codecptr;
while (1) {
status = 0;
@@ -1950,9 +1951,10 @@ static void codec_thread(void)
#endif
set_current_codec(CODEC_IDX_AUDIO);
ci.stop_codec = false;
- wrap = (size_t)&filebuf[filebuflen] - (size_t)bufgetcodec(CUR_TI);
- status = codec_load_ram(bufgetcodec(CUR_TI), CUR_TI->codecsize,
- &filebuf[0], wrap, &ci);
+ codecptr = bufgetcodec(CUR_TI);
+ wrap = (size_t)&filebuf[filebuflen] - (size_t)codecptr;
+ status = codec_load_ram(codecptr, CUR_TI->codecsize,
+ &filebuf[0], wrap, &ci);
#ifdef PLAYBACK_VOICE
semaphore_release(&sem_codecthread);
#endif