Skip to content

@astiob astiob released this Oct 27, 2020 · 15 commits to master since this release

Boo! Three long years in the making due to large internal changes, this long-awaited release brings bug fixes, speed, and a new mechanism for opting into VSFilter-incompatible features:

  • Fix backwards/VSFilter-incompatible font sizes with FreeType 2.10+
  • Improve speed via better caching
  • Require HarfBuzz unconditionally to ensure good shaping for complex scripts
  • ass_set_use_margins(true) now simply places text on the whole screen instead of attempting to tie it to video positioning (set by the margin values) and failing in various ways when margins are used to implement pan & scan in a video player
  • Add ass_track_set_feature() & catch-all ASS_FEATURE_INCOMPATIBLE_EXTENSIONS
  • Add ASS_FEATURE_BIDI_BRACKETS to enable Unicode 6.3+ bracket matching when applying the Unicode Bidirectional Algorithm (incompatible with VSFilter; requires libass built with FriBidi 1.0+)
  • Fix stack overflow on deeply nested \t tags
  • Fix positioning of events with leading line breaks
  • Fix small but nonzero \bord becoming \bord0 (regression in 0.14.0)
  • Measure BorderStyle=4 box padding from glyph border, not from glyph fill
  • Scale everything from script resolution if storage size is not set (including borders and shadows regardless of ScaledBorderAndShadow)
  • Fix the default aspect ratio calculation when neither ass_set_pixel_aspect() nor ass_set_aspect_ratio() is called
  • Multiple fixes for karaoke override tags
  • Handle memory allocation failures better: avoid some crashes and produce images closer to truth
  • Avoid some integer overflows
  • Add internal infrastructure for regression testing
  • Improve VSFilter compatibility:
    • Treat invalid nested \t tags like VSFilter
    • Make \t(T,T,...) at time exactly T use the post-transition values
    • Make lines stack more like they do in VSFilter
    • Default ScaledBorderAndShadow to 0 (like VSFilter), except for subtitles that were produced by old FFmpeg/Libav
    • Make shadow positioning with 3D transforms match VSFilter’s
    • Cut out glyphs from border & shadow in all the same cases as VSFilter
    • Match VSFilter on animated color tags with negative acceleration
    • Fix parsing of some files that VSFilter accepts but libass didn’t by ignoring leading whitespace in each line of an ASS file or CodecPrivate
    • Improve font selection with CoreText
    • Stop faux-bolding fonts that are too bold to get faux bold in VSFilter
    • Ignore leading/trailing spaces when calculating height of nonblank lines
    • Match VSFilter on \fade with large alpha value arguments
    • Stop splitting bitmaps on font substitution
    • Multiple fixes for Banner and Scroll effects
    • Multiple fixes for karaoke override tags
Assets 4

@astiob astiob released this Oct 31, 2017 · 202 commits to master since this release

  • Brand new, faster and better outline stroker (replaces FreeType stroker)
  • Remove option to use the FreeType rasterizer
  • Fix spots of missing border around self-intersecting shapes
  • Switch from Yasm to NASM for building hand-written assembler code
  • Support Core Text font provider on Mac OS X 10.6 and 10.7
  • Clear font cache in ass_set_fonts(). This fixes potentially incorrect font choices and an occasional crash if this function is called midway through rendering a file.
Assets 4

@grigorig grigorig released this Jun 3, 2017 · 236 commits to master since this release

  • Fix invalid memory accesses with BorderStyle=4
  • Fix change detection bug on frame resizes
  • Fix cache bugs with border size
  • Reduce precision of border width in font outline caching
  • Don't treat :;<=>? as hexadecimal digits in color headers
  • Fix parsing of unusual Alignment values in ASS style definitions
  • Fix potential truncation in timestamp parsing
  • Treat negative PlayResX/PlayResY like VSFilter
  • Fixes to parsing of embedded fonts
  • Remove arbitrary bitmap limit (fixes issues with subtitle rendering at 4K)
  • Allow using shadow offset to adjust size of background with BorderStyle=4
  • Fix TrueType/OpenType font collection handling with the DirectWrite backend
Assets 4

@astiob astiob released this Jan 3, 2017 · 266 commits to master since this release

  • Add Justify style override that changes text justification
    (left/right/center) without affecting event positioning.
    This breaks ABI compatibility with prior releases.
  • Fix ass_set_cache_limits() to affect total bitmap cache size
    including composite bitmap cache.
  • Number parsing fixes
    • Fix illegal read when parsing some numbers in scientific notation
      with huge exponents.
    • Correctly evaluate numbers in scientific notation with large exponents.
    • Correctly evaluate numbers with many leading zeros.
  • Bug fixes found with fuzzing
    • Fix a small memory leak in the parser.
    • Fix illegal read in the parser on specially crafted input with \t tags.

Note: this is functionally equivalent to release 0.13.5, but the libtool version number has been increased to account for the ABI break.

Assets 4

@astiob astiob released this Jan 3, 2017 · 267 commits to master since this release

Do not use this release. This release breaks ABI compatibility, but the libtool version number does not reflect this. Instead, use 0.13.6, which bumps the libtool version number. If you rather need ABI compatibility with releases 0.10.2 to 0.13.4, use 0.13.4.

See the change log for release 0.13.6.

Assets 4

@grigorig grigorig released this Oct 4, 2016 · 281 commits to master since this release

  • Bug fixes found with fuzzing
    • Fix memory reallocation in the shaper. (CVE-2016-7972)
    • Fix two small memory leaks in the parser and test program.
    • Fix illegal read in Gaussian blur coefficient calculations. (CVE-2016-7970)
    • Fix mode 0/3 line wrapping equalization in specific cases which could
      result in illegal reads while laying out and shaping text. (CVE-2016-7969)
Assets 4

@grigorig grigorig released this Sep 24, 2016 · 290 commits to master since this release

  • Improve compatibility/portablility of build system,
    should fix e.g. compilation on Solaris.
  • Fix memory leak in DirectWrite font provider.
  • Fix the rasterizer when rendering some large outlines.
  • Remove hack that forced RTL base direction depending on font encoding.
  • Greatly improve the internal caches with refcounting and gradual clearing.
Assets 4

@astiob astiob released this Feb 20, 2016 · 313 commits to master since this release

  • Add ass_set_check_readorder() API function to disable use of the ReadOrder field for duplicate checking in ass_process_chunk().
  • ass_step_sub(track, now, 0) now finds the start of the subtitle at now.
  • Bug fixes:
    • Fix an issue with the new duplicate checking, which could lead to missing subtitles after seeking.
    • Fix a crash with Core Text under specific circumstances.
Assets 4

@astiob astiob released this Dec 1, 2015

  • Much faster duplicate event check in ass_process_chunk. This can
    bring a large speedup for embedded subtitles with lots of events.
    To make this possible, it is now forbidden to combine calls to
    ass_process_chunk with any other method of manipulating the event
    list, namely, manual manipulation and calls to ass_process_data,
    ass_read_memory and ass_read_file.
  • Interpret negative timestamp components as actual negative numbers.
    This change increases compatibility with VSFilter.
  • Font matching changes for VSFilter compatibility
    • Look up fonts that contain PostScript outlines by their PostScript
      name instead of their full names. Family names continue to be used
      for all fonts.
    • Keep spaces in font names
  • Drop support for Fontconfig < 2.10.92 to ensure correct font matching
  • Bug fixes
    • Fix building the assembler code for the x32 ABI (GH #200)
    • Fix static linking against libass through pkg-config when libass
      uses libiconv
    • Fix some small memory leaks, potential crashes and bad data uses

In this release only, an old version of GNU Libtool is used in the release tarball, leading to problems building shared libraries for Windows. This is fixed in 0.13.2. This does not affect building from Git.

Assets 4

tagged Oct 3, 2015 · 354 commits to master since this release

  • Add native font selection backends for OSX (CoreText) and Windows
    (DirectWrite). You can now run libass without fontconfig on these
    platforms. This fixes problems with fontconfig behaving badly on
    these platforms (it could take minutes to scan all system fonts).
    Even on Linux, this speeds up loading of embedded fonts (such as
    provided by ass_add_font()).
    The DirectWrite backend only works on Windows Vista and later. On
    XP, fontconfig is still needed. libass can be compiled with both
    DirectWrite and fontconfig, and then it will fallback to fontconfig
    automatically if DirectWrite is not available at runtime.
  • Add ass_get_available_font_providers() API function.
  • Change the 4th parameter of ass_set_fonts(). This now selects the
    font provider. This is somewhat backwards compatible with the old
    behavior, but if you ever passed values other than 0 or 1, your
    application might break with this libass release.
  • The ass_fonts_update() function now does nothing. It's kept for
    backward compatibility only.
  • Much faster gaussian blur. This can bring a large speedup with big
    blurred signs and such.
  • Drop ENCA support
  • Bug fixes
    • Fix compilation of the freetype rasterizer (disabled by default)
    • Fix rendering with some cases of consecutive line breaks (\N\N).
    • Fix some memory allocation failure checks
    • Avoid system locale dependent behavior by reinventing some standard
      C functions
    • Fix rendering errors with strikes (GH #193)
    • MSVC compilation fixes
Assets 4
You can’t perform that action at this time.