Kerning causes problems with many (broken) fonts. VSFilter doesn't use
kerning so these problems won't be apparant, while libass uses kerning
by default.
For compatibility reasons, disable kerning by default. In addition,
make it configurable through style overrides and the Script Info
header.
I.e. put "Kerning: yes" into the Script Info header to enable kerning.
With MPlayer, using "-ass-force-style Kerning=yes" will always
enable kerning.
This also includes a minor ABI change for tracking the kerning boolean.
As this only affects code that creates or modifies ASS_Tracks manually,
and I'm not aware of anyone doing that, the SONAME will not be bumped.
track->WrapStyle = atoi(token);
else if (!strcasecmp(*fs, "ScaledBorderAndShadow"))
track->ScaledBorderAndShadow = parse_bool(token);
+ else if (!strcasecmp(*fs, "Kerning"))
+ track->Kerning = parse_bool(token);
dt = strrchr(*fs, '.');
if (dt) {
track->WrapStyle = atoi(str + 10);
} else if (!strncmp(str, "ScaledBorderAndShadow:", 22)) {
track->ScaledBorderAndShadow = parse_bool(str + 22);
+ } else if (!strncmp(str, "Kerning:", 8)) {
+ track->Kerning = parse_bool(str + 8);
}
return 0;
}
int MarginL, MarginR, MarginV;
int last_break;
int alignment, halign, valign;
+ int kern = render_priv->track->Kerning;
double device_x = 0;
double device_y = 0;
TextInfo *text_info = &render_priv->text_info;
}
// Add kerning to pen
- if (previous && code && !drawing->hash) {
+ if (kern && previous && code && !drawing->hash) {
FT_Vector delta;
delta =
ass_font_get_kerning(render_priv->state.font, previous,
double Timer;
int WrapStyle;
int ScaledBorderAndShadow;
+ int Kerning;
int default_style; // index of default style
char *name; // file name in case of external subs, 0 for streams