diff options
author | Magnus Holmgren <magnushol@gmail.com> | 2008-02-24 19:12:15 +0000 |
---|---|---|
committer | Magnus Holmgren <magnushol@gmail.com> | 2008-02-24 19:12:15 +0000 |
commit | 87842ca0e70ec866964b19655da54497e98bd710 (patch) | |
tree | f43cd0f5e537a6f6bf28e77c6d838b9e31d7dc89 /apps | |
parent | 2279d95efecbdfa6118f390f6bbd3d6e28b7fc1a (diff) | |
download | rockbox-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.c | 4 | ||||
-rw-r--r-- | apps/codecs/ape.c | 6 | ||||
-rw-r--r-- | apps/codecs/mpc.c | 3 | ||||
-rw-r--r-- | apps/codecs/sid.c | 4 |
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 | ||