Skip to content

Releases: Yahweasel/libav.js

4.2.6.0

21 Jul 14:07
Compare
Choose a tag to compare

Yup, another quick-fire post-point-oh release. Two bugfixes:

  • The types file was missing. Oops!
  • libav_dict_free was missing, which affected muxing in some cases.

Neither 4.0.6.0 nor 4.1.6.0 are actually broken in any significant way, they just had a couple missing bits. But, c'est la vie.

4.1.6.0

20 Jul 21:47
Compare
Choose a tag to compare

As is tradition with point-oh releases, this quick point-one release is mostly to fix a small but glaring bug that made it through. libav.js 4.0.6.0 could not be correctly loaded in a worker with noworker set (i.e., in a worker without creating another worker). That is now fixed.

In addition, this removes the "all" configuration from the build (it wasn't supposed to be there), and adds the new "webcodecs" configuration, useful for use with WebCodecs.

Full Changelog: v4.0.6.0...v4.1.6.0

4.0.6.0

19 Jul 12:54
Compare
Choose a tag to compare

What's Changed

Big:

  • Added support for threads!
  • Upgraded ffmpeg to 6.0, and upgraded all other dependencies
  • Added the ffmpeg and ffprobe functions, which are calls to the actual ffmpeg and ffprobe applications, exposing the application interface from libav.js for the first time
  • Added an interface to Emscripten's WorkerFS
  • Exposed the seek interface from libav
  • Added a demo of complete AV decoding
  • Created API documentation in a centralized place (docs/API.md)
  • Added debuggable builds that are not minified
  • Made the build much cleaner by moving temporary files into a build/ directory and building the final result into a dist/ directory

Small:

  • Added support for prores, raw video, and various other formats
  • Made it easier to capture stdout (mainly for ffprobe) by exposing the standard Unix open, close, and dup2.
  • Made the fragment configuration style uniform, so that new formats can be added much more easily
  • Exposed Doxygen comments in the TypeScript type file
  • Added a "block reader" device, useful for exposing seekable read interfaces from JavaScript
  • Extended fragments with their appropriate bitstream filters (bsfs), so that all formats that can be read can be probed
  • Support (thanks @martenrichter) for building in Docker
  • Support (thanks @martenrichter) for bundling libav.js
  • Updated the channels API (thanks @martenrichter) to not use the now-deprecated channels and channel_layout while still exposing their interfaces
  • Completely revamped the test suite
  • Removed ff_calloc_AVCodecParameters in favor of libav's own AVCodecParameters allocator (it is this non-backwards-compatible change that forced a dot-oh release)
  • Made ff_init_muxer more flexible for transmuxing by allowing it to take codecpars instead of codec contexts

Some of the development of this release of libav.js was funded by Descript. Thanks!

New Contributors

Full Changelog: v3.11.5.1.2...v4.0.6.0

3.9.5.1

04 Jan 00:03
Compare
Choose a tag to compare

Minor maintenance release. Adds avcodec_get_name.

3.8.5.1

22 Aug 01:57
Compare
Choose a tag to compare

As well as updating to ffmpeg 5.1, the main improvement of this release is adding a SIMD build. In practice, the SIMD build adds almost nothing to the performance, so it was all a bit pointless. In addition, a few new APIs are exposed.

3.7.5.0.1

09 Jul 13:26
Compare
Choose a tag to compare

Main additions are upgrading to 5.0.1 and adding an openh264-based H.264 encoder (see #5 ). Note that prebuilt .wasm images don't include H.264 encoding, and won't until it's patent-safe.

3.6.4.4.1

24 Nov 21:00
Compare
Choose a tag to compare

This release adds:

  • Support for AV1, through the AOM encoder/decoder. This is really far too slow to use in WebAssembly, but for the sake of completeness, it's there. AV1 is not enabled in any default build.
  • Level and profile options to settable codec context properties.
  • Synchronous versions of all of the functions usable from noworker mode.
  • SAR in CodecContextProperties settable in ff_init_encoder

Note that all of these changes (and indeed, all recent releases) are motivated by libavjs-webcodecs-polyfill.

3.5.4.4.1

19 Nov 00:26
Compare
Choose a tag to compare

This release adds support for the swscale API (only the necessary basics)

With this, I believe libavjs-webcodecs-polyfill can be feature-complete, so there shouldn't be such frequent releases for a while. Maybe.

3.4.4.4

18 Nov 15:10
Compare
Choose a tag to compare

This release just fixes a bug introduced in 3.3.4.4 with non-Worker mode.

3.3.4.4

18 Nov 03:32
Compare
Choose a tag to compare

This release mostly fixes a lot of bugs and missing bits in the typings, but also adds more helper functions for extracting extradata, and corrects the behavior of copyout_* from workers.