summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-05-27 14:03:17 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-05-27 14:03:17 +0000
commit76d0c7d790cfdcad7e4771f09f02a222571d0c25 (patch)
tree9e3a902088ed7455fdb46ff3cdc20296973b4650 /firmware
parentceb5fb824b95a7534ecad941e8c1b32e3a8be02c (diff)
downloadrockbox-76d0c7d790cfdcad7e4771f09f02a222571d0c25.tar.gz
rockbox-76d0c7d790cfdcad7e4771f09f02a222571d0c25.zip
Fixed endianness bug in getsonglength
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@750 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/id3.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/firmware/id3.c b/firmware/id3.c
index 9372546095..8133f7c4f6 100644
--- a/firmware/id3.c
+++ b/firmware/id3.c
@@ -349,7 +349,8 @@ getid3v1len(int fd)
349static int 349static int
350getsonglength(int fd, mp3entry *entry) 350getsonglength(int fd, mp3entry *entry)
351{ 351{
352 long header=0; 352 unsigned long header=0;
353 unsigned char tmp;
353 int version; 354 int version;
354 int layer; 355 int layer;
355 int bitindex; 356 int bitindex;
@@ -367,16 +368,18 @@ getsonglength(int fd, mp3entry *entry)
367 /* Fill up header with first 24 bits */ 368 /* Fill up header with first 24 bits */
368 for(version = 0; version < 3; version++) { 369 for(version = 0; version < 3; version++) {
369 header <<= 8; 370 header <<= 8;
370 if(!read(fd, &header, 1)) 371 if(!read(fd, &tmp, 1))
371 return -1; 372 return -1;
373 header |= tmp;
372 } 374 }
373 375
374 /* Loop trough file until we find a frame header */ 376 /* Loop trough file until we find a frame header */
375 restart: 377 restart:
376 do { 378 do {
377 header <<= 8; 379 header <<= 8;
378 if(!read(fd, &header, 1)) 380 if(!read(fd, &tmp, 1))
379 return -1; 381 return -1;
382 header |= tmp;
380 } while(!CHECKSYNC(header)); 383 } while(!CHECKSYNC(header));
381 384
382 /* 385 /*
@@ -493,9 +496,10 @@ mp3info(mp3entry *entry, char *filename)
493 entry->filesize = getfilesize(fd); 496 entry->filesize = getfilesize(fd);
494 entry->id3v2len = getid3v2len(fd); 497 entry->id3v2len = getid3v2len(fd);
495 entry->id3v1len = getid3v1len(fd); 498 entry->id3v1len = getid3v1len(fd);
496 /* entry->length = getsonglength(fd, entry); */ 499 entry->length = getsonglength(fd, entry);
497 entry->title = NULL; 500 entry->title = NULL;
498 501
502
499 if(HASID3V2(entry)) 503 if(HASID3V2(entry))
500 setid3v2title(fd, entry); 504 setid3v2title(fd, entry);
501 505