summaryrefslogtreecommitdiff
path: root/apps/plugins/codecmpa.c
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-06-10 17:33:16 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-06-10 17:33:16 +0000
commitd30f1100ec8d74f3c187271590b03d589ad4b7dc (patch)
treed7730bbc4c13073ae9bd5ca7b756f7238d7dac99 /apps/plugins/codecmpa.c
parent68b9acd7de3f92e167146b002e3e782cfca924cb (diff)
downloadrockbox-d30f1100ec8d74f3c187271590b03d589ad4b7dc.tar.gz
rockbox-d30f1100ec8d74f3c187271590b03d589ad4b7dc.zip
Much better UI performance and buffering times for MP3 and FLAC.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6653 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/codecmpa.c')
-rw-r--r--apps/plugins/codecmpa.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/apps/plugins/codecmpa.c b/apps/plugins/codecmpa.c
index 88f6b8c624..bf6cf3f87d 100644
--- a/apps/plugins/codecmpa.c
+++ b/apps/plugins/codecmpa.c
@@ -198,6 +198,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
198 int fd; 198 int fd;
199#endif 199#endif
200 int i; 200 int i;
201 int yieldcounter = 0;
201 202
202 /* Generic plugin inititialisation */ 203 /* Generic plugin inititialisation */
203 204
@@ -217,6 +218,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
217 /* Create a decoder instance */ 218 /* Create a decoder instance */
218 219
219 ci->configure(CODEC_SET_FILEBUF_LIMIT, (int *)(1024*1024*2)); 220 ci->configure(CODEC_SET_FILEBUF_LIMIT, (int *)(1024*1024*2));
221 ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (int *)(1024*16));
220 222
221 next_track: 223 next_track:
222 memset(&Stream, 0, sizeof(struct mad_stream)); 224 memset(&Stream, 0, sizeof(struct mad_stream));
@@ -379,10 +381,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
379 goto song_end; 381 goto song_end;
380 } 382 }
381 383
384 if (yieldcounter++ == 200) {
385 rb->yield();
386 yieldcounter = 0;
387 }
388
382 /* Flush the buffer if it is full. */ 389 /* Flush the buffer if it is full. */
383 if(OutputPtr==OutputBufferEnd) 390 if(OutputPtr==OutputBufferEnd)
384 { 391 {
385 rb->yield();
386#ifdef DEBUG_GAPLESS 392#ifdef DEBUG_GAPLESS
387 rb->write(fd, OutputBuffer, OUTPUT_BUFFER_SIZE); 393 rb->write(fd, OutputBuffer, OUTPUT_BUFFER_SIZE);
388#endif 394#endif