Comparing the results of id3tag to the results of taglib: 3 potential bugs

Xavier Duret xavier.duret at caramail.com
Thu Jan 11 13:55:40 CET 2007


> > taglib is usually much better than id3tag. It has however the tendency
> > to report trailing spaces in strings like Album name. I check with an
> > hex editor and found out that the spaces are indeed present in the
> > tag. Given that this string is not null terminated, I suppose that
> > there is a length field somewhere. I guess taglib is correct and the
> > trailing space has been inserted by the encoder (or the program
> > calling the encoder).
This is actually an ID3v1 tag located at the end of the file.
006f:bba0 ac c8 48 89 5f fe 04 d2 05 54 41 47 42 69 67 20 ¬ÈH._þ.ÒTAGBig 
006f:bbb0 4c 69 65 20 53 6d 61 6c 6c 20 57 6f 72 6c 64 20 Lie Small World 
006f:bbc0 20 20 20 20 20 20 20 20 20 20 53 74 69 6e 67 20           Sting 
006f:bbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                 
006f:bbe0 20 20 20 20 20 20 20 20 42 72 61 6e 64 20 4e 65         Brand Ne
006f:bbf0 77 20 44 61 79 20 20 20 20 20 20 20 20 20 20 20 w Day           
006f:bc00 20 20 20 20 20 20 31 39 39 39 20 20 20 20 20 20       1999      
006f:bc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                 
006f:bc20 20 20 20 20 20 20 20 20 0d                              .       
So I did my homework. ID3v1 is 128 bytes long and the different field size is fixed.
It seams that some encoders pad the field with white space while others use zeros.
As there is no standard for ID3v1, it is hard to decide whether this is correct or not.
So to be fixed or to be left as is?
Also the tag itself might be wrong. The "0d" at the end is supposed to mean track 13 in ID3v1.1. However "Big Lie Small World" is track number 3 in album "Brand New Day". Weird.

> Looking at the code, TagLib does not contain:
> String StringList::toString() const, only:
> String StringList::toString(const String &separator) const, so I'm
> wondering if the calls to "toString()" are causing the problem. You
> could try patching taglib/mpeg/id3v2/frames/textidentificationframe.cpp
> to use toString("") instead and see if that solves the problem.
I will check whether there are ID3v3 tagged files that suffer from the same problem and if so
whether the problem has been solved.

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 : http://promotion.lycos.fr/


More information about the taglib-devel mailing list