summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-09-27 08:21:23 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-09-27 08:21:23 +0000
commitacfacd938cfa878aeb69410532b2de58698f703a (patch)
tree181b2e04607c48ac8c6a377b48156185442351f9 /firmware
parent321faba3eb7a6badf91829c17c3e1cedf0d8d248 (diff)
downloadrockbox-acfacd938cfa878aeb69410532b2de58698f703a.tar.gz
rockbox-acfacd938cfa878aeb69410532b2de58698f703a.zip
Rudimentary VBRI parsing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2435 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/id3.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/firmware/id3.c b/firmware/id3.c
index d71ba2f4dd..0e7a5f227b 100644
--- a/firmware/id3.c
+++ b/firmware/id3.c
@@ -592,6 +592,35 @@ static int getsonglength(int fd, struct mp3entry *entry)
592 header_found = true; 592 header_found = true;
593 } 593 }
594 594
595 if (xing[0] == 'V' &&
596 xing[1] == 'B' &&
597 xing[2] == 'R' &&
598 xing[3] == 'I')
599 {
600 int framecount;
601 int bytecount;
602
603 /* Yes, it is a FhG VBR file */
604 entry->vbr = true;
605 entry->vbrflags = 0;
606
607 bytecount = (xing[10] << 24) | (xing[11] << 16) |
608 (xing[12] << 8) | xing[13];
609
610 framecount = (xing[14] << 24) | (xing[15] << 16) |
611 (xing[16] << 8) | xing[17];
612
613 filetime = framecount * tpf;
614 bitrate = bytecount * 8 / filetime;
615
616 /* We don't parse the TOC, since we don't yet know how to (FIXME) */
617
618 /* Make sure we skip this frame in playback */
619 bytecount += bpf;
620
621 header_found = true;
622 }
623
595 /* Is it a LAME Info frame? */ 624 /* Is it a LAME Info frame? */
596 if (xing[0] == 'I' && 625 if (xing[0] == 'I' &&
597 xing[1] == 'n' && 626 xing[1] == 'n' &&