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
7d053ae50d
Add ConversionOptions.tracks, add better converstion start timestamp computation, optimize endPacket logic, utilize metadata duration for progress callback for better performance
2026-04-08 17:07:02 +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
b532714926
Merge branch 'main' into hls
2026-04-01 17:20:46 +02:00
Vanilagy
3c0a6fc299
Fix failing tests, add missing license headers
2026-04-01 16:39:42 +02:00
Vanilagy
5bba924ce5
Add PacketRetrievalOptions to decoded media sinks, allowing configuration of skipLiveWait ( fixes #342 )
2026-04-01 16:20:56 +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
6b677291cd
Fix HLS muxer spec violations
2026-03-30 18:03:10 +02:00
Vanilagy
3bcbcc13f0
Add CMAF format and CMAF/init segment support to HLS muxer
2026-03-30 17:06:57 +02:00
Vanilagy
7b70756961
Remove superfluous end pos seeks, fix validation bug
2026-03-27 21:29:47 +01: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
e03bb21c8a
Fixed missing default values in Matroska demuxer ( fixes #335 )
2026-03-23 11:02:08 +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
Vanilagy
92c7831cf4
Fix incorrect reading of PAT
2026-03-19 16:06:55 +01:00
Vanilagy
9e9240dfc3
Merge branch 'main' of https://github.com/Vanilagy/mediabunny
2026-03-19 15:08:30 +01:00
Vanilagy
fd39084e88
Simplify/fix 3d matrix rotation extraction ( #330 )
2026-03-19 15:08:29 +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
1da96f6d69
Add displayAspectWidth/displayAspectHeight only when they are necessary
2026-03-19 12:25:19 +01:00
Vanilagy
dd8621b6d5
Start work on HlsOutputFormat
2026-03-17 15:25:06 +01:00
Vanilagy
e42fc85f19
Merge branch 'main' into hls
2026-03-13 17:07:31 +01:00
Vanilagy
a9a455e132
Add metadata-based duration retrieval
2026-03-13 17:03:36 +01:00
Vanilagy
35e16ca23e
Fix incorrect GOP timestamp verification logic for first GOP ( fixes #321 )
2026-03-13 10:45:34 +01:00
Vanilagy
87ed3a1934
Fix faulty MPEG-2 detection ( fixes #322 )
2026-03-12 21:43:14 +01:00
Vanilagy
c43ca025d9
Add proper reference count-based source disposal system
2026-03-12 21:29:01 +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
93e9c256ab
Maybe this helps a little
2026-03-11 16:28:44 +01:00
Vanilagy
ff523c01c8
Add HLS reading tests, InputTrack.hasOnlyKeyPackets, faster whole-file reading
2026-03-10 13:32:52 +01:00
Vanilagy
05ae21e5ea
Add EncodedPacketSink.getFirstKeyPacket() (used to fix #314 )
2026-03-09 10:19:01 +01:00
Vanilagy
397c464846
Change comment
2026-03-06 16:12:30 +01:00
Vanilagy
2087658eea
Add <video> element fallback case for MediaStreamVideoTrackSource, adding Firefox support
2026-03-06 16:11:59 +01:00
Vanilagy
c088a31384
Various fixes
2026-03-06 15:49:24 +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