webcodecs-node 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +656 -0
- package/README.md +607 -0
- package/dist/AudioData.d.ts +6 -0
- package/dist/AudioData.d.ts.map +1 -0
- package/dist/AudioData.js +6 -0
- package/dist/AudioData.js.map +1 -0
- package/dist/AudioDecoder.d.ts +6 -0
- package/dist/AudioDecoder.d.ts.map +1 -0
- package/dist/AudioDecoder.js +6 -0
- package/dist/AudioDecoder.js.map +1 -0
- package/dist/AudioEncoder.d.ts +6 -0
- package/dist/AudioEncoder.d.ts.map +1 -0
- package/dist/AudioEncoder.js +6 -0
- package/dist/AudioEncoder.js.map +1 -0
- package/dist/EncodedAudioChunk.d.ts +6 -0
- package/dist/EncodedAudioChunk.d.ts.map +1 -0
- package/dist/EncodedAudioChunk.js +6 -0
- package/dist/EncodedAudioChunk.js.map +1 -0
- package/dist/EncodedVideoChunk.d.ts +6 -0
- package/dist/EncodedVideoChunk.d.ts.map +1 -0
- package/dist/EncodedVideoChunk.js +6 -0
- package/dist/EncodedVideoChunk.js.map +1 -0
- package/dist/FFmpegProcess.d.ts +6 -0
- package/dist/FFmpegProcess.d.ts.map +1 -0
- package/dist/FFmpegProcess.js +6 -0
- package/dist/FFmpegProcess.js.map +1 -0
- package/dist/HardwareAcceleration.d.ts +6 -0
- package/dist/HardwareAcceleration.d.ts.map +1 -0
- package/dist/HardwareAcceleration.js +6 -0
- package/dist/HardwareAcceleration.js.map +1 -0
- package/dist/ImageDecoder.d.ts +6 -0
- package/dist/ImageDecoder.d.ts.map +1 -0
- package/dist/ImageDecoder.js +6 -0
- package/dist/ImageDecoder.js.map +1 -0
- package/dist/Logger.d.ts +6 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +6 -0
- package/dist/Logger.js.map +1 -0
- package/dist/MediaCapabilities.d.ts +9 -0
- package/dist/MediaCapabilities.d.ts.map +1 -0
- package/dist/MediaCapabilities.js +8 -0
- package/dist/MediaCapabilities.js.map +1 -0
- package/dist/VideoDecoder.d.ts +6 -0
- package/dist/VideoDecoder.d.ts.map +1 -0
- package/dist/VideoDecoder.js +6 -0
- package/dist/VideoDecoder.js.map +1 -0
- package/dist/VideoEncoder.d.ts +6 -0
- package/dist/VideoEncoder.d.ts.map +1 -0
- package/dist/VideoEncoder.js +6 -0
- package/dist/VideoEncoder.js.map +1 -0
- package/dist/VideoFrame.d.ts +10 -0
- package/dist/VideoFrame.d.ts.map +1 -0
- package/dist/VideoFrame.js +9 -0
- package/dist/VideoFrame.js.map +1 -0
- package/dist/__tests__/AudioData.test.d.ts +5 -0
- package/dist/__tests__/AudioData.test.d.ts.map +1 -0
- package/dist/__tests__/AudioData.test.js +179 -0
- package/dist/__tests__/AudioData.test.js.map +1 -0
- package/dist/__tests__/AudioDecoder.test.d.ts +5 -0
- package/dist/__tests__/AudioDecoder.test.d.ts.map +1 -0
- package/dist/__tests__/AudioDecoder.test.js +733 -0
- package/dist/__tests__/AudioDecoder.test.js.map +1 -0
- package/dist/__tests__/AudioEncoder.test.d.ts +5 -0
- package/dist/__tests__/AudioEncoder.test.d.ts.map +1 -0
- package/dist/__tests__/AudioEncoder.test.js +247 -0
- package/dist/__tests__/AudioEncoder.test.js.map +1 -0
- package/dist/__tests__/EncodedChunks.test.d.ts +5 -0
- package/dist/__tests__/EncodedChunks.test.d.ts.map +1 -0
- package/dist/__tests__/EncodedChunks.test.js +99 -0
- package/dist/__tests__/EncodedChunks.test.js.map +1 -0
- package/dist/__tests__/HardwareAcceleration.test.d.ts +5 -0
- package/dist/__tests__/HardwareAcceleration.test.d.ts.map +1 -0
- package/dist/__tests__/HardwareAcceleration.test.js +84 -0
- package/dist/__tests__/HardwareAcceleration.test.js.map +1 -0
- package/dist/__tests__/ImageDecoder.test.d.ts +5 -0
- package/dist/__tests__/ImageDecoder.test.d.ts.map +1 -0
- package/dist/__tests__/ImageDecoder.test.js +587 -0
- package/dist/__tests__/ImageDecoder.test.js.map +1 -0
- package/dist/__tests__/MediaCapabilities.test.d.ts +5 -0
- package/dist/__tests__/MediaCapabilities.test.d.ts.map +1 -0
- package/dist/__tests__/MediaCapabilities.test.js +346 -0
- package/dist/__tests__/MediaCapabilities.test.js.map +1 -0
- package/dist/__tests__/VideoDecoder.test.d.ts +5 -0
- package/dist/__tests__/VideoDecoder.test.d.ts.map +1 -0
- package/dist/__tests__/VideoDecoder.test.js +675 -0
- package/dist/__tests__/VideoDecoder.test.js.map +1 -0
- package/dist/__tests__/VideoEncoder.test.d.ts +5 -0
- package/dist/__tests__/VideoEncoder.test.d.ts.map +1 -0
- package/dist/__tests__/VideoEncoder.test.js +468 -0
- package/dist/__tests__/VideoEncoder.test.js.map +1 -0
- package/dist/__tests__/VideoFrame.test.d.ts +5 -0
- package/dist/__tests__/VideoFrame.test.d.ts.map +1 -0
- package/dist/__tests__/VideoFrame.test.js +243 -0
- package/dist/__tests__/VideoFrame.test.js.map +1 -0
- package/dist/__tests__/aac-utils.test.d.ts +2 -0
- package/dist/__tests__/aac-utils.test.d.ts.map +1 -0
- package/dist/__tests__/aac-utils.test.js +37 -0
- package/dist/__tests__/aac-utils.test.js.map +1 -0
- package/dist/__tests__/avc-utils.test.d.ts +2 -0
- package/dist/__tests__/avc-utils.test.d.ts.map +1 -0
- package/dist/__tests__/avc-utils.test.js +63 -0
- package/dist/__tests__/avc-utils.test.js.map +1 -0
- package/dist/__tests__/hevc-utils.test.d.ts +2 -0
- package/dist/__tests__/hevc-utils.test.d.ts.map +1 -0
- package/dist/__tests__/hevc-utils.test.js +78 -0
- package/dist/__tests__/hevc-utils.test.js.map +1 -0
- package/dist/capabilities/MediaCapabilities.d.ts +78 -0
- package/dist/capabilities/MediaCapabilities.d.ts.map +1 -0
- package/dist/capabilities/MediaCapabilities.js +276 -0
- package/dist/capabilities/MediaCapabilities.js.map +1 -0
- package/dist/capabilities/codecs.d.ts +72 -0
- package/dist/capabilities/codecs.d.ts.map +1 -0
- package/dist/capabilities/codecs.js +153 -0
- package/dist/capabilities/codecs.js.map +1 -0
- package/dist/capabilities/index.d.ts +7 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +8 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/types.d.ts +77 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +5 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/core/AudioData.d.ts +36 -0
- package/dist/core/AudioData.d.ts.map +1 -0
- package/dist/core/AudioData.js +229 -0
- package/dist/core/AudioData.js.map +1 -0
- package/dist/core/EncodedAudioChunk.d.ts +26 -0
- package/dist/core/EncodedAudioChunk.d.ts.map +1 -0
- package/dist/core/EncodedAudioChunk.js +58 -0
- package/dist/core/EncodedAudioChunk.js.map +1 -0
- package/dist/core/EncodedVideoChunk.d.ts +23 -0
- package/dist/core/EncodedVideoChunk.d.ts.map +1 -0
- package/dist/core/EncodedVideoChunk.js +55 -0
- package/dist/core/EncodedVideoChunk.js.map +1 -0
- package/dist/core/VideoFrame.d.ts +61 -0
- package/dist/core/VideoFrame.d.ts.map +1 -0
- package/dist/core/VideoFrame.js +385 -0
- package/dist/core/VideoFrame.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/debug-h264.d.ts +5 -0
- package/dist/debug-h264.d.ts.map +1 -0
- package/dist/debug-h264.js +103 -0
- package/dist/debug-h264.js.map +1 -0
- package/dist/decoders/AudioDecoder.d.ts +57 -0
- package/dist/decoders/AudioDecoder.d.ts.map +1 -0
- package/dist/decoders/AudioDecoder.js +333 -0
- package/dist/decoders/AudioDecoder.js.map +1 -0
- package/dist/decoders/ImageDecoder.d.ts +111 -0
- package/dist/decoders/ImageDecoder.d.ts.map +1 -0
- package/dist/decoders/ImageDecoder.js +686 -0
- package/dist/decoders/ImageDecoder.js.map +1 -0
- package/dist/decoders/VideoDecoder.d.ts +70 -0
- package/dist/decoders/VideoDecoder.d.ts.map +1 -0
- package/dist/decoders/VideoDecoder.js +410 -0
- package/dist/decoders/VideoDecoder.js.map +1 -0
- package/dist/decoders/index.d.ts +8 -0
- package/dist/decoders/index.d.ts.map +1 -0
- package/dist/decoders/index.js +7 -0
- package/dist/decoders/index.js.map +1 -0
- package/dist/demos/demo-audio-opus.d.ts +5 -0
- package/dist/demos/demo-audio-opus.d.ts.map +1 -0
- package/dist/demos/demo-audio-opus.js +107 -0
- package/dist/demos/demo-audio-opus.js.map +1 -0
- package/dist/demos/demo-audio.d.ts +10 -0
- package/dist/demos/demo-audio.d.ts.map +1 -0
- package/dist/demos/demo-audio.js +135 -0
- package/dist/demos/demo-audio.js.map +1 -0
- package/dist/demos/demo-conversion.d.ts +13 -0
- package/dist/demos/demo-conversion.d.ts.map +1 -0
- package/dist/demos/demo-conversion.js +301 -0
- package/dist/demos/demo-conversion.js.map +1 -0
- package/dist/demos/demo-h264.d.ts +7 -0
- package/dist/demos/demo-h264.d.ts.map +1 -0
- package/dist/demos/demo-h264.js +134 -0
- package/dist/demos/demo-h264.js.map +1 -0
- package/dist/demos/demo-hwaccel-conversion.d.ts +8 -0
- package/dist/demos/demo-hwaccel-conversion.d.ts.map +1 -0
- package/dist/demos/demo-hwaccel-conversion.js +161 -0
- package/dist/demos/demo-hwaccel-conversion.js.map +1 -0
- package/dist/demos/demo-hwaccel.d.ts +7 -0
- package/dist/demos/demo-hwaccel.d.ts.map +1 -0
- package/dist/demos/demo-hwaccel.js +51 -0
- package/dist/demos/demo-hwaccel.js.map +1 -0
- package/dist/demos/demo-image.d.ts +12 -0
- package/dist/demos/demo-image.d.ts.map +1 -0
- package/dist/demos/demo-image.js +178 -0
- package/dist/demos/demo-image.js.map +1 -0
- package/dist/demos/demo-mediabunny.d.ts +7 -0
- package/dist/demos/demo-mediabunny.d.ts.map +1 -0
- package/dist/demos/demo-mediabunny.js +78 -0
- package/dist/demos/demo-mediabunny.js.map +1 -0
- package/dist/demos/demo-pipeline.d.ts +8 -0
- package/dist/demos/demo-pipeline.d.ts.map +1 -0
- package/dist/demos/demo-pipeline.js +83 -0
- package/dist/demos/demo-pipeline.js.map +1 -0
- package/dist/demos/demo-samples.d.ts +9 -0
- package/dist/demos/demo-samples.d.ts.map +1 -0
- package/dist/demos/demo-samples.js +413 -0
- package/dist/demos/demo-samples.js.map +1 -0
- package/dist/demos/demo-streaming.d.ts +8 -0
- package/dist/demos/demo-streaming.d.ts.map +1 -0
- package/dist/demos/demo-streaming.js +299 -0
- package/dist/demos/demo-streaming.js.map +1 -0
- package/dist/demos/demo-webcodecs.d.ts +8 -0
- package/dist/demos/demo-webcodecs.d.ts.map +1 -0
- package/dist/demos/demo-webcodecs.js +316 -0
- package/dist/demos/demo-webcodecs.js.map +1 -0
- package/dist/demos/demo.d.ts +10 -0
- package/dist/demos/demo.d.ts.map +1 -0
- package/dist/demos/demo.js +123 -0
- package/dist/demos/demo.js.map +1 -0
- package/dist/encoders/AudioEncoder.d.ts +69 -0
- package/dist/encoders/AudioEncoder.d.ts.map +1 -0
- package/dist/encoders/AudioEncoder.js +425 -0
- package/dist/encoders/AudioEncoder.js.map +1 -0
- package/dist/encoders/VideoEncoder.d.ts +80 -0
- package/dist/encoders/VideoEncoder.d.ts.map +1 -0
- package/dist/encoders/VideoEncoder.js +386 -0
- package/dist/encoders/VideoEncoder.js.map +1 -0
- package/dist/encoders/codecs/av1.d.ts +31 -0
- package/dist/encoders/codecs/av1.d.ts.map +1 -0
- package/dist/encoders/codecs/av1.js +66 -0
- package/dist/encoders/codecs/av1.js.map +1 -0
- package/dist/encoders/codecs/h264.d.ts +28 -0
- package/dist/encoders/codecs/h264.d.ts.map +1 -0
- package/dist/encoders/codecs/h264.js +95 -0
- package/dist/encoders/codecs/h264.js.map +1 -0
- package/dist/encoders/codecs/hevc.d.ts +28 -0
- package/dist/encoders/codecs/hevc.d.ts.map +1 -0
- package/dist/encoders/codecs/hevc.js +73 -0
- package/dist/encoders/codecs/hevc.js.map +1 -0
- package/dist/encoders/codecs/index.d.ts +19 -0
- package/dist/encoders/codecs/index.d.ts.map +1 -0
- package/dist/encoders/codecs/index.js +60 -0
- package/dist/encoders/codecs/index.js.map +1 -0
- package/dist/encoders/codecs/vp9.d.ts +29 -0
- package/dist/encoders/codecs/vp9.d.ts.map +1 -0
- package/dist/encoders/codecs/vp9.js +58 -0
- package/dist/encoders/codecs/vp9.js.map +1 -0
- package/dist/encoders/index.d.ts +8 -0
- package/dist/encoders/index.d.ts.map +1 -0
- package/dist/encoders/index.js +8 -0
- package/dist/encoders/index.js.map +1 -0
- package/dist/ffmpeg/FFmpegProcess.d.ts +111 -0
- package/dist/ffmpeg/FFmpegProcess.d.ts.map +1 -0
- package/dist/ffmpeg/FFmpegProcess.js +543 -0
- package/dist/ffmpeg/FFmpegProcess.js.map +1 -0
- package/dist/ffmpeg/audio-codecs.d.ts +59 -0
- package/dist/ffmpeg/audio-codecs.d.ts.map +1 -0
- package/dist/ffmpeg/audio-codecs.js +99 -0
- package/dist/ffmpeg/audio-codecs.js.map +1 -0
- package/dist/ffmpeg/formats.d.ts +42 -0
- package/dist/ffmpeg/formats.d.ts.map +1 -0
- package/dist/ffmpeg/formats.js +147 -0
- package/dist/ffmpeg/formats.js.map +1 -0
- package/dist/ffmpeg/index.d.ts +9 -0
- package/dist/ffmpeg/index.d.ts.map +1 -0
- package/dist/ffmpeg/index.js +13 -0
- package/dist/ffmpeg/index.js.map +1 -0
- package/dist/ffmpeg/parsers/annexb.d.ts +88 -0
- package/dist/ffmpeg/parsers/annexb.d.ts.map +1 -0
- package/dist/ffmpeg/parsers/annexb.js +201 -0
- package/dist/ffmpeg/parsers/annexb.js.map +1 -0
- package/dist/ffmpeg/parsers/index.d.ts +6 -0
- package/dist/ffmpeg/parsers/index.d.ts.map +1 -0
- package/dist/ffmpeg/parsers/index.js +8 -0
- package/dist/ffmpeg/parsers/index.js.map +1 -0
- package/dist/ffmpeg/parsers/ivf.d.ts +54 -0
- package/dist/ffmpeg/parsers/ivf.d.ts.map +1 -0
- package/dist/ffmpeg/parsers/ivf.js +109 -0
- package/dist/ffmpeg/parsers/ivf.js.map +1 -0
- package/dist/ffmpeg/types.d.ts +85 -0
- package/dist/ffmpeg/types.d.ts.map +1 -0
- package/dist/ffmpeg/types.js +8 -0
- package/dist/ffmpeg/types.js.map +1 -0
- package/dist/formats/audio-formats.d.ts +61 -0
- package/dist/formats/audio-formats.d.ts.map +1 -0
- package/dist/formats/audio-formats.js +113 -0
- package/dist/formats/audio-formats.js.map +1 -0
- package/dist/formats/color-space.d.ts +35 -0
- package/dist/formats/color-space.d.ts.map +1 -0
- package/dist/formats/color-space.js +62 -0
- package/dist/formats/color-space.js.map +1 -0
- package/dist/formats/conversions/frame-converter.d.ts +42 -0
- package/dist/formats/conversions/frame-converter.d.ts.map +1 -0
- package/dist/formats/conversions/frame-converter.js +244 -0
- package/dist/formats/conversions/frame-converter.js.map +1 -0
- package/dist/formats/conversions/index.d.ts +8 -0
- package/dist/formats/conversions/index.d.ts.map +1 -0
- package/dist/formats/conversions/index.js +10 -0
- package/dist/formats/conversions/index.js.map +1 -0
- package/dist/formats/index.d.ts +9 -0
- package/dist/formats/index.d.ts.map +1 -0
- package/dist/formats/index.js +14 -0
- package/dist/formats/index.js.map +1 -0
- package/dist/formats/parsers/index.d.ts +5 -0
- package/dist/formats/parsers/index.d.ts.map +1 -0
- package/dist/formats/parsers/index.js +5 -0
- package/dist/formats/parsers/index.js.map +1 -0
- package/dist/formats/parsers/webp.d.ts +16 -0
- package/dist/formats/parsers/webp.d.ts.map +1 -0
- package/dist/formats/parsers/webp.js +116 -0
- package/dist/formats/parsers/webp.js.map +1 -0
- package/dist/formats/pixel-formats.d.ts +41 -0
- package/dist/formats/pixel-formats.d.ts.map +1 -0
- package/dist/formats/pixel-formats.js +113 -0
- package/dist/formats/pixel-formats.js.map +1 -0
- package/dist/hardware/HardwareAcceleration.d.ts +6 -0
- package/dist/hardware/HardwareAcceleration.d.ts.map +1 -0
- package/dist/hardware/HardwareAcceleration.js +6 -0
- package/dist/hardware/HardwareAcceleration.js.map +1 -0
- package/dist/hardware/decoder-args.d.ts +25 -0
- package/dist/hardware/decoder-args.d.ts.map +1 -0
- package/dist/hardware/decoder-args.js +84 -0
- package/dist/hardware/decoder-args.js.map +1 -0
- package/dist/hardware/detection.d.ts +39 -0
- package/dist/hardware/detection.d.ts.map +1 -0
- package/dist/hardware/detection.js +178 -0
- package/dist/hardware/detection.js.map +1 -0
- package/dist/hardware/encoder-args.d.ts +38 -0
- package/dist/hardware/encoder-args.d.ts.map +1 -0
- package/dist/hardware/encoder-args.js +177 -0
- package/dist/hardware/encoder-args.js.map +1 -0
- package/dist/hardware/index.d.ts +12 -0
- package/dist/hardware/index.d.ts.map +1 -0
- package/dist/hardware/index.js +14 -0
- package/dist/hardware/index.js.map +1 -0
- package/dist/hardware/types.d.ts +29 -0
- package/dist/hardware/types.d.ts.map +1 -0
- package/dist/hardware/types.js +58 -0
- package/dist/hardware/types.js.map +1 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/mediabunny/FFmpegAudioDecoder.d.ts +37 -0
- package/dist/mediabunny/FFmpegAudioDecoder.d.ts.map +1 -0
- package/dist/mediabunny/FFmpegAudioDecoder.js +254 -0
- package/dist/mediabunny/FFmpegAudioDecoder.js.map +1 -0
- package/dist/mediabunny/FFmpegAudioEncoder.d.ts +77 -0
- package/dist/mediabunny/FFmpegAudioEncoder.d.ts.map +1 -0
- package/dist/mediabunny/FFmpegAudioEncoder.js +484 -0
- package/dist/mediabunny/FFmpegAudioEncoder.js.map +1 -0
- package/dist/mediabunny/FFmpegVideoDecoder.d.ts +58 -0
- package/dist/mediabunny/FFmpegVideoDecoder.d.ts.map +1 -0
- package/dist/mediabunny/FFmpegVideoDecoder.js +366 -0
- package/dist/mediabunny/FFmpegVideoDecoder.js.map +1 -0
- package/dist/mediabunny/FFmpegVideoEncoder.d.ts +77 -0
- package/dist/mediabunny/FFmpegVideoEncoder.d.ts.map +1 -0
- package/dist/mediabunny/FFmpegVideoEncoder.js +551 -0
- package/dist/mediabunny/FFmpegVideoEncoder.js.map +1 -0
- package/dist/mediabunny/index.d.ts +21 -0
- package/dist/mediabunny/index.d.ts.map +1 -0
- package/dist/mediabunny/index.js +33 -0
- package/dist/mediabunny/index.js.map +1 -0
- package/dist/polyfill.d.ts +27 -0
- package/dist/polyfill.d.ts.map +1 -0
- package/dist/polyfill.js +78 -0
- package/dist/polyfill.js.map +1 -0
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts +72 -0
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts.map +1 -0
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.js +293 -0
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.js.map +1 -0
- package/dist/polyfills/ImageDataPolyfill.d.ts +12 -0
- package/dist/polyfills/ImageDataPolyfill.d.ts.map +1 -0
- package/dist/polyfills/ImageDataPolyfill.js +22 -0
- package/dist/polyfills/ImageDataPolyfill.js.map +1 -0
- package/dist/polyfills/OffscreenCanvas.d.ts +15 -0
- package/dist/polyfills/OffscreenCanvas.d.ts.map +1 -0
- package/dist/polyfills/OffscreenCanvas.js +35 -0
- package/dist/polyfills/OffscreenCanvas.js.map +1 -0
- package/dist/polyfills/OffscreenCanvasPolyfill.d.ts +16 -0
- package/dist/polyfills/OffscreenCanvasPolyfill.d.ts.map +1 -0
- package/dist/polyfills/OffscreenCanvasPolyfill.js +46 -0
- package/dist/polyfills/OffscreenCanvasPolyfill.js.map +1 -0
- package/dist/polyfills/VideoFramePolyfill.d.ts +44 -0
- package/dist/polyfills/VideoFramePolyfill.d.ts.map +1 -0
- package/dist/polyfills/VideoFramePolyfill.js +98 -0
- package/dist/polyfills/VideoFramePolyfill.js.map +1 -0
- package/dist/tools/generate-capabilities-profile.d.ts +2 -0
- package/dist/tools/generate-capabilities-profile.d.ts.map +1 -0
- package/dist/tools/generate-capabilities-profile.js +63 -0
- package/dist/tools/generate-capabilities-profile.js.map +1 -0
- package/dist/types/audio.d.ts +26 -0
- package/dist/types/audio.d.ts.map +1 -0
- package/dist/types/audio.js +5 -0
- package/dist/types/audio.js.map +1 -0
- package/dist/types/common.d.ts +68 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +70 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/geometry.d.ts +35 -0
- package/dist/types/geometry.d.ts.map +1 -0
- package/dist/types/geometry.js +34 -0
- package/dist/types/geometry.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/video.d.ts +43 -0
- package/dist/types/video.d.ts.map +1 -0
- package/dist/types/video.js +5 -0
- package/dist/types/video.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/aac.d.ts +26 -0
- package/dist/utils/aac.d.ts.map +1 -0
- package/dist/utils/aac.js +129 -0
- package/dist/utils/aac.js.map +1 -0
- package/dist/utils/avc.d.ts +39 -0
- package/dist/utils/avc.d.ts.map +1 -0
- package/dist/utils/avc.js +225 -0
- package/dist/utils/avc.js.map +1 -0
- package/dist/utils/buffer.d.ts +25 -0
- package/dist/utils/buffer.d.ts.map +1 -0
- package/dist/utils/buffer.js +73 -0
- package/dist/utils/buffer.js.map +1 -0
- package/dist/utils/hevc.d.ts +27 -0
- package/dist/utils/hevc.d.ts.map +1 -0
- package/dist/utils/hevc.js +239 -0
- package/dist/utils/hevc.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +16 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +55 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +110 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/type-guards.d.ts +50 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +49 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/dist/utils/validation.d.ts +32 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +66 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/api.md +506 -0
- package/docs/codecs.md +382 -0
- package/docs/configuration.md +442 -0
- package/examples/README.md +100 -0
- package/examples/audio-encoding.ts +85 -0
- package/examples/hardware-decoding.ts +245 -0
- package/examples/hardware-encoding.ts +231 -0
- package/examples/image-decoding.ts +145 -0
- package/examples/streaming.ts +151 -0
- package/examples/transparent-video.ts +162 -0
- package/examples/video-decoding.ts +107 -0
- package/examples/video-encoding.ts +93 -0
- package/package.json +105 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VideoFrame polyfill for Node.js
|
|
3
|
+
* Minimal implementation sufficient for Mediabunny's needs
|
|
4
|
+
*/
|
|
5
|
+
import type { OffscreenCanvasPolyfill } from './OffscreenCanvasPolyfill.js';
|
|
6
|
+
export declare class VideoFramePolyfill {
|
|
7
|
+
readonly format: string;
|
|
8
|
+
readonly codedWidth: number;
|
|
9
|
+
readonly codedHeight: number;
|
|
10
|
+
readonly displayWidth: number;
|
|
11
|
+
readonly displayHeight: number;
|
|
12
|
+
readonly timestamp: number;
|
|
13
|
+
readonly duration: number | null;
|
|
14
|
+
readonly colorSpace: {
|
|
15
|
+
primaries: string;
|
|
16
|
+
transfer: string;
|
|
17
|
+
matrix: string;
|
|
18
|
+
fullRange: boolean;
|
|
19
|
+
};
|
|
20
|
+
private _data;
|
|
21
|
+
private _closed;
|
|
22
|
+
constructor(data: Uint8Array | Uint8ClampedArray | OffscreenCanvasPolyfill | unknown, init: {
|
|
23
|
+
format?: string;
|
|
24
|
+
codedWidth?: number;
|
|
25
|
+
codedHeight?: number;
|
|
26
|
+
timestamp: number;
|
|
27
|
+
duration?: number;
|
|
28
|
+
colorSpace?: {
|
|
29
|
+
primaries?: string;
|
|
30
|
+
transfer?: string;
|
|
31
|
+
matrix?: string;
|
|
32
|
+
fullRange?: boolean;
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
allocationSize(): number;
|
|
36
|
+
copyTo(destination: Uint8Array | Uint8ClampedArray): Promise<Array<{
|
|
37
|
+
offset: number;
|
|
38
|
+
stride: number;
|
|
39
|
+
}>>;
|
|
40
|
+
clone(): VideoFramePolyfill;
|
|
41
|
+
close(): void;
|
|
42
|
+
get _rawData(): Uint8Array;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=VideoFramePolyfill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoFramePolyfill.d.ts","sourceRoot":"","sources":["../../src/polyfills/VideoFramePolyfill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjG,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,OAAO,CAAkB;gBAG/B,IAAI,EAAE,UAAU,GAAG,iBAAiB,GAAG,uBAAuB,GAAG,OAAO,EACxE,IAAI,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC9F;IAkDH,cAAc,IAAI,MAAM;IAIlB,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAQ7G,KAAK,IAAI,kBAAkB;IAc3B,KAAK,IAAI,IAAI;IAKb,IAAI,QAAQ,IAAI,UAAU,CAEzB;CACF"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VideoFrame polyfill for Node.js
|
|
3
|
+
* Minimal implementation sufficient for Mediabunny's needs
|
|
4
|
+
*/
|
|
5
|
+
export class VideoFramePolyfill {
|
|
6
|
+
format;
|
|
7
|
+
codedWidth;
|
|
8
|
+
codedHeight;
|
|
9
|
+
displayWidth;
|
|
10
|
+
displayHeight;
|
|
11
|
+
timestamp;
|
|
12
|
+
duration;
|
|
13
|
+
colorSpace;
|
|
14
|
+
_data;
|
|
15
|
+
_closed = false;
|
|
16
|
+
constructor(data, init) {
|
|
17
|
+
// Handle OffscreenCanvas input
|
|
18
|
+
if (data && typeof data === 'object' && '_getImageData' in data && typeof data._getImageData === 'function') {
|
|
19
|
+
const canvas = data;
|
|
20
|
+
this._data = new Uint8Array(canvas._getImageData());
|
|
21
|
+
this.format = 'RGBA';
|
|
22
|
+
this.codedWidth = canvas.width;
|
|
23
|
+
this.codedHeight = canvas.height;
|
|
24
|
+
}
|
|
25
|
+
else if (data instanceof Uint8Array || data instanceof Uint8ClampedArray) {
|
|
26
|
+
// Handle raw data input
|
|
27
|
+
this._data = new Uint8Array(data);
|
|
28
|
+
this.format = init.format ?? 'RGBA';
|
|
29
|
+
this.codedWidth = init.codedWidth ?? 0;
|
|
30
|
+
this.codedHeight = init.codedHeight ?? 0;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
// Try to extract data from canvas-like objects
|
|
34
|
+
const obj = data;
|
|
35
|
+
if (obj && obj.width !== undefined && obj.height !== undefined) {
|
|
36
|
+
const width = obj.width;
|
|
37
|
+
const height = obj.height;
|
|
38
|
+
// Try to get image data
|
|
39
|
+
if (typeof obj._getImageData === 'function') {
|
|
40
|
+
this._data = new Uint8Array(obj._getImageData());
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this._data = new Uint8Array(width * height * 4);
|
|
44
|
+
}
|
|
45
|
+
this.format = 'RGBA';
|
|
46
|
+
this.codedWidth = width;
|
|
47
|
+
this.codedHeight = height;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this._data = new Uint8Array(0);
|
|
51
|
+
this.format = init.format ?? 'RGBA';
|
|
52
|
+
this.codedWidth = init.codedWidth ?? 0;
|
|
53
|
+
this.codedHeight = init.codedHeight ?? 0;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
this.displayWidth = this.codedWidth;
|
|
57
|
+
this.displayHeight = this.codedHeight;
|
|
58
|
+
this.timestamp = init.timestamp;
|
|
59
|
+
this.duration = init.duration ?? null;
|
|
60
|
+
this.colorSpace = {
|
|
61
|
+
primaries: init.colorSpace?.primaries ?? 'bt709',
|
|
62
|
+
transfer: init.colorSpace?.transfer ?? 'bt709',
|
|
63
|
+
matrix: init.colorSpace?.matrix ?? 'bt709',
|
|
64
|
+
fullRange: init.colorSpace?.fullRange ?? true,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
allocationSize() {
|
|
68
|
+
return this._data.byteLength;
|
|
69
|
+
}
|
|
70
|
+
async copyTo(destination) {
|
|
71
|
+
if (this._closed) {
|
|
72
|
+
throw new Error('VideoFrame is closed');
|
|
73
|
+
}
|
|
74
|
+
destination.set(this._data.subarray(0, destination.length));
|
|
75
|
+
return [{ offset: 0, stride: this.codedWidth * 4 }];
|
|
76
|
+
}
|
|
77
|
+
clone() {
|
|
78
|
+
if (this._closed) {
|
|
79
|
+
throw new Error('VideoFrame is closed');
|
|
80
|
+
}
|
|
81
|
+
return new VideoFramePolyfill(this._data, {
|
|
82
|
+
format: this.format,
|
|
83
|
+
codedWidth: this.codedWidth,
|
|
84
|
+
codedHeight: this.codedHeight,
|
|
85
|
+
timestamp: this.timestamp,
|
|
86
|
+
duration: this.duration ?? undefined,
|
|
87
|
+
colorSpace: this.colorSpace,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
close() {
|
|
91
|
+
this._closed = true;
|
|
92
|
+
}
|
|
93
|
+
// Property to expose data for OffscreenCanvas polyfill
|
|
94
|
+
get _rawData() {
|
|
95
|
+
return this._data;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=VideoFramePolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoFramePolyfill.js","sourceRoot":"","sources":["../../src/polyfills/VideoFramePolyfill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-capabilities-profile.d.ts","sourceRoot":"","sources":["../../src/tools/generate-capabilities-profile.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { SMOOTH_THRESHOLDS } from '../capabilities/codecs.js';
|
|
4
|
+
import { detectHardwareAcceleration, parseCodecString, } from '../hardware/index.js';
|
|
5
|
+
const VIDEO_PRESETS = [
|
|
6
|
+
{ codec: 'avc1.42E01E', profile: 'baseline', level: '4.0' },
|
|
7
|
+
{ codec: 'hev1.1.6.L93.B0', profile: 'main', level: '5.1' },
|
|
8
|
+
{ codec: 'vp8', profile: 'main' },
|
|
9
|
+
{ codec: 'vp09.00.10.08', profile: 'profile0', level: '4' },
|
|
10
|
+
{ codec: 'av01.0.01M.08', profile: 'main', level: '4.0' },
|
|
11
|
+
];
|
|
12
|
+
const AUDIO_PRESETS = [
|
|
13
|
+
{ codec: 'mp4a.40.2', maxBitrate: 320000 },
|
|
14
|
+
{ codec: 'opus', maxBitrate: 320000 },
|
|
15
|
+
{ codec: 'mp3', maxBitrate: 320000 },
|
|
16
|
+
{ codec: 'vorbis', maxBitrate: 320000 },
|
|
17
|
+
{ codec: 'flac', maxBitrate: 5000000 },
|
|
18
|
+
];
|
|
19
|
+
async function main() {
|
|
20
|
+
const outputArg = process.argv[2];
|
|
21
|
+
const targetPath = path.resolve(outputArg || path.join(process.cwd(), 'webcodecs-capabilities.json'));
|
|
22
|
+
const hw = await detectHardwareAcceleration();
|
|
23
|
+
const videoProfile = buildVideoProfile(hw);
|
|
24
|
+
const audioProfile = buildAudioProfile();
|
|
25
|
+
const profile = {
|
|
26
|
+
video: videoProfile,
|
|
27
|
+
audio: audioProfile,
|
|
28
|
+
};
|
|
29
|
+
await fs.promises.mkdir(path.dirname(targetPath), { recursive: true });
|
|
30
|
+
await fs.promises.writeFile(targetPath, JSON.stringify(profile, null, 2), 'utf-8');
|
|
31
|
+
console.log(`Capability profile written to ${targetPath}`);
|
|
32
|
+
}
|
|
33
|
+
function buildVideoProfile(hw) {
|
|
34
|
+
return VIDEO_PRESETS.map((preset) => {
|
|
35
|
+
const codecName = parseCodecString(preset.codec);
|
|
36
|
+
const hardwareAvailable = codecName
|
|
37
|
+
? hw.encoders.some((entry) => entry.codec === codecName && entry.available) ||
|
|
38
|
+
hw.decoders.some((entry) => entry.codec === codecName && entry.available)
|
|
39
|
+
: false;
|
|
40
|
+
const thresholds = hardwareAvailable ? SMOOTH_THRESHOLDS.hardware : SMOOTH_THRESHOLDS.software;
|
|
41
|
+
return {
|
|
42
|
+
codec: preset.codec,
|
|
43
|
+
profile: preset.profile,
|
|
44
|
+
level: preset.level,
|
|
45
|
+
maxWidth: thresholds.maxWidth,
|
|
46
|
+
maxHeight: thresholds.maxHeight,
|
|
47
|
+
maxFramerate: thresholds.maxFramerate,
|
|
48
|
+
maxBitrate: thresholds.maxBitrate,
|
|
49
|
+
hardwareAccelerated: hardwareAvailable,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function buildAudioProfile() {
|
|
54
|
+
return AUDIO_PRESETS.map((preset) => ({
|
|
55
|
+
codec: preset.codec,
|
|
56
|
+
maxBitrate: preset.maxBitrate,
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
main().catch((err) => {
|
|
60
|
+
console.error('Failed to generate capability profile:', err);
|
|
61
|
+
process.exitCode = 1;
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=generate-capabilities-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-capabilities-profile.js","sourceRoot":"","sources":["../../src/tools/generate-capabilities-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio-related type definitions
|
|
3
|
+
*/
|
|
4
|
+
export type { AudioSampleFormat } from '../formats/audio-formats.js';
|
|
5
|
+
/**
|
|
6
|
+
* Initialization options for creating AudioData
|
|
7
|
+
*/
|
|
8
|
+
export interface AudioDataInit {
|
|
9
|
+
format: import('../formats/audio-formats.js').AudioSampleFormat;
|
|
10
|
+
sampleRate: number;
|
|
11
|
+
numberOfFrames: number;
|
|
12
|
+
numberOfChannels: number;
|
|
13
|
+
timestamp: number;
|
|
14
|
+
data: ArrayBufferView | ArrayBuffer;
|
|
15
|
+
transfer?: ArrayBuffer[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for AudioData.copyTo()
|
|
19
|
+
*/
|
|
20
|
+
export interface AudioDataCopyToOptions {
|
|
21
|
+
planeIndex: number;
|
|
22
|
+
frameOffset?: number;
|
|
23
|
+
frameCount?: number;
|
|
24
|
+
format?: import('../formats/audio-formats.js').AudioSampleFormat;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/types/audio.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,6BAA6B,EAAE,iBAAiB,CAAC;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,6BAA6B,EAAE,iBAAiB,CAAC;CAClE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/types/audio.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common type definitions for WebCodecs API
|
|
3
|
+
* These types mirror the browser DOM types needed for WebCodecs
|
|
4
|
+
*/
|
|
5
|
+
export type BufferSource = ArrayBuffer | ArrayBufferView;
|
|
6
|
+
/**
|
|
7
|
+
* DOMException polyfill for Node.js
|
|
8
|
+
*/
|
|
9
|
+
export declare class DOMException extends Error {
|
|
10
|
+
readonly code: number;
|
|
11
|
+
readonly name: string;
|
|
12
|
+
static readonly INDEX_SIZE_ERR = 1;
|
|
13
|
+
static readonly DOMSTRING_SIZE_ERR = 2;
|
|
14
|
+
static readonly HIERARCHY_REQUEST_ERR = 3;
|
|
15
|
+
static readonly WRONG_DOCUMENT_ERR = 4;
|
|
16
|
+
static readonly INVALID_CHARACTER_ERR = 5;
|
|
17
|
+
static readonly NO_DATA_ALLOWED_ERR = 6;
|
|
18
|
+
static readonly NO_MODIFICATION_ALLOWED_ERR = 7;
|
|
19
|
+
static readonly NOT_FOUND_ERR = 8;
|
|
20
|
+
static readonly NOT_SUPPORTED_ERR = 9;
|
|
21
|
+
static readonly INUSE_ATTRIBUTE_ERR = 10;
|
|
22
|
+
static readonly INVALID_STATE_ERR = 11;
|
|
23
|
+
static readonly SYNTAX_ERR = 12;
|
|
24
|
+
static readonly INVALID_MODIFICATION_ERR = 13;
|
|
25
|
+
static readonly NAMESPACE_ERR = 14;
|
|
26
|
+
static readonly INVALID_ACCESS_ERR = 15;
|
|
27
|
+
static readonly VALIDATION_ERR = 16;
|
|
28
|
+
static readonly TYPE_MISMATCH_ERR = 17;
|
|
29
|
+
static readonly SECURITY_ERR = 18;
|
|
30
|
+
static readonly NETWORK_ERR = 19;
|
|
31
|
+
static readonly ABORT_ERR = 20;
|
|
32
|
+
static readonly URL_MISMATCH_ERR = 21;
|
|
33
|
+
static readonly QUOTA_EXCEEDED_ERR = 22;
|
|
34
|
+
static readonly TIMEOUT_ERR = 23;
|
|
35
|
+
static readonly INVALID_NODE_TYPE_ERR = 24;
|
|
36
|
+
static readonly DATA_CLONE_ERR = 25;
|
|
37
|
+
constructor(message?: string, name?: string);
|
|
38
|
+
private _getCode;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Codec state values
|
|
42
|
+
*/
|
|
43
|
+
export type CodecState = 'unconfigured' | 'configured' | 'closed';
|
|
44
|
+
/**
|
|
45
|
+
* Hardware acceleration preference
|
|
46
|
+
*/
|
|
47
|
+
export type HardwareAcceleration = 'no-preference' | 'prefer-hardware' | 'prefer-software';
|
|
48
|
+
/**
|
|
49
|
+
* Alpha handling mode
|
|
50
|
+
*/
|
|
51
|
+
export type AlphaOption = 'discard' | 'keep';
|
|
52
|
+
/**
|
|
53
|
+
* Latency mode for encoding
|
|
54
|
+
*/
|
|
55
|
+
export type LatencyMode = 'quality' | 'realtime';
|
|
56
|
+
/**
|
|
57
|
+
* Bitrate mode for encoding
|
|
58
|
+
*/
|
|
59
|
+
export type BitrateMode = 'constant' | 'variable' | 'quantizer';
|
|
60
|
+
/**
|
|
61
|
+
* AVC (H.264) format options
|
|
62
|
+
*/
|
|
63
|
+
export type AvcBitstreamFormat = 'annexb' | 'avc';
|
|
64
|
+
/**
|
|
65
|
+
* HEVC (H.265) format options
|
|
66
|
+
*/
|
|
67
|
+
export type HevcBitstreamFormat = 'annexb' | 'hevc';
|
|
68
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;AAEzD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,MAAM,CAAC,QAAQ,CAAC,cAAc,KAAK;IACnC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAK;IACvC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,KAAK;IAC1C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAK;IACvC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,KAAK;IAC1C,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,KAAK;IAChD,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK;IAClC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,KAAK;IACtC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,MAAM;IACzC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,MAAM;IACvC,MAAM,CAAC,QAAQ,CAAC,UAAU,MAAM;IAChC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,MAAM;IAC9C,MAAM,CAAC,QAAQ,CAAC,aAAa,MAAM;IACnC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IACxC,MAAM,CAAC,QAAQ,CAAC,cAAc,MAAM;IACpC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,MAAM;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,MAAM;IAClC,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM;IACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,MAAM;IAC/B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,MAAM;IACtC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM;IACjC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,MAAM;IAC3C,MAAM,CAAC,QAAQ,CAAC,cAAc,MAAM;gBAExB,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAM3C,OAAO,CAAC,QAAQ;CA2BjB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common type definitions for WebCodecs API
|
|
3
|
+
* These types mirror the browser DOM types needed for WebCodecs
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* DOMException polyfill for Node.js
|
|
7
|
+
*/
|
|
8
|
+
export class DOMException extends Error {
|
|
9
|
+
code;
|
|
10
|
+
name;
|
|
11
|
+
// Standard DOMException error codes
|
|
12
|
+
static INDEX_SIZE_ERR = 1;
|
|
13
|
+
static DOMSTRING_SIZE_ERR = 2;
|
|
14
|
+
static HIERARCHY_REQUEST_ERR = 3;
|
|
15
|
+
static WRONG_DOCUMENT_ERR = 4;
|
|
16
|
+
static INVALID_CHARACTER_ERR = 5;
|
|
17
|
+
static NO_DATA_ALLOWED_ERR = 6;
|
|
18
|
+
static NO_MODIFICATION_ALLOWED_ERR = 7;
|
|
19
|
+
static NOT_FOUND_ERR = 8;
|
|
20
|
+
static NOT_SUPPORTED_ERR = 9;
|
|
21
|
+
static INUSE_ATTRIBUTE_ERR = 10;
|
|
22
|
+
static INVALID_STATE_ERR = 11;
|
|
23
|
+
static SYNTAX_ERR = 12;
|
|
24
|
+
static INVALID_MODIFICATION_ERR = 13;
|
|
25
|
+
static NAMESPACE_ERR = 14;
|
|
26
|
+
static INVALID_ACCESS_ERR = 15;
|
|
27
|
+
static VALIDATION_ERR = 16;
|
|
28
|
+
static TYPE_MISMATCH_ERR = 17;
|
|
29
|
+
static SECURITY_ERR = 18;
|
|
30
|
+
static NETWORK_ERR = 19;
|
|
31
|
+
static ABORT_ERR = 20;
|
|
32
|
+
static URL_MISMATCH_ERR = 21;
|
|
33
|
+
static QUOTA_EXCEEDED_ERR = 22;
|
|
34
|
+
static TIMEOUT_ERR = 23;
|
|
35
|
+
static INVALID_NODE_TYPE_ERR = 24;
|
|
36
|
+
static DATA_CLONE_ERR = 25;
|
|
37
|
+
constructor(message, name) {
|
|
38
|
+
super(message);
|
|
39
|
+
this.name = name || 'Error';
|
|
40
|
+
this.code = this._getCode(this.name);
|
|
41
|
+
}
|
|
42
|
+
_getCode(name) {
|
|
43
|
+
const codeMap = {
|
|
44
|
+
IndexSizeError: 1,
|
|
45
|
+
HierarchyRequestError: 3,
|
|
46
|
+
WrongDocumentError: 4,
|
|
47
|
+
InvalidCharacterError: 5,
|
|
48
|
+
NoModificationAllowedError: 7,
|
|
49
|
+
NotFoundError: 8,
|
|
50
|
+
NotSupportedError: 9,
|
|
51
|
+
InUseAttributeError: 10,
|
|
52
|
+
InvalidStateError: 11,
|
|
53
|
+
SyntaxError: 12,
|
|
54
|
+
InvalidModificationError: 13,
|
|
55
|
+
NamespaceError: 14,
|
|
56
|
+
InvalidAccessError: 15,
|
|
57
|
+
TypeMismatchError: 17,
|
|
58
|
+
SecurityError: 18,
|
|
59
|
+
NetworkError: 19,
|
|
60
|
+
AbortError: 20,
|
|
61
|
+
URLMismatchError: 21,
|
|
62
|
+
QuotaExceededError: 22,
|
|
63
|
+
TimeoutError: 23,
|
|
64
|
+
InvalidNodeTypeError: 24,
|
|
65
|
+
DataCloneError: 25,
|
|
66
|
+
};
|
|
67
|
+
return codeMap[name] || 0;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAS;IACb,IAAI,CAAS;IAEtB,oCAAoC;IACpC,MAAM,CAAU,cAAc,GAAG,CAAC,CAAC;IACnC,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IACvC,MAAM,CAAU,qBAAqB,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAU,kBAAkB,GAAG,CAAC,CAAC;IACvC,MAAM,CAAU,qBAAqB,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAU,mBAAmB,GAAG,CAAC,CAAC;IACxC,MAAM,CAAU,2BAA2B,GAAG,CAAC,CAAC;IAChD,MAAM,CAAU,aAAa,GAAG,CAAC,CAAC;IAClC,MAAM,CAAU,iBAAiB,GAAG,CAAC,CAAC;IACtC,MAAM,CAAU,mBAAmB,GAAG,EAAE,CAAC;IACzC,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IACvC,MAAM,CAAU,UAAU,GAAG,EAAE,CAAC;IAChC,MAAM,CAAU,wBAAwB,GAAG,EAAE,CAAC;IAC9C,MAAM,CAAU,aAAa,GAAG,EAAE,CAAC;IACnC,MAAM,CAAU,kBAAkB,GAAG,EAAE,CAAC;IACxC,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IACpC,MAAM,CAAU,iBAAiB,GAAG,EAAE,CAAC;IACvC,MAAM,CAAU,YAAY,GAAG,EAAE,CAAC;IAClC,MAAM,CAAU,WAAW,GAAG,EAAE,CAAC;IACjC,MAAM,CAAU,SAAS,GAAG,EAAE,CAAC;IAC/B,MAAM,CAAU,gBAAgB,GAAG,EAAE,CAAC;IACtC,MAAM,CAAU,kBAAkB,GAAG,EAAE,CAAC;IACxC,MAAM,CAAU,WAAW,GAAG,EAAE,CAAC;IACjC,MAAM,CAAU,qBAAqB,GAAG,EAAE,CAAC;IAC3C,MAAM,CAAU,cAAc,GAAG,EAAE,CAAC;IAEpC,YAAY,OAAgB,EAAE,IAAa;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,CAAC;YACjB,qBAAqB,EAAE,CAAC;YACxB,kBAAkB,EAAE,CAAC;YACrB,qBAAqB,EAAE,CAAC;YACxB,0BAA0B,EAAE,CAAC;YAC7B,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,EAAE;YACvB,iBAAiB,EAAE,EAAE;YACrB,WAAW,EAAE,EAAE;YACf,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,EAAE;YAClB,kBAAkB,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,kBAAkB,EAAE,EAAE;YACtB,YAAY,EAAE,EAAE;YAChB,oBAAoB,EAAE,EAAE;YACxB,cAAc,EAAE,EAAE;SACnB,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Geometry types - DOMRect and related structures
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* DOMRectInit - initialization object for DOMRect
|
|
6
|
+
*/
|
|
7
|
+
export interface DOMRectInit {
|
|
8
|
+
x?: number;
|
|
9
|
+
y?: number;
|
|
10
|
+
width?: number;
|
|
11
|
+
height?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* DOMRectReadOnly - immutable rectangle representation
|
|
15
|
+
*/
|
|
16
|
+
export declare class DOMRectReadOnly {
|
|
17
|
+
readonly x: number;
|
|
18
|
+
readonly y: number;
|
|
19
|
+
readonly width: number;
|
|
20
|
+
readonly height: number;
|
|
21
|
+
constructor(x?: number, y?: number, width?: number, height?: number);
|
|
22
|
+
get top(): number;
|
|
23
|
+
get right(): number;
|
|
24
|
+
get bottom(): number;
|
|
25
|
+
get left(): number;
|
|
26
|
+
toJSON(): DOMRectInit;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* PlaneLayout - describes the layout of a single plane in a video frame
|
|
30
|
+
*/
|
|
31
|
+
export interface PlaneLayout {
|
|
32
|
+
offset: number;
|
|
33
|
+
stride: number;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=geometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/types/geometry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,KAAK,SAAI,EAAE,MAAM,SAAI;IAO/C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,WAAW;CAGtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Geometry types - DOMRect and related structures
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* DOMRectReadOnly - immutable rectangle representation
|
|
6
|
+
*/
|
|
7
|
+
export class DOMRectReadOnly {
|
|
8
|
+
x;
|
|
9
|
+
y;
|
|
10
|
+
width;
|
|
11
|
+
height;
|
|
12
|
+
constructor(x = 0, y = 0, width = 0, height = 0) {
|
|
13
|
+
this.x = x;
|
|
14
|
+
this.y = y;
|
|
15
|
+
this.width = width;
|
|
16
|
+
this.height = height;
|
|
17
|
+
}
|
|
18
|
+
get top() {
|
|
19
|
+
return this.y;
|
|
20
|
+
}
|
|
21
|
+
get right() {
|
|
22
|
+
return this.x + this.width;
|
|
23
|
+
}
|
|
24
|
+
get bottom() {
|
|
25
|
+
return this.y + this.height;
|
|
26
|
+
}
|
|
27
|
+
get left() {
|
|
28
|
+
return this.x;
|
|
29
|
+
}
|
|
30
|
+
toJSON() {
|
|
31
|
+
return { x: this.x, y: this.y, width: this.width, height: this.height };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../src/types/geometry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,CAAC,CAAS;IACV,CAAC,CAAS;IACV,KAAK,CAAS;IACd,MAAM,CAAS;IAExB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;QAC7C,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type exports for WebCodecs implementation
|
|
3
|
+
*/
|
|
4
|
+
export { type BufferSource, DOMException, type CodecState, type HardwareAcceleration, type AlphaOption, type LatencyMode, type BitrateMode, type AvcBitstreamFormat, type HevcBitstreamFormat, } from './common.js';
|
|
5
|
+
export { type DOMRectInit, DOMRectReadOnly, type PlaneLayout, } from './geometry.js';
|
|
6
|
+
export { type VideoPixelFormat, type VideoFrameBufferInit, type VideoFrameInit, type VideoFrameCopyToOptions, } from './video.js';
|
|
7
|
+
export { type AudioSampleFormat, type AudioDataInit, type AudioDataCopyToOptions, } from './audio.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,KAAK,YAAY,EACjB,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAe;AACf,OAAO,EAEL,YAAY,GAQb,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EAEL,eAAe,GAEhB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Video-related type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { PlaneLayout, DOMRectInit } from './geometry.js';
|
|
5
|
+
import type { VideoColorSpaceInit } from '../formats/color-space.js';
|
|
6
|
+
import type { VideoPixelFormat } from '../formats/pixel-formats.js';
|
|
7
|
+
export type { VideoPixelFormat };
|
|
8
|
+
/**
|
|
9
|
+
* Initialization options for creating a VideoFrame from raw pixel data
|
|
10
|
+
*/
|
|
11
|
+
export interface VideoFrameBufferInit {
|
|
12
|
+
format: VideoPixelFormat;
|
|
13
|
+
codedWidth: number;
|
|
14
|
+
codedHeight: number;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
duration?: number;
|
|
17
|
+
layout?: PlaneLayout[];
|
|
18
|
+
visibleRect?: DOMRectInit;
|
|
19
|
+
displayWidth?: number;
|
|
20
|
+
displayHeight?: number;
|
|
21
|
+
colorSpace?: VideoColorSpaceInit;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Initialization options for creating a VideoFrame from CanvasImageSource
|
|
25
|
+
*/
|
|
26
|
+
export interface VideoFrameInit {
|
|
27
|
+
timestamp: number;
|
|
28
|
+
duration?: number;
|
|
29
|
+
alpha?: 'discard' | 'keep';
|
|
30
|
+
visibleRect?: DOMRectInit;
|
|
31
|
+
displayWidth?: number;
|
|
32
|
+
displayHeight?: number;
|
|
33
|
+
colorSpace?: VideoColorSpaceInit;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Options for VideoFrame.copyTo()
|
|
37
|
+
*/
|
|
38
|
+
export interface VideoFrameCopyToOptions {
|
|
39
|
+
rect?: DOMRectInit;
|
|
40
|
+
layout?: PlaneLayout[];
|
|
41
|
+
format?: VideoPixelFormat;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=video.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/types/video.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/types/video.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AAC (AudioSpecificConfig) parsing and ADTS framing utilities.
|
|
3
|
+
*/
|
|
4
|
+
export interface AacConfig {
|
|
5
|
+
audioObjectType: number;
|
|
6
|
+
samplingFrequencyIndex: number;
|
|
7
|
+
samplingRate: number;
|
|
8
|
+
channelConfiguration: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const SAMPLING_RATES: number[];
|
|
11
|
+
/**
|
|
12
|
+
* Parse the AudioSpecificConfig (ISO/IEC 14496-3) blob passed via
|
|
13
|
+
* AudioDecoderConfig.description for codecs like mp4a.40.*.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseAudioSpecificConfig(data: Uint8Array): AacConfig;
|
|
16
|
+
/**
|
|
17
|
+
* Wrap a raw AAC frame with an ADTS header using the parsed config.
|
|
18
|
+
*/
|
|
19
|
+
export declare function wrapAacFrameWithAdts(data: Uint8Array, config: AacConfig): Buffer;
|
|
20
|
+
export declare function buildAudioSpecificConfig(params: {
|
|
21
|
+
audioObjectType?: number;
|
|
22
|
+
samplingRate: number;
|
|
23
|
+
channelConfiguration: number;
|
|
24
|
+
}): Uint8Array;
|
|
25
|
+
export declare function stripAdtsHeader(frame: Uint8Array): Uint8Array;
|
|
26
|
+
//# sourceMappingURL=aac.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aac.d.ts","sourceRoot":"","sources":["../../src/utils/aac.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,cAAc,UAI1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CA2CpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAiBhF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GAAG,UAAU,CA0Bb;AA+BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAW7D"}
|