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.zip
rockbox-d30f1100ec8d74f3c187271590b03d589ad4b7dc.tar.gz
rockbox-d30f1100ec8d74f3c187271590b03d589ad4b7dc.tar.bz2
rockbox-d30f1100ec8d74f3c187271590b03d589ad4b7dc.tar.xz
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 88f6b8c..bf6cf3f 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)
int fd;
#endif
int i;
+ int yieldcounter = 0;
/* Generic plugin inititialisation */
@@ -217,6 +218,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
/* Create a decoder instance */
ci->configure(CODEC_SET_FILEBUF_LIMIT, (int *)(1024*1024*2));
+ ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (int *)(1024*16));
next_track:
memset(&Stream, 0, sizeof(struct mad_stream));
@@ -379,10 +381,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
goto song_end;
}
+ if (yieldcounter++ == 200) {
+ rb->yield();
+ yieldcounter = 0;
+ }
+
/* Flush the buffer if it is full. */
if(OutputPtr==OutputBufferEnd)
{
- rb->yield();
#ifdef DEBUG_GAPLESS
rb->write(fd, OutputBuffer, OUTPUT_BUFFER_SIZE);
#endif