Commit Graph
1356 Commits
Author SHA1 Message Date
Vanilagy b560977b50 Fix empty audio trim range crashing conversion (fixes #486) 2026-09-08 16:19:56 +02:00
David P.andGitHub 8a25743ee8 Negative timestamps (#485)
* Allow negative timestamps in media sources, add negative timestamp support to ISOBMFF muxer

* Add negative timestamp muxing support to Matroska

* Add negative timestamp support to MPEG-TS

* Add negative timestamp roundtrip tests for HLS

* Implement more powerful copy conversions, add conversion copy config, add OutputFormat.negativeTimestampSupport, fix Matroska duration from metadata computation

* Add copy conversion doc section
2026-09-08 15:39:35 +02:00
Vanilagy 36c72e0168 Add copy conversion doc section 2026-09-08 15:32:14 +02:00
Vanilagy a1ba54d337 Implement more powerful copy conversions, add conversion copy config, add OutputFormat.negativeTimestampSupport, fix Matroska duration from metadata computation 2026-09-08 14:42:03 +02:00
Vanilagy c67c5e4072 Bump patch v1.55.7 2026-09-04 22:56:36 +02:00
Vanilagy e1f3b5252b Add negative timestamp roundtrip tests for HLS 2026-09-04 16:07:10 +02:00
Vanilagy 34733015cb Add negative timestamp support to MPEG-TS 2026-09-04 15:27:19 +02:00
Vanilagy 9726b0cb4e Add negative timestamp muxing support to Matroska 2026-09-04 12:17:33 +02:00
Vanilagy 3c94d062d2 Allow negative timestamps in media sources, add negative timestamp support to ISOBMFF muxer 2026-09-04 11:48:50 +02:00
hi.jack2eeandGitHub 6c88763a5c Terminate sample iterators before throwing so late-decoded samples are closed (#484)
for await never calls return() on an iterator whose next() threw, so the
error branches in mediaSamplesInRange / mediaSamplesAtTimestamps left the
iteration un-terminated: the pump's decoder callback kept queueing decoded
samples that no consumer or cleanup path could ever close, orphaning them
until GC ("A VideoSample was garbage collected without first being closed").

Set terminated (and ended, where the pump gates on it) before throwing in
both the InputDisposedError and out-of-band error branches of both sample
generators - samples emitted after the throw are then closed on arrival by
the existing checks in the decoder callbacks.

Observed on iOS Safari when the hardware VideoDecoder dies mid-iteration
("Decoding task did not complete"): 3-14 samples orphaned per failing
iterator; with this change, at most the single sample already in flight
during the error microtask window.
2026-09-04 10:01:18 +02:00
Vanilagy 5954a472fa Remove console.log 2026-09-04 10:00:33 +02:00
Vanilagy 6319bf2eee Bump patch v1.55.6 2026-09-03 10:48:32 +02:00
Vanilagy 5ffb5a0979 Add sponsor 2026-09-03 10:48:03 +02:00
Vanilagy cf2edfada2 Relax audio track assert for esds box (fixes #481) 2026-09-02 09:32:06 +02:00
Vanilagy a97e9800d2 Bump patch v1.55.5 2026-08-31 14:11:25 +02:00
Vanilagy 23f5e96afd Rely not only on FinalizationRegistry 2026-08-31 14:05:33 +02:00
Vanilagy 9e203c0c8a Manually close file readers to avoid indefinite memory leak (fixes #144) 2026-08-31 13:44:58 +02:00
Vanilagy dec669163f Add reliable AudioSample.copyTo() fallback for unsupported destination formats (fixes #479) 2026-08-30 12:49:22 +02:00
Vanilagy e16b01a4c6 Fix Infinity not being allowed where it should be (fixes #478) 2026-08-30 12:19:25 +02:00
Vanilagy 398d172152 Bump patch v1.55.4 2026-08-29 20:11:58 +02:00
Vanilagy da18ceeb24 Add smpte170m vp9 test for CI stability, add missing VP9 color spaces in parser 2026-08-29 20:08:57 +02:00
Vanilagy 3c4c2a459c Remove Chromium version check 2026-08-29 19:53:42 +02:00
Vanilagy 7d1eb5b063 Fall back to color space information from bitstream, fill missing color space fields when passing it to Chromium's VideoDecoder, fix AV1 Sequence Header OBU parsing, fix vpcC box generation, still mux partial color space info into container (fixes #474, closes #475) 2026-08-29 19:48:20 +02:00
Vanilagy 42196e9f64 Add proper non-null check 2026-08-28 15:11:31 +02:00
Vanilagy 16f8889e14 Bump patch v1.55.3 2026-08-26 13:44:21 +02:00
Vanilagy d44253c7d3 Fix incomplete parsing and generation of AacAudioSpecificConfig (fixes #471) 2026-08-26 13:40:14 +02:00
Vanilagy c10f93ab8c Recognize fMP4 segments starting with an emsg box (or similar) (fixes #473) 2026-08-26 11:59:22 +02:00
Vanilagy 14fb7d0119 Add ducktyped Promise checks (fixes #472) 2026-08-26 11:24:24 +02:00
0f9dc1f91b Fix tenc fallback for encrypted ISOBMFF files (#470)
* fix tenc fallback

* Add test case

---------

Co-authored-by: Vanilagy <[email protected]>
2026-08-24 14:12:04 +02:00
Vanilagy 394eede178 Bump patch v1.55.2 2026-08-21 20:14:58 +02:00
Vanilagy 6b5ae29252 Add Annex B in MP4 test 2026-08-21 20:12:50 +02:00
Vanilagy 656c7e70a8 Merge branch 'main' of https://github.com/Vanilagy/mediabunny 2026-08-21 20:06:29 +02:00
Vanilagy 3c4f4c27a3 Slightly restructure code 2026-08-21 20:06:28 +02:00
Vanilagy 166298df2c Make WebCodecs missing error message more helpful (fixes #466) 2026-08-20 23:22:28 +02:00
Jasmine Minter fdfab4660f Support missing or empty avcC chunk 2026-08-20 13:28:50 +10:00
Vanilagy 1c4d1c70a8 Prevent warning from being emitted in CI 2026-08-17 18:55:15 +02:00
Vanilagy 018c2ca67b Bump patch v1.55.1 2026-08-17 18:40:58 +02:00
Vanilagy 1d53e12f28 Bump minor v1.55.0 2026-08-17 18:22:16 +02:00
David P.andGitHub 972215e738 Merge pull request #462 from Vanilagy/dts
Full DTS read/write support + @mediabunny/dts extension package
2026-08-17 14:03:04 +02:00
Vanilagy 6d9a65a2aa Address transcode forced by trimming in docs (closes #464) 2026-08-17 11:25:52 +02:00
Vanilagy 77c78b6c02 Fix linting errors 2026-08-15 17:55:54 +02:00
Vanilagy e8162f483f Add @mediabunny/dts extension package 2026-08-15 17:50:47 +02:00
Vanilagy 914907b5db Define DTS codec, add muxing and demuxing support across ISOBMFF, Matroska, and MPEG-TS, add DTS encode/decode support to @mediabunny/server 2026-08-15 16:19:12 +02:00
Vanilagy ae66f01566 Clarify Conversion API codec field default 2026-08-14 11:54:43 +02:00
Vanilagy 6a87647d67 Bump minor v1.54.0 2026-08-14 11:24:03 +02:00
Vanilagy d6fdf5748d Add sponsor 2026-08-14 11:23:43 +02:00
David P.andGitHub b293ea1e79 Merge pull request #461 from Vanilagy/frame-rate
Add computeFrameRateMetrics and heuristics to determine a video's true frame rate
2026-08-14 11:17:08 +02:00
Vanilagy 39f49de96d Add explanatory doc comment 2026-08-14 11:15:25 +02:00
Vanilagy 9acc97da7a Bump patch v1.53.1 2026-08-12 16:13:43 +02:00
Vanilagy dc068a0aa8 Add computeFrameRateMetrics and heuristics to determine a video's true frame rate 2026-08-12 16:10:28 +02:00