summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiika Pekkarinen <miipekk@ihme.org>2005-06-11 18:05:16 +0000
committerMiika Pekkarinen <miipekk@ihme.org>2005-06-11 18:05:16 +0000
commita380d90b98e6f36f892d125ce8dea4a8ced9d801 (patch)
treeeb748817036dd415d6d5def40b67b529bd9ee94f
parent7527bfb4d6c49ad6ab6b89e636122e56ec16be34 (diff)
downloadrockbox-a380d90b98e6f36f892d125ce8dea4a8ced9d801.tar.gz
rockbox-a380d90b98e6f36f892d125ce8dea4a8ced9d801.zip
Fixed MP3 forward seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6679 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/playback.c5
-rw-r--r--apps/plugins/codecmpa.c2
2 files changed, 3 insertions, 4 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 028c4c90f7..245db3b4dc 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -137,7 +137,6 @@ struct track_info {
137 volatile int available; 137 volatile int available;
138 bool taginfo_ready; 138 bool taginfo_ready;
139 int playlist_offset; 139 int playlist_offset;
140 int elapsed_start;
141}; 140};
142 141
143/* Track information (count in file buffer, read/write indexes for 142/* Track information (count in file buffer, read/write indexes for
@@ -201,7 +200,6 @@ void codec_set_elapsed_callback(unsigned int value)
201#else 200#else
202 latency = 0; 201 latency = 0;
203#endif 202#endif
204 value += cur_ti->elapsed_start;
205 if (value < latency) { 203 if (value < latency) {
206 cur_ti->id3.elapsed = 0; 204 cur_ti->id3.elapsed = 0;
207 } else if (value - latency > cur_ti->id3.elapsed 205 } else if (value - latency > cur_ti->id3.elapsed
@@ -673,7 +671,6 @@ bool audio_load_track(int offset, bool start_play, int peek_offset)
673 lseek(fd, offset, SEEK_SET); 671 lseek(fd, offset, SEEK_SET);
674 tracks[track_widx].id3.offset = offset; 672 tracks[track_widx].id3.offset = offset;
675 mp3_set_elapsed(&tracks[track_widx].id3); 673 mp3_set_elapsed(&tracks[track_widx].id3);
676 tracks[track_widx].elapsed_start = tracks[track_widx].id3.elapsed;
677 tracks[track_widx].filepos = offset; 674 tracks[track_widx].filepos = offset;
678 tracks[track_widx].filerem = tracks[track_widx].filesize - offset; 675 tracks[track_widx].filerem = tracks[track_widx].filesize - offset;
679 ci.curpos = offset; 676 ci.curpos = offset;
@@ -1038,6 +1035,8 @@ void audio_update_trackinfo(void)
1038 } 1035 }
1039 1036
1040 ci.filesize = cur_ti->filesize; 1037 ci.filesize = cur_ti->filesize;
1038 cur_ti->id3.elapsed = 0;
1039 cur_ti->id3.offset = 0;
1041 ci.id3 = (struct mp3entry *)&cur_ti->id3; 1040 ci.id3 = (struct mp3entry *)&cur_ti->id3;
1042 ci.mp3data = (struct mp3info *)&cur_ti->mp3data; 1041 ci.mp3data = (struct mp3info *)&cur_ti->mp3data;
1043 ci.curpos = 0; 1042 ci.curpos = 0;
diff --git a/apps/plugins/codecmpa.c b/apps/plugins/codecmpa.c
index bf6cf3f87d..86211df566 100644
--- a/apps/plugins/codecmpa.c
+++ b/apps/plugins/codecmpa.c
@@ -244,7 +244,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
244 first = false; 244 first = false;
245#endif 245#endif
246 246
247 samplesdone = 0;
248 first_frame = false; 247 first_frame = false;
249 file_end = 0; 248 file_end = 0;
250 OutputPtr = OutputBuffer; 249 OutputPtr = OutputBuffer;
@@ -257,6 +256,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
257 ci->advance_buffer(size); 256 ci->advance_buffer(size);
258 257
259 samplecount = ci->id3->length * (ci->id3->frequency / 100) / 10; 258 samplecount = ci->id3->length * (ci->id3->frequency / 100) / 10;
259 samplesdone = ci->id3->elapsed * (ci->id3->frequency / 100) / 10;
260 /* rb->snprintf(buf2, sizeof(buf2), "sc: %d", samplecount); 260 /* rb->snprintf(buf2, sizeof(buf2), "sc: %d", samplecount);
261 rb->splash(0, true, buf2); 261 rb->splash(0, true, buf2);
262 rb->snprintf(buf2, sizeof(buf2), "length: %d", ci->id3->length); 262 rb->snprintf(buf2, sizeof(buf2), "length: %d", ci->id3->length);