summaryrefslogtreecommitdiff
path: root/apps/codecs/ape.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/ape.c')
-rw-r--r--apps/codecs/ape.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/apps/codecs/ape.c b/apps/codecs/ape.c
index 06e8842d01..11d973ab26 100644
--- a/apps/codecs/ape.c
+++ b/apps/codecs/ape.c
@@ -149,22 +149,21 @@ enum codec_status codec_main(void)
149 /* Generic codec initialisation */ 149 /* Generic codec initialisation */
150 ci->configure(DSP_SET_SAMPLE_DEPTH, APE_OUTPUT_DEPTH-1); 150 ci->configure(DSP_SET_SAMPLE_DEPTH, APE_OUTPUT_DEPTH-1);
151 151
152 next_track: 152next_track:
153
154 retval = CODEC_OK; 153 retval = CODEC_OK;
155 154
156 /* Remember the resume position - when the codec is opened, the
157 playback engine will reset it. */
158 resume_offset = ci->id3->offset;
159
160 if (codec_init()) { 155 if (codec_init()) {
161 LOGF("APE: Error initialising codec\n"); 156 LOGF("APE: Error initialising codec\n");
162 retval = CODEC_ERROR; 157 retval = CODEC_ERROR;
163 goto exit; 158 goto exit;
164 } 159 }
165 160
166 while (!*ci->taginfo_ready && !ci->stop_codec) 161 if (codec_wait_taginfo() != 0)
167 ci->sleep(1); 162 goto done;
163
164 /* Remember the resume position - when the codec is opened, the
165 playback engine will reset it. */
166 resume_offset = ci->id3->offset;
168 167
169 inbuffer = ci->request_buffer(&bytesleft, INPUT_CHUNKSIZE); 168 inbuffer = ci->request_buffer(&bytesleft, INPUT_CHUNKSIZE);
170 169
@@ -319,8 +318,6 @@ frame_start:
319 currentframe++; 318 currentframe++;
320 } 319 }
321 320
322 retval = CODEC_OK;
323
324done: 321done:
325 LOGF("APE: Decoded %lu samples\n",(unsigned long)samplesdone); 322 LOGF("APE: Decoded %lu samples\n",(unsigned long)samplesdone);
326 323