Commit Graph
100 Commits
Author SHA1 Message Date
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
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