summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2012-02-07 12:20:49 -0500
committerMichael Sevakis <jethead71@rockbox.org>2012-02-07 12:25:23 -0500
commit71e35ed446acde16e015ff66a96ea8b6dc3e13f4 (patch)
tree018fb46c6ed35cb14d01565f0fdc21b3376953ec
parenta2f28452e18632baf80d511c0c547d62ebc8c040 (diff)
downloadrockbox-71e35ed446acde16e015ff66a96ea8b6dc3e13f4.tar.gz
rockbox-71e35ed446acde16e015ff66a96ea8b6dc3e13f4.zip
Fix FS#12580 - Elapsed time nit reset after track change when playing AC3 files.
It wasn't only a52 but also a52_rm that didn't reset the elapsed counter on each new track. The problems seemed obvious enough so fixes are being added blind. Will leave task open for feedback from bug reporter. Change-Id: Ic6d8eb98690ff4be47547d13b6bbafeadf4da745
-rw-r--r--apps/codecs/a52.c2
-rw-r--r--apps/codecs/a52_rm.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/apps/codecs/a52.c b/apps/codecs/a52.c
index 641e2d05da..cb6e66dd05 100644
--- a/apps/codecs/a52.c
+++ b/apps/codecs/a52.c
@@ -148,6 +148,8 @@ enum codec_status codec_run(void)
148 /* Intialise the A52 decoder and check for success */ 148 /* Intialise the A52 decoder and check for success */
149 state = a52_init(0); 149 state = a52_init(0);
150 150
151 samplesdone = 0;
152
151 /* The main decoding loop */ 153 /* The main decoding loop */
152 if (ci->id3->offset) { 154 if (ci->id3->offset) {
153 if (ci->seek_buffer(ci->id3->offset)) { 155 if (ci->seek_buffer(ci->id3->offset)) {
diff --git a/apps/codecs/a52_rm.c b/apps/codecs/a52_rm.c
index 0aa3edca3a..207c28272e 100644
--- a/apps/codecs/a52_rm.c
+++ b/apps/codecs/a52_rm.c
@@ -168,6 +168,8 @@ enum codec_status codec_run(void)
168 ci->memset(&pkt,0,sizeof(RMPacket)); 168 ci->memset(&pkt,0,sizeof(RMPacket));
169 init_rm(&rmctx); 169 init_rm(&rmctx);
170 170
171 samplesdone = 0;
172
171 /* check for a mid-track resume and force a seek time accordingly */ 173 /* check for a mid-track resume and force a seek time accordingly */
172 if(resume_offset > rmctx.data_offset + DATA_HEADER_SIZE) { 174 if(resume_offset > rmctx.data_offset + DATA_HEADER_SIZE) {
173 resume_offset -= rmctx.data_offset + DATA_HEADER_SIZE; 175 resume_offset -= rmctx.data_offset + DATA_HEADER_SIZE;