forked from len0rd/rockbox
Fix broken resume for wav files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10710 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
514ff09728
commit
8a3b6dad94
1 changed files with 8 additions and 4 deletions
|
@ -232,6 +232,7 @@ enum codec_status codec_start(struct codec_api *api)
|
||||||
uint16_t blockalign = 0;
|
uint16_t blockalign = 0;
|
||||||
uint32_t avgbytespersec = 0;
|
uint32_t avgbytespersec = 0;
|
||||||
off_t firstblockposn; /* position of the first block in file */
|
off_t firstblockposn; /* position of the first block in file */
|
||||||
|
|
||||||
|
|
||||||
/* Generic codec initialisation */
|
/* Generic codec initialisation */
|
||||||
rb = api;
|
rb = api;
|
||||||
|
@ -253,9 +254,12 @@ next_track:
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!*ci->taginfo_ready)
|
while (!*ci->taginfo_ready && !ci->stop_codec)
|
||||||
ci->yield();
|
ci->sleep(1);
|
||||||
|
|
||||||
|
/* Need to save offset for later use (cleared indirectly by advance_buffer) */
|
||||||
|
bytesdone = ci->id3->offset;
|
||||||
|
|
||||||
/* get RIFF chunk header */
|
/* get RIFF chunk header */
|
||||||
buf = ci->request_buffer(&n, 12);
|
buf = ci->request_buffer(&n, 12);
|
||||||
if (n < 12) {
|
if (n < 12) {
|
||||||
|
@ -420,9 +424,9 @@ next_track:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* make sure we're at the correct offset */
|
/* make sure we're at the correct offset */
|
||||||
if (ci->id3->offset > (uint32_t) firstblockposn) {
|
if (bytesdone > (uint32_t) firstblockposn) {
|
||||||
/* Round down to previous block */
|
/* Round down to previous block */
|
||||||
uint32_t offset = ci->id3->offset - ci->id3->offset % blockalign;
|
uint32_t offset = bytesdone - bytesdone % blockalign;
|
||||||
|
|
||||||
ci->advance_buffer(offset-firstblockposn);
|
ci->advance_buffer(offset-firstblockposn);
|
||||||
bytesdone = offset - firstblockposn;
|
bytesdone = offset - firstblockposn;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue