diff options
| author | Magnus Holmgren <magnushol@gmail.com> | 2006-08-23 13:10:48 +0000 |
|---|---|---|
| committer | Magnus Holmgren <magnushol@gmail.com> | 2006-08-23 13:10:48 +0000 |
| commit | 9f09a394368a8fb2fb0da7840535ce9cd5583ee0 (patch) | |
| tree | 754bc12cd648709b36cd5d5939e9753acde04633 /apps/codecs/aac.c | |
| parent | a04cef7adee7e79cdafcbf8efb5ee9110a8d4ab1 (diff) | |
| download | rockbox-9f09a394368a8fb2fb0da7840535ce9cd5583ee0.zip rockbox-9f09a394368a8fb2fb0da7840535ce9cd5583ee0.tar.gz rockbox-9f09a394368a8fb2fb0da7840535ce9cd5583ee0.tar.bz2 rockbox-9f09a394368a8fb2fb0da7840535ce9cd5583ee0.tar.xz | |
Add resume support to AAC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10720 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/aac.c')
| -rw-r--r-- | apps/codecs/aac.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/apps/codecs/aac.c b/apps/codecs/aac.c index 532082f..6c86f38 100644 --- a/apps/codecs/aac.c +++ b/apps/codecs/aac.c @@ -75,9 +75,11 @@ next_track: goto exit; } - while (!rb->taginfo_ready) - rb->yield(); + while (!*ci->taginfo_ready && !ci->stop_codec) + ci->sleep(1); + samplesdone = ci->id3->offset; + ci->configure(DSP_SET_FREQUENCY, (long *)(rb->id3->frequency)); stream_create(&input_stream,ci); @@ -117,7 +119,17 @@ next_track: ci->id3->frequency=s; i=0; - samplesdone=0; + + if (samplesdone > 0) { + if (alac_seek_raw(&demux_res, &input_stream, samplesdone, + &samplesdone, (int *)&i)) { + elapsedtime=(samplesdone*10)/(ci->id3->frequency/100); + ci->set_elapsed(elapsedtime); + } else { + samplesdone=0; + } + } + /* The main decoding loop */ while (i < demux_res.num_sample_byte_sizes) { rb->yield(); |