I have a file that was tagged with an id3v2.2 tag. When I go to write out the tag, most of the frames are not being written out.
When the tag is parsed, it hits this snippet in id3_frame_parse several times:
if (ID3_TAG_VERSION_MAJOR(version) == 2) { xid[0] = 'Y'; xid[1] = id[0]; xid[2] = id[1]; xid[3] = id[2];
id = xid;
flags |= ID3_FRAME_FLAG_TAGALTERPRESERVATION | ID3_FRAME_FLAG_FILEALTERPRESERVATION; }
...and the flag bits that are being set, as far as I can tell, function solely to prevent the frame from being rendered.
I'm guessing that because these are older frame types (TT2, TP1, etc.) that they are being parsed and flagged so that the lib can create a frame with a newer tag type? and write it out instead? But it looks like most of my frames have these flags set.
Sometimes the frames DO get written out and but I haven't figured out under what conditions yet.
Is there a function lying around that prints the contents of the frames as they exist in memory? It would be helpful to me to see a before and after snapshot of my frames.
Thanks,
- Mark Malson mark@mmalson.com