summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2008-02-24 19:12:15 +0000
committerMagnus Holmgren <magnushol@gmail.com>2008-02-24 19:12:15 +0000
commit87842ca0e70ec866964b19655da54497e98bd710 (patch)
treef43cd0f5e537a6f6bf28e77c6d838b9e31d7dc89 /apps
parent2279d95efecbdfa6118f390f6bbd3d6e28b7fc1a (diff)
downloadrockbox-87842ca0e70ec866964b19655da54497e98bd710.tar.gz
rockbox-87842ca0e70ec866964b19655da54497e98bd710.zip
Change to (or add) 'standard' codec startup delay, fixing potential startup problems for APE and MPC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16410 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/codecs/aiff.c4
-rw-r--r--apps/codecs/ape.c6
-rw-r--r--apps/codecs/mpc.c3
-rw-r--r--apps/codecs/sid.c4
4 files changed, 10 insertions, 7 deletions
diff --git a/apps/codecs/aiff.c b/apps/codecs/aiff.c
index 93a7c39489..8b90f7fe9c 100644
--- a/apps/codecs/aiff.c
+++ b/apps/codecs/aiff.c
@@ -72,8 +72,8 @@ next_track:
72 goto exit; 72 goto exit;
73 } 73 }
74 74
75 while (!*ci->taginfo_ready) 75 while (!*ci->taginfo_ready && !ci->stop_codec)
76 ci->yield(); 76 ci->sleep(1);
77 77
78 codec_set_replaygain(ci->id3); 78 codec_set_replaygain(ci->id3);
79 79
diff --git a/apps/codecs/ape.c b/apps/codecs/ape.c
index 6679a1a307..76c1d1af8d 100644
--- a/apps/codecs/ape.c
+++ b/apps/codecs/ape.c
@@ -164,6 +164,9 @@ enum codec_status codec_main(void)
164 goto exit; 164 goto exit;
165 } 165 }
166 166
167 while (!*ci->taginfo_ready && !ci->stop_codec)
168 ci->sleep(1);
169
167 inbuffer = ci->request_buffer(&bytesleft, INPUT_CHUNKSIZE); 170 inbuffer = ci->request_buffer(&bytesleft, INPUT_CHUNKSIZE);
168 171
169 /* Read the file headers to populate the ape_ctx struct */ 172 /* Read the file headers to populate the ape_ctx struct */
@@ -198,9 +201,6 @@ enum codec_status codec_main(void)
198 (ape_ctx.seektablefilepos + 201 (ape_ctx.seektablefilepos +
199 ape_ctx.numseekpoints * sizeof(uint32_t))); 202 ape_ctx.numseekpoints * sizeof(uint32_t)));
200 203
201 while (!*ci->taginfo_ready && !ci->stop_codec)
202 ci->sleep(1);
203
204 ci->configure(DSP_SWITCH_FREQUENCY, ape_ctx.samplerate); 204 ci->configure(DSP_SWITCH_FREQUENCY, ape_ctx.samplerate);
205 ci->configure(DSP_SET_STEREO_MODE, ape_ctx.channels == 1 ? 205 ci->configure(DSP_SET_STEREO_MODE, ape_ctx.channels == 1 ?
206 STEREO_MONO : STEREO_NONINTERLEAVED); 206 STEREO_MONO : STEREO_NONINTERLEAVED);
diff --git a/apps/codecs/mpc.c b/apps/codecs/mpc.c
index 207a09445f..c74c10ee64 100644
--- a/apps/codecs/mpc.c
+++ b/apps/codecs/mpc.c
@@ -98,6 +98,9 @@ next_track:
98 goto exit; 98 goto exit;
99 } 99 }
100 100
101 while (!*ci->taginfo_ready && !ci->stop_codec)
102 ci->sleep(1);
103
101 samplesdone = ci->id3->offset; 104 samplesdone = ci->id3->offset;
102 105
103 /* read file's streaminfo data */ 106 /* read file's streaminfo data */
diff --git a/apps/codecs/sid.c b/apps/codecs/sid.c
index bb43aef680..1a1e912354 100644
--- a/apps/codecs/sid.c
+++ b/apps/codecs/sid.c
@@ -1221,8 +1221,8 @@ next_track:
1221 return CODEC_ERROR; 1221 return CODEC_ERROR;
1222 } 1222 }
1223 1223
1224 while (!*ci->taginfo_ready) 1224 while (!*ci->taginfo_ready && !ci->stop_codec)
1225 ci->yield(); 1225 ci->sleep(1);
1226 1226
1227 codec_set_replaygain(ci->id3); 1227 codec_set_replaygain(ci->id3);
1228 1228