In writing out tags to a file I had trouble reading them back in using iTunes. I'm not EXACTLY sure why, but when I compared the id3v2.4 tags that iTunes generates vs. libid3tag, I found that libid3tag defaults to always using an extended tag header and writing out a CRC for each tag?? I'm not exactly sure what I'm talking about because I can't get to id3.org to get the latest spec, but that's another story.
To fix it, I had to comment out everything in the "tag->options = " line in id3_tag_new, i.e., zeroing out the compression and CRC options. This prevented the extended header from being generated and it prevented the longer header from being generated on each tag.
However, I know I'm disabling something that could be useful. Does anyone have any insight into this? I'd rather not flat out disable a feature in this lib.