[Flac] metaflac --no-utf8-convert complains about UTF

Brian Willoughby brianw at audiobanshee.com
Sat Dec 6 01:28:55 PST 2014


On Dec 6, 2014, at 12:54 AM, Jan Stary <hans at stare.cz> wrote:
> On Dec 05 20:16:47, hans at stare.cz wrote:
>> This is 1.3.1 on OpenBSD/amd64.
>> The --no-utf8-convert option of metaflac(1) does not work for me:
>> 
>> $ metaflac --no-utf8-convert --set-tag="Artist=Žoužlíček" aladin.flac
>> aladin.flac: ERROR: tag value for 'Artist' is not valid UTF-8
>> (You probably can't see the Czech letters properly in my mail,
>> but that's beside the point.)
>> 
>> Indeed, it is not valid UTF8 (it's LATIN2), but isn't metaflac
>> supposed to just write it as specified, with this option?
> 
> The problem seems to be in
> src/metaflac/operations_shorthand_vorbiscomment.c
> in the set_vc_field() function.
> 
> It does check whether utf conversion is required,
> 
>  /* move 'data' into 'converted', converting to UTF-8 if necessary */
>  if(raw) {
> 	converted = data;
>  }
> 					                  }
> but later checks that FLAC__format_vorbiscomment_entry_is_legal()
> whether or not we are utf converting; and this function, defined
> in ./src/libFLAC/format.c, ultimately calls for utf8len_(s) no matter what.
> So my LATIN2 text fails to be legal, because it's not legal UTF
> -- which, indeed, it isn't.

Looks like you found the problem. One piece of code is doing the right thing, another piece of code is ignoring the option.

By the way, I've never used FLAC inside Ogg Vorbis. Instead, I use pure FLAC format files. Is there any difference between the way this option works on a straight FLAC file versus how it works on FLAC data in an Ogg Vorbis container?

Brian



More information about the Flac mailing list