summaryrefslogtreecommitdiff
path: root/apps/codecs/a52.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/a52.c')
-rw-r--r--apps/codecs/a52.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/apps/codecs/a52.c b/apps/codecs/a52.c
index d399e91..00fdeea 100644
--- a/apps/codecs/a52.c
+++ b/apps/codecs/a52.c
@@ -128,13 +128,15 @@ enum codec_status codec_main(void)
ci->configure(DSP_SET_SAMPLE_DEPTH, 28);
next_track:
+ retval = CODEC_OK;
+
if (codec_init()) {
retval = CODEC_ERROR;
goto exit;
}
- while (!ci->taginfo_ready)
- ci->yield();
+ if (codec_wait_taginfo() != 0)
+ goto request_next_track;
ci->configure(DSP_SWITCH_FREQUENCY, ci->id3->frequency);
codec_set_replaygain(ci->id3);
@@ -176,8 +178,8 @@ next_track:
a52_decode_data(filebuf, filebuf + n);
ci->advance_buffer(n);
}
- retval = CODEC_OK;
+request_next_track:
if (ci->request_next_track())
goto next_track;