2 * Add extern "C" guards to the public headers for C++ compatibility
3 * Improvements to style override API and implementation
5 * Fix some rasterizer bugs of unknown severity
6 * Fix a broken memset() of unknown severity
7 * Make timestamp parsing more lenient, which makes libass accept invalid
8 files accepted by most other ASS parsers
9 * Increase compatibility with broken ASS drawings accepted by VSFilter
12 * Make ASS drawings with an extremely high number of control points work
13 This change increases compatibility with VSFilter.
15 * Fix a crash when using newer harfbuzz versions (GH #155)
16 * Load embedded memory fonts correctly
17 * Large shadow offsets rendered incorrectly (GH #142)
18 * Fix incorrect closing of last drawing contour
19 * Fix issues with undefined behavior in shifts
20 * Lots of of malloc() error checking
23 * Implement fast quad-tree rasterizer in C and SSE2/AVX2 assembly
25 * Add BorderStyle=4 (GH #105)
26 * Add selective style override functionality
27 * ass_set_selective_style_override()
28 * ass_set_selective_style_override_enabled()
29 * Support for assembly on DragonFly BSD
31 * Various parser fixes
32 * Fix premature parser exit on }{ in drawing mode (GH #75)
33 * Reset clipping mode on every rectangle clip
34 * Improved error handling for FriBidi and FreeType (GH #131)
35 * Fix bitmap combining cache
38 * Improve yasm version check
40 * Actually export ass_library_version
41 * Fix change detection with vector clips
42 * SIMD assembly bugfixes
43 * Parse drawing numbers as floats (GH #63)
44 * Fix shaper sign bug (GH #68)
45 * Initialize \pbo correctly (GH #74)
48 * Fix distfile generation
49 * No functional changes
52 * Add bitmap run combining/compositing
53 This changes the text rendering model and increases compatibility with
54 VSFilter. It may make rendering faster or slower in certain cases.
55 * Add AVX/SSE2 implementations for \be and compositing
56 This adds yasm as (optional) build dependency.
57 * Add ass_library_version() API funcion (GC #113)
58 * Add 'profile' program for benchmarks
59 * Improve gaussian blur
60 * Fix compilation with MSVC 2013
61 * Speed up HarfBuzz shaper
63 * Notable compatibility bugfixes
64 * Reset origin on \fay changes (GC #88)
65 * Tons of parser fixes
66 * Fix ascender/descender metrics (GH #8)
67 * Fix \pbo sign and scaling
68 * Don't reset wrap style on \r (GC #116, GH #45)
70 * Correctly handle @font advance (GC #94)
71 * Disable ligatures for non-zero \fsp
72 * Make sure to release vector clip (GH #22)
75 * API additions and some ABI changes, bumped SONAME
76 * Expose header field for VSFilter color mangling (GC #87)
77 * Add functions for explicit scaling hints (GC #6)
78 * Add 'type' field to ASS_Image (GC #31)
79 * Workaround Freetype's font size grid-fitting where appropriate
80 * Apply blur to both glyph and border when using opaque box
82 * Parse angles in style as number
83 * Fix fallback event formats
84 * Make closing ')' optional for some tags
85 * Fix crazy VSFilter behaviour for \move (GC #90)
86 * Make \r fall back to line style (GC #104)
87 * Parse style name like VSFilter
88 * Ignore junk in nested \t tags
89 * Make \clip tag arguments mandatory
90 * Properly handle script and language in the HarfBuzz shaper
91 * Allow ASS_Track and ASS_Renderer to have different ASS_Library
92 * Fix stroking in some rare cases
93 * Correctly handle @font advance (GC #94)
94 * Fix ascent/descent for some fonts (GC #106)
95 * Fix ass_step_sub to not require sorted events
97 * Don't mutate input strings (GC #88)
98 * Remove/change some error messages
99 * Fix various small memory leaks
103 * Add \rSTYLENAME syntax support (GC #43)
104 * Fix border generation and border style reset (GC #56)
105 * Fix various issues with bug-for-bug compatibility of
106 transformations (\fax, \fay, etc.) to VSFilter (GC #46, GC #42)
107 * Fix drawing parsing (GC #47)
108 * Various fixes to shaper (GC #54, GC #55, GC#59)
109 * Fix change detection
110 * Add ass_set_line_position API to set a vertical subtitle offset
111 * Fix scaling of drawing baseline offset (\pbo) values
112 * Fix skipping of zero-width characters for FriBiDi shaper
113 * Use LTR text base direction by default, similar to VSFilter
116 * Bidirectional layout and Arabic shaping via FriBidi (GC #13)
117 * OpenType shaping via HarfBuzz-ng (GC #13)
118 * Add API for shaper configuration
119 * Add support for `Language' Script Info property, this can be used for
120 hinting the text language
121 * Vertical layout improvements
122 * Use `vert' and `vkna' OpenType features for vertical glyph variants
123 * Position rotated glyphs onto baseline
124 * Parse font encoding property for base text direction hinting
125 * Refactor cache system
126 * Use generic outlines in place of FreeType glyphs
127 * Direct outline bitmap rendering
128 * Fix whitespace trimming (GC #35)
129 * Do not render border if there's no shadow or glyph (GC #29)
130 * Adjust spacing after a italic to non-italic style change (GC #37)
132 * Fix x positioning with borders (GC #27)
133 * Build system tweaks
136 * Switch to permissive (ISC) license
137 * Support \fs+ and \fs- syntax for modifying font size
139 * Improved charmap fallback matching
140 * Handle a few more VSFilter quirks correctly
141 * Add a sensible default style
142 * Fix compilation against libpng 1.5
145 * Fix serious memory leaks
146 * Reduce frame/drawing initialization overhead
149 * Basic (incorrect, but working) support for @font vertical text layout
150 * Fix multiple faces per font attachment
151 * charmap selection fixes
152 * Add ass_flush_events API function
153 * Improve fullname font matching
154 * Better PAR correction if text transforms are used
155 * Calculate drawing bounding box like VSFilter
156 * Performance improvements
157 * Cache vector clip masks
158 * Avoid unnecessary glyph copies
159 * Various rendering fixes
162 * Parse numbers in a locale-independent way
163 * Remove support for freetype < 2.2.1, fontconfig < 2.4.1; this especially
164 means libass will not extract fonts into the file system anymore
165 * Disable script file size limit
166 * Match fonts against the full name ("name for humans")
167 * Reset clip mode after \iclip
168 * Improve VSFilter compatibility
169 * Update API documentation
170 * A couple of smaller fixes and cleanups
173 * Support \q override tag
174 * Support wrap style 1 (i.e. wrap, but do not equalize line lengths)
175 * Support border style 3 (opaque box)
176 * Use the event bounding box (instead of vertical position and height) for
178 * Embold glyphs if no bold variant is available, but was requested
179 * Modify \fax to be similar to VSFilter
180 * Trim spaces after line wrapping
181 * Fix border/shadow overlap combining in some cases
182 * Disable kerning by default. Use "Kerning=yes" style override or
183 "Kerning: yes" in [Script Info] to enable it
184 * Slight bitmap handling optimizations
189 * Fixed cache lookup and overload problems
190 * All globals have been eliminated, libass is reentrant
191 * Dynamically allocate glyph and line buffers
192 * Fix up stroking of big borders
193 * Support empty lines (\N\N)
194 * Support for the following override tags:
195 \fax, \fay, \xshad, \yshad, \ybord, \xbord, \iclip, \u, \s, \p, \pbo
196 * Full subpixel accuracy for positioning
197 * PAR and rotation correction for EOSD rendering
198 * Drawing mode (including vector \clip and \iclip)
199 * Fixed a few memory leaks
200 * Removed MPlayer compatibility code
201 * Introduced message handling callback
202 * Various fixes to match VSFilter quirks and Windows font metrics
206 * Various fixes and updates to match VSFilter renderer.
207 * Support \blur tag and ScaledBordersAndShadow property.
208 * Fractional arguments and subpixel accuracy.
209 * Keep positions when pan-and-scan is used.
210 * Lots of bugfixes and other changes.
213 * Support '=' and '.' in style name in arguments to ass_set_style_overrides().
214 * Allow overriding [Script Info] parameters with ass_set_style_overrides().
215 * Add workarounds for some buggy fonts.
216 * Remove buggy workarounds for some other fonts.
217 * Fixed ass_set_line_spacing() (was broken before).
218 * Negative margin sizes are now used for image cropping.
219 * Better handling of behind-the-camera objects.
220 * Case insensitive parsing of SSA/ASS section headers.
221 * Improved font matching.
222 * When 2 styles have the same name, the later one is used.
223 * Fixed several other bugs.