Skip to content

5.0.6.1.1

Compare
Choose a tag to compare
@Yahweasel Yahweasel released this 01 Mar 02:03
· 10 commits to master since this release

This release is a major overhaul. There's a reason why it's a point-oh release. There were a few changes I'd delayed because they would break backwards compatibility, and this release has them all.

  • The variants are more consistent and useful. Variants with CLI are provided, as well as variants with or without common filters. There should more often be a prebuilt variant that does what you actually need now.
  • SIMD has been removed. It never did anything useful, because the code would need to be customized for WebAssembly SIMD. Emscripten's support for x86 SIMD just isn't sufficient.
  • libav.mjs (i.e., ES6 modules). libav.js is now usable as ES6 modules, which should make bundling easier, and theoretically is also future-facing and useful in some way.
  • The way that libav.js finds itself is now automatic, i.e., it's usually not necessary to set LibAV.base anymore.
  • The old size-guess-based devfile API in packet reading has been removed, and with it, its argument (an incompatible change).
  • The format used by video frames when they're copied out (i.e., Frames) has been completely revamped to be much more similar to WebCodecs's VideoFrames. This is both vastly more efficient and conveniently compatible(ish) with WebCodecs. This is a very backwards-incompatible change (for the zero users doing video with libav.js).
  • Crop information from video frames is now copied to/from Frame objects.
  • Transferring of ArrayBuffers to libav.js is now controllable. It was previously unidirectional (it would be transferred out of libav.js, but not into), but it is now bidirectional. The Frame and Packet objects have optional libavjsTransfer fields to perform these transfers. This is subtly backwards incompatible because libavjsTransfer is set by default, so if you send a Frame or Packet into libav.js, you will now lose it!

Full Changelog: v4.10.6.1.1...v5.0.6.1.1