taglib/taglib — pull request #83 by jmarshallnz (2012-11-04 07:22:55+00:00)
Title: A small fix, and some additional iTunes hacks (v2.2 frames in v2.3 tag)

Old versions of iTunes (v8.x.y.z) wrote ID3v2.3 tags using ID3v2.2 frames. i.e. you'd see a TYE tag for year rather than TYER.

Easily detectable as the 4th char in the field id is 0. To fix it, we downgrade the version, run it through updateFrame() and then bump the version. An alternate here perhaps would be to implement a new updateFrame() that takes a version number in rather than use the version from the header (and have the existing virtual function call that).

In addition, there was a minor bugfix, in that the check for the frameID length was incorrect, due to !a == b typically not returning the same as the wanted a != b.

I can supply a sample track should you want it for tests etc.