AMLMTagMap doen't preserve/understand priorities or insertion order, so when in Metadata.cpp we do .merge()'s between the various tag map types (ID3V1, ID3V2, Xiph, etc.), the results are "wrong" in that, e.g., a TITLE from ID3V2 does not override a TITLE from ID3V1 (V1 seems to always win in this case), even though TagLib's "generic" file->tag()->properties() has them correctly merged.
Design and implement a mechanism whereby such AMLMTagMap merges turn out correct.
AMLMTagMap doen't preserve/understand priorities or insertion order, so when in Metadata.cpp we do .merge()'s between the various tag map types (ID3V1, ID3V2, Xiph, etc.), the results are "wrong" in that, e.g., a TITLE from ID3V2 does not override a TITLE from ID3V1 (V1 seems to always win in this case), even though TagLib's "generic" file->tag()->properties() has them correctly merged.
Design and implement a mechanism whereby such AMLMTagMap merges turn out correct.