Exposing TagLib::String type?

Mark 'Mook' Yen mook at songbirdnest.com
Fri Sep 19 23:39:39 CEST 2008


First, thanks for TagLib, it makes dealing with metadata a bit easier.

TagLib::String can be constructed from various forms of Unicode, or via 
a Latin1 string.  In practice, this Latin1 string is really just a 
random sequence of octets, since existing media players do not obey the 
specs.  Would it be possible for the string to remember what 
String::Type the string was constructed with, and expose it to the 
hosting app to deal with the bad encoding as it sees fit?  TagLib itself 
really can't deal with it (it has no ability to, for example, bring up 
UI).  This of course would not be useful in certain situations (such as 
concatenating a Latin1 string to a real Unicode string), but that can't 
be avoided.

While ID3v1 allows the use of a StringHandler, it is inadequate as I 
believe (in my case, at least) character set detection works better 
given multiple tags within the same file (and therefore assuming no more 
than one charset is used per file).  So far it seems to work pretty 
well, even if not perfect.

If this seems desirable, I should be able to whip up a patch pretty 
quickly, but I am uncertain I will be able to correctly maintain ABI 
compatibility.  Any comments are, of course, welcome.

Mark 'Mook' Yen
mook at songbirdnest

More information about the taglib-devel mailing list