From 85e40257dc65e3542b785898ddf60482e2d1ab0c Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 20 Feb 2011 15:27:10 +0000 Subject: 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 --- apps/codecs/vorbis.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'apps/codecs/vorbis.c') 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) #endif next_track: + error = CODEC_OK; + ogg_malloc_init(); - while (!*ci->taginfo_ready && !ci->stop_codec) - ci->sleep(1); + if (codec_wait_taginfo() != 0) + goto done; /* Create a decoder instance */ callbacks.read_func = read_handler; @@ -233,8 +235,7 @@ next_track: ci->set_elapsed(ov_time_tell(&vf)); } } - error = CODEC_OK; - + done: #if 0 /* defined(SIMULATOR) */ { -- cgit v1.2.3