Skip to content

Releases: Yahweasel/libav.js

6.8.8.0

02 Sep 02:42

Choose a tag to compare

What's Changed

  • Moved to FFmpeg 8.0.
  • Add the bitstream filter (bsf) functions.
  • Add support for AVCodecContext compression_level used by FLAC encoder by @Jamie0 in #84
  • Add getters and setters for AVBSFContext, modify ff_bsf_multi to match with ff_read_frame_multi by @longnguyen2004 in #86
  • Add AVCodecContext->strict_std_compliance, AVCodecContext->pkt_timebase, AVFrame->duration by @Jamie0 in #88
  • coded_side_data in Codecpar by @Yahweasel in #90
  • feat(*): range header support by @stepancar in #91

Full Changelog: v6.7.7.1.1...v6.8.8.0

v6.7.7.1.1

17 Jun 00:52

Choose a tag to compare

What's Changed

Only one very small change, but it's an important change to modular builds: all failed loads now correctly propagate exceptions or promise rejections. Previously, some cases were silently dropped.

Full Changelog: v6.6.7.1.1...v6.7.7.1.1

6.6.7.1.1

13 Jun 20:15

Choose a tag to compare

What's Changed

  • Support for recent emsdks (≥4, ≥4.0.7)
  • Support for modular builds, which exclude extraneous libraries and provide exactly enough to demux or decode one codec
  • Fix adts fragment incorrect file name, and also support emsdk 4.0.7 by @Jamie0 in #81

New Contributors

Full Changelog: v6.5.7.1...v6.6.7.1.1

6.5.7.1

19 Dec 17:18

Choose a tag to compare

Changes

  • Added avcodec_flush_buffers
  • Added accessors to unify the various ways of encoding channels and channel layouts.
  • Created a types-only package, @libav.js/types, which should be much smaller than the full variants and will cut down on multi-variant madness.
  • Corrected timebase calculation in ff_filter_multi.
  • Corrected several typos that broke or diminished features in unusual loading modes.

Full Changelog: v6.4.7.1...v6.5.7.1

6.4.7.1

27 Oct 18:49

Choose a tag to compare

What's Changed

  • Fixed bugs in seeking test
  • expose av_seek_frame by @stepancar in #68
  • Made mkreaderdev create a fresh buffer, so that any previous EOF doesn't persist.
  • Fixes around TypeScript + ES6 + default export nonsense that should make libav.js import better in Node.
  • Added duration and start_time to AVFormatContext exports.
  • Change BigInteger to BigInt by @longnguyen2004 in #69

New Contributors

Full Changelog: v6.3.7.1...v6.4.7.1

6.3.7.1

19 Oct 13:31

Choose a tag to compare

What's Changed

  • Fixed files in the CLI in the threaded version. Files never worked from a thread, but the CLI used to do the actual file access in the main thread. Now it does again (by just not using threads, even in the threaded version; the threads will come from the codecs and filters, not the frontend).
  • Fixed some similar threading issues that were breaking certain tests in the threaded build.
  • Can now build with emsdk ≥ 3.1.65. Previously versions after 3.1.50 were blocked due to a bug that caused libvpx to generate incorrect code. emsdk has evidently fixed that.
  • Throw exceptions on OOM writes. libav's code is not very resilient against running out of memory while writing to a file, and if that happens, it has strange effects. Rather than trying to make the existing code more resilient, I just used JavaScript-level exceptions to break out in that case.
  • A few header changes, mainly exposing the emsdk version (now that it's unfixed).
  • Fix broken type exports by @longnguyen2004 in #65

New Contributors

Full Changelog: v6.2.7.1...v6.3.7.1

6.2.7.1

12 Oct 14:26

Choose a tag to compare

Note: The flurry of releases recently (after 6.0.7.0.1, which was pretty major) are all just fixing bugs in a feature which I believe to be rarely used, the non-copyout copyout functions (copying out as pointers), and more specifically its interaction with timebases. I'm working on a separate tool that uses this feature and finding that I never got its interaction with timebases right, so I'm fixing it now.

Changes:

  • When writing to a muxer using packets copied out as pointers, timebases are preserved correctly.
  • When reading from a filter using packets copied out as pointers, timebases are preserved correctly.

Full Changelog: v6.1.7.1...v6.2.7.1

6.1.7.1

10 Oct 13:47

Choose a tag to compare

Changes:

  • Finally added onread, so that streaming reader devices can use largely the same API as block reader devices. This replaces and deprecates ff_reader_dev_waiting.
  • Added float32 to wav builds. It's particularly useful on the web, where all web audio interfaces use floats, and costs nothing.
  • Bumped FFmpeg version to 7.1.
  • Work on making time bases more consistent, particularly when using non-copying "ptr" modes. This should make it easier to keep times consistent through chains of steps.
  • Added the time_base option to ff_init_decoder
  • Fixed some TypeScript issues.

Full Changelog: v6.0.7.0.2...v6.1.7.1

6.0.7.0.2

29 Sep 01:13

Choose a tag to compare

What's Changed

  • Updated to FFmpeg 7.
  • Reimplemented the CLI support (ffmpeg() and ffprobe() functions) to use the modern (threaded) version, even on non-threaded platforms, by implementing pseudo-threads with emfiberthreads.
  • Added support for writing to FileSystemFileHandles.
  • fixes for threaded libav.js when building with newer emsdk by @dumbmoron in #60
  • Add missing type for unlinkreadaheadfile() function by @wukko in #61
  • explictly define type for each export by @aidenlx in #64
  • Compatibility fixes with newer and older emsdk versions.
  • Added a JavaScript CodecParameters type, for copying codecpars at the JS level.
  • Updated/corrected some dependency licensing information.
  • Switched minifier to terser.

New Contributors

Full Changelog: v5.4.6.1.1...v6.0.7.0.2

5.4.6.1.1

20 Jun 14:16

Choose a tag to compare

This is just a fix to types.

Full Changelog: v5.3.6...v5.4.6.1.1