First results of my evaluation of taglib against id3tag

Jeff Mitchell kde-dev at
Wed Jan 10 03:44:03 CET 2007


Does this file happen to be VBR?  Chances are that this file is a variable 
bit-rate file without a Xing header.  These files's lenghts cannot be 
determined accurately without scanning and parsing ever frame of the file.

Making this assumption, as far as taglib and VBR-sans-Xing, I was thinking of 
working on having taglib do the accurate calculation as at the Amarok list 
and IRC channel we've gotten some complaints.  But after talking with some 
other people I'm no longer convinced that this is the best thing to do.  
People whose collections are mostly VBR-sans-Xing will incur huge overhead 
any time they load a file, scan collections, etc.

Please see


On Tuesday 09 January 2007 11:16, Xavier Duret wrote:
> As part of my evaluation of taglib, I have been comparing the output of
> taglib against the output of id3tag. I managed to put my hands on a huge
> database of music files in the most sorry state you can imagine. This
> database contained 15722 files (mp3 and ogg vorbis mixed). I ran first an
> unmodified version of Firefly (based on id3tag) and then a version of
> Firefly that I modified to use taglib. Each run gave me a sqlite3 database
> from which I generated a plain text file.
> taglib imported 15721 files in 380 seconds. id3tag imported 15718 files in
> 432 seconds. So from the point of view of speed, the advantage is for
> taglib. I also do not blame id3tag for leaving 3 files out because as I say
> the test database is really junk.
> Also when looking at the actual differences in the metadata, I comes out
> that taglib is much better at extracting the information from the files (in
> particular track number, album name and genre).
> I also compared the song duration. Because taglib only has an accuracy of 1
> second, I rounded the results from id3tag to the same accuracy. Most files
> had the same duration. Taglib rounded an important number of files one
> second too low. Up to now, it is not a big deal.
> However, I have found at least one track for which id3tag reports 3:02.230
> minutes while taglib (1.4) reports 2:26 minutes. This is a significant
> difference. So to know which library is right, I played the track and found
> out that taglib is wrong. I also tried the latest (svn 621706) and in this
> case neither the bitrate nor the song duration got extracted.
> I will work on making the comparison of the 2 libraries easier.
> Gagnez tous les jours un iPod nano. Inscrivez-vous au courriel gratuit
> CaraMail. Et bénéficiez de 10 SMS gratuits ! Cliquez ici pour gagner :

More information about the taglib-devel mailing list