Releases: Yahweasel/libav.js
6.8.8.0
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_multito match withff_read_frame_multiby @longnguyen2004 in #86 - Add AVCodecContext->strict_std_compliance, AVCodecContext->pkt_timebase, AVFrame->duration by @Jamie0 in #88
coded_side_datain 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
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
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
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
What's Changed
- Fixed bugs in seeking test
- expose av_seek_frame by @stepancar in #68
- Made
mkreaderdevcreate 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
durationandstart_timetoAVFormatContextexports. - Change
BigIntegertoBigIntby @longnguyen2004 in #69
New Contributors
- @stepancar made their first contribution in #68
Full Changelog: v6.3.7.1...v6.4.7.1
6.3.7.1
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
- @longnguyen2004 made their first contribution in #65
Full Changelog: v6.2.7.1...v6.3.7.1
6.2.7.1
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
Changes:
- Finally added
onread, so that streaming reader devices can use largely the same API as block reader devices. This replaces and deprecatesff_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_baseoption toff_init_decoder - Fixed some TypeScript issues.
Full Changelog: v6.0.7.0.2...v6.1.7.1
6.0.7.0.2
What's Changed
- Updated to FFmpeg 7.
- Reimplemented the CLI support (
ffmpeg()andffprobe()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
CodecParameterstype, for copying codecpars at the JS level. - Updated/corrected some dependency licensing information.
- Switched minifier to terser.
New Contributors
- @dumbmoron made their first contribution in #60
- @wukko made their first contribution in #61
- @aidenlx made their first contribution in #64
Full Changelog: v5.4.6.1.1...v6.0.7.0.2
5.4.6.1.1
This is just a fix to types.
Full Changelog: v5.3.6...v5.4.6.1.1