diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-08-03 15:39:38 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-08-03 15:39:38 +0000 |
commit | dc0541c1426ea1a30a9a604c68ec6087ecec4217 (patch) | |
tree | d39474db91d0f06271efb5cd6abb7380bbafa21f /libass | |
parent | 6f90765a4067af30ab0c2cab107147476088718d (diff) | |
download | mpv-dc0541c1426ea1a30a9a604c68ec6087ecec4217.tar.bz2 mpv-dc0541c1426ea1a30a9a604c68ec6087ecec4217.tar.xz |
Don't apply windows-like font scaling if hhea or os2 tables contain invalid
metrics.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24003 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_font.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index b93c41e1b1..c434da7ca6 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -204,8 +204,12 @@ static void face_set_size(FT_Face face, double size) FT_Size_Metrics *m = &face->size->metrics; // VSFilter uses metrics from TrueType OS/2 table // The idea was borrowed from asa (http://asa.diac24.net) - if (hori && os2) - mscale = ((double)(hori->Ascender - hori->Descender)) / (os2->usWinAscent + os2->usWinDescent); + if (hori && os2) { + int hori_height = hori->Ascender - hori->Descender; + int os2_height = os2->usWinAscent + os2->usWinDescent; + if (hori_height && os2_height) + mscale = (double)hori_height / os2_height; + } memset(&rq, 0, sizeof(rq)); rq.type = FT_SIZE_REQUEST_TYPE_REAL_DIM; rq.width = 0; |