diff options
| author | Michael Sevakis <jethead71@rockbox.org> | 2011-02-20 15:27:10 +0000 |
|---|---|---|
| committer | Michael Sevakis <jethead71@rockbox.org> | 2011-02-20 15:27:10 +0000 |
| commit | 85e40257dc65e3542b785898ddf60482e2d1ab0c (patch) | |
| tree | f7bf9b33decce4296fbea0f437252f40aba6d5de /apps/codecs/atrac3_rm.c | |
| parent | 460d54977ae2f9c2c5997c6c4cd5541ab436d718 (diff) | |
| download | rockbox-85e40257dc65e3542b785898ddf60482e2d1ab0c.zip rockbox-85e40257dc65e3542b785898ddf60482e2d1ab0c.tar.gz rockbox-85e40257dc65e3542b785898ddf60482e2d1ab0c.tar.bz2 rockbox-85e40257dc65e3542b785898ddf60482e2d1ab0c.tar.xz | |
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/atrac3_rm.c')
| -rw-r--r-- | apps/codecs/atrac3_rm.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/codecs/atrac3_rm.c b/apps/codecs/atrac3_rm.c index 6c559ec..6a77d24 100644 --- a/apps/codecs/atrac3_rm.c +++ b/apps/codecs/atrac3_rm.c @@ -51,15 +51,18 @@ enum codec_status codec_main(void) uint32_t packet_count; int scrambling_unit_size, num_units, elapsed = 0; int playback_on = -1; - size_t resume_offset = ci->id3->offset; + size_t resume_offset; next_track: if (codec_init()) { DEBUGF("codec init failed\n"); return CODEC_ERROR; } - while (!*ci->taginfo_ready && !ci->stop_codec) - ci->sleep(1); + + if (codec_wait_taginfo() != 0) + goto done; + + resume_offset = ci->id3->offset; codec_set_replaygain(ci->id3); ci->memset(&rmctx,0,sizeof(RMContext)); |