diff options
| author | Magnus Holmgren <magnushol@gmail.com> | 2006-06-04 15:04:03 +0000 |
|---|---|---|
| committer | Magnus Holmgren <magnushol@gmail.com> | 2006-06-04 15:04:03 +0000 |
| commit | f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a (patch) | |
| tree | bef8dde94bb326c93b236aee1ba1f16d78f27857 /apps/codecs/wav.c | |
| parent | 959d23e231014de4e8cf4f8a7808633ed7eaf459 (diff) | |
| download | rockbox-f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a.zip rockbox-f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a.tar.gz rockbox-f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a.tar.bz2 rockbox-f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a.tar.xz | |
Fix bug 5341: Resume in Wav and Flac doesn't start from the position where it was left off. Mark Arigo helped with the Flac fix.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10051 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/wav.c')
| -rw-r--r-- | apps/codecs/wav.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/apps/codecs/wav.c b/apps/codecs/wav.c index d9be0a3..f83f1d1 100644 --- a/apps/codecs/wav.c +++ b/apps/codecs/wav.c @@ -410,11 +410,19 @@ next_track: } firstblockposn = 1024 - n; - ci->advance_buffer(firstblockposn); + + if (ci->id3->offset > (uint32_t) firstblockposn) { + /* Round down to previous block */ + uint32_t offset = ci->id3->offset - ci->id3->offset % blockalign; + + ci->advance_buffer(offset); + bytesdone = offset - firstblockposn; + } else { + ci->advance_buffer(firstblockposn); + bytesdone = 0; + } /* The main decoder loop */ - bytesdone = 0; - ci->set_elapsed(0); endofstream = 0; /* chunksize is computed so that one chunk is about 1/50s. * this make 4096 for 44.1kHz 16bits stereo. |