summaryrefslogtreecommitdiff
path: root/firmware/id3.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/id3.c')
-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' &&