diff options
| author | Michael Giacomelli <giac2000@hotmail.com> | 2008-03-09 22:55:38 +0000 |
|---|---|---|
| committer | Michael Giacomelli <giac2000@hotmail.com> | 2008-03-09 22:55:38 +0000 |
| commit | 191b7e8380dc324ced5ad75174b7aa99206f8f8d (patch) | |
| tree | 75a67c2063fa53485781cd4f8a834e47856d63bd /apps | |
| parent | 6ab1c90513922212788e6abd9c426d6884b64cbe (diff) | |
| download | rockbox-191b7e8380dc324ced5ad75174b7aa99206f8f8d.zip rockbox-191b7e8380dc324ced5ad75174b7aa99206f8f8d.tar.gz rockbox-191b7e8380dc324ced5ad75174b7aa99206f8f8d.tar.bz2 rockbox-191b7e8380dc324ced5ad75174b7aa99206f8f8d.tar.xz | |
Don't assume reading the duration field advances the buffer 12 bytes, instead check the return value and seek accordingly. Improves (fixes?) seeking in sample submitted by Lear.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16595 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/codecs/wma.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/codecs/wma.c b/apps/codecs/wma.c index a4a78c2..03b0006 100644 --- a/apps/codecs/wma.c +++ b/apps/codecs/wma.c @@ -389,6 +389,10 @@ static int get_timestamp(int *duration) datap += 4; *duration = get_short_le(datap); + /*the get_timestamp function advances us 12-13 bytes past the packet start, + need to undo this here so that we stay synced with the packet*/ + ci->seek_buffer(ci->curpos-bytesread); + return send_time; } @@ -430,8 +434,6 @@ static int seek(int ms, asf_waveformatex_t* wfx) } if ((time+duration>=ms && time<=ms) || count > 10) { - /*the get_timestamp function advances us 12 bytes past the packet start*/ - ci->seek_buffer(ci->curpos-12); DEBUGF("Found our packet! Now at %d packet\n", packet_num); return time; } else { |