commit 751146beacb4aba96d5650978a3792bfe275cba8 Author: Grigori Goronzy Date: Sun Oct 11 10:05:20 2009 +0200 Fix minor typo libass/ass.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 4ede45574b3bb83faa705e042ab9e1d8d726f58f Author: Grigori Goronzy Date: Sun Oct 11 09:07:26 2009 +0200 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. libass/ass.h | 3 +++ libass/ass_drawing.c | 35 ++++++++++++++++++++++------------- libass/ass_fontconfig.c | 2 +- libass/ass_parse.c | 26 +++++++++++++------------- libass/ass_render.c | 3 ++- 5 files changed, 41 insertions(+), 28 deletions(-) commit 88d43f79747fb649d730ade5f8c221573be0be7b Author: Grigori Goronzy Date: Thu Oct 8 23:55:23 2009 +0200 strdup() fontconfig strings freed by caller fontconfig_select() can return the path to the default font as fallback, but the caller frees it later. Return a copy with strdup() instead. libass/ass_fontconfig.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) commit 29b5f2cc548a9c68a4855c6c85ac38aa25561f25 Author: Grigori Goronzy Date: Thu Oct 8 23:35:06 2009 +0200 Remove superfluous cast libass/ass_parse.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit caa7eb70c4d5c71bfdb879e95285bdbe680a0458 Author: Grigori Goronzy Date: Fri Oct 2 04:12:03 2009 +0200 Fix alpha calculation in some cases Picked up from XBMC svn. This should especially fix MPlayer's direct3d video output (untested). libass/ass_parse.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 300dcb789831e73c756d4dc5300d7c753e087d43 Author: Grigori Goronzy Date: Fri Sep 18 01:45:38 2009 +0200 Disable test program and libpng by default configure.ac | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) commit 44a7b6abcc75018f91c2339dac2f41fa4b9d8925 Author: Grigori Goronzy Date: Fri Sep 18 01:33:44 2009 +0200 Bump version to 0.9.8 configure.ac | 2 +- libass/ass.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit e186f466d346a9e4c1bd217e4d8db7d75e0874b5 Author: Grigori Goronzy Date: Fri Sep 11 04:12:38 2009 +0200 Update changelog Changelog | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit 45ca8450a9cfb5f6bae1defd51af465e9526633a Author: Grigori Goronzy Date: Fri Sep 11 04:02:00 2009 +0200 Refactor: effect parsing should be in ass_parse.c Move the function apply_transition_effects, which parses event-global effects and adjusts a few state variables, into ass_parse.c. libass/ass_parse.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ libass/ass_parse.h | 1 + libass/ass_render.c | 76 --------------------------------------------------- 3 files changed, 76 insertions(+), 76 deletions(-) commit 69b167d70bc918d2e8749c8119efe4753214f668 Author: Grigori Goronzy Date: Thu Sep 10 11:08:21 2009 +0200 Copy shadow bitmap from glyph bitmap It's not necessary to create the shadow bitmap by adding the glyph bitmap to the outline bitmap; the outline is a superset of the glyph. libass/ass_bitmap.c | 32 +++++++++++++------------------- 1 files changed, 13 insertions(+), 19 deletions(-) commit 33a3ab2c8777241b73ad85024158e19fb1f9c699 Author: Grigori Goronzy Date: Thu Sep 10 04:47:21 2009 +0200 Render NBSP (\h) as normal space Many fonts don't have a non-breaking space (NBSP) character and this can cause problems when these glyphs are substituted. Render them like a regular space. libass/ass_font.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 0d3ddc12295e38cdcb11c79f8dcb5c8d9f1a8b69 Author: Grigori Goronzy Date: Tue Sep 8 22:21:43 2009 +0200 Disable kerning by default and make it configurable 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. libass/ass.c | 4 ++++ libass/ass_render.c | 3 ++- libass/ass_types.h | 1 + 3 files changed, 7 insertions(+), 1 deletions(-) commit 9c7d5d41736ddb5dc11574c122807e484d774856 Author: Grigori Goronzy Date: Wed Sep 2 05:59:27 2009 +0200 Fix inline function prototypes libass/ass_parse.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit cf7c6e4cc8cd8cec37041179239554905a4a7517 Author: Grigori Goronzy Date: Tue Sep 1 23:15:48 2009 +0200 Refactor: move event parsing code into separate file Move all code related to parsing event lines and processing override tags into a separate file (ass_parse.c). libass/Makefile.am | 3 +- libass/ass_parse.c | 857 +++++++++++++++++++++++++++++++++++++++++++++++++++ libass/ass_parse.h | 37 +++ libass/ass_render.c | 845 +-------------------------------------------------- libass/ass_render.h | 2 + 5 files changed, 900 insertions(+), 844 deletions(-) commit a854a325a2586ee1d947493036b188acadbaaef2 Author: Grigori Goronzy Date: Tue Sep 1 13:31:04 2009 +0200 Fix underrun in slant pen correction libass/ass_render.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit 817004646d6b7a8b79cac9c847667028d49b6ccf Author: Grigori Goronzy Date: Tue Sep 1 03:09:17 2009 +0200 Handle illegal \a tags like VSFilter Treat the illegal \a value 8 like 5 for compatibility with VSFilter. libass/ass_render.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) commit e4e0ac252792981699532c4076569946c9719999 Author: Grigori Goronzy Date: Tue Sep 1 02:39:51 2009 +0200 opaque box: do not subtract glyph from border Similar to VSFilter, do not subtract the glyph bitmap from the border bitmap when BorderStyle 3 is used. libass/ass_bitmap.c | 7 +++++-- libass/ass_bitmap.h | 3 ++- libass/ass_render.c | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) commit 8407e392667a2f37eaca4fabfcf6bd7ca42aaed5 Author: Grigori Goronzy Date: Tue Sep 1 02:22:44 2009 +0200 Revert "Merge glyph and outline bitmap better" This reverts commit d3cd5b0148d64ae0f6e288e69b09acfe639fdcce. This hack improved blending in few situations, but at the same time broke it in lots o others; get rid of it. libass/ass_bitmap.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a69a6eca41f633bad80cbaf6488788fda9ec5c82 Author: Grigori Goronzy Date: Mon Aug 31 02:52:03 2009 +0200 Calculate glyph slant width correctly If a glyph is wider than its advance width for italic to non-italic style changes, assume it was obliqued by FreeType's FT_GlyphSlot_Oblique function and offset the next glyph accordingly. libass/ass_render.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) commit 7a3f45457b04977ea3d8a59ad66f802fadd43fcb Author: Grigori Goronzy Date: Sat Aug 29 20:26:20 2009 +0200 Do not close empty drawings If there are no points (i.e. illegal drawing), do not close the drawing by incrementing the contour counter. Under certain circumstances, this can crash the FreeType stroker. This fixes issue 7. libass/ass_drawing.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit 2441b10de97b3d52c7d2d2f5f0c92d648e41585d Author: Grigori Goronzy Date: Sun Aug 23 16:41:36 2009 +0200 Fix order of pen advance assignments libass/ass_render.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 8156d2b83b92eeced64f588f8ee116f00c9f15e2 Author: Grigori Goronzy Date: Sun Aug 23 16:33:38 2009 +0200 Fix opaque box sizing again Another try to get it to work like in VSFilter. Hopefully it's behaving the same now (except in some cases, since VSFilter layouts word-based, but libass is glyph-based). Additionally, make sure horizontal letter spacing (\fsp) is scaled according to ScaleX. libass/ass_render.c | 27 ++++++++++++++++++++------- 1 files changed, 20 insertions(+), 7 deletions(-) commit 0db2bfa543b90cbabac621a4d2f3362b9d746c11 Author: Grigori Goronzy Date: Sun Aug 23 03:49:22 2009 +0200 Fix glyph overlap blending Use the bitmap pointer for the cache hash key. This preserves the blending history, which fixes occasional corruptions due to previous replacements not being dealt with correctly. It also simplifies the hash key a lot and thus speeds up cache lookups. Additionally, change the blending equation from max(a, b) to min(a + b, 0xff), i.e. a saturating addition. Usually this looks a lot better. libass/ass_cache_template.h | 6 ++++-- libass/ass_render.c | 27 +++++++++++++-------------- 2 files changed, 17 insertions(+), 16 deletions(-) commit 2eae3a9907c211457e3ba8690fcd5ca54f77bcce Author: Grigori Goronzy Date: Sat Aug 22 01:15:09 2009 +0200 Update changelog Changelog | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) commit 588b7235a88e4b0926e10a7b71504227d35ed711 Author: Grigori Goronzy Date: Sat Aug 22 01:10:25 2009 +0200 Scale kerning according to x font scaling factor libass/ass_render.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit 9d008b0c51f2b6693e347c4a959d35b03cbc5383 Author: Grigori Goronzy Date: Sat Aug 22 01:03:46 2009 +0200 Trim whitespace after line wrapping Mark leading and trailing spaces on lines and adjust layouting code to respect these marks and skip the spaces. libass/ass_render.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++--- libass/ass_render.h | 1 + 2 files changed, 86 insertions(+), 6 deletions(-) commit 96226455142018927a96c676980a90206d60714e Author: Grigori Goronzy Date: Thu Aug 20 16:41:11 2009 +0200 Clip vector blending: do not copy last row padding Do not copy the padding on the last row into the new buffer since we cannot rely on the padding actually existing; might fix a segfault in some obscure cases. libass/ass_render.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit c2950d9825ee861e4c7541c1568785a044a5d448 Author: Grigori Goronzy Date: Thu Aug 20 04:36:47 2009 +0200 Adjust shearing behavior to match VSFilter Make horizontal shearing (\fax) shear from top to bottom of a glyph; scale shearing factors with horizontal and vertical scaling factors. This makes the shearing operations similar to VSFilter, except for \fay in some cases, but this is not unexpected. Vertical shearing is implemented different on purpose. libass/ass_render.c | 24 +++++++++++++++--------- 1 files changed, 15 insertions(+), 9 deletions(-) commit c4e5b08cc0a321da7cd9261bb887a003f0fb2693 Author: Grigori Goronzy Date: Wed Aug 19 23:10:24 2009 +0200 VSFilter quirk: double-scale widths of opaque boxes VSFilter double-scales the widths of the opaque box in X direction, which gives much wider boxes than expected (or much less wider boxes) if ScaleX != 100. Emulate this behavior, even if it is unbelievably stupid and no doubt a bug in VSFilter. libass/ass_render.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)