Commit Graph
87 Commits
Author SHA1 Message Date
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
Vanilagy b8c0d76503 Add compileSampleStats 2025-01-04 14:25:22 +01:00
Vanilagy 5bb9f8609c Allow non-zero initial timestamps for ISOBMFF muxer 2025-01-04 14:02:45 +01:00
Vanilagy 2e8d49f900 Add SampleRetrievalOptions to samples iterator 2025-01-04 01:11:01 +01:00
Vanilagy 1145e0ebbe Use new sample classes for muxers as well 2025-01-04 00:28:54 +01:00
Vanilagy e83356662e Add own encoded sample classes and port the code to them 2025-01-04 00:14:34 +01:00
Vanilagy f6d12390cd Fix audio tracks with channel count 1 being discarded 2025-01-02 23:53:22 +01:00
Vanilagy 676ceb7df1 Add some try-catch 2025-01-02 23:47:50 +01:00
Vanilagy 8db8f10a1e Fix sample index retrieval case 2025-01-02 23:44:40 +01:00
Vanilagy a3f19f6f08 Oops 2025-01-02 23:31:06 +01:00
Vanilagy 60947168f9 CodecConfig -> EncodingConfig 2025-01-02 23:15:30 +01:00
Vanilagy 3035fcddbf Add functions that test codec encodability 2025-01-02 23:12:00 +01:00
Vanilagy 74369ee108 Explicitly model the supported codecs per output format 2025-01-02 21:03:17 +01:00
Vanilagy 2471f55f20 Validate audio codec strings 2025-01-02 20:21:49 +01:00
Vanilagy 9ac0519217 Add onEncodedChunk callback 2025-01-02 20:01:30 +01:00
Vanilagy 141bed1b37 Add Output.cancel 2025-01-02 19:57:32 +01:00
Vanilagy c42495ec7e Allow more manual control over key frames 2025-01-02 19:39:02 +01:00
Vanilagy 022b157eeb Turn AudioBuffers into AudioData in a chunked fashion 2025-01-02 19:28:43 +01:00
Vanilagy 0f25dcb096 Add methods that check decodability 2025-01-02 19:08:09 +01:00
Vanilagy ad653434a6 Small fix 2025-01-02 18:37:34 +01:00
Vanilagy af26b4aab4 Fix fragment reading bug 2025-01-02 18:16:06 +01:00
Vanilagy d476c42424 Fix rotation matrix detection 2025-01-02 17:03:05 +01:00
Vanilagy 5dda43959d Support mp4a.67 2025-01-02 15:42:04 +01:00
Vanilagy 3a7e272d2f Vorbis works! 2025-01-02 15:33:36 +01:00
Vanilagy 4bef3b6722 Manually write the async generators so that return() is immediate 2025-01-02 15:24:38 +01:00
Vanilagy 7c5e31a93a Add Opus support to ISOBMFF demuxer 2025-01-02 14:19:17 +01:00
Vanilagy 8a8fbc264e Add FLAC support to ISOBMFF demuxer 2025-01-02 00:03:32 +01:00
Vanilagy 4e0b3a7b3a Add ulaw and alaw support to ISOBMFF demuxer 2025-01-01 22:03:12 +01:00
Vanilagy fac4e4bf7b Implement PCM decoder, add PCM support to ISOBMFF demuxer 2025-01-01 21:31:00 +01:00
Vanilagy d203d75bdd Add MP3 support to ISOBMFF demuxer 2024-12-30 23:47:42 +01:00
David Payr 8f861f3cfe Validate video codec strings using regexes 2024-12-30 00:47:01 +01:00
David Payr 06cedf1a26 Use more parts of codec string to determine av1C 2024-12-30 00:16:22 +01:00
David Payr 94b43bf8da Make VP9 and AV1 codec strings much more detailed 2024-12-30 00:08:23 +01:00
David Payr d579556471 Refine av1C box data 2024-12-29 23:04:06 +01:00
David Payr 6fbb57cf7c Add VP8, VP9 and AV1 support to MP4 demuxer 2024-12-29 22:31:40 +01:00
David Payr 53231e5a55 .gitignore dist 2024-12-29 17:57:33 +01:00
David Payr 05e8789df1 Delete dist 2024-12-29 17:56:32 +01:00
David Payr 49b36f735f Bubble encoder errors to consumer 2024-12-29 12:58:24 +01:00
David Payr f70142e25b Add better error surfacing for decoder iterators, add UrlSource 2024-12-29 12:38:55 +01:00
David Payr cc87dbfcf9 Add some more argument validation 2024-12-29 02:21:54 +01:00
David Payr b7d8c526da Update declaration file 2024-12-29 01:26:26 +01:00
David Payr bffe0e60a6 Add timestamp iterator 2024-12-28 23:46:47 +01:00
David Payr 792d9bd396 Add CanvasDrain & simplify player 2024-12-27 18:45:45 +01:00
David Payr d597f215d4 Fix AudioData to AudioBuffer conversion 2024-12-22 23:31:16 +01:00
David Payr 73373b89bf Implement demo media player, add internal queue to media frame iterator, adjust audio buffer timestamps 2024-12-22 23:05:30 +01:00
David Payr 03389a6eba Add audio drains & various fixes and adjustments 2024-12-22 15:16:44 +01:00
David Payr 07689fbd8d Implement optimized fragmented MP4 demuxing 2024-12-14 21:50:51 +01:00
Vanilagy 5978110de9 Rewrite reader logic, add separate reader for caching MP4 chunks, add more advanced drain iterators 2024-12-08 20:04:47 +01:00
Vanilagy ecfd193ae0 Start work on demuxing 2024-12-08 15:19:56 +01:00
Vanilagy 6730e41c07 Add ESLint and lint a bunch 2024-12-01 17:33:54 +01:00
Vanilagy 3ae891842f Add codec-specific encoder configs 2024-11-30 19:30:43 +01:00
Vanilagy 25c271e4af Implement proper level lookup tables for codec string generation 2024-11-30 17:59:00 +01:00
Vanilagy 266fcd473e Use WritableStream for StreamTarget & integrate backpressure concepts 2024-11-28 22:06:49 +01:00
Vanilagy 527108f44e Replace # with private 2024-11-26 20:47:58 +01:00
Vanilagy 78505bca82 Add api-extractor and add required exports 2024-11-25 21:18:44 +01:00
Vanilagy b51b2b1b45 Address a bunch of TODOs and add parameter validation everywhere 2024-11-24 21:17:00 +01:00
Vanilagy 29749451bb Add colr box 2024-11-24 15:04:57 +01:00
Vanilagy 29ecccb26a Add WebVTT subtitle support to MP4 & a bunch of misc changes 2024-11-24 14:57:31 +01:00
David Payr 39aea03565 Add subtitle tracks and implement subtitle tracks for Matroska muxer 2024-11-16 17:23:24 +01:00
Vanilagy fd1f7e5316 Standardize timestamp units in Matroska muxer 2024-11-12 23:35:56 +01:00
Vanilagy a065a5ef12 Allow for out-of-presentation-order chunks, enabling P and B frames 2024-11-12 23:24:43 +01:00
Vanilagy d01d32f08c Add Matroska muxer 2024-11-10 17:08:04 +01:00
Vanilagy dd6526a070 Start implementation 2024-11-09 21:50:31 +01:00
David Payr 9a35288c17 Continue API sketch 2024-10-31 17:34:48 +01:00
David Payr 5ffd91f1ea Make TSConfig stricter 2024-09-02 09:37:23 +03:00
David Payr 2ff6a979e8 Add build step 2024-09-02 01:06:35 +03:00
David Payr d2de87194c Scaffold project 2024-09-02 01:01:08 +03:00
VanilagyandGitHub ebea537812 Initial commit 2024-09-01 23:45:30 +02:00