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/lib/codeclib.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/lib/codeclib.c')
| -rw-r--r-- | apps/codecs/lib/codeclib.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/apps/codecs/lib/codeclib.c b/apps/codecs/lib/codeclib.c index 5af4e01..af0894c 100644 --- a/apps/codecs/lib/codeclib.c +++ b/apps/codecs/lib/codeclib.c @@ -49,6 +49,19 @@ void codec_set_replaygain(struct mp3entry* id3) ci->configure(DSP_SET_ALBUM_PEAK, id3->album_peak); } +/* Note: codec really needs its own private metdata copy for the current + track being processed in order to be stable. */ +int codec_wait_taginfo(void) +{ + while (!*ci->taginfo_ready && !ci->stop_codec && !ci->new_track) + ci->sleep(0); + if (ci->stop_codec) + return -1; + if (ci->new_track) + return 1; + return 0; +} + /* Various "helper functions" common to all the xxx2wav decoder plugins */ |