diff options
Diffstat (limited to 'apps/codecs/a52.c')
| -rw-r--r-- | apps/codecs/a52.c | 8 |
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; |