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 d399e91627..00fdeea309 100644
--- a/apps/codecs/a52.c
+++ b/apps/codecs/a52.c
@@ -128,13 +128,15 @@ enum codec_status codec_main(void)
128 ci->configure(DSP_SET_SAMPLE_DEPTH, 28); 128 ci->configure(DSP_SET_SAMPLE_DEPTH, 28);
129 129
130next_track: 130next_track:
131 retval = CODEC_OK;
132
131 if (codec_init()) { 133 if (codec_init()) {
132 retval = CODEC_ERROR; 134 retval = CODEC_ERROR;
133 goto exit; 135 goto exit;
134 } 136 }
135 137
136 while (!ci->taginfo_ready) 138 if (codec_wait_taginfo() != 0)
137 ci->yield(); 139 goto request_next_track;
138 140
139 ci->configure(DSP_SWITCH_FREQUENCY, ci->id3->frequency); 141 ci->configure(DSP_SWITCH_FREQUENCY, ci->id3->frequency);
140 codec_set_replaygain(ci->id3); 142 codec_set_replaygain(ci->id3);
@@ -176,8 +178,8 @@ next_track:
176 a52_decode_data(filebuf, filebuf + n); 178 a52_decode_data(filebuf, filebuf + n);
177 ci->advance_buffer(n); 179 ci->advance_buffer(n);
178 } 180 }
179 retval = CODEC_OK;
180 181
182request_next_track:
181 if (ci->request_next_track()) 183 if (ci->request_next_track())
182 goto next_track; 184 goto next_track;
183 185