commit aff07368a515c24f77ac768ffd54be81265df3ff Author: Grigori Goronzy Date: Sat Aug 15 03:31:52 2009 +0200 Improve and fix outline striker Exit early if no striking is needed; make sure to strike in reverse direction for non-truetype font and use the usual return value convention (0 == no errors). libass/ass_font.c | 41 +++++++++++++++++++++++++++++++---------- 1 files changed, 31 insertions(+), 10 deletions(-) commit 1a3b6eef302a2fed759b8c278592c4dd371044fb Author: Grigori Goronzy Date: Sat Aug 15 03:03:10 2009 +0200 Fix caching of underlined/striked out glyphs libass/ass_cache_template.h | 3 ++- libass/ass_render.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletions(-) commit 4449ec9df99716a1be439c38bffe2a5b013c60bf Author: Grigori Goronzy Date: Fri Aug 14 13:57:02 2009 +0200 Fix crash if glyph bitmap rasterization fails Check whether the glyph bitmap used for cache size calculations really exists. libass/ass_cache.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit a70c851e75871cef06f039755ba49939a85e7ece Author: Grigori Goronzy Date: Fri Aug 14 01:43:56 2009 +0200 Update changelog Changelog | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) commit 7b3dc7d1448f4c3f8ab0465b5ea8d1df55e7186b Author: Grigori Goronzy Date: Fri Aug 14 01:34:31 2009 +0200 Implement wrap style 1 Skip application of the algorithm that moves words between the lines to equalize line length for wrap style 1. libass/ass_render.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) commit 9c4683bfa6b250e903557581fe6571159d595a46 Author: Grigori Goronzy Date: Fri Aug 14 00:10:51 2009 +0200 Cosmetics: ass_render.c formatting libass/ass_render.c | 37 ++++++++++++++++++------------------- 1 files changed, 18 insertions(+), 19 deletions(-) commit 1d0e55326948d6bfb4e3804e92917ea6755d99a3 Author: Grigori Goronzy Date: Thu Aug 13 01:08:22 2009 +0200 Use event bbox for collision detection Consider the bounding box of an event for collision detection instead of only its vertical position and height. This allows multiple events per line if they don't overlap. libass/ass_render.c | 30 ++++++++++++++++++++++++------ libass/ass_render.h | 5 +++-- 2 files changed, 27 insertions(+), 8 deletions(-) commit 236d5a44034883e126df6e18e3520598155b5f98 Author: Grigori Goronzy Date: Thu Aug 13 17:25:56 2009 +0200 Scale ascender/descender for opaque boxes libass/ass_render.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) commit 7c19ed7321a7e233e53a79d448a2a06cb0ec855c Author: Alexis Ballier Date: Mon Aug 10 12:03:13 2009 +0200 Fix build without fontconfig libass/ass_fontconfig.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 2612b33167ae02d5109c88ee45a94a2f30071228 Author: Grigori Goronzy Date: Wed Aug 12 06:42:48 2009 +0200 Do not draw opaque box if border size zero This follows VSFilter's behavior. libass/ass_render.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) commit 8a12748e0e37adb7d8cda52c95a6c8ee36cf4172 Author: Grigori Goronzy Date: Wed Aug 12 06:36:43 2009 +0200 BorderStyle cache integration Add new fields to the cache hash key for BorderStyle 3 (glyph cache and bitmap cache). libass/ass_cache_template.h | 2 ++ libass/ass_render.c | 4 ++++ 2 files changed, 6 insertions(+), 0 deletions(-) commit 8a9ef5e2014068a348cb3e0f965113a827d93cd7 Author: Grigori Goronzy Date: Wed Aug 12 06:20:26 2009 +0200 Always parse colors as hex for ASS tracks According to the ASS specification, colors can only be specified in hex. Modify the color parsing accordingly; this especially means that colors where the hex sigil (the "H") is missing can now be parsed. libass/ass.c | 2 +- libass/ass_render.c | 9 ++++++--- libass/ass_utils.c | 5 +++-- libass/ass_utils.h | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) commit e8032bc820dd0079db103165cf3d4d84f429edb7 Author: Grigori Goronzy Date: Wed Aug 12 05:26:55 2009 +0200 Add glyph emboldening fallback Fallback to embolden manually with FreeType in case a bold face was requested, but no bold variant is available. The glyphs are slightly emboldened (much less than FT_GlyphSlot_Embolden would do) and the metrics are not touched at all. libass/ass_font.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) commit d30a7c6921e25d3c3430d7f3c6ea5537a167b69b Author: Grigori Goronzy Date: Wed Aug 12 05:07:13 2009 +0200 Fix italic to non-italic space handling Scan backwards in the glyph array for a glyph with some actual points when correctin glyph spacing after italic to non-italic style changes. This is mostly useful in case a space ends italicized text. libass/ass_render.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) commit 405e8b48f538aceb42bbab8104d10b7a778b26e9 Author: Grigori Goronzy Date: Wed Aug 12 03:43:46 2009 +0200 Support \q override tag Parse \q override tag and set a new state variable to its value. The line wrapping code still needs improvements; wrap style 0/3 are not entirely correctly implemented and style 1 is not implemented. libass/ass_render.c | 12 ++++++++++-- libass/ass_render.h | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) commit 1934927c0532c9493e6985a632d66ce4a945930b Author: Grigori Goronzy Date: Wed Aug 12 02:59:00 2009 +0200 Implement BorderStyle 3 The "opaque box" border style renders an opaque box in the glyph area instead of rendering a regular stroked border. This implementation replaces the glyph outline by an outline that contains only one rectangle with the size of the glyph, plus optional extra border. libass/ass_render.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 48 insertions(+), 3 deletions(-) commit ceefa4d7517a611de4c27c7de416a4ca7d22eeef Author: Grigori Goronzy Date: Wed Aug 12 01:45:39 2009 +0200 Fix advance for italic to non-italic style changes After a italic to non-italic style change the space between the glyphs is sometimes wrongly calculated, especially if the font doesn't have an italic version and FreeType falls back to oblique glyphs. In such cases, add additional space to the glyph's advance to make up for the slant of the glyph; the amount is calculated from the glyph's bbox. libass/ass_render.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) commit f3b3c6897e5cb7df6b40885c772e564d7ab5c82d Author: Grigori Goronzy Date: Fri Aug 7 10:56:38 2009 +0200 Factor out renderer types into separate file libass/Makefile.am | 2 +- libass/ass_render.c | 217 +------------------------------------------ libass/ass_render.h | 258 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 260 insertions(+), 217 deletions(-) commit 1572429afdb4f7c6634fcca771f50359b146232a Author: Grigori Goronzy Date: Fri Aug 7 01:26:42 2009 +0200 Bump shared library version libass/Makefile.am | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit be8b239ec4de9aa4a8e9dbd2b4285707ac921cf9 Author: Grigori Goronzy Date: Thu Aug 6 23:08:28 2009 +0200 Bump LIBASS_VERSION due to renames libass/ass.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5f2dfaa377c4afbfc6e456e5cd0b41a8bb5a7ee0 Author: Grigori Goronzy Date: Thu Aug 6 13:17:21 2009 +0200 Use int for ScaledBorderAndShadow Convert type for consistency with other booleans/flags that also use int. libass/ass_types.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 892423a588aea8fb14e84bdb9527df97e945ec57 Author: Grigori Goronzy Date: Thu Aug 6 13:04:20 2009 +0200 Rename typedefs (breaks API) Rename all typedefs from the convention foo_bar_t, which can possibly conflict with POSIX types, to FooBar (and ASS_FooBar for public API typedefs). Fix formatting and stray comments while at it. libass/ass.c | 128 +++++++------ libass/ass.h | 82 ++++---- libass/ass_bitmap.c | 36 ++-- libass/ass_bitmap.h | 14 +- libass/ass_cache.c | 124 ++++++------ libass/ass_cache.h | 108 ++++++------ libass/ass_cache_template.h | 12 +- libass/ass_drawing.c | 54 +++--- libass/ass_drawing.h | 24 ++-- libass/ass_font.c | 44 +++--- libass/ass_font.h | 28 ++-- libass/ass_fontconfig.c | 36 ++-- libass/ass_fontconfig.h | 16 +- libass/ass_library.c | 18 +- libass/ass_library.h | 4 +- libass/ass_render.c | 441 ++++++++++++++++++++++--------------------- libass/ass_types.h | 27 ++-- libass/ass_utils.c | 6 +- libass/ass_utils.h | 6 +- test/test.c | 14 +- 20 files changed, 614 insertions(+), 608 deletions(-) commit 5ddad362f52080c4f2a46e78fc4cca4f8ca6a2b0 Author: Grigori Goronzy Date: Wed Aug 5 03:36:58 2009 +0200 Cosmetics: add parameter name in prototype libass/ass.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 5b793b51055258360e8ee00f4baeb4488a21eb54 Author: Grigori Goronzy Date: Wed Aug 5 03:21:01 2009 +0200 Fix typo libass/ass_render.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 4a2db828ecdb41d2446f1da3a036f7fd39415809 Author: Grigori Goronzy Date: Wed Aug 5 03:19:32 2009 +0200 Clarify the AR parameter meanings Use the correct terms (SAR/DAR) for the aspect ratio parameters. libass/ass.h | 6 +++--- libass/ass_render.c | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) commit 78c8cdd38641a75b6bd8667d3229659a2db319b1 Author: Grigori Goronzy Date: Thu Jul 30 01:04:29 2009 +0200 Get rid of MAX_EVENTS limit Allocate the maximum possible number of used events in fix_collisions dynamically, eliminating the MAX_EVENTS limit. libass/ass_render.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit a097bc2d84242370b15257d602af221430da8825 Author: Grigori Goronzy Date: Wed Jul 29 21:33:29 2009 +0200 Do not round karaoke timing coordinates Do not round the coordinates of the glyph bbox (when converting 26.6 fixed-point to integer); they are used for timing karaoke. Doing so can sometimes make \k and \ko karaoke not apply correctly. libass/ass_render.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 92c27466284694c7072446b69d07dcc8c20f7eb7 Author: Grigori Goronzy Date: Tue Jul 28 23:48:10 2009 +0200 Bring back names for public types For the event/style/track types, bring back the struct name, but without the _s suffix. This is useful for forward declaration of these types. libass/ass_types.h | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) commit 764b4df68a5fde0a6ac524684b23ccf6057d6596 Author: Grigori Goronzy Date: Tue Jul 28 11:05:26 2009 +0200 Fix \k and \ko tags The timing calculations for \k and \ko were off and still assumed int values for a bbox, while it now uses a d6 representation. This essentially made duration about 64 times as long as it should be. libass/ass_render.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 1ca079bc46a3ddfb5e4d017473324bad67139a88 Author: Grigori Goronzy Date: Tue Jul 28 01:42:03 2009 +0200 Clean up typedefs/structs Remove useless _s suffix from struct names and remove struct name where not needed (only the typedef'd struct is used). Clean up API headers. libass/ass.c | 2 +- libass/ass.h | 7 ++----- libass/ass_bitmap.c | 2 +- libass/ass_bitmap.h | 4 ++-- libass/ass_cache.h | 12 ++++++------ libass/ass_cache_template.h | 6 +++--- libass/ass_drawing.h | 14 +++++++------- libass/ass_font.h | 4 ++-- libass/ass_fontconfig.c | 2 +- libass/ass_fontconfig.h | 2 +- libass/ass_library.h | 4 ++-- libass/ass_render.c | 30 +++++++++++++++--------------- libass/ass_types.h | 17 +++++++++-------- 13 files changed, 52 insertions(+), 54 deletions(-) commit f21c5b6b2788d1ba2073cb4066eedee0de1b249e Author: Grigori Goronzy Date: Sun Jul 26 16:03:37 2009 +0200 Improve message callback API Instead of passing a pointer to a va_list, pass the va_list itself. Additionally, use const char for the format string and use names in the prototype that describe the arguments' meaning. libass/ass.h | 4 ++-- libass/ass_library.c | 7 +++---- libass/ass_library.h | 2 +- libass/ass_utils.c | 2 +- test/test.c | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) commit 311ec23031e257a8edde5153b09a5d0c2d6b0f6b Author: Grigori Goronzy Date: Sat Jul 25 03:59:58 2009 +0200 Remove shift vector in ass_render_event The shift is not calculated when fetching a glyph anymore. Instead, it is calculated right before rasterizing a glyph. Remove the shift vector and make get_outline_glyph, the glyph cache and ass_font_set_transform work without supplying a shift vector. libass/ass_cache_template.h | 1 - libass/ass_font.c | 6 ++++-- libass/ass_font.h | 2 +- libass/ass_render.c | 12 +++--------- 4 files changed, 8 insertions(+), 13 deletions(-) commit a9f204bdde79bdacb63672482f5666b1e64f4479 Author: Grigori Goronzy Date: Sat Jul 25 03:38:56 2009 +0200 Assume 4:3 AR when calculating missing PlayResX/Y In case only one PlayResX/Y component is specified, calculate the other component by assuming a 4:3 aspect ratio. This is similar to vsfilter. libass/ass_render.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-) commit d7635a84ed7c852e2045ba5a298ea12c477033b3 Author: Grigori Goronzy Date: Fri Jul 24 10:35:17 2009 +0200 Handle clip vector rasterizer errors If rasterizing the clip vector fails, actually handle the situation instead of crashing. libass/ass_render.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) commit a40f299a7bd74597bc54cae7264b5a45b9ec11b9 Author: Grigori Goronzy Date: Fri Jul 24 10:17:56 2009 +0200 Document ass_hinting enum Add a note to the docs regarding hinting method choice. libass/ass.h | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) commit 9d421ddec0a17bb17a77571653f30931b55b7397 Author: Grigori Goronzy Date: Fri Jul 24 10:06:16 2009 +0200 Fix renderer memory leaks Use the correct free order when freeing a ass_renderer and make sure that the latest list of ass_images is freed, too. Protect the font family string against double free and make sure it is freed in free_render_context. Leaks and access problems were found by valgrind/memcheck. libass/ass_render.c | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) commit 074399f7dcb4c94cc86d87250c05ba497fe26e45 Author: Grigori Goronzy Date: Fri Jul 24 10:01:41 2009 +0200 Fix fontconfig memory leaks Do not manually use FcConfigFilename; passing a NULL pointer to FcConfigParseAndLoad is just as effective and also avoids a memory leak since the string allocated by FcConfigFilename was never freed. Free FcConfig instance in fontconfig_done; since we're not using the default configuration anymore it doesn't make sense to keep the configuration around. Leaks were found by valgrind/memcheck. libass/ass_fontconfig.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) commit 417a5b32da0d3b345299190ba3198cfed6f98275 Author: Grigori Goronzy Date: Fri Jul 24 09:59:47 2009 +0200 Test program: free track/renderer/library In the test program, free the track, renderer and library properly. This is useful for memory leak testing. test/test.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) commit cadecae81541e68ad96353c10a7cb6bacea32d04 Author: Grigori Goronzy Date: Fri Jul 24 09:58:01 2009 +0200 Free tracks properly When freeing a track, also free the track name and the track itself. Leak found by valgrind/memcheck. libass/ass.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) commit 9c5621c1c3adb3cd37c27b10360d57ab9965430f Author: Grigori Goronzy Date: Fri Jul 24 05:13:02 2009 +0200 Build system: enable/disable flags, pkg-config fixes * Add enable/disable flags for enca, fontconfig and libpng. * Add dependent libraries to pkg-config file to allow static linking. configure.ac | 37 +++++++++++++++++++++++++++++++------ libass.pc.in | 2 ++ 2 files changed, 33 insertions(+), 6 deletions(-) commit d0597be656034ba8a7f9b02be0350b51e1fc9f41 Author: Grigori Goronzy Date: Fri Jul 24 05:05:52 2009 +0200 Fix compilation without fontconfig Adjust fontconfig_select and fontconfig_update stubs for the recent changes. libass/ass_fontconfig.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) commit 08d40f78a23c729fa493a7a8aa28b131e65caeb7 Author: Grigori Goronzy Date: Thu Jul 23 03:23:28 2009 +0200 Move render_id into ass_renderer The render_id (last_render_id) variable was the last remaining static data object; move it into render_priv. libass/ass_render.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) commit b3bcb8e120d1a15f258211e78346407e9a2b35d2 Author: Grigori Goronzy Date: Wed Jul 22 22:49:55 2009 +0200 Fallback to default fontconfig configuration If parsing or loading the fontconfig configuration file, either using the default or a specified one, fails, try to load the default fontconfig configuration. This triggers loading a fallback configuration if no configuration file is available at all. A warning message is emitted to notify the user about this. libass/ass_fontconfig.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) commit 36cb0c6eaa0237baec7e834f0da6e94ec1153beb Author: Grigori Goronzy Date: Wed Jul 22 03:24:42 2009 +0200 Fix rasterizer error handling (double free) In case rasterizing a glyph is successful, but rasterizing its outline is not, do not free the glyph bitmap. It will be freed in cache cleanup later. Freeing it earlier leads to a double free. libass/ass_bitmap.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) commit e7f7e99c184dcb7ee1b4e09b8e498af7223e82aa Author: Grigori Goronzy Date: Wed Jul 22 03:21:33 2009 +0200 Bold/italic: interpret -1 as "true" Interpret the value -1 as "true", as specified in the ASS specifications. Otherwise, clamp the value to 0 for other values < 0, so these are interpreted as "false". libass/ass_render.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) commit ec5bbb431328d3e4d1129f1dd6fd1774907881a7 Author: Grigori Goronzy Date: Tue Jul 21 14:23:30 2009 +0200 Add check for libm to configure Check for libm and add the library to the linker flags. configure.ac | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) commit 7154c69affa9bf342040b3d098d911a2a206bff6 Author: Grigori Goronzy Date: Tue Jul 21 14:03:46 2009 +0200 Do not double free default font/family buffers Reported by Martin Sourada. libass/ass_render.c | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) commit a7b40ce5a9d84182b40392665d3a11a69be90ebf Author: Grigori Goronzy Date: Tue Jul 21 03:06:05 2009 +0200 Factor out bitmap buffer copy For clarity, factor out bitmap copying into a function. Do not pad the bitmap with stride in the last row; this can not by guaranteed anyway. Add a comment about this peculiarity to the API documentation in ass.h Idea by Evgeniy Stepanov. libass/ass.h | 12 +++++++++++- libass/ass_render.c | 22 ++++++++++++++++------ 2 files changed, 27 insertions(+), 7 deletions(-) commit f7f50dfb6335b3d2c1f1fa85a1e496ed2abf6d27 Author: Grigori Goronzy Date: Tue Jul 21 02:39:52 2009 +0200 Clamp clip rectangle to frame size Make sure the clip rectangle is inside the screen boundaries. Idea by Evgeniy Stepanov. libass/ass_render.c | 8 ++++---- libass/ass_utils.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) commit 1bbf325019a2ab0ead277cf1af8af6e63157e851 Author: Grigori Goronzy Date: Tue Jul 21 00:04:24 2009 +0200 Animations: allow equal start and end time Do not set the end time of the animation to the end time of the event in case end time and start time specified in a \t tag are equal. This should sort out a problem introduced by commit 1f176b. libass/ass_render.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 2f74c6713dccee2b14b81a9c21731b83e181f31d Author: Grigori Goronzy Date: Mon Jul 20 00:25:27 2009 +0200 Check for table availability when striking a glyph The glyph striker (underline/strike-through) did not check for table availability, possibly accessing a NULL pointer. Change this to only strike the glyph if the table with the appropriate information is available. Currently there is no fallback for fonts without the required information. libass/ass_font.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) commit 0ba4d4ceb16c1d3d678bcab63506ae6671b87889 Author: Grigori Goronzy Date: Mon Jul 20 00:18:55 2009 +0200 Font metrics: prefer OS/2 table for ascender/descender If possible, use ascender/descender from the OS/2 TTF table. This is another try to get libass to match VSFilter in regard to vertical font metrics. libass/ass_font.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) commit 5f0aa788e9342db7c9ec0d4cd08f5bf19d85bbaa Author: Grigori Goronzy Date: Sun Jul 19 16:13:39 2009 +0200 Fix borders when a x/y component is zero libass/ass_render.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit 9ad13b1e609a5973a9f9288978b720d82a1382f7 Author: Grigori Goronzy Date: Sun Jul 19 08:39:24 2009 +0200 Fix drawing parser memory leak Always free the drawing glyph in ass_drawing_free; do not double free clip vector bitmap. libass/ass_drawing.c | 3 +-- libass/ass_render.c | 1 - 2 files changed, 1 insertions(+), 3 deletions(-) commit 3fd039c16184d5864c8a3be561c8b547b52ddf83 Author: Grigori Goronzy Date: Sun Jul 19 08:38:49 2009 +0200 Introduce simple cache memory management libass' cache was basically unmanaged; it would grow without any limits, depending on how complex the subtitles are. Introduce a simple limiting that resets the cache if certain limits are exceeded. The bitmap cache is limited to approx. 50 MB size by default, while the glyph cache allows storing up to 1000 glyphs by default. A few tests with rather heavily softsubbed fansubs show that these limits are fine. The API was extended with the function ass_set_cache_limits which allows modification of these limits. libass/ass.h | 11 +++++++++++ libass/ass_cache.c | 6 ++++++ libass/ass_cache.h | 1 + libass/ass_render.c | 44 +++++++++++++++++++++++++++++++++++++++----- libass/libass.sym | 1 + 5 files changed, 58 insertions(+), 5 deletions(-) commit 7690af4af50fda163ed724e8d0f3ce5d9a9ec552 Author: Grigori Goronzy Date: Sun Jul 19 05:44:06 2009 +0200 Fix vertical centering (VALIGN_CENTER) Match VSFilter behavior when centering non-positioned events vertically. Previously, libass put the event on top of the vertical center while VSFilter centered the event evenly. Adjust the centering to behave like VSFilter. libass/ass_render.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) commit caabbe31879addc5c64737578e1803d3f193ac98 Author: Grigori Goronzy Date: Sun Jul 19 02:59:44 2009 +0200 Fix ascender/descender calculation for empty lines Take ascender/descender from the last valid glyph when empty lines occur. This makes multiple empty lines (\N\N\N etc.) work correctly. libass/ass_render.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) commit c3ace011c01dfd0817622171613de5c014f61d44 Author: Grigori Goronzy Date: Fri Jul 17 14:39:20 2009 +0200 Improve API headers and documentation Improve APi documentation; each function is properly documented now. Add a new macro LIBASS_VERSION that encodes the version in a hexadecimal format, similar to OpenSSL. Fix formatting of the headers. libass/ass.h | 188 ++++++++++++++++++++++++++++++++++++++++------------ libass/ass_types.h | 44 +++++++----- 2 files changed, 171 insertions(+), 61 deletions(-) commit b4e604380d8ec8fa5b991a1b028240fc4436eec7 Author: Grigori Goronzy Date: Fri Jul 17 02:56:05 2009 +0200 Improve fontconfig setup Add an argument to ass_set_fonts for controlling whether the fontconfig font cache should be built/updated. Add a new function ass_fonts_update to make it possible to update fonts later on. Additionally, stop using FcConfigSetDefault for thread safety. libass/ass.h | 11 +++++++++-- libass/ass_fontconfig.c | 37 +++++++++++++++++++++++++------------ libass/ass_fontconfig.h | 5 ++++- libass/ass_render.c | 12 ++++++++---- libass/libass.sym | 1 + test/test.c | 2 +- 6 files changed, 48 insertions(+), 20 deletions(-) commit 0f2cf3f12a3eed740d7717fb35c11ba5d8fe4c22 Author: Grigori Goronzy Date: Fri Jul 17 00:36:29 2009 +0200 Update changelog again Changelog | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)