I updated the Xing wiki page.
Mmm.. Shouldn't AudioCatalyst be mentioned too there? (and at RRW, there is also the Xing encoder)
Given that the encoder name string can only consist of nine characters, but for good compatibility I need it to start with "LAME", I want a major/minor/tiny-version number in there and a decimal point to have it look like a parse-able number, I guess there is not much room for major cleverness in there. For me, this looks like "LAMEH5.20"...
I don't remember it exactly now, but I remember that when lame went to lame 3.100, there were some software that choked with the version string change. Not sure if that's what happens with LAMEX5.11.
Also, I see this in the lame code ( VbrTag.c)
/*
NOTE:
Even though the specification for the LAME VBR tag
did explicitly mention other encoders than LAME,
many SW/HW decoder seem to be able to make use of
this tag only, if the encoder version starts with LAME.
To be compatible with such decoders, ANY encoder will
be forced to write a fake LAME version string!
As a result, the encoder version info becomes worthless.
*/
const char *szVersion = get_lame_tag_encoder_short_version();
/*! Get the _very_ short LAME version string. */
/*!
It's used in the LAME VBR tag only, limited to 9 characters max.
Due to some 3rd party HW/SW decoders, it has to start with LAME.
\param void
\return a pointer to the short version of the LAME version string.
*/
const char*
get_lame_tag_encoder_short_version(void)
{
static /*@observer@ */ const char *const str =
/* FIXME: new scheme / new version counting / drop versioning here ? */
"LAME" STR(LAME_MAJOR_VERSION) "." STR(LAME_MINOR_VERSION) P
;
return str;
}