Commit Graph
100 Commits
Author SHA1 Message Date
Vanilagy fd159ecce3 Migrate all codec data parsing logic into new file 2025-05-12 15:09:04 +02:00
Vanilagy b0a6cf8535 Add support for HEVC in Annex B, fix HEVC codec string extraction logic 2025-05-12 14:56:34 +02:00
Vanilagy c3ffdb3054 Change wording 2025-05-12 10:41:22 +02:00
Vanilagy 7e1880b916 Fix Ogg demuxer async race conditions 2025-05-12 10:40:53 +02:00
Vanilagy 9be55666ac Fix missing byte lengths in metadata-only packets 2025-05-11 23:11:06 +02:00
Vanilagy f1eed5aa9e Support AVC in Annex B format, add AVCDecoderConfigurationRecord extraction logic, add Annex B to AVCC converter, add support for Matroska Clusters with undefined size, & a couple other improvements 2025-05-11 20:47:37 +02:00
Vanilagy 7ae47c0b23 Set up examples folder structure 2025-05-10 17:43:18 +02:00
Vanilagy 65ff4d0106 Add docs for custom coders 2025-05-09 17:03:25 +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 865fdcf110 Fix async race condition bug 2025-05-08 16:23:07 +02:00
Vanilagy 94b797e227 TEMP timestamp iterator bugfix 2025-05-03 21:43:29 +02:00
Vanilagy c8bb1f6e97 Clean up PCM code 2025-04-28 20:48:50 +02:00
Vanilagy 1d2192bd9a Document cross-track offset 2025-04-28 20:29:31 +02:00
Vanilagy 86231bf6e2 Dry some code 2025-04-28 20:03:18 +02:00
Vanilagy ac1b009486 Implement "cross-track offset" for MediaStreamTrack sources & small fixes 2025-04-28 18:31:53 +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 e527fe1484 Allow fractional frame rates in track metadata, document frameRate better, other small doc adjustments 2025-04-28 15:48:51 +02:00
Vanilagy cf19e0dcf1 Add docs on packets and samples 2025-04-28 12:14:55 +02:00
Vanilagy 64294655d9 Add documentation for reading files 2025-04-28 12:14:06 +02:00
Vanilagy 30e1e29ca6 Merge branch 'main' of https://github.com/Vanilagy/metamuxer 2025-04-25 17:35:05 +02:00
Vanilagy 7fe0593b6c Fix EBML parsers for large integers, make small API and docblock adjustments 2025-04-25 17:35:03 +02:00
David Payr 1e3a618c26 Small adjustments to getSize change 2025-04-15 15:11:11 +02:00
VanilagyandGitHub 2f0e686a0f Merge pull request #3 from yonathan06/main
public getSize and input source
2025-04-15 15:07:44 +02:00
David Payr 69751e8bfe Add todo 2025-04-14 13:06:56 +02:00
Vanilagy 03b9c6c9ae Adjust media sink max queue size logic to prevent playback stalls 2025-04-11 19:19:49 +02:00
Vanilagy 20c53c407f Fix codec validation logic 2025-04-05 17:10:49 +02:00
Vanilagy 3f8a907c7f Update media sources docs 2025-04-05 16:58:51 +02:00
Vanilagy 97e2a9c1ba Add fullCodecString and rename other config field 2025-04-05 16:49:58 +02:00
Vanilagy c95058e659 Add onEncoderConfig 2025-04-05 15:16:48 +02:00
Vanilagy 5e224510be Add documentation on writing files 2025-03-31 21:21:10 +02:00
Vanilagy a64ebab435 Small monotonicity adjustments 2025-03-29 12:01:03 +01:00
David Payr 53e8ce5cac Begin work on documentation 2025-03-29 11:47:21 +01:00
Vanilagy 95cc8beb06 Fix chunked writing issues & drop ChunkedStreamTargetWriter 2025-03-26 21:35:19 +01:00
Vanilagy ceb2528014 Add specific, per-output-format data callbacks & rewrite some logic in the process 2025-03-22 20:30:24 +01:00
Vanilagy bbc2e088ca Refactor UrlSource to use fetch instead of XHR & offer more options 2025-03-22 16:26:04 +01:00
Vanilagy b14daf6dca Add configurable minimum MP4 fragment duration and Matroska cluster duration 2025-03-22 15:33:00 +01:00
Vanilagy 1652b4f614 More intentional codec description extraction for Matroska, & generate CodecPrivate for VP9 2025-03-22 14:50:35 +01:00
Vanilagy 4645b0d6a5 Allow Matroska clusters that don't begin with a key frame 2025-03-21 22:50:57 +01: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 00975b456c Fix error when aborting conversion, expose Conversion class for more control, refactor Output state 2025-03-02 17:32:56 +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 2ab385b16e Fix cslg box for QuickTime compatibility 2025-02-26 22:46:44 +01:00
David Payr c2b20ccda5 EncodedVideoSample/EncodedAudioSample -> EncodedPacket 2025-02-22 19:54:59 +01:00
Vanilagy 5d1866653c Todo 2025-02-21 22:25:28 +01:00
Vanilagy 7988b6c2f8 Multiple miscellaneous fixes 2025-02-18 22:13:21 +01:00
Vanilagy 3848a59ec3 0-duration VideoFrame 2025-02-16 19:03:36 +01:00
Vanilagy 873dae00c1 Add more relaxed rules for edit lists 2025-02-16 18:55:47 +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
David Payr 444770d4f8 todo 2025-02-13 16:12:42 +01:00
David Payr fff9589bfb Todo 2025-02-13 09:50:05 +01:00
Vanilagy 557314c640 digest -> add 2025-02-09 17:59:30 +01:00
Vanilagy b3cd4de1f6 Make conversion cancelable 2025-02-09 17:55:59 +01:00
Vanilagy 02ac371011 Drop frames if encoded is overloaded 2025-02-09 17:40:07 +01:00
Vanilagy 9f6d561772 Add StreamSource 2025-02-09 17:34:59 +01:00
Vanilagy 6cdaa06c07 Add limited edit list support 2025-02-09 17:21:41 +01:00
Vanilagy f750bcfa21 Fix incorrect timestamp rounding for audio 2025-02-09 14:42:08 +01:00
Vanilagy 0db871dd21 Implement Ogg muxer 2025-02-09 10:56:54 +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
Vanilagy b4d4c71916 Add reusable Opus identification header parsing function 2025-02-07 20:14:01 +01:00
Vanilagy 50442691a5 Implement Ogg demuxer 2025-02-04 16:59:25 +01:00
Vanilagy 35c4d384cf Mime type & MP3 improvements 2025-02-02 17:21:57 +01:00
Vanilagy ffd0835e9a Add support for custom encoders & decoders 2025-01-26 17:32:10 +01:00
Vanilagy bb9f56b1f0 Remove unused fields 2025-01-26 13:22:14 +01:00
Vanilagy b759fd8808 Add toDataView 2025-01-26 12:03:23 +01:00
Vanilagy d3566305df Implement MP3 muxer 2025-01-26 11:45:56 +01:00
Vanilagy 7205d9445b Implement MP3 demuxer 2025-01-26 10:01:09 +01:00
Vanilagy 387c4dc525 isobmffReader -> metadataReader 2025-01-19 18:56:45 +01:00
Vanilagy 70b88332b2 Add media conversion utility function, fix fragment/cluster reading issues, expand color space logic, add qualitative bitrates, & many other fixes and improvements 2025-01-19 18:55:12 +01:00
Vanilagy d323c2be8e Add track count limit checking 2025-01-17 12:26:12 +01:00
Vanilagy 7b6567fcf0 Add language getter to InputTrack 2025-01-15 20:21:34 +01:00
Vanilagy 2bec661985 Add setting track language code, add proper AV1 CodecPrivate for Matroska muxer 2025-01-15 20:00:29 +01:00
Vanilagy 9af3e6eb66 Fix atTimestamps iterator 2025-01-14 21:23:37 +01:00
Vanilagy 45474764ca Add explanatory comment 2025-01-12 16:57:31 +01:00
Vanilagy 9c501808b1 Add WebMInputFormat, add OutputFormat.getFileExtension() 2025-01-12 16:52:28 +01:00
Vanilagy aea808ca0c Adjust timestamp logic for media sinks for more accurate audio timing 2025-01-12 16:41:42 +01:00
Vanilagy 764a6dfd52 Replace block sorting algorithm 2025-01-12 15:40:05 +01:00
Vanilagy 2dfb595911 Improve lookup algorithm to handle misleading cue points, fix cluster start timestamp in Matroska muxer, improve cue points in Matroska muxer, & other misc improvements 2025-01-12 15:17:21 +01:00
Vanilagy 61a4f1483a Add VP9 and AV1 bitstream parsers for extracting codec info 2025-01-11 21:28:10 +01:00
Vanilagy 2d4df211d8 Support rotation metadata in Matroska muxer 2025-01-11 20:07:31 +01:00
Vanilagy 11d41fcbc7 Fix interleaving of chunks in finalize() 2025-01-11 19:57:31 +01:00
Vanilagy c38c285eab Add Matroska demuxer 2025-01-11 19:39:01 +01:00
David Payr fbe084d721 Minor cleanup 2025-01-08 14:43:16 +01:00
David Payr b6b82084d4 Drain -> Sink 2025-01-08 14:26:49 +01:00
Vanilagy dc81afa1d9 Drop big-endian PCM support for WaveDemuxer 2025-01-07 22:23:04 +01:00
Vanilagy e1c070fe7b Move RiffWriter into separate file 2025-01-07 22:20:33 +01:00
Vanilagy 9d51a896ae Make sure encoders are ensured only once 2025-01-07 21:58:30 +01:00
Vanilagy 7d5957957e Add WAVE muxer 2025-01-07 21:37:55 +01:00
Vanilagy 3041989cf3 Add WAVE demuxer 2025-01-07 20:57:16 +01:00
Vanilagy 48c9a225e2 Improve encoders and check availability 2025-01-06 21:22:15 +01:00
Vanilagy 00408c86ff Add support for remaining audio codecs to Matroska muxer 2025-01-06 21:09:12 +01:00
Vanilagy 7c65c2e7e9 Slightly modify input formats 2025-01-06 19:45:47 +01:00
Vanilagy 2625dc7662 Implement PCM encoders 2025-01-05 15:58:20 +01:00
Vanilagy 37820f1d4c Replace ArrayBufferTarget with BufferTarget, now spitting out Uint8Array and using .resize 2025-01-05 14:24:06 +01:00
Vanilagy ee81e1b674 Add support for all audio codecs in the ISOBMFF muxer (& some fixes) 2025-01-05 13:50:50 +01:00
Vanilagy 316e16211b Add onread callback 2025-01-04 14:46:53 +01:00
Vanilagy 3487bae4fe Add cslg box 2025-01-04 14:43:26 +01:00