Commit Graph
581 Commits
Author SHA1 Message Date
Vanilagy 365469e64e Merge branch 'main' into hls 2026-03-04 17:33:16 +01:00
Vanilagy c4398fb88c Add @mediabunny/aac-encoder extension package 2026-03-04 17:05:34 +01:00
Vanilagy dc4e557776 Read #EXT-X-PROGRAM-DATE-TIME, add Unix epoch-offset timestamps, parallelize HLS master playlist resolution 2026-03-04 11:08:42 +01:00
Vanilagy 6d5821aa74 Clean up some code, add new source getting for Input 2026-03-04 09:34:37 +01:00
Vanilagy cfb5418fa0 Refactor HLS API: Get rid of specialized Manifest* classes, use Input instead. Add unhydrated InputTracks, InputTrack compatibility, InputTrack queries 2026-03-03 15:28:26 +01:00
152002bd5d fix(isobmff): write QuickTime-compliant MOV AAC sample entry (#311)
* fix(isobmff): write QuickTime-compliant MOV AAC sample entry

* Clean up logic, only version 1 sample description box was needed, remove bloaty tests

---------

Co-authored-by: Vanilagy <[email protected]>
2026-02-26 21:48:11 +01:00
Vanilagy b0604150c1 Merge branch 'main' into hls 2026-02-26 15:53:46 +01:00
Vanilagy bb4749cd8d Add support for reading/writing non-square pixel video frames (fixes #309) 2026-02-25 17:16:33 +01:00
Vanilagy 02484778d1 Oops 2026-02-24 20:29:23 +01:00
Vanilagy 9fd82c3448 Make maxWorkerCount strict, queue reads if no worker is free 2026-02-24 20:29:09 +01:00
Vanilagy 49994bf9ed Remove hackiness in "moof"-starting mp4 segments 2026-02-24 15:22:21 +01:00
31147d6e96 fix: surface StreamTarget write errors instead of swallowing them (#305)
* fix: await StreamTarget writes to prevent overlapping OPFS operations

* no need for flush

* preserve fire and forget writes

* Remove pendingWrites, add missing mutex acquire to ADTS muxer finalize method

---------

Co-authored-by: Vanilagy <[email protected]>
2026-02-24 11:21:13 +00:00
Vanilagy 68b3ae7155 A BUNCH of HLS (and related) progress
- Add support for fMP4 segments
- Add initInput (supported by ISOBMFF and MPEG-TS)
- Input.isSupported()
- Refactored file size retrieval logic, the file size can now be retrieved alongside the first read.
- Add support for unsized UrlSources
- Add support for multiple trun boxes in a row for the same track (as the spec literally says lol)
- Add support for more M3U8 features
- Fix faulty line reader
- MPEG-TS improvements: support video parameters not in first packet, support better key frame detection, support extension PES packets without PTS
- Fix reorder buffer being 1 element too small
2026-02-20 19:56:20 +01:00
Vanilagy de84d78092 Merge branch 'main' into hls 2026-02-16 15:55:59 +01:00
Vanilagy ddc826e6e3 MPEG-TS muxer: Write out DTS for video tracks (fixes buggy QuickTime behavior) 2026-02-16 15:30:23 +01:00
2876197631 Fix WaveDemuxer reading too far in corrupted ID3 chunk (#301)
* Update read-mp4.test.ts

* Fix the bug

* Delete read-wav.test.ts

* Submit test file

* Small adjustments

---------

Co-authored-by: Vanilagy <[email protected]>
2026-02-16 10:48:07 +00:00
Vanilagy a97200f3f0 Add @mediabunny/ac3 extension package 2026-02-12 18:31:59 +01:00
Vanilagy 7cc26edacb Add Mediabunny Codec Registry 2026-02-12 11:56:37 +01:00
Vanilagy 4fae45ec40 Allow negative trim ranges for conversion, add OutputFormat.supportsTimestampedMediaData 2026-02-11 15:56:51 +01:00
417c85d8ed feat(codec): add detection support for AC-3, E-AC-3 audio codecs (#275)
* ac3/eac3 detection

* fix tests

* review pass + follow codebase comments style

* Add ac3/eac3 to docs

* WIP mpeg-2

* Set registration_descriptor

* add support for ac3 system b in mpeg-ts

* Update docs with ac3 in .ts support

* fix formatting

* Remove default to fix linter

* Add eac3 to mpeg-ts

* fix formatting

* Fix failing test

* Refactor AC3/EAC3 code a little

---------

Co-authored-by: Vanilagy <[email protected]>
2026-02-11 15:23:12 +01:00
Vanilagy cacbc2a399 Fix assertion failure 2026-02-07 10:35:40 +01:00
Vanilagy ab0fd6a8d8 Fix WAVE demuxer out of bounds reads 2026-02-07 10:28:14 +01:00
David P.andGitHub 43c1ea7efd Merge pull request #292 from fredrikj/parallelism
Add UrlSourceOptions.parallelism
2026-02-03 16:03:55 +01:00
Vanilagy cab92c55ec Fix a few things 2026-02-03 16:01:46 +01:00
Vanilagy 81bc9d7c44 Fix MP3 files with initial XING frame not being properly recognized (fixes #294) 2026-02-03 15:53:51 +01:00
Fredrik Johansson 3209363470 Add UrlSourceOptions.parallelism 2026-01-29 09:31:51 +01:00
Vanilagy 6004912f3d Make computeDuration and getFirstTimestamp have the same implementations across the board 2026-01-27 16:49:25 +01:00
Vanilagy 2ffa692fdd Merge branch 'main' into hls 2026-01-27 15:54:28 +01:00
Vanilagy d16b1927ad Conversion: compute duration using only the utilized tracks 2026-01-27 15:54:20 +01:00
Vanilagy d1fbea3e19 [WIP] Add majority of logic for HLS reading support 2026-01-27 14:45:44 +01:00
Vanilagy 7aa0fa465e Add support for ID3 metadata in ADTS, make MPEG-TS demuxer more resilient 2026-01-27 14:32:16 +01:00
Vanilagy cc5f7d8e8f Fixed incorrect segment logic in MPEG-TS metadata extraction, remove unused code, make packetization not require a track backing 2026-01-23 18:05:32 +01:00
Vanilagy 8c67872e83 Add double loading detection and warning, improve UrlSource abort signal documentation, bump minor 2026-01-23 13:31:59 +01:00
Vanilagy b63db955f6 Merge branch 'main' of https://github.com/Vanilagy/mediabunny 2026-01-23 13:16:41 +01:00
Vanilagy 92454b28f7 Use random_access_indicator for key packet detection, rewrite packet lookup algorithm to use a chunked approach to perform better over the network 2026-01-23 13:16:41 +01:00
Vanilagy db3cb143fe Sure thing ts-doc 2026-01-22 09:43:20 +01:00
Vanilagy e20f779ede Add InputTrack.number 2026-01-22 09:18:43 +01:00
Vanilagy 79f19b6717 Fix MPEG-TS demuxer reading entire file in the metadata phase, optimize it a bit, bump patch 2026-01-20 20:08:17 +01:00
Vanilagy 98387258a4 Add unhandled throws 2026-01-20 08:49:49 +01:00
Vanilagy ab3a514884 Cmon 2026-01-19 15:04:39 +01:00
Vanilagy dbaaea255c Expand packet.clone(), make conversion start timestamp default to the input's start timestamp 2026-01-19 14:04:20 +01:00
Vanilagy d23b0369f3 Fix side data not being copied when calling EncodedPacket.clone 2026-01-19 13:32:47 +01:00
Vanilagy 6c78a0ff09 Fix HEVC not being encodable in CI 2026-01-19 10:25:57 +01:00
Vanilagy c3a3eb6abf Merge remote-tracking branch 'origin/main' into mpeg-ts 2026-01-16 21:04:14 +01:00
Vanilagy 58053ed00c Bruh 2026-01-16 20:53:40 +01:00
Vanilagy 53b04619e1 Convert ADTS to AAC in muxers that accept it 2026-01-16 17:27:50 +01:00
Vanilagy 7e8f9fbbb1 It's 2026 2026-01-16 17:02:12 +01:00
Vanilagy 41e012f1e8 Fix typecheck, lint and build 2026-01-16 17:00:01 +01:00
Vanilagy 282751ec1c Set discontinuity_indicator to 1 for the first packet 2026-01-16 16:56:50 +01:00
Vanilagy e8b27768a9 Add MPEG-TS muxer, fix a demuxer bug, remove Infinity from output format track counts 2026-01-16 16:33:28 +01:00