Skip to content

Releases: libass/JavascriptSubtitlesOctopus

4.1.0

04 Dec 16:06
Compare
Choose a tag to compare
  • update libass to 0.17.0, notably including support for LayoutRes{X,Y} headers among others
  • fix copyright and licence notices
  • deprecate support for manually decompressing brotli subtitles. Might be fully removed in the next release. See 4.1.0’s README.md for what to use instead.
  • add new wasm-blend rendering mode which is faster than the old default of js-blend
  • change default rendering mode to wasm-blend
  • unify rendering mode options into a renderMode setting. Deprecate lossyRender option, this mode can now be selected via the renderMode option.
  • parse and use embedded fonts
  • add fallbackFont to override the default fallback
  • add lazyFileLoading to opt-in to loading files, in particular fonts, lazily; requires a compatible server configuration
  • add prescaleFactor, prescaleHeightLimit and maxRenderHeight options to control performance-quality trade-offs
  • add dropAllAnimations
  • various bugfixes

Version of included libraries:

  • brotli: 1.0.9
  • libexpat: 2.5.0
  • fontconfig: 2.14.1
  • freetype: 2.12.1
  • fribidi: 1.0.12
  • harfbuzz: 5.3.1
  • libass: 0.17.0

Note: the attached libass-wasm-4.1.0.tgz is the binary release identical to what was uploaded to npm.

4.0.0

22 Mar 19:01
147473f
Compare
Choose a tag to compare

This release include a new Event and Style API, allow manipulation of then at run-time as well all libass API exposed to worker environment.

New functions

Wrapper

  • octopusInstance.createEvent(event)
  • octopusInstance.getEvents() - Print events in console, to get the events, edit this block
  • octopusInstance.setEvent(event, index) - See setStyle
  • octopusInstance.removeEvent()
  • octopusInstance.createStyle(style)
  • octopusInstance.getStyles() - Print Styles in console, to get the styles, edit this block
  • octopusInstance.setStyle(style, index) - it is also possible to set the value of a single property instead of sending all values, eg.: octopusInstance.setStyle({ FontName: "Arial" }, 0) this will only set the font arial to style
  • octopusInstance.removeStyle()

Worker

This most not change at all but now have two new classes, self.octObj - SubtitleOctopus Native Class Wrapper instance, which contains every internal Wasm native functions used by this library and the class libass witch contains every libass public functions.

Native Code

Because of WebIDL, I have switched from C to C++, and now have three files, SubtitleOctopus.cpp (Native Wrapper), libass.cpp (libass Wrapper) and SubOctpInterface.cpp and SubOctpInterface.js - These files are generated by WebIDL bind-gen, from SubtitleOctopus.idl - If you want to modify SubtitleOctopus.cpp and/or libass.cpp you must delete SubOctpInterface.cpp and SubOctpInterface.js and edit SubtitleOctopus.idl.

ASS_Event Object

Property Type
Start Number(Int64)
Duration Number(Int64)
ReadOrder Number
Layer Number
Style Number
Name String
MarginL Number
MarginR Number
MarginV Number
Effect String
Text String

ASS_Style Object

Property Type
Name String
FontName String
FontSize Number
PrimaryColour Number
SecondaryColour Number
OutlineColour Number
BackColour Number
Bold Number
Italic Number
Underline Number
StrikeOut Number
ScaleX Number(Double)
ScaleY Number(Double)
Spacing Number(Double)
Angle Number(Double)
BorderStyle Number
Outline Number(Double)
Shadow Number(Double)
Alignment Number
MarginL Number
MarginR Number
MarginV Number
Encoding Number
treat_fontname_as_pattern Number
Blur Number(Double)
Justify Number

3.0.2

30 Dec 18:15
Compare
Choose a tag to compare
Bump version to 3.0.2

3.0.1

07 Dec 14:44
Compare
Choose a tag to compare

Changelog

  • Add Support for Woff2 font files
  • Add Support for Brotli Compressed Subtitle files (.ass.br)
  • Bug fixes

2.2.0

15 Oct 01:08
Compare
Choose a tag to compare

Changelog

  • Add Suport for Emscripten v1.38.40
  • Fix build script
  • Use CMake to build libexpat

Libraries Version

2.1.0

26 Jun 01:26
Compare
Choose a tag to compare
Version 2.1.0

2.0.1

02 Mar 17:31
Compare
Choose a tag to compare
Version 2.0.1