summaryrefslogtreecommitdiffstats
path: root/libass/ass_parse.c
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2009-10-11 09:07:26 +0200
committerGrigori Goronzy <greg@blackbox>2009-10-11 09:07:26 +0200
commit4ede45574b3bb83faa705e042ab9e1d8d726f58f (patch)
treecd4dc57da80abe79eb2c481835fe64502659d4a2 /libass/ass_parse.c
parent88d43f79747fb649d730ade5f8c221573be0be7b (diff)
downloadlibass-4ede45574b3bb83faa705e042ab9e1d8d726f58f.tar.bz2
libass-4ede45574b3bb83faa705e042ab9e1d8d726f58f.tar.xz
Fix libass w/o fontconfig
Make sure that libass does not crash even if no default font is provided. Additionally, fix crashes related to drawings in this and possibly other unusual cases. Document the default_path and default_family parameters of ass_set_fonts.
Diffstat (limited to 'libass/ass_parse.c')
-rw-r--r--libass/ass_parse.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/libass/ass_parse.c b/libass/ass_parse.c
index fb407bf..a5b9b59 100644
--- a/libass/ass_parse.c
+++ b/libass/ass_parse.c
@@ -233,20 +233,20 @@ static char *parse_vector_clip(ASS_Renderer *render_priv, char *p)
while (*p != ')' && *p != '}' && p != 0)
ass_drawing_add_char(drawing, *p++);
skipopt(')');
- ass_drawing_parse(drawing, 1);
-
- // We need to translate the clip according to screen borders
- if (render_priv->settings.left_margin != 0 ||
- render_priv->settings.top_margin != 0) {
- FT_Vector trans = {
- .x = int_to_d6(render_priv->settings.left_margin),
- .y = -int_to_d6(render_priv->settings.top_margin),
- };
- FT_Outline_Translate(&drawing->glyph->outline, trans.x, trans.y);
+ if (ass_drawing_parse(drawing, 1)) {
+ // We need to translate the clip according to screen borders
+ if (render_priv->settings.left_margin != 0 ||
+ render_priv->settings.top_margin != 0) {
+ FT_Vector trans = {
+ .x = int_to_d6(render_priv->settings.left_margin),
+ .y = -int_to_d6(render_priv->settings.top_margin),
+ };
+ FT_Outline_Translate(&drawing->glyph->outline, trans.x, trans.y);
+ }
+ ass_msg(render_priv->library, MSGL_DBG2,
+ "Parsed vector clip: scale %d, scales (%f, %f) string [%s]\n",
+ scale, drawing->scale_x, drawing->scale_y, drawing->text);
}
- ass_msg(render_priv->library, MSGL_DBG2,
- "Parsed vector clip: scale %d, scales (%f, %f) string [%s]\n",
- scale, drawing->scale_x, drawing->scale_y, drawing->text);
return p;
}