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:
parent
b7e92204e7
commit
e4d1bda5e4
1 changed files with 3 additions and 1 deletions
|
@ -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));
|
||||
|
||||
|
|
Loading…
Reference in a new issue