Releases: Yahweasel/libav.js
4.2.6.0
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
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
What's Changed
Big:
- Added support for threads!
- Upgraded ffmpeg to 6.0, and upgraded all other dependencies
- Added the
ffmpeg
andffprobe
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 adist/
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
, anddup2
. - 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
andchannel_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
- @seflless made their first contribution in #16
- @martenrichter made their first contribution in #22
- @marcello3d made their first contribution in #25
Full Changelog: v3.11.5.1.2...v4.0.6.0
3.9.5.1
3.8.5.1
3.7.5.0.1
3.6.4.4.1
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
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.