diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-02-15 22:03:09 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-02-15 22:03:09 +0000 |
commit | 5769ecba8ee5552c4fb08db52753942757a06cb1 (patch) | |
tree | ce13df73162a46688623b7efea4c675835adf6c5 /libass/ass_font.c | |
parent | 62c3b2b28979c22e0daff4512783e1185f406382 (diff) | |
download | libass-5769ecba8ee5552c4fb08db52753942757a06cb1.tar.bz2 libass-5769ecba8ee5552c4fb08db52753942757a06cb1.tar.xz |
Select the first charmap in the font, if FreeType did not autoselect any.
This happens, for example, with fonts only having an Apple Roman charmap.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22228 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_font.c')
-rw-r--r-- | libass/ass_font.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index 1ae136bc..285ecde6 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -47,9 +47,19 @@ static void charmap_magic(FT_Face face) unsigned eid = cmap->encoding_id; if (pid == 3 /*microsoft*/ && (eid == 1 /*unicode bmp*/ || eid == 10 /*full unicode*/)) { FT_Set_Charmap(face, cmap); - break; + return; } } + + if (!face->charmap) { + if (face->num_charmaps == 0) { + mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_NoCharmaps); + return; + } + mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_NoCharmapAutodetected); + FT_Set_Charmap(face, face->charmaps[0]); + return; + } } /** |