For some strange reason, getsonglength() couldn't handle 800Kbyte ID3V2 tags :-)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2413 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2002-09-25 12:34:21 +00:00
parent b7e92204e7
commit e4d1bda5e4

View file

@ -401,6 +401,7 @@ static int getsonglength(int fd, struct mp3entry *entry)
int frequency;
int chmode;
int bytecount;
int bytelimit;
int bittable; /* which bitrate table to use */
bool header_found = false;
@ -421,6 +422,7 @@ static int getsonglength(int fd, struct mp3entry *entry)
/* Loop trough file until we find a frame header */
bytecount = entry->id3v2len - 1;
bytelimit = entry->id3v2len + 0x20000;
restart:
do {
header <<= 8;
@ -430,7 +432,7 @@ static int getsonglength(int fd, struct mp3entry *entry)
/* Quit if we haven't found a valid header within 128K */
bytecount++;
if(bytecount > 0x20000)
if(bytecount > bytelimit)
return 0;
} while(!mp3frameheader(header));