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.zip
rockbox-a380d90b98e6f36f892d125ce8dea4a8ced9d801.tar.gz
rockbox-a380d90b98e6f36f892d125ce8dea4a8ced9d801.tar.bz2
rockbox-a380d90b98e6f36f892d125ce8dea4a8ced9d801.tar.xz
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 028c4c9..245db3b 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -137,7 +137,6 @@ struct track_info {
volatile int available;
bool taginfo_ready;
int playlist_offset;
- int elapsed_start;
};
/* Track information (count in file buffer, read/write indexes for
@@ -201,7 +200,6 @@ void codec_set_elapsed_callback(unsigned int value)
#else
latency = 0;
#endif
- value += cur_ti->elapsed_start;
if (value < latency) {
cur_ti->id3.elapsed = 0;
} else if (value - latency > cur_ti->id3.elapsed
@@ -673,7 +671,6 @@ bool audio_load_track(int offset, bool start_play, int peek_offset)
lseek(fd, offset, SEEK_SET);
tracks[track_widx].id3.offset = offset;
mp3_set_elapsed(&tracks[track_widx].id3);
- tracks[track_widx].elapsed_start = tracks[track_widx].id3.elapsed;
tracks[track_widx].filepos = offset;
tracks[track_widx].filerem = tracks[track_widx].filesize - offset;
ci.curpos = offset;
@@ -1038,6 +1035,8 @@ void audio_update_trackinfo(void)
}
ci.filesize = cur_ti->filesize;
+ cur_ti->id3.elapsed = 0;
+ cur_ti->id3.offset = 0;
ci.id3 = (struct mp3entry *)&cur_ti->id3;
ci.mp3data = (struct mp3info *)&cur_ti->mp3data;
ci.curpos = 0;
diff --git a/apps/plugins/codecmpa.c b/apps/plugins/codecmpa.c
index bf6cf3f..86211df 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)
first = false;
#endif
- samplesdone = 0;
first_frame = false;
file_end = 0;
OutputPtr = OutputBuffer;
@@ -257,6 +256,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parm)
ci->advance_buffer(size);
samplecount = ci->id3->length * (ci->id3->frequency / 100) / 10;
+ samplesdone = ci->id3->elapsed * (ci->id3->frequency / 100) / 10;
/* rb->snprintf(buf2, sizeof(buf2), "sc: %d", samplecount);
rb->splash(0, true, buf2);
rb->snprintf(buf2, sizeof(buf2), "length: %d", ci->id3->length);