Skip to content

Releases: Yahweasel/libav.js

5.1.6.1.1

02 Mar 13:36
Compare
Choose a tag to compare

As is ever the case, it isn't possible to make a point-oh release without missing something crucial.

This release corrects copyout_frame_video_imagedata, which was 100% broken in 5.0.6.1.1.

Full Changelog: v5.0.6.1.1...v5.1.6.1.1

5.0.6.1.1

01 Mar 02:03
Compare
Choose a tag to compare

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

4.10.6.1.1

16 Feb 18:45
Compare
Choose a tag to compare

Changes:

  • Now has actual video filters. I added the video filtering framework, but no video filters. Whoops ^^´
  • Fixing the test suite to, uhh, work (by breaking something else)

Full Changelog: v4.9.6.1.1...v4.10.6.1.1

4.9.6.1.1

16 Feb 13:33
Compare
Choose a tag to compare

What's Changed

  • Support for video filters in the high-level ff_init_filter_graph API. It was previously possible to do video filtering with the low-level API, but not the high-level API.
  • Fix LibAV() overload for typescript. by @reinhrst in #43
  • Many small type-related changes.
  • Updated versions of all dependencies, including updating FFmpeg to 6.1.1.
  • New publication method to NPM including a @libav.js namespace.
  • Small fixes to block reader devices.

Full Changelog: v4.8.6.0.1...v4.9.6.1.1

4.8.6.0.1

12 Dec 23:09
Compare
Choose a tag to compare

What's Changed

  • Support for building with older versions of FFmpeg (note: only in source, no older builds are provided)
  • Conversion functions from the hi/lo pairs that are used for 64-bit values in libav.js to 64-bit floats and BigInts
  • Duplicated static properties (e.g. libav.EAGAIN) to the LibAV object itself, so that you can get constants like EAGAIN without an instance. This also applies to the hi/lo conversion functions above.
  • Add AV_PKT_FLAG_* constants by @reinhrst in #44

Full Changelog: v4.7.6.0.1...v4.8.6.0.1

4.7.6.0.1

06 Dec 15:15
Compare
Choose a tag to compare

What's Changed

  • Updated component versions
  • Added more image formats (e.g. image_png_pipe) to tests
  • Made the MP4 muxer configuration more general, since just exposing the ipod muxer causes confusion
  • Added av_log functions
  • Bugfix/js functions use single pointer options by @reinhrst in #36
  • add loglevel constants to types.d.ts by @reinhrst in #40
  • Fix types for ff_*_multi() copyout overloads by @reinhrst in #41

New Contributors

Full Changelog: v4.6.6.0...v4.7.6.0.1

4.6.6.0

10 Nov 18:49
Compare
Choose a tag to compare

What's Changed

  • Added the jsfetch "protocol", which uses W3C fetch (JavaScript's fetch function) as its backend, and with it, support for HLS.
  • Added a writer filesystem, which supports things like writing HLS or other segmented formats, redirecting all written files to onwrite.
  • Added the ability to copy out image frames in packed formats and directly as ImageData, to avoid excess copying. Also includes supports for "copying" out pointers, so that no actual data is copied to the host.
  • Added ff_decode_filter_multi, for decoding and filtering in one metafunction.
  • Adding support for loading a different variant than the one the frontend was compiled for. This enables things like using one variant to determine which codecs are used, then loading another variant to actually read data.
  • Added png support (zlib).
  • Improved Worker performance by transferring instead of duplicating data that is returned from libav.js functions through the Worker.
  • Added an install rule to aid using libav.js from C code.
  • Added tools/ffmpeg.js and tools/ffprobe.js to test libav.js directly using an ffmpeg-like and ffprobe-like interface.
  • Switched the build to a much more robust dependencies system that integrates with Make correctly.
  • Bug fixes and type fixes.

Full Changelog: v4.5.6.0...v4.6.6.0

4.5.6.0

27 Aug 21:26
Compare
Choose a tag to compare
  • Fixed loading in a worker in Safari. This is quite a critical fix, as every version since 4.0 has been affected (but only on Safari and only when loading in worker mode).
  • Exceptions can now pass through onblockread, through the worker, so that client code can receive a meaningful exception instead of a meaningless failure.

Full Changelog: v4.4.6.0...v4.5.6.0

4.4.6.0

22 Aug 18:27
Compare
Choose a tag to compare

The only additions in this release are accessors for AVCodecDescriptors and more POSIX errno constants.

4.3.6.0

21 Jul 15:10
Compare
Choose a tag to compare
v4.3.6.0

Release 4.3.6.0