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.tar.gz rockbox-9f09a394368a8fb2fb0da7840535ce9cd5583ee0.zip |
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 532082ff05..6c86f38372 100644 --- a/apps/codecs/aac.c +++ b/apps/codecs/aac.c | |||
@@ -75,9 +75,11 @@ next_track: | |||
75 | goto exit; | 75 | goto exit; |
76 | } | 76 | } |
77 | 77 | ||
78 | while (!rb->taginfo_ready) | 78 | while (!*ci->taginfo_ready && !ci->stop_codec) |
79 | rb->yield(); | 79 | ci->sleep(1); |
80 | 80 | ||
81 | samplesdone = ci->id3->offset; | ||
82 | |||
81 | ci->configure(DSP_SET_FREQUENCY, (long *)(rb->id3->frequency)); | 83 | ci->configure(DSP_SET_FREQUENCY, (long *)(rb->id3->frequency)); |
82 | 84 | ||
83 | stream_create(&input_stream,ci); | 85 | stream_create(&input_stream,ci); |
@@ -117,7 +119,17 @@ next_track: | |||
117 | ci->id3->frequency=s; | 119 | ci->id3->frequency=s; |
118 | 120 | ||
119 | i=0; | 121 | i=0; |
120 | samplesdone=0; | 122 | |
123 | if (samplesdone > 0) { | ||
124 | if (alac_seek_raw(&demux_res, &input_stream, samplesdone, | ||
125 | &samplesdone, (int *)&i)) { | ||
126 | elapsedtime=(samplesdone*10)/(ci->id3->frequency/100); | ||
127 | ci->set_elapsed(elapsedtime); | ||
128 | } else { | ||
129 | samplesdone=0; | ||
130 | } | ||
131 | } | ||
132 | |||
121 | /* The main decoding loop */ | 133 | /* The main decoding loop */ |
122 | while (i < demux_res.num_sample_byte_sizes) { | 134 | while (i < demux_res.num_sample_byte_sizes) { |
123 | rb->yield(); | 135 | rb->yield(); |