Commit Graph
57 Commits
Author SHA1 Message Date
Vanilagy c3a3eb6abf Merge remote-tracking branch 'origin/main' into mpeg-ts 2026-01-16 21:04:14 +01:00
Vanilagy 7e8f9fbbb1 It's 2026 2026-01-16 17:02:12 +01:00
Vanilagy ae37973878 MPEG-TS demuxer optimizations: faster Annex B segmentation, better NALU iteration 2026-01-16 13:26:58 +01:00
Vanilagy 53824536fa Remove packet iteration upper bound for mediaSamplesInRange (fixes #269) 2026-01-06 13:35:52 +01:00
Vanilagy 831e838f74 Implement workaround for https://issues.chromium.org/issues/470109459 2025-12-19 13:06:11 +01:00
Vanilagy ccbf14565c (Hopefully) improve error messages and stack traces a bit more (see #244) 2025-12-17 15:31:51 +01:00
Vanilagy 11970675c6 Slightly adjust validated key packet retrieval logic 2025-12-05 23:00:40 +01:00
Vanilagy d6c223b0f6 Fix keyframe sample index lookup logic for ISOBMFF in rare B-frame scenarios 2025-12-05 22:14:23 +01:00
Vanilagy 07b2e70863 Force software decoding in Chromium for interlaced AVC 2025-11-12 14:29:56 +01:00
Vanilagy d969266662 Simplify isWebKit, get rid of isSafari 2025-11-10 11:30:26 +01:00
Vanilagy 198928088b Make cluster/fragment lookup operations almost stateless, fix high Matroska memory, allow more maxCacheSizes 2025-09-29 20:36:37 +02:00
David P.andGitHub fa4e064345 Transparent video read/write support (#145)
* Add support for reading transparent Matroska and implement alpha side data & decode

* Few fixes

* Implement alpha encoding

* Gracefully handle inability to acquire WebGL context, properly clean up WebGL contexts

* Improve touch device detection

* Test test

* Test test #2

* Test test 3

* Test test 4

* Test test 5

* Test test 6

* Test test 7

* Test test 8

* Test test 9

* Test test 10

* Test test 11

* Test test 12

* Test test 13

* Test test 14

* Test test 15

* Test test 16

* Test test 17

* Test test 18

* Test test 19

* Test test 20

* Fix type errors, improve MetadataTags docs

* Do a bunch of docs work

* Test test?

* "Unexpected only modifier 🤓"

* Add InputVideoTrack.canBeTransparent()

* Some clean-up

* Adjust CI to be less spammy in PRs

* Fix broken license headers
2025-09-24 21:20:14 +02:00
Vanilagy 608c769a7e Add explicit disposability to Inputs (#126) 2025-09-21 20:18:59 +02:00
Vanilagy 1bb3c0e262 Avoid opaque canvases in case of Firefox (fixes #117) 2025-09-16 17:42:23 +02:00
Vanilagy 3cfb9f27cb Prefix crop validation error messages 2025-09-12 16:52:55 +02:00
Vanilagy eba1f360d5 Clean up cropping logic 2025-09-12 16:48:35 +02:00
Vanilagy 4aca172d14 Merge branch 'main' into fork-branch 2025-09-12 15:46:12 +02:00
Vanilagy b9f7ab2fa2 Skip HEVC RASL slices following a decoder reset 2025-09-09 13:09:41 +02:00
Pablo Cúbico 904fd8f95e feat: add video crop option 2025-09-05 07:07:43 -03:00
Vanilagy a2a30c3e92 Add API doc generator, improve documentation across the board 2025-09-03 18:11:43 +02:00
Vanilagy d2507a5a72 Fix incorrect decoded audio sample timestamps in Firefox 2025-09-01 16:39:19 +02:00
Vanilagy 63b8190185 Add logic for encoding video frames that change size over time (#63) 2025-08-24 16:37:03 +02:00
Vanilagy c9dcebed6f Skip zero-length AudioSamples 2025-08-12 08:53:25 +02:00
Vanilagy 975c1c42cb First linting error yay 2025-08-10 20:06:18 +02:00
Vanilagy a9cec387d4 Extract insertSorted function 2025-08-10 19:55:21 +02:00
Vanilagy 56ae97f994 Fix decoded frame timestamps (#49) 2025-08-10 19:26:41 +02:00
Vanilagy 5e933d9362 Add packet type derivation logic, new verifyKeyPackets options, new determinePacketType method 2025-07-24 16:09:01 +02:00
Vanilagy cf0bbe896a Add longer variant to VideoSample.draw 2025-07-15 11:49:33 +02:00
Vanilagy 846fa0b183 Adjust legal comment 2025-06-27 13:22:19 +02:00
Vanilagy a3d73228e2 Add proper license 2025-06-27 13:14:11 +02:00
Vanilagy 7203ee776c Add CI 2025-06-18 16:43:19 +02:00
Vanilagy eef573a972 Always flush when encountering a new key packet 2025-06-18 14:27:17 +02:00
Vanilagy 05881ff1f5 Add support for PCM codecs in MP4, add 64-bit float PCM support 2025-06-16 10:49:55 +02:00
Vanilagy 0ca1425036 Make some more fields readonly 2025-06-09 22:49:54 +02:00
Vanilagy 4bbb6edf5d Add thumbnail generation example, fix MP3 detection code error, prefer canvas element over OffscreenCanvas 2025-05-23 18:52:09 +02:00
Vanilagy 8de25036b8 Automatically close new VideoFrames created by toCanvasImageSource, reduce clones in mediaSamplesAtTimestamps 2025-05-09 15:31:18 +02:00
Vanilagy 8bca9b0217 Rewrite mediaSamplesAtTimestamps to fix B-frame bug, fix incorrect timestamps when cloning samples 2025-05-09 14:20:29 +02:00
Vanilagy 94b797e227 TEMP timestamp iterator bugfix 2025-05-03 21:43:29 +02:00
Vanilagy ca77ce2d94 Validate types returned by custom coders, refactor custom coder call serialization logic, improve metadata validation 2025-04-28 17:31:56 +02:00
Vanilagy 7fe0593b6c Fix EBML parsers for large integers, make small API and docblock adjustments 2025-04-25 17:35:03 +02:00
Vanilagy 03b9c6c9ae Adjust media sink max queue size logic to prevent playback stalls 2025-04-11 19:19:49 +02:00
David Payr 3863ffe4d8 Add documentation comments everywhere 2025-03-15 17:12:42 +01:00
David Payr 6eb5c02591 Add VideoSample and AudioSample abstractions 2025-03-13 21:46:39 +01:00
Vanilagy d833b5ef31 Make use of OffscreenCanvas 2025-03-02 19:30:09 +01:00
Vanilagy 453f8b6884 Ensure rotation is always clockwise, make CanvasSink more powerful, disable rotation metadata for Matroska outputs, & other changes 2025-03-02 11:59:11 +01:00
David Payr c2b20ccda5 EncodedVideoSample/EncodedAudioSample -> EncodedPacket 2025-02-22 19:54:59 +01:00
Vanilagy a4c5ab4a8c Add fix to ensure VideoFrames are output in timestamp order, fix atTimestamps iterator logic & leaks 2025-02-16 18:30:14 +01:00
Vanilagy f750bcfa21 Fix incorrect timestamp rounding for audio 2025-02-09 14:42:08 +01:00
Vanilagy cd30c9faec Unpromise many input track methods 2025-02-08 16:32:34 +01:00
Vanilagy 1d823805cf Remove sample correlation logic in decoder pipeline 2025-02-08 15:55:54 +01:00