long position = 0;
if(ID3v2Tag()) {
+ position = d->ID3v2Location + ID3v2Tag()->header()->completeTagSize();
// Skip duplicate ID3v2 tags.
// Workaround for some faulty files that have duplicate ID3v2 tags.
// Combination of EAC and LAME creates such files when configured incorrectly.
- position = d->ID3v2Location + ID3v2Tag()->header()->completeTagSize();
-
long location;
while((location = findID3v2(position)) >= 0) {
- ID3v2::Tag dupTag(this, location);
- position = location + dupTag.header()->completeTagSize();
+ seek(location);
+ const ID3v2::Header header(readBlock(ID3v2::Header::size()));
+ position = location + header.completeTagSize();
debug("MPEG::File::firstFrameOffset() - Duplicate ID3v2 tag found.");
}