]> granicus.if.org Git - libass/blob - Changelog
renderer: implement correct error estimation for stroking
[libass] / Changelog
1 libass (unreleased)
2  * Treat invalid nested \t tags like VSFilter
3  * Fix stack overflow on deeply nested \t tags
4
5 libass (0.14.0)
6  * Brand new, faster and better outline stroker (replaces FreeType stroker)
7  * Remove option to use the FreeType rasterizer
8  * Fix spots of missing border around self-intersecting shapes
9  * Switch from Yasm to NASM for building hand-written assembler code
10  * Support Core Text font provider on Mac OS X 10.6 and 10.7
11  * Clear font cache in ass_set_fonts(). This fixes potentially incorrect
12    font choices and an occasional crash if this function is called midway
13    through rendering a file.
14
15 libass (0.13.7)
16  * Fix invalid memory accesses with BorderStyle=4
17  * Fix change detection bug on frame resizes
18  * Fix cache bugs with border size
19  * Reduce precision of border width in font outline caching
20  * Don't treat :;<=>? as hexadecimal digits in color headers
21  * Fix parsing of unusual Alignment values in ASS style definitions
22  * Fix potential truncation in timestamp parsing
23  * Treat negative PlayResX/PlayResY like VSFilter
24  * Fixes to parsing of embedded fonts
25  * Remove arbitrary bitmap limit (fixes issues with subtitle rendering at 4K)
26  * Allow using shadow offset to adjust size of background with BorderStyle=4
27  * Fix TrueType/OpenType font collection handling with the DirectWrite backend
28
29 libass (0.13.6)
30  * Bump ABI version to account for the new Justify field in ASS_Style
31    that was added in 0.13.5.
32
33 libass (0.13.5)
34  * Add Justify style override that changes text justification
35    (left/right/center) without affecting event positioning.
36  * Fix ass_set_cache_limits() to affect total bitmap cache size
37    including composite bitmap cache.
38  * Number parsing fixes
39    * Fix illegal read when parsing some numbers in scientific notation
40      with huge exponents.
41    * Correctly evaluate numbers in scientific notation with large exponents.
42    * Correctly evaluate numbers with many leading zeros.
43  * Bug fixes found with fuzzing
44    * Fix a small memory leak in the parser.
45    * Fix illegal read in the parser on specially crafted input with \t tags.
46
47 libass (0.13.4)
48  * Bug fixes found with fuzzing
49    * Fix memory reallocation in the shaper. (CVE-2016-7972)
50    * Fix two small memory leaks in the parser and test program.
51    * Fix illegal read in Gaussian blur coefficient calculations.
52      (CVE-2016-7970)
53    * Fix mode 0/3 line wrapping equalization in specific cases which could
54      result in illegal reads while laying out and shaping text.
55      (CVE-2016-7969)
56
57 libass (0.13.3)
58  * Improve compatibility/portablility of build system,
59    should fix e.g. compilation on Solaris.
60  * Fix memory leak in DirectWrite font provider.
61  * Fix the rasterizer when rendering some large outlines.
62  * Remove hack that forced RTL base direction depending on font encoding.
63  * Greatly improve the internal caches with refcounting and gradual clearing.
64
65 libass (0.13.2)
66  * Add ass_set_check_readorder() API function to disable use of the ReadOrder
67    field for duplicate checking in ass_process_chunk().
68  * ass_step_sub(track, now, 0) now finds the start of the subtitle at "now".
69  * Bug fixes
70    * Fix an issue with the new duplicate checking, which could lead to
71      missing subtitles after seeking.
72    * Fix a crash with CoreText under specific circumstances
73
74 libass (0.13.1)
75  * Much faster duplicate event check in ass_process_chunk. This can
76    bring a large speedup for embedded subtitles with lots of events.
77    To make this possible, it is now forbidden to combine calls to
78    ass_process_chunk with any other method of manipulating the event
79    list, namely, manual manipulation and calls to ass_process_data,
80    ass_read_memory and ass_read_file.
81  * Interpret negative timestamp components as actual negative numbers.
82    This change increases compatibility with VSFilter.
83  * Font matching changes for VSFilter compatibility
84    * Look up fonts that contain PostScript outlines by their PostScript
85      name instead of their full names. Family names continue to be used
86      for all fonts.
87    * Keep spaces in font names
88  * Drop support for Fontconfig < 2.10.92 to ensure correct font matching
89  * Bug fixes
90    * Fix building the assembler code for the x32 ABI (GH #200)
91    * Fix static linking against libass through pkg-config when libass
92      uses libiconv
93    * Fix some small memory leaks, potential crashes and bad data uses
94
95 libass (0.13.0)
96  * Add native font selection backends for OSX (CoreText) and Windows
97    (DirectWrite). You can now run libass without fontconfig on these
98    platforms. This fixes problems with fontconfig behaving badly on
99    these platforms (it could take minutes to scan all system fonts).
100    Even on Linux, this speeds up loading of embedded fonts (such as
101    provided by ass_add_font()).
102    The DirectWrite backend only works on Windows Vista and later. On
103    XP, fontconfig is still needed. libass can be compiled with both
104    DirectWrite and fontconfig, and then it will fallback to fontconfig
105    automatically if DirectWrite is not available at runtime.
106  * Add ass_get_available_font_providers() API function.
107  * Change the 4th parameter of ass_set_fonts(). This now selects the
108    font provider. This is somewhat backwards compatible with the old
109    behavior, but if you ever passed values other than 0 or 1, your
110    application might break with this libass release.
111  * The ass_fonts_update() function now does nothing. It's kept for
112    backward compatibility only.
113  * Much faster gaussian blur. This can bring a large speedup with big
114    blurred signs and such.
115  * Drop ENCA support
116  * Bug fixes
117    * Fix compilation of the freetype rasterizer (disabled by default)
118    * Fix rendering with some cases of consecutive line breaks (\N\N).
119    * Fix some memory allocation failure checks
120    * Avoid system locale dependent behavior by reinventing some standard
121      C functions
122    * Fix rendering errors with strikes (GH #193)
123    * MSVC compilation fixes
124
125 libass (0.12.3)
126  * VSFilter blur compatibility changes
127  * VSFilter color/alpha parsing compatibility changes
128  * Bugfixes
129    * Fix some potential memory leaks and crashes
130    * Fix large timestamps (larger than about 600 hours)
131    * Fix a potential crash with the new rasterizer and complex fonts
132    * Do not apply user-configured line position to non-dialog events
133    * Strictly clip non-dialog events to the video rectangle
134
135 libass (0.12.2)
136  * Add extern "C" guards to the public headers for C++ compatibility
137  * Improvements to style override API and implementation
138  * Bugfixes
139    * Fix some rasterizer bugs of unknown severity
140    * Fix a broken memset() of unknown severity
141    * Make timestamp parsing more lenient, which makes libass accept invalid
142      files accepted by most other ASS parsers
143    * Increase compatibility with broken ASS drawings accepted by VSFilter
144
145 libass (0.12.1)
146  * Make ASS drawings with an extremely high number of control points work
147    This change increases compatibility with VSFilter.
148  * Bugfixes
149    * Fix a crash when using newer harfbuzz versions (GH #155)
150    * Load embedded memory fonts correctly
151    * Large shadow offsets rendered incorrectly (GH #142)
152    * Fix incorrect closing of last drawing contour
153    * Fix issues with undefined behavior in shifts
154    * Lots of of malloc() error checking
155
156 libass (0.12.0)
157  * Implement fast quad-tree rasterizer in C and SSE2/AVX2 assembly
158  * Make \be animatable
159  * Add BorderStyle=4 (GH #105)
160  * Add selective style override functionality
161    * ass_set_selective_style_override()
162    * ass_set_selective_style_override_enabled()
163  * Support for assembly on DragonFly BSD
164  * Bugfixes
165    * Various parser fixes
166    * Fix premature parser exit on }{ in drawing mode (GH #75)
167    * Reset clipping mode on every rectangle clip
168    * Improved error handling for FriBidi and FreeType (GH #131)
169    * Fix bitmap combining cache
170
171 libass (0.11.2)
172  * Improve yasm version check
173  * Fix \fscx0 crashes
174  * Actually export ass_library_version
175  * Fix change detection with vector clips
176  * SIMD assembly bugfixes
177  * Parse drawing numbers as floats (GH #63)
178  * Fix shaper sign bug (GH #68)
179  * Initialize \pbo correctly (GH #74)
180
181 libass (0.11.1)
182  * Fix distfile generation
183  * No functional changes
184
185 libass (0.11.0)
186  * Add bitmap run combining/compositing
187    This changes the text rendering model and increases compatibility with
188    VSFilter. It may make rendering faster or slower in certain cases.
189  * Add AVX/SSE2 implementations for \be and compositing
190    This adds yasm as (optional) build dependency.
191  * Add ass_library_version() API funcion (GC #113)
192  * Add 'profile' program for benchmarks
193  * Improve gaussian blur
194  * Fix compilation with MSVC 2013
195  * Speed up HarfBuzz shaper
196  * Speed up cache
197  * Notable compatibility bugfixes
198    * Reset origin on \fay changes (GC #88)
199    * Tons of parser fixes
200    * Fix ascender/descender metrics (GH #8)
201    * Fix \pbo sign and scaling
202    * Don't reset wrap style on \r (GC #116, GH #45)
203  * Notable bugfixes:
204    * Correctly handle @font advance (GC #94)
205    * Disable ligatures for non-zero \fsp
206    * Make sure to release vector clip (GH #22)
207
208 libass (0.10.2)
209  * API additions and some ABI changes, bumped SONAME
210  * Expose header field for VSFilter color mangling (GC #87)
211  * Add functions for explicit scaling hints (GC #6)
212  * Add 'type' field to ASS_Image (GC #31)
213  * Workaround Freetype's font size grid-fitting where appropriate
214  * Apply blur to both glyph and border when using opaque box
215  * Parser bugfixes
216    * Parse angles in style as number
217    * Fix fallback event formats
218    * Make closing ')' optional for some tags
219    * Fix crazy VSFilter behaviour for \move (GC #90)
220    * Make \r fall back to line style (GC #104)
221    * Parse style name like VSFilter
222    * Ignore junk in nested \t tags
223    * Make \clip tag arguments mandatory
224  * Properly handle script and language in the HarfBuzz shaper
225  * Allow ASS_Track and ASS_Renderer to have different ASS_Library
226  * Fix stroking in some rare cases
227  * Correctly handle @font advance (GC #94)
228  * Fix ascent/descent for some fonts (GC #106)
229  * Fix ass_step_sub to not require sorted events
230  * Fix blur scaling
231  * Don't mutate input strings (GC #88)
232  * Remove/change some error messages
233  * Fix various small memory leaks
234
235 libass (0.10.1)
236  * Fix letter spacing
237  * Add \rSTYLENAME syntax support (GC #43)
238  * Fix border generation and border style reset (GC #56)
239  * Fix various issues with bug-for-bug compatibility of
240    transformations (\fax, \fay, etc.) to VSFilter (GC #46, GC #42)
241  * Fix drawing parsing (GC #47)
242  * Various fixes to shaper (GC #54, GC #55, GC#59)
243  * Fix change detection
244  * Add ass_set_line_position API to set a vertical subtitle offset
245  * Fix scaling of drawing baseline offset (\pbo) values
246  * Fix skipping of zero-width characters for FriBiDi shaper
247  * Use LTR text base direction by default, similar to VSFilter
248
249 libass (0.10.0)
250  * Bidirectional layout and Arabic shaping via FriBidi (GC #13)
251  * OpenType shaping via HarfBuzz-ng (GC #13)
252  * Add API for shaper configuration
253  * Add support for `Language' Script Info property, this can be used for
254    hinting the text language
255  * Vertical layout improvements
256    * Use `vert' and `vkna' OpenType features for vertical glyph variants
257    * Position rotated glyphs onto baseline
258  * Parse font encoding property for base text direction hinting
259  * Refactor cache system
260  * Use generic outlines in place of FreeType glyphs
261  * Direct outline bitmap rendering
262  * Fix whitespace trimming (GC #35)
263  * Do not render border if there's no shadow or glyph (GC #29)
264  * Adjust spacing after a italic to non-italic style change (GC #37)
265  * Fix fade timing
266  * Fix x positioning with borders (GC #27)
267  * Build system tweaks
268
269 libass (0.9.12)
270  * Switch to permissive (ISC) license
271  * Support \fs+ and \fs- syntax for modifying font size
272  * Fix word-wrapping
273  * Improved charmap fallback matching
274  * Handle a few more VSFilter quirks correctly
275  * Add a sensible default style
276  * Fix compilation against libpng 1.5
277
278 libass (0.9.11)
279  * Fix serious memory leaks
280  * Reduce frame/drawing initialization overhead
281
282 libass (0.9.10)
283  * Basic (incorrect, but working) support for @font vertical text layout
284  * Fix multiple faces per font attachment
285  * charmap selection fixes
286  * Add ass_flush_events API function
287  * Improve fullname font matching
288  * Better PAR correction if text transforms are used
289  * Calculate drawing bounding box like VSFilter
290  * Performance improvements
291    * Cache vector clip masks
292    * Avoid unnecessary glyph copies
293  * Various rendering fixes
294
295 libass (0.9.9)
296  * Parse numbers in a locale-independent way
297  * Remove support for freetype < 2.2.1, fontconfig < 2.4.1; this especially
298    means libass will not extract fonts into the file system anymore
299  * Disable script file size limit
300  * Match fonts against the full name ("name for humans")
301  * Reset clip mode after \iclip
302  * Improve VSFilter compatibility
303  * Update API documentation
304  * A couple of smaller fixes and cleanups
305
306 libass (0.9.8)
307  * Support \q override tag
308  * Support wrap style 1 (i.e. wrap, but do not equalize line lengths)
309  * Support border style 3 (opaque box)
310  * Use the event bounding box (instead of vertical position and height) for
311    collision detection
312  * Embold glyphs if no bold variant is available, but was requested
313  * Modify \fax to be similar to VSFilter
314  * Trim spaces after line wrapping
315  * Fix border/shadow overlap combining in some cases
316  * Disable kerning by default.  Use "Kerning=yes" style override or
317    "Kerning: yes" in [Script Info] to enable it
318  * Slight bitmap handling optimizations
319  * Various bugfixes
320
321 libass (0.9.7)
322  * Build system fixes
323  * Fixed cache lookup and overload problems
324  * All globals have been eliminated, libass is reentrant
325  * Dynamically allocate glyph and line buffers
326  * Fix up stroking of big borders
327  * Support empty lines (\N\N)
328  * Support for the following override tags:
329    \fax, \fay, \xshad, \yshad, \ybord, \xbord, \iclip, \u, \s, \p, \pbo
330  * Full subpixel accuracy for positioning
331  * PAR and rotation correction for EOSD rendering
332  * Drawing mode (including vector \clip and \iclip)
333  * Fixed a few memory leaks
334  * Removed MPlayer compatibility code
335  * Introduced message handling callback
336  * Various fixes to match VSFilter quirks and Windows font metrics
337  * Lots of bugfixes
338
339 LibASS (0.9.6)
340  * Various fixes and updates to match VSFilter renderer.
341  * Support \blur tag and ScaledBordersAndShadow property.
342  * Fractional arguments and subpixel accuracy.
343  * Keep positions when pan-and-scan is used.
344  * Lots of bugfixes and other changes.
345
346 LibASS (0.9.5)
347  * Support '=' and '.' in style name in arguments to ass_set_style_overrides().
348  * Allow overriding [Script Info] parameters with ass_set_style_overrides().
349  * Add workarounds for some buggy fonts.
350  * Remove buggy workarounds for some other fonts.
351  * Fixed ass_set_line_spacing() (was broken before).
352  * Negative margin sizes are now used for image cropping.
353  * Better handling of behind-the-camera objects.
354  * Case insensitive parsing of SSA/ASS section headers.
355  * Improved font matching.
356  * When 2 styles have the same name, the later one is used.
357  * Fixed several other bugs.