Vanilagy
95e9dc5210
MORE CODE REVIEW
2026-04-16 18:27:51 +02:00
Vanilagy
b85ecd3109
Code review fixes
2026-04-16 17:43:12 +02:00
Vanilagy
56b25fbdf8
Add onSegmentPopped, add more tests, improve validation, improve M3U8 grammar
2026-04-16 14:48:57 +02:00
Vanilagy
f99adf2208
Optimize media tag codec parsing, add a test for it, extract tag strings into constants
2026-04-16 11:31:43 +02:00
Vanilagy
2d0aac3208
Fix HLS demuxer parsing bug, extract HLS mime type out, add TargetRequest.mimeType
2026-04-16 10:53:36 +02:00
Vanilagy
8241820a4f
Remove unnecessary sync getters
2026-04-15 09:16:40 +02:00
Vanilagy
d9f12c0c7a
PLEASE BE FIXED
2026-04-14 21:49:15 +02:00
Vanilagy
a3767af141
Fix HLS muxer audio segmentation bug, fix conversion tests failing in CI
2026-04-14 21:40:07 +02:00
Vanilagy
6410ea9f42
Make Conversion API copy input pairability graph by default, fix HLS muxer rotation bug, remove onfinalized callback
2026-04-14 21:14:58 +02:00
Vanilagy
e8ba0544d1
Unexpected .only modifier
2026-04-14 16:29:19 +02:00
Vanilagy
2f576aa486
Add fan-out API to Conversion API, fix erroneous track count validation
2026-04-14 16:27:02 +02:00
Vanilagy
c6e505a6fe
Make default keyFrameInterval 2 seconds to align with default HLS segment duration
2026-04-13 17:47:48 +02:00
Vanilagy
2a2b6450c9
Add better doc blocks, special deprecated logic for API doc generation, add multi-tiered SegmentedInput hydration for reducing file request count, ditch VirtualInputFormat indirection
2026-04-13 17:25:46 +02:00
Vanilagy
051578c2ca
Remove input track descriptors, add async getters on tracks for everything, deprecate old sync getters
2026-04-10 16:23:17 +02:00
Vanilagy
aa810fc433
Fix SourceRef race conditions, fix "source" and "target" getter returning unused instances, add missing validation, make "getDurationFromMetadata" only exist on tracks, fix examples, expand media player to support live playback, change the signatures of some Input APIs
2026-04-10 13:38:14 +02:00
Vanilagy
0813bcab28
Add missing doc blocks for everything, add PathedTarget and PathedSource, few other changes & fixes
2026-04-09 15:22:45 +02:00
Vanilagy
fdb5f4102f
Add new createInputFrom helper function
2026-04-08 14:52:27 +02:00
Vanilagy
bee1518100
Add TrackDescriptor concept
2026-04-08 12:21:08 +02:00
Vanilagy
3c0a6fc299
Fix failing tests, add missing license headers
2026-04-01 16:39:42 +02:00
Vanilagy
b86e527dc6
Add audio resampling, remixing and processing options to AudioEncodingConfig, small AudioResampler adjustments, add more tests
2026-04-01 15:46:02 +02:00
Vanilagy
1c08589021
Add "force" transform option, formalize that transformations bake in rotation
2026-04-01 14:34:05 +02:00
Vanilagy
024660773b
Add video frame preprocessing to VideoEncodingConfig & VideoEncoderWrapper
2026-04-01 13:30:34 +02:00
Vanilagy
3400b3ac12
Add maxLiveSegmentCount HLS option
2026-03-31 17:58:02 +02:00
Vanilagy
340b5eede7
Add support for writing Unix epoch-relative tracks to HLS, add proper cleanup of all Targets obtained by an Output
2026-03-31 15:12:38 +02:00
Vanilagy
b06e407d65
Add HLS live mode
2026-03-31 14:13:00 +02:00
Vanilagy
3bcbcc13f0
Add CMAF format and CMAF/init segment support to HLS muxer
2026-03-30 17:06:57 +02:00
Vanilagy
94678dd356
Add support for writing I-frame only tracks, fix track closing race conditions in other muxers
2026-03-27 18:48:27 +01:00
Vanilagy
e2e8aaab78
Refactor Target and Writer, add single-file HLS writing mode
2026-03-27 18:07:26 +01:00
Vanilagy
b8044cfa07
Add more segmentation tests
2026-03-27 14:27:30 +01:00
Vanilagy
17fac170c1
Add some HLS events, add configurable target duration, add public-API OutputTrack
2026-03-27 13:37:14 +01:00
Vanilagy
5bc1a31b8e
Rewrite HLS segmentation algo AGAIN, add a bunch of HLS segmentation tests, add VideoEncoder/AudioEncoder timing refinement logic, fix HLS output spec violations
2026-03-26 16:23:07 +01:00
Vanilagy
157582498f
Remove InputTrack.groupId, hide pairing mask, change HLS track merging behavior
2026-03-24 21:54:00 +01:00
Vanilagy
3e87d747e6
Add HLS master playlist generation, add multi-playlistadd output track grouping, add multi-playlist HLS files, add configurable playlist and segment names, add TrackDisposition.primary
2026-03-24 15:53:21 +01:00
Vanilagy
c91718cdba
Add SourceRef system to keep track of used Sources ( fixes #332 )
2026-03-20 14:46:12 +01:00
Vanilagy
587e98391e
Merge branch 'main' into hls
2026-03-19 16:52:00 +01:00
31d86331ec
FLAC: Add appendOnly option for FlaxMuxer, fix FlacDemuxer reading it ( #325 )
...
* implement in FlacOutputFormatOptions
* implement in flac-muxer.ts
* Fix demuxer: Handle minimumFrameSize = 0, maxiumFrameSize = 0
* add a test
* Update flac-demuxer.ts
* Update flac.test.ts
* clean up comments for minima and maxima
* Add FlacOutputFormatOptions.appendOnly to docs
---------
Co-authored-by: Vanilagy <[email protected] >
2026-03-19 13:43:28 +00:00
Vanilagy
0d50526ff6
Fix incorrectly-written video rotation metadata even when rotation is baked into the video ( fixes #329 )
2026-03-19 14:25:40 +01:00
Vanilagy
e693765d23
Fix failing test
2026-03-19 12:33:27 +01:00
Vanilagy
1da96f6d69
Add displayAspectWidth/displayAspectHeight only when they are necessary
2026-03-19 12:25:19 +01:00
Vanilagy
a9a455e132
Add metadata-based duration retrieval
2026-03-13 17:03:36 +01:00
Vanilagy
e8df451bf5
Add support for live HLS streams, add playlist refresh logic, add live input tracks
2026-03-12 15:54:19 +01:00
Vanilagy
ff523c01c8
Add HLS reading tests, InputTrack.hasOnlyKeyPackets, faster whole-file reading
2026-03-10 13:32:52 +01:00
Vanilagy
22716b1f83
Merge branch 'main' into hls
2026-03-06 10:59:24 +01:00
6a11a1302c
Fix CTS=0 in fragmented fMP4 with multiple tracks ( #317 )
...
* Fix CTS=0 in fragmented fMP4 with multiple tracks
When muxing fragmented MP4 with both video and audio tracks,
compositionTimeOffset (CTS) was zero for all video samples, causing
B-frame content to display in decode order instead of presentation
order (visible judder).
Root cause: During finalize(), interleaveSamples(true) triggers
finalizeFragment() via the cross-track keyframe check in
addSampleToTrack. This writes the trun box before processTimestamps
has computed correct decodeTimestamp values, so CTS = PTS - DTS = 0.
Fix: Call processTimestamps() for all tracks at the start of
finalizeFragment(). This is safe because processTimestamps is a no-op
when the timestampProcessingQueue is empty.
Video-only fragmented muxing was unaffected because the single-track
case never triggers the cross-track keyframe check during
interleaveSamples.
Co-Authored-By: Claude Opus 4.6 <[email protected] >
* Fix the problem at the actual root
* Oopsie doopsie
---------
Co-authored-by: Claude Opus 4.6 <[email protected] >
Co-authored-by: Vanilagy <[email protected] >
2026-03-06 09:56:53 +00:00
Vanilagy
fa4a0b4806
Merge branch 'main' into hls
2026-03-04 21:49:51 +01:00
Vanilagy
a15283eaa3
Add @mediabunny/flac-encoder extension, clean up some other code, fix incorrect top-level tsconfig
2026-03-04 21:21:52 +01:00
Vanilagy
365469e64e
Merge branch 'main' into hls
2026-03-04 17:33:16 +01:00
Vanilagy
e18da824ce
Make test more resilient
2026-03-04 17:12:40 +01:00
Vanilagy
c4398fb88c
Add @mediabunny/aac-encoder extension package
2026-03-04 17:05:34 +01:00
Vanilagy
b0604150c1
Merge branch 'main' into hls
2026-02-26 15:53:46 +01:00