summaryrefslogtreecommitdiff
path: root/apps/codecs/vorbis.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2011-02-20 15:27:10 +0000
committerMichael Sevakis <jethead71@rockbox.org>2011-02-20 15:27:10 +0000
commit85e40257dc65e3542b785898ddf60482e2d1ab0c (patch)
treef7bf9b33decce4296fbea0f437252f40aba6d5de /apps/codecs/vorbis.c
parent460d54977ae2f9c2c5997c6c4cd5541ab436d718 (diff)
downloadrockbox-85e40257dc65e3542b785898ddf60482e2d1ab0c.tar.gz
rockbox-85e40257dc65e3542b785898ddf60482e2d1ab0c.zip
Enforce that codecs wait for their metadata in a proper-ish and consistent manner. Sort of a halfway patch; best would be to give them an internal copy of the current track information which lasts unaltered by playback until a track switch or unload.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29348 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/vorbis.c')
-rw-r--r--apps/codecs/vorbis.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/apps/codecs/vorbis.c b/apps/codecs/vorbis.c
index cb621e8a55..17cc4a03f9 100644
--- a/apps/codecs/vorbis.c
+++ b/apps/codecs/vorbis.c
@@ -136,10 +136,12 @@ enum codec_status codec_main(void)
136#endif 136#endif
137 137
138next_track: 138next_track:
139 error = CODEC_OK;
140
139 ogg_malloc_init(); 141 ogg_malloc_init();
140 142
141 while (!*ci->taginfo_ready && !ci->stop_codec) 143 if (codec_wait_taginfo() != 0)
142 ci->sleep(1); 144 goto done;
143 145
144 /* Create a decoder instance */ 146 /* Create a decoder instance */
145 callbacks.read_func = read_handler; 147 callbacks.read_func = read_handler;
@@ -233,8 +235,7 @@ next_track:
233 ci->set_elapsed(ov_time_tell(&vf)); 235 ci->set_elapsed(ov_time_tell(&vf));
234 } 236 }
235 } 237 }
236 error = CODEC_OK; 238
237
238done: 239done:
239#if 0 /* defined(SIMULATOR) */ 240#if 0 /* defined(SIMULATOR) */
240 { 241 {