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.tar.gz rockbox-f95dd56a2cfd1df77a3fc5beb664a8fb2018b80a.zip |
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 d9be0a3420..f83f1d1e58 100644 --- a/apps/codecs/wav.c +++ b/apps/codecs/wav.c | |||
@@ -410,11 +410,19 @@ next_track: | |||
410 | } | 410 | } |
411 | 411 | ||
412 | firstblockposn = 1024 - n; | 412 | firstblockposn = 1024 - n; |
413 | ci->advance_buffer(firstblockposn); | 413 | |
414 | if (ci->id3->offset > (uint32_t) firstblockposn) { | ||
415 | /* Round down to previous block */ | ||
416 | uint32_t offset = ci->id3->offset - ci->id3->offset % blockalign; | ||
417 | |||
418 | ci->advance_buffer(offset); | ||
419 | bytesdone = offset - firstblockposn; | ||
420 | } else { | ||
421 | ci->advance_buffer(firstblockposn); | ||
422 | bytesdone = 0; | ||
423 | } | ||
414 | 424 | ||
415 | /* The main decoder loop */ | 425 | /* The main decoder loop */ |
416 | bytesdone = 0; | ||
417 | ci->set_elapsed(0); | ||
418 | endofstream = 0; | 426 | endofstream = 0; |
419 | /* chunksize is computed so that one chunk is about 1/50s. | 427 | /* chunksize is computed so that one chunk is about 1/50s. |
420 | * this make 4096 for 44.1kHz 16bits stereo. | 428 | * this make 4096 for 44.1kHz 16bits stereo. |