From 2c6393737189055076481d2e5e503237ef8bf41a Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Thu, 19 Sep 2002 09:03:16 +0000 Subject: Better handling of tagless tracks with VBR headers git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2333 a1c6a512-1295-4272-9138-f99709370657 --- firmware/id3.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'firmware') diff --git a/firmware/id3.c b/firmware/id3.c index c7d8f762af..a4406616c3 100644 --- a/firmware/id3.c +++ b/firmware/id3.c @@ -402,6 +402,7 @@ static int getsonglength(int fd, struct mp3entry *entry) int chmode; int bytecount; int bittable; /* which bitrate table to use */ + bool header_found = false; long bpf; long tpf; @@ -585,6 +586,8 @@ static int getsonglength(int fd, struct mp3entry *entry) /* Make sure we skip this frame in playback */ bytecount += bpf; + + header_found = true; } /* Is it a LAME Info frame? */ @@ -595,6 +598,8 @@ static int getsonglength(int fd, struct mp3entry *entry) { /* Make sure we skip this frame in playback */ bytecount += bpf; + + header_found = true; } @@ -613,7 +618,7 @@ static int getsonglength(int fd, struct mp3entry *entry) DEBUGF("Old ID3V2 length: %x\n", entry->id3v2len); /* Adjust the tag length only if there is a tag present */ - if(entry->id3v2len) + if(entry->id3v2len || header_found) entry->id3v2len = bytecount; DEBUGF("New ID3V2 length: %x\n", bytecount); -- cgit v1.2.3