summaryrefslogtreecommitdiff
path: root/apps/codecs/flac.c
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2006-04-22 14:40:13 +0000
committerBrandon Low <lostlogic@rockbox.org>2006-04-22 14:40:13 +0000
commitf3bc1efc49826454a895c1c1f46fbe2cfd23f492 (patch)
tree676d501a9e75a9420f07a13f1d7fc1c5820b432a /apps/codecs/flac.c
parentb5991b27cafa8cc8bd2e86e04110beec34a587e0 (diff)
downloadrockbox-f3bc1efc49826454a895c1c1f46fbe2cfd23f492.zip
rockbox-f3bc1efc49826454a895c1c1f46fbe2cfd23f492.tar.gz
rockbox-f3bc1efc49826454a895c1c1f46fbe2cfd23f492.tar.bz2
rockbox-f3bc1efc49826454a895c1c1f46fbe2cfd23f492.tar.xz
First commit of reworking voice to be mroe stable on swcodec
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9758 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/flac.c')
-rw-r--r--apps/codecs/flac.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/apps/codecs/flac.c b/apps/codecs/flac.c
index cc2ce63..5e392da 100644
--- a/apps/codecs/flac.c
+++ b/apps/codecs/flac.c
@@ -224,7 +224,7 @@ enum codec_status codec_start(struct codec_api* api)
{
int8_t *buf;
FLACContext fc;
- uint32_t samplesdone;
+ uint32_t samplesdone = 0;
uint32_t elapsedtime;
size_t bytesleft;
int consumed;
@@ -244,7 +244,6 @@ enum codec_status codec_start(struct codec_api* api)
ci->configure(CODEC_SET_FILEBUF_WATERMARK, (int *)(1024*512));
ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (int *)(1024*128));
- ci->configure(CODEC_DSP_ENABLE, (bool *)true);
ci->configure(DSP_DITHER, (bool *)false);
ci->configure(DSP_SET_STEREO_MODE, (long *)STEREO_NONINTERLEAVED);
ci->configure(DSP_SET_SAMPLE_DEPTH, (int *)(FLAC_OUTPUT_DEPTH-1));
@@ -260,7 +259,7 @@ enum codec_status codec_start(struct codec_api* api)
if (!flac_init(&fc,ci->id3->first_frame_offset)) {
LOGF("FLAC: Error initialising codec\n");
retval = CODEC_ERROR;
- goto exit;
+ goto done;
}
while (!*ci->taginfo_ready)
@@ -292,7 +291,7 @@ enum codec_status codec_start(struct codec_api* api)
bytesleft,ci->yield)) < 0) {
LOGF("FLAC: Frame %d, error %d\n",frame,res);
retval = CODEC_ERROR;
- goto exit;
+ goto done;
}
consumed=fc.gb.index/8;
frame++;
@@ -312,12 +311,14 @@ enum codec_status codec_start(struct codec_api* api)
buf = ci->request_buffer(&bytesleft, MAX_FRAMESIZE);
}
+ retval = CODEC_OK;
+
+done:
LOGF("FLAC: Decoded %d samples\n",samplesdone);
if (ci->request_next_track())
goto next_track;
- retval = CODEC_OK;
exit:
return retval;
}