question about MPEG::File::save()

Michael Helmling helmling at
Sat Jul 21 11:06:55 UTC 2012

Hi Taglib list,

as I have reported here ( 
MPEG::File::save() does not work as I expect it to: When I manually 
delete a frame from the ID3v2 tag, a subsequent call to save() without 
arguments restores that frame, apparently copying over the also present 
ID3v1 tag.
Is this the desired behavior or a bug? IMHO it is very confusing that 
the mere existence of a deprecated ID3v1 tag causes taglib to silently 
overwrite changes made to the ID3v2 tag.
At the very last, this breaks deletion of frames with the new property 
interface under certain conditions, which only supports ID3v2 for now.
One possible "fix" is to explicitly call save(MPEG::File::ID3v2), but I 
propose to change the default behavior to either of
- save both tags as they are without any duplicating / copying,
- copy from ID3v2 to ID3v1 on save() instead of the other way around,
- detect which of the tags was actually modified, then duplicate that 
ones contents into the other, if it exists.


More information about the taglib-devel mailing list