webcodecs-node 0.7.2 → 0.8.5
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/README.md +106 -16
- package/dist/backends/node-av/HardwarePipeline.d.ts +36 -0
- package/dist/backends/node-av/HardwarePipeline.d.ts.map +1 -0
- package/dist/backends/node-av/HardwarePipeline.js +203 -0
- package/dist/backends/node-av/HardwarePipeline.js.map +1 -0
- package/dist/backends/node-av/audio/NodeAvAudioDecoder.d.ts +46 -0
- package/dist/backends/node-av/audio/NodeAvAudioDecoder.d.ts.map +1 -0
- package/dist/backends/node-av/audio/NodeAvAudioDecoder.js +277 -0
- package/dist/backends/node-av/audio/NodeAvAudioDecoder.js.map +1 -0
- package/dist/backends/node-av/audio/NodeAvAudioEncoder.d.ts +47 -0
- package/dist/backends/node-av/audio/NodeAvAudioEncoder.d.ts.map +1 -0
- package/dist/backends/node-av/audio/NodeAvAudioEncoder.js +363 -0
- package/dist/backends/node-av/audio/NodeAvAudioEncoder.js.map +1 -0
- package/dist/backends/node-av/audio/decoder/channel-layout.d.ts +12 -0
- package/dist/backends/node-av/audio/decoder/channel-layout.d.ts.map +1 -0
- package/dist/backends/node-av/audio/decoder/channel-layout.js +24 -0
- package/dist/backends/node-av/audio/decoder/channel-layout.js.map +1 -0
- package/dist/backends/node-av/audio/decoder/codec-mapping.d.ts +9 -0
- package/dist/backends/node-av/audio/decoder/codec-mapping.d.ts.map +1 -0
- package/dist/backends/node-av/audio/decoder/codec-mapping.js +40 -0
- package/dist/backends/node-av/audio/decoder/codec-mapping.js.map +1 -0
- package/dist/backends/node-av/audio/decoder/constants.d.ts +6 -0
- package/dist/backends/node-av/audio/decoder/constants.d.ts.map +1 -0
- package/dist/backends/node-av/audio/decoder/constants.js +6 -0
- package/dist/backends/node-av/audio/decoder/constants.js.map +1 -0
- package/dist/backends/node-av/audio/decoder/index.d.ts +8 -0
- package/dist/backends/node-av/audio/decoder/index.d.ts.map +1 -0
- package/dist/backends/node-av/audio/decoder/index.js +8 -0
- package/dist/backends/node-av/audio/decoder/index.js.map +1 -0
- package/dist/backends/node-av/audio/decoder/sample-format.d.ts +14 -0
- package/dist/backends/node-av/audio/decoder/sample-format.d.ts.map +1 -0
- package/dist/backends/node-av/audio/decoder/sample-format.js +54 -0
- package/dist/backends/node-av/audio/decoder/sample-format.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/channel-layout.d.ts +12 -0
- package/dist/backends/node-av/audio/encoder/channel-layout.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/channel-layout.js +24 -0
- package/dist/backends/node-av/audio/encoder/channel-layout.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/codec-description.d.ts +33 -0
- package/dist/backends/node-av/audio/encoder/codec-description.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/codec-description.js +137 -0
- package/dist/backends/node-av/audio/encoder/codec-description.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/codec-mapping.d.ts +12 -0
- package/dist/backends/node-av/audio/encoder/codec-mapping.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/codec-mapping.js +61 -0
- package/dist/backends/node-av/audio/encoder/codec-mapping.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/constants.d.ts +6 -0
- package/dist/backends/node-av/audio/encoder/constants.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/constants.js +6 -0
- package/dist/backends/node-av/audio/encoder/constants.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/drain.d.ts +32 -0
- package/dist/backends/node-av/audio/encoder/drain.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/drain.js +51 -0
- package/dist/backends/node-av/audio/encoder/drain.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/index.d.ts +20 -0
- package/dist/backends/node-av/audio/encoder/index.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/index.js +20 -0
- package/dist/backends/node-av/audio/encoder/index.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/options.d.ts +40 -0
- package/dist/backends/node-av/audio/encoder/options.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/options.js +127 -0
- package/dist/backends/node-av/audio/encoder/options.js.map +1 -0
- package/dist/backends/node-av/audio/encoder/sample-format-convert.d.ts +40 -0
- package/dist/backends/node-av/audio/encoder/sample-format-convert.d.ts.map +1 -0
- package/dist/backends/node-av/audio/encoder/sample-format-convert.js +152 -0
- package/dist/backends/node-av/audio/encoder/sample-format-convert.js.map +1 -0
- package/dist/backends/node-av/hardware-pipeline/capabilities.d.ts +10 -0
- package/dist/backends/node-av/hardware-pipeline/capabilities.d.ts.map +1 -0
- package/dist/backends/node-av/hardware-pipeline/capabilities.js +45 -0
- package/dist/backends/node-av/hardware-pipeline/capabilities.js.map +1 -0
- package/dist/backends/node-av/hardware-pipeline/index.d.ts +6 -0
- package/dist/backends/node-av/hardware-pipeline/index.d.ts.map +1 -0
- package/dist/backends/node-av/hardware-pipeline/index.js +5 -0
- package/dist/backends/node-av/hardware-pipeline/index.js.map +1 -0
- package/dist/backends/node-av/hardware-pipeline/types.d.ts +13 -0
- package/dist/backends/node-av/hardware-pipeline/types.d.ts.map +1 -0
- package/dist/backends/node-av/hardware-pipeline/types.js +5 -0
- package/dist/backends/node-av/hardware-pipeline/types.js.map +1 -0
- package/dist/backends/node-av/image/NodeAvImageDecoder.d.ts +95 -0
- package/dist/backends/node-av/image/NodeAvImageDecoder.d.ts.map +1 -0
- package/dist/backends/node-av/image/NodeAvImageDecoder.js +383 -0
- package/dist/backends/node-av/image/NodeAvImageDecoder.js.map +1 -0
- package/dist/backends/node-av/image/WebPImageDecoder.d.ts +57 -0
- package/dist/backends/node-av/image/WebPImageDecoder.d.ts.map +1 -0
- package/dist/backends/node-av/image/WebPImageDecoder.js +178 -0
- package/dist/backends/node-av/image/WebPImageDecoder.js.map +1 -0
- package/dist/backends/node-av/image/decoder/constants.d.ts +14 -0
- package/dist/backends/node-av/image/decoder/constants.d.ts.map +1 -0
- package/dist/backends/node-av/image/decoder/constants.js +24 -0
- package/dist/backends/node-av/image/decoder/constants.js.map +1 -0
- package/dist/backends/node-av/image/decoder/index.d.ts +7 -0
- package/dist/backends/node-av/image/decoder/index.d.ts.map +1 -0
- package/dist/backends/node-av/image/decoder/index.js +6 -0
- package/dist/backends/node-av/image/decoder/index.js.map +1 -0
- package/dist/backends/node-av/image/decoder/probe.d.ts +12 -0
- package/dist/backends/node-av/image/decoder/probe.d.ts.map +1 -0
- package/dist/backends/node-av/image/decoder/probe.js +57 -0
- package/dist/backends/node-av/image/decoder/probe.js.map +1 -0
- package/dist/backends/node-av/image/decoder/types.d.ts +25 -0
- package/dist/backends/node-av/image/decoder/types.d.ts.map +1 -0
- package/dist/backends/node-av/image/decoder/types.js +5 -0
- package/dist/backends/node-av/image/decoder/types.js.map +1 -0
- package/dist/backends/node-av/video/NodeAvVideoDecoder.d.ts +44 -0
- package/dist/backends/node-av/video/NodeAvVideoDecoder.d.ts.map +1 -0
- package/dist/backends/node-av/video/NodeAvVideoDecoder.js +326 -0
- package/dist/backends/node-av/video/NodeAvVideoDecoder.js.map +1 -0
- package/dist/backends/node-av/video/NodeAvVideoEncoder.d.ts +49 -0
- package/dist/backends/node-av/video/NodeAvVideoEncoder.d.ts.map +1 -0
- package/dist/backends/node-av/video/NodeAvVideoEncoder.js +317 -0
- package/dist/backends/node-av/video/NodeAvVideoEncoder.js.map +1 -0
- package/dist/backends/node-av/video/decoder/codec-mapping.d.ts +9 -0
- package/dist/backends/node-av/video/decoder/codec-mapping.d.ts.map +1 -0
- package/dist/backends/node-av/video/decoder/codec-mapping.js +25 -0
- package/dist/backends/node-av/video/decoder/codec-mapping.js.map +1 -0
- package/dist/backends/node-av/video/decoder/constants.d.ts +13 -0
- package/dist/backends/node-av/video/decoder/constants.d.ts.map +1 -0
- package/dist/backends/node-av/video/decoder/constants.js +13 -0
- package/dist/backends/node-av/video/decoder/constants.js.map +1 -0
- package/dist/backends/node-av/video/decoder/index.d.ts +7 -0
- package/dist/backends/node-av/video/decoder/index.d.ts.map +1 -0
- package/dist/backends/node-av/video/decoder/index.js +7 -0
- package/dist/backends/node-av/video/decoder/index.js.map +1 -0
- package/dist/backends/node-av/video/decoder/pixel-format.d.ts +13 -0
- package/dist/backends/node-av/video/decoder/pixel-format.d.ts.map +1 -0
- package/dist/backends/node-av/video/decoder/pixel-format.js +88 -0
- package/dist/backends/node-av/video/decoder/pixel-format.js.map +1 -0
- package/dist/backends/node-av/video/encoder/codec-description.d.ts +26 -0
- package/dist/backends/node-av/video/encoder/codec-description.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/codec-description.js +86 -0
- package/dist/backends/node-av/video/encoder/codec-description.js.map +1 -0
- package/dist/backends/node-av/video/encoder/drain.d.ts +34 -0
- package/dist/backends/node-av/video/encoder/drain.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/drain.js +51 -0
- package/dist/backends/node-av/video/encoder/drain.js.map +1 -0
- package/dist/backends/node-av/video/encoder/filters.d.ts +37 -0
- package/dist/backends/node-av/video/encoder/filters.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/filters.js +71 -0
- package/dist/backends/node-av/video/encoder/filters.js.map +1 -0
- package/dist/backends/node-av/video/encoder/gpu-filters.d.ts +9 -0
- package/dist/backends/node-av/video/encoder/gpu-filters.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/gpu-filters.js +26 -0
- package/dist/backends/node-av/video/encoder/gpu-filters.js.map +1 -0
- package/dist/backends/node-av/video/encoder/hardware-constraints.d.ts +12 -0
- package/dist/backends/node-av/video/encoder/hardware-constraints.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/hardware-constraints.js +31 -0
- package/dist/backends/node-av/video/encoder/hardware-constraints.js.map +1 -0
- package/dist/backends/node-av/video/encoder/index.d.ts +28 -0
- package/dist/backends/node-av/video/encoder/index.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/index.js +28 -0
- package/dist/backends/node-av/video/encoder/index.js.map +1 -0
- package/dist/backends/node-av/video/encoder/options.d.ts +39 -0
- package/dist/backends/node-av/video/encoder/options.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/options.js +195 -0
- package/dist/backends/node-av/video/encoder/options.js.map +1 -0
- package/dist/backends/node-av/video/encoder/pixel-format-config.d.ts +42 -0
- package/dist/backends/node-av/video/encoder/pixel-format-config.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/pixel-format-config.js +122 -0
- package/dist/backends/node-av/video/encoder/pixel-format-config.js.map +1 -0
- package/dist/backends/node-av/video/encoder/pixel-format.d.ts +13 -0
- package/dist/backends/node-av/video/encoder/pixel-format.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/pixel-format.js +68 -0
- package/dist/backends/node-av/video/encoder/pixel-format.js.map +1 -0
- package/dist/backends/node-av/video/encoder/setup.d.ts +33 -0
- package/dist/backends/node-av/video/encoder/setup.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/setup.js +62 -0
- package/dist/backends/node-av/video/encoder/setup.js.map +1 -0
- package/dist/backends/node-av/video/encoder/software-encoders.d.ts +8 -0
- package/dist/backends/node-av/video/encoder/software-encoders.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/software-encoders.js +17 -0
- package/dist/backends/node-av/video/encoder/software-encoders.js.map +1 -0
- package/dist/backends/node-av/video/encoder/timestamp.d.ts +34 -0
- package/dist/backends/node-av/video/encoder/timestamp.d.ts.map +1 -0
- package/dist/backends/node-av/video/encoder/timestamp.js +39 -0
- package/dist/backends/node-av/video/encoder/timestamp.js.map +1 -0
- package/dist/backends/types.d.ts +44 -0
- package/dist/backends/types.d.ts.map +1 -1
- package/dist/backends/types.js.map +1 -1
- package/dist/codec-utils/formats.d.ts.map +1 -1
- package/dist/codec-utils/formats.js +78 -0
- package/dist/codec-utils/formats.js.map +1 -1
- package/dist/codec-utils/types.d.ts +1 -1
- package/dist/codecs/aac.d.ts +10 -0
- package/dist/codecs/aac.d.ts.map +1 -0
- package/dist/codecs/aac.js +10 -0
- package/dist/codecs/aac.js.map +1 -0
- package/dist/codecs/avc.d.ts +11 -0
- package/dist/codecs/avc.d.ts.map +1 -0
- package/dist/codecs/avc.js +11 -0
- package/dist/codecs/avc.js.map +1 -0
- package/dist/codecs/hevc.d.ts +11 -0
- package/dist/codecs/hevc.d.ts.map +1 -0
- package/dist/codecs/hevc.js +11 -0
- package/dist/codecs/hevc.js.map +1 -0
- package/dist/codecs/index.d.ts +10 -0
- package/dist/codecs/index.d.ts.map +1 -0
- package/dist/codecs/index.js +14 -0
- package/dist/codecs/index.js.map +1 -0
- package/dist/codecs/validation/audio.d.ts +19 -0
- package/dist/codecs/validation/audio.d.ts.map +1 -0
- package/dist/codecs/validation/audio.js +111 -0
- package/dist/codecs/validation/audio.js.map +1 -0
- package/dist/codecs/validation/config.d.ts +27 -0
- package/dist/codecs/validation/config.d.ts.map +1 -0
- package/dist/codecs/validation/config.js +154 -0
- package/dist/codecs/validation/config.js.map +1 -0
- package/dist/codecs/validation/index.d.ts +9 -0
- package/dist/codecs/validation/index.d.ts.map +1 -0
- package/dist/codecs/validation/index.js +12 -0
- package/dist/codecs/validation/index.js.map +1 -0
- package/dist/codecs/validation/video.d.ts +24 -0
- package/dist/codecs/validation/video.d.ts.map +1 -0
- package/dist/codecs/validation/video.js +196 -0
- package/dist/codecs/validation/video.js.map +1 -0
- package/dist/config/webcodecs-config.d.ts +58 -0
- package/dist/config/webcodecs-config.d.ts.map +1 -0
- package/dist/config/webcodecs-config.js +187 -0
- package/dist/config/webcodecs-config.js.map +1 -0
- package/dist/containers/Demuxer.d.ts +3 -1
- package/dist/containers/Demuxer.d.ts.map +1 -1
- package/dist/containers/Demuxer.js +26 -19
- package/dist/containers/Demuxer.js.map +1 -1
- package/dist/containers/FFmpegMuxer.d.ts +42 -0
- package/dist/containers/FFmpegMuxer.d.ts.map +1 -0
- package/dist/containers/FFmpegMuxer.js +311 -0
- package/dist/containers/FFmpegMuxer.js.map +1 -0
- package/dist/containers/Muxer.d.ts +75 -107
- package/dist/containers/Muxer.d.ts.map +1 -1
- package/dist/containers/Muxer.js +184 -243
- package/dist/containers/Muxer.js.map +1 -1
- package/dist/containers/NodeAvMuxer.d.ts +125 -0
- package/dist/containers/NodeAvMuxer.d.ts.map +1 -0
- package/dist/containers/NodeAvMuxer.js +458 -0
- package/dist/containers/NodeAvMuxer.js.map +1 -0
- package/dist/containers/extract.d.ts.map +1 -1
- package/dist/containers/extract.js +3 -1
- package/dist/containers/extract.js.map +1 -1
- package/dist/containers/index.d.ts +20 -14
- package/dist/containers/index.d.ts.map +1 -1
- package/dist/containers/index.js +21 -14
- package/dist/containers/index.js.map +1 -1
- package/dist/containers/muxer-types.d.ts +117 -0
- package/dist/containers/muxer-types.d.ts.map +1 -0
- package/dist/containers/muxer-types.js +45 -0
- package/dist/containers/muxer-types.js.map +1 -0
- package/dist/containers/transcode.d.ts.map +1 -1
- package/dist/containers/transcode.js +171 -150
- package/dist/containers/transcode.js.map +1 -1
- package/dist/core/AudioData.d.ts.map +1 -1
- package/dist/core/AudioData.js +54 -12
- package/dist/core/AudioData.js.map +1 -1
- package/dist/core/EncodedAudioChunk.d.ts.map +1 -1
- package/dist/core/EncodedAudioChunk.js +74 -6
- package/dist/core/EncodedAudioChunk.js.map +1 -1
- package/dist/core/EncodedVideoChunk.d.ts +2 -0
- package/dist/core/EncodedVideoChunk.d.ts.map +1 -1
- package/dist/core/EncodedVideoChunk.js +70 -2
- package/dist/core/EncodedVideoChunk.js.map +1 -1
- package/dist/core/VideoFrame.d.ts +27 -2
- package/dist/core/VideoFrame.d.ts.map +1 -1
- package/dist/core/VideoFrame.js +245 -125
- package/dist/core/VideoFrame.js.map +1 -1
- package/dist/core/video-frame/layout.d.ts +10 -0
- package/dist/core/video-frame/layout.d.ts.map +1 -0
- package/dist/core/video-frame/layout.js +97 -0
- package/dist/core/video-frame/layout.js.map +1 -0
- package/dist/core/video-frame/orientation.d.ts +23 -0
- package/dist/core/video-frame/orientation.d.ts.map +1 -0
- package/dist/core/video-frame/orientation.js +49 -0
- package/dist/core/video-frame/orientation.js.map +1 -0
- package/dist/core/video-frame/transfer.d.ts +19 -0
- package/dist/core/video-frame/transfer.d.ts.map +1 -0
- package/dist/core/video-frame/transfer.js +78 -0
- package/dist/core/video-frame/transfer.js.map +1 -0
- package/dist/core/video-frame/validation.d.ts +28 -0
- package/dist/core/video-frame/validation.d.ts.map +1 -0
- package/dist/core/video-frame/validation.js +76 -0
- package/dist/core/video-frame/validation.js.map +1 -0
- package/dist/decoders/AudioDecoder.d.ts +2 -19
- package/dist/decoders/AudioDecoder.d.ts.map +1 -1
- package/dist/decoders/AudioDecoder.js +27 -11
- package/dist/decoders/AudioDecoder.js.map +1 -1
- package/dist/decoders/ImageDecoder.d.ts +34 -41
- package/dist/decoders/ImageDecoder.d.ts.map +1 -1
- package/dist/decoders/ImageDecoder.js +158 -266
- package/dist/decoders/ImageDecoder.js.map +1 -1
- package/dist/decoders/VideoDecoder.d.ts +3 -38
- package/dist/decoders/VideoDecoder.d.ts.map +1 -1
- package/dist/decoders/VideoDecoder.js +126 -124
- package/dist/decoders/VideoDecoder.js.map +1 -1
- package/dist/decoders/audio/config.d.ts +23 -0
- package/dist/decoders/audio/config.d.ts.map +1 -0
- package/dist/decoders/audio/config.js +112 -0
- package/dist/decoders/audio/config.js.map +1 -0
- package/dist/decoders/audio/constants.d.ts +6 -0
- package/dist/decoders/audio/constants.d.ts.map +1 -0
- package/dist/decoders/audio/constants.js +6 -0
- package/dist/decoders/audio/constants.js.map +1 -0
- package/dist/decoders/audio/types.d.ts +21 -0
- package/dist/decoders/audio/types.d.ts.map +1 -0
- package/dist/decoders/audio/types.js +5 -0
- package/dist/decoders/audio/types.js.map +1 -0
- package/dist/decoders/image/orientation.d.ts +16 -0
- package/dist/decoders/image/orientation.d.ts.map +1 -0
- package/dist/decoders/image/orientation.js +170 -0
- package/dist/decoders/image/orientation.js.map +1 -0
- package/dist/decoders/image/stream.d.ts +12 -0
- package/dist/decoders/image/stream.d.ts.map +1 -0
- package/dist/decoders/image/stream.js +41 -0
- package/dist/decoders/image/stream.js.map +1 -0
- package/dist/decoders/image/tracks.d.ts +76 -0
- package/dist/decoders/image/tracks.d.ts.map +1 -0
- package/dist/decoders/image/tracks.js +136 -0
- package/dist/decoders/image/tracks.js.map +1 -0
- package/dist/decoders/image/types.d.ts +36 -0
- package/dist/decoders/image/types.d.ts.map +1 -0
- package/dist/decoders/image/types.js +5 -0
- package/dist/decoders/image/types.js.map +1 -0
- package/dist/decoders/video/codec-specific.d.ts +19 -0
- package/dist/decoders/video/codec-specific.d.ts.map +1 -0
- package/dist/decoders/video/codec-specific.js +62 -0
- package/dist/decoders/video/codec-specific.js.map +1 -0
- package/dist/decoders/video/config.d.ts +17 -0
- package/dist/decoders/video/config.d.ts.map +1 -0
- package/dist/decoders/video/config.js +91 -0
- package/dist/decoders/video/config.js.map +1 -0
- package/dist/decoders/video/constants.d.ts +8 -0
- package/dist/decoders/video/constants.d.ts.map +1 -0
- package/dist/decoders/video/constants.js +13 -0
- package/dist/decoders/video/constants.js.map +1 -0
- package/dist/decoders/video/queue.d.ts +9 -0
- package/dist/decoders/video/queue.d.ts.map +1 -0
- package/dist/decoders/video/queue.js +17 -0
- package/dist/decoders/video/queue.js.map +1 -0
- package/dist/decoders/video/types.d.ts +41 -0
- package/dist/decoders/video/types.d.ts.map +1 -0
- package/dist/decoders/video/types.js +5 -0
- package/dist/decoders/video/types.js.map +1 -0
- package/dist/demos/demo-audio-visualizer.js +74 -48
- package/dist/demos/demo-audio-visualizer.js.map +1 -1
- package/dist/demos/demo-dvd-logo.js +26 -23
- package/dist/demos/demo-dvd-logo.js.map +1 -1
- package/dist/demos/demo-flow-field.d.ts +11 -0
- package/dist/demos/demo-flow-field.d.ts.map +1 -0
- package/dist/demos/demo-flow-field.js +305 -0
- package/dist/demos/demo-flow-field.js.map +1 -0
- package/dist/demos/demo-four-corners.js +56 -120
- package/dist/demos/demo-four-corners.js.map +1 -1
- package/dist/demos/demo-image.js +24 -19
- package/dist/demos/demo-image.js.map +1 -1
- package/dist/demos/demo-matrix-rain.d.ts +11 -0
- package/dist/demos/demo-matrix-rain.d.ts.map +1 -0
- package/dist/demos/demo-matrix-rain.js +246 -0
- package/dist/demos/demo-matrix-rain.js.map +1 -0
- package/dist/demos/demo-pipeline.js +56 -51
- package/dist/demos/demo-pipeline.js.map +1 -1
- package/dist/demos/demo-samples.js +56 -402
- package/dist/demos/demo-samples.js.map +1 -1
- package/dist/encoders/AudioEncoder.d.ts +4 -28
- package/dist/encoders/AudioEncoder.d.ts.map +1 -1
- package/dist/encoders/AudioEncoder.js +83 -20
- package/dist/encoders/AudioEncoder.js.map +1 -1
- package/dist/encoders/VideoEncoder.d.ts +25 -46
- package/dist/encoders/VideoEncoder.d.ts.map +1 -1
- package/dist/encoders/VideoEncoder.js +180 -88
- package/dist/encoders/VideoEncoder.js.map +1 -1
- package/dist/encoders/audio/config.d.ts +30 -0
- package/dist/encoders/audio/config.d.ts.map +1 -0
- package/dist/encoders/audio/config.js +169 -0
- package/dist/encoders/audio/config.js.map +1 -0
- package/dist/encoders/audio/constants.d.ts +8 -0
- package/dist/encoders/audio/constants.d.ts.map +1 -0
- package/dist/encoders/audio/constants.js +8 -0
- package/dist/encoders/audio/constants.js.map +1 -0
- package/dist/encoders/audio/types.d.ts +70 -0
- package/dist/encoders/audio/types.d.ts.map +1 -0
- package/dist/encoders/audio/types.js +5 -0
- package/dist/encoders/audio/types.js.map +1 -0
- package/dist/encoders/video/config.d.ts +25 -0
- package/dist/encoders/video/config.d.ts.map +1 -0
- package/dist/encoders/video/config.js +132 -0
- package/dist/encoders/video/config.js.map +1 -0
- package/dist/encoders/video/constants.d.ts +8 -0
- package/dist/encoders/video/constants.d.ts.map +1 -0
- package/dist/encoders/video/constants.js +8 -0
- package/dist/encoders/video/constants.js.map +1 -0
- package/dist/encoders/video/queue.d.ts +9 -0
- package/dist/encoders/video/queue.d.ts.map +1 -0
- package/dist/encoders/video/queue.js +17 -0
- package/dist/encoders/video/queue.js.map +1 -0
- package/dist/encoders/video/types.d.ts +104 -0
- package/dist/encoders/video/types.d.ts.map +1 -0
- package/dist/encoders/video/types.js +5 -0
- package/dist/encoders/video/types.js.map +1 -0
- package/dist/formats/color-space/convert.d.ts +27 -0
- package/dist/formats/color-space/convert.d.ts.map +1 -0
- package/dist/formats/color-space/convert.js +91 -0
- package/dist/formats/color-space/convert.js.map +1 -0
- package/dist/formats/color-space/extract.d.ts +32 -0
- package/dist/formats/color-space/extract.d.ts.map +1 -0
- package/dist/formats/color-space/extract.js +116 -0
- package/dist/formats/color-space/extract.js.map +1 -0
- package/dist/formats/color-space/index.d.ts +10 -0
- package/dist/formats/color-space/index.d.ts.map +1 -0
- package/dist/formats/color-space/index.js +14 -0
- package/dist/formats/color-space/index.js.map +1 -0
- package/dist/formats/color-space/maps.d.ts +70 -0
- package/dist/formats/color-space/maps.d.ts.map +1 -0
- package/dist/formats/color-space/maps.js +70 -0
- package/dist/formats/color-space/maps.js.map +1 -0
- package/dist/formats/color-space/types.d.ts +68 -0
- package/dist/formats/color-space/types.d.ts.map +1 -0
- package/dist/formats/color-space/types.js +49 -0
- package/dist/formats/color-space/types.js.map +1 -0
- package/dist/formats/color-space.d.ts +4 -124
- package/dist/formats/color-space.d.ts.map +1 -1
- package/dist/formats/color-space.js +5 -108
- package/dist/formats/color-space.js.map +1 -1
- package/dist/formats/conversions/frame-converter.d.ts +8 -3
- package/dist/formats/conversions/frame-converter.d.ts.map +1 -1
- package/dist/formats/conversions/frame-converter.js +16 -12
- package/dist/formats/conversions/frame-converter.js.map +1 -1
- package/dist/formats/pixel-format/helpers.d.ts +49 -0
- package/dist/formats/pixel-format/helpers.d.ts.map +1 -0
- package/dist/formats/pixel-format/helpers.js +117 -0
- package/dist/formats/pixel-format/helpers.js.map +1 -0
- package/dist/formats/pixel-format/index.d.ts +9 -0
- package/dist/formats/pixel-format/index.d.ts.map +1 -0
- package/dist/formats/pixel-format/index.js +10 -0
- package/dist/formats/pixel-format/index.js.map +1 -0
- package/dist/formats/pixel-format/sizes.d.ts +17 -0
- package/dist/formats/pixel-format/sizes.d.ts.map +1 -0
- package/dist/formats/pixel-format/sizes.js +159 -0
- package/dist/formats/pixel-format/sizes.js.map +1 -0
- package/dist/formats/pixel-format/types.d.ts +13 -0
- package/dist/formats/pixel-format/types.d.ts.map +1 -0
- package/dist/formats/pixel-format/types.js +5 -0
- package/dist/formats/pixel-format/types.js.map +1 -0
- package/dist/formats/pixel-formats.d.ts +4 -53
- package/dist/formats/pixel-formats.d.ts.map +1 -1
- package/dist/formats/pixel-formats.js +5 -179
- package/dist/formats/pixel-formats.js.map +1 -1
- package/dist/hardware/decoder-args.d.ts.map +1 -1
- package/dist/hardware/decoder-args.js +35 -14
- package/dist/hardware/decoder-args.js.map +1 -1
- package/dist/hardware/detection.d.ts.map +1 -1
- package/dist/hardware/detection.js +39 -0
- package/dist/hardware/detection.js.map +1 -1
- package/dist/hardware/encoder-args.d.ts.map +1 -1
- package/dist/hardware/encoder-args.js +43 -5
- package/dist/hardware/encoder-args.js.map +1 -1
- package/dist/hardware/types.d.ts.map +1 -1
- package/dist/hardware/types.js +36 -28
- package/dist/hardware/types.js.map +1 -1
- package/dist/node-av/NodeAvVideoEncoder.d.ts +5 -0
- package/dist/node-av/NodeAvVideoEncoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvVideoEncoder.js +76 -23
- package/dist/node-av/NodeAvVideoEncoder.js.map +1 -1
- package/dist/transfer/detach.d.ts +42 -0
- package/dist/transfer/detach.d.ts.map +1 -0
- package/dist/transfer/detach.js +93 -0
- package/dist/transfer/detach.js.map +1 -0
- package/dist/transfer/index.d.ts +9 -0
- package/dist/transfer/index.d.ts.map +1 -0
- package/dist/transfer/index.js +11 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/transfer/validate.d.ts +45 -0
- package/dist/transfer/validate.d.ts.map +1 -0
- package/dist/transfer/validate.js +98 -0
- package/dist/transfer/validate.js.map +1 -0
- package/dist/types/video.d.ts +16 -0
- package/dist/types/video.d.ts.map +1 -1
- package/dist/utils/avc.d.ts +2 -0
- package/dist/utils/avc.d.ts.map +1 -1
- package/dist/utils/avc.js +36 -8
- package/dist/utils/avc.js.map +1 -1
- package/dist/utils/codec-validation.d.ts +3 -28
- package/dist/utils/codec-validation.d.ts.map +1 -1
- package/dist/utils/codec-validation.js +4 -238
- package/dist/utils/codec-validation.js.map +1 -1
- package/dist/utils/hevc.d.ts +2 -0
- package/dist/utils/hevc.d.ts.map +1 -1
- package/dist/utils/hevc.js +42 -8
- package/dist/utils/hevc.js.map +1 -1
- package/docs/api.md +24 -4
- package/docs/architecture-refactor-plan.md +149 -0
- package/docs/architecture.md +258 -0
- package/docs/configuration.md +10 -7
- package/package.json +6 -4
- package/dist/config/ffmpeg-quality.d.ts +0 -14
- package/dist/config/ffmpeg-quality.d.ts.map +0 -1
- package/dist/config/ffmpeg-quality.js +0 -41
- package/dist/config/ffmpeg-quality.js.map +0 -1
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts +0 -72
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.d.ts.map +0 -1
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.js +0 -293
- package/dist/polyfills/CanvasRenderingContext2DPolyfill.js.map +0 -1
- package/dist/polyfills/ImageDataPolyfill.d.ts +0 -12
- package/dist/polyfills/ImageDataPolyfill.d.ts.map +0 -1
- package/dist/polyfills/ImageDataPolyfill.js +0 -22
- package/dist/polyfills/ImageDataPolyfill.js.map +0 -1
- package/dist/polyfills/OffscreenCanvasPolyfill.d.ts +0 -16
- package/dist/polyfills/OffscreenCanvasPolyfill.d.ts.map +0 -1
- package/dist/polyfills/OffscreenCanvasPolyfill.js +0 -46
- package/dist/polyfills/OffscreenCanvasPolyfill.js.map +0 -1
- package/dist/polyfills/VideoFramePolyfill.d.ts +0 -44
- package/dist/polyfills/VideoFramePolyfill.d.ts.map +0 -1
- package/dist/polyfills/VideoFramePolyfill.js +0 -98
- package/dist/polyfills/VideoFramePolyfill.js.map +0 -1
package/dist/core/AudioData.js
CHANGED
|
@@ -4,6 +4,39 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { DOMException } from '../types/index.js';
|
|
6
6
|
import { BYTES_PER_SAMPLE, isPlanarFormat, } from '../formats/audio-formats.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check if an ArrayBuffer is detached
|
|
9
|
+
* Uses the 'detached' property (Node.js 20+) when available.
|
|
10
|
+
* On Node <20, we cannot reliably detect detachment so we assume NOT detached.
|
|
11
|
+
*/
|
|
12
|
+
function isDetached(buffer) {
|
|
13
|
+
// Use the 'detached' property if available (Node.js 20+, modern browsers)
|
|
14
|
+
if ('detached' in buffer) {
|
|
15
|
+
return buffer.detached === true;
|
|
16
|
+
}
|
|
17
|
+
// On Node <20, we cannot reliably distinguish empty from detached.
|
|
18
|
+
// Assume NOT detached to avoid false positives on new ArrayBuffer(0).
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
/** Validate and detach transfer list buffers */
|
|
22
|
+
function validateAndDetachTransfer(transfer) {
|
|
23
|
+
if (!transfer || transfer.length === 0)
|
|
24
|
+
return;
|
|
25
|
+
// Detach all buffers
|
|
26
|
+
for (const buffer of transfer) {
|
|
27
|
+
try {
|
|
28
|
+
if (typeof buffer.transfer === 'function') {
|
|
29
|
+
buffer.transfer();
|
|
30
|
+
}
|
|
31
|
+
else if (typeof structuredClone === 'function') {
|
|
32
|
+
structuredClone(buffer, { transfer: [buffer] });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Ignore errors during detachment
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
7
40
|
export class AudioData {
|
|
8
41
|
_format;
|
|
9
42
|
_sampleRate;
|
|
@@ -39,6 +72,22 @@ export class AudioData {
|
|
|
39
72
|
if (!init.data && !nativeFrame) {
|
|
40
73
|
throw new TypeError('data is required');
|
|
41
74
|
}
|
|
75
|
+
// Validate transfer list before copying data
|
|
76
|
+
if (init.transfer) {
|
|
77
|
+
for (const buffer of init.transfer) {
|
|
78
|
+
if (!(buffer instanceof ArrayBuffer)) {
|
|
79
|
+
throw new TypeError('transfer list must only contain ArrayBuffer objects');
|
|
80
|
+
}
|
|
81
|
+
if (isDetached(buffer)) {
|
|
82
|
+
throw new DOMException('Cannot transfer a detached ArrayBuffer', 'DataCloneError');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Check for duplicates
|
|
86
|
+
const unique = new Set(init.transfer);
|
|
87
|
+
if (unique.size !== init.transfer.length) {
|
|
88
|
+
throw new DOMException('Duplicate ArrayBuffer in transfer list', 'DataCloneError');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
42
91
|
this._format = init.format;
|
|
43
92
|
this._sampleRate = init.sampleRate;
|
|
44
93
|
this._numberOfFrames = init.numberOfFrames;
|
|
@@ -51,24 +100,17 @@ export class AudioData {
|
|
|
51
100
|
this._buffer = new ArrayBuffer(0);
|
|
52
101
|
}
|
|
53
102
|
else if (init.data instanceof ArrayBuffer) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this._buffer = init.data.slice(0);
|
|
59
|
-
}
|
|
103
|
+
// Always copy to avoid issues with transferred buffers
|
|
104
|
+
this._buffer = init.data.slice(0);
|
|
60
105
|
}
|
|
61
106
|
else {
|
|
62
107
|
// ArrayBufferView
|
|
63
108
|
const view = init.data;
|
|
64
109
|
const srcBuffer = view.buffer;
|
|
65
|
-
|
|
66
|
-
this._buffer = srcBuffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this._buffer = srcBuffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
|
|
70
|
-
}
|
|
110
|
+
this._buffer = srcBuffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
|
|
71
111
|
}
|
|
112
|
+
// Detach transferred buffers after data has been copied
|
|
113
|
+
validateAndDetachTransfer(init.transfer);
|
|
72
114
|
// Validate data size
|
|
73
115
|
const expectedSize = this._calculateTotalSize();
|
|
74
116
|
if (!nativeFrame && this._buffer.byteLength < expectedSize) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioData.js","sourceRoot":"","sources":["../../src/core/AudioData.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AudioData.js","sourceRoot":"","sources":["../../src/core/AudioData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncodedAudioChunk.d.ts","sourceRoot":"","sources":["../../src/core/EncodedAudioChunk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"EncodedAudioChunk.d.ts","sourceRoot":"","sources":["../../src/core/EncodedAudioChunk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,eAAe,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAkDD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,KAAK,CAAc;gBAEf,IAAI,EAAE,qBAAqB;IA2DvC,IAAI,IAAI,IAAI,qBAAqB,CAAuB;IACxD,IAAI,SAAS,IAAI,MAAM,CAA4B;IACnD,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAA2B;IACxD,IAAI,UAAU,IAAI,MAAM,CAAkC;IAE1D,MAAM,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI;IAc1C,IAAI,QAAQ,IAAI,UAAU,CAEzB;CACF"}
|
|
@@ -2,6 +2,53 @@
|
|
|
2
2
|
* EncodedAudioChunk - Represents a chunk of encoded audio data
|
|
3
3
|
* https://developer.mozilla.org/en-US/docs/Web/API/EncodedAudioChunk
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Check if an ArrayBuffer is detached
|
|
7
|
+
* Uses the 'detached' property (Node.js 20+) when available.
|
|
8
|
+
* On Node <20, we cannot reliably detect detachment so we assume NOT detached.
|
|
9
|
+
*/
|
|
10
|
+
function isDetached(buffer) {
|
|
11
|
+
// Use the 'detached' property if available (Node.js 20+, modern browsers)
|
|
12
|
+
if ('detached' in buffer) {
|
|
13
|
+
return buffer.detached === true;
|
|
14
|
+
}
|
|
15
|
+
// On Node <20, we cannot reliably distinguish empty from detached.
|
|
16
|
+
// Assume NOT detached to avoid false positives on new ArrayBuffer(0).
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
/** Validate and detach transfer list buffers */
|
|
20
|
+
function validateAndDetachTransfer(transfer) {
|
|
21
|
+
if (!transfer || transfer.length === 0)
|
|
22
|
+
return;
|
|
23
|
+
// Check for duplicates
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
for (const buffer of transfer) {
|
|
26
|
+
if (!(buffer instanceof ArrayBuffer)) {
|
|
27
|
+
throw new TypeError('transfer list must only contain ArrayBuffer objects');
|
|
28
|
+
}
|
|
29
|
+
if (seen.has(buffer)) {
|
|
30
|
+
throw new DOMException('Duplicate ArrayBuffer in transfer list', 'DataCloneError');
|
|
31
|
+
}
|
|
32
|
+
if (isDetached(buffer)) {
|
|
33
|
+
throw new DOMException('Cannot transfer a detached ArrayBuffer', 'DataCloneError');
|
|
34
|
+
}
|
|
35
|
+
seen.add(buffer);
|
|
36
|
+
}
|
|
37
|
+
// Detach all buffers
|
|
38
|
+
for (const buffer of transfer) {
|
|
39
|
+
try {
|
|
40
|
+
if (typeof buffer.transfer === 'function') {
|
|
41
|
+
buffer.transfer();
|
|
42
|
+
}
|
|
43
|
+
else if (typeof structuredClone === 'function') {
|
|
44
|
+
structuredClone(buffer, { transfer: [buffer] });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Ignore errors during detachment
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
5
52
|
export class EncodedAudioChunk {
|
|
6
53
|
_type;
|
|
7
54
|
_timestamp;
|
|
@@ -20,22 +67,43 @@ export class EncodedAudioChunk {
|
|
|
20
67
|
if (!init.data) {
|
|
21
68
|
throw new TypeError('data is required');
|
|
22
69
|
}
|
|
70
|
+
// Validate duration per WebCodecs spec (EnforceRange behavior)
|
|
71
|
+
if (init.duration !== undefined) {
|
|
72
|
+
if (typeof init.duration !== 'number' || !Number.isFinite(init.duration) || init.duration < 0) {
|
|
73
|
+
throw new TypeError('duration must be a non-negative finite number');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Validate transfer list before copying data
|
|
77
|
+
if (init.transfer) {
|
|
78
|
+
for (const buffer of init.transfer) {
|
|
79
|
+
if (!(buffer instanceof ArrayBuffer)) {
|
|
80
|
+
throw new TypeError('transfer list must only contain ArrayBuffer objects');
|
|
81
|
+
}
|
|
82
|
+
if (isDetached(buffer)) {
|
|
83
|
+
throw new DOMException('Cannot transfer a detached ArrayBuffer', 'DataCloneError');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Check for duplicates
|
|
87
|
+
const unique = new Set(init.transfer);
|
|
88
|
+
if (unique.size !== init.transfer.length) {
|
|
89
|
+
throw new DOMException('Duplicate ArrayBuffer in transfer list', 'DataCloneError');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
23
92
|
this._type = init.type;
|
|
24
93
|
this._timestamp = init.timestamp;
|
|
25
94
|
this._duration = init.duration ?? null;
|
|
95
|
+
// Copy data first, then detach transfer buffers
|
|
26
96
|
if (init.data instanceof ArrayBuffer) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this._data = init.data.slice(0);
|
|
32
|
-
}
|
|
97
|
+
// Always copy to avoid issues with transferred buffers
|
|
98
|
+
this._data = init.data.slice(0);
|
|
33
99
|
}
|
|
34
100
|
else {
|
|
35
101
|
const view = init.data;
|
|
36
102
|
const srcBuffer = view.buffer;
|
|
37
103
|
this._data = srcBuffer.slice(view.byteOffset, view.byteOffset + view.byteLength);
|
|
38
104
|
}
|
|
105
|
+
// Detach transferred buffers after data has been copied
|
|
106
|
+
validateAndDetachTransfer(init.transfer);
|
|
39
107
|
}
|
|
40
108
|
get type() { return this._type; }
|
|
41
109
|
get timestamp() { return this._timestamp; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncodedAudioChunk.js","sourceRoot":"","sources":["../../src/core/EncodedAudioChunk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,OAAO,iBAAiB;IACpB,KAAK,CAAwB;IAC7B,UAAU,CAAS;IACnB,SAAS,CAAgB;IACzB,KAAK,CAAc;IAE3B,YAAY,IAA2B;QACrC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"EncodedAudioChunk.js","sourceRoot":"","sources":["../../src/core/EncodedAudioChunk.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export interface EncodedVideoChunkInit {
|
|
|
9
9
|
timestamp: number;
|
|
10
10
|
duration?: number;
|
|
11
11
|
data: BufferSource;
|
|
12
|
+
/** ArrayBuffers to detach after chunk construction (transfer ownership) */
|
|
13
|
+
transfer?: ArrayBuffer[];
|
|
12
14
|
}
|
|
13
15
|
export declare class EncodedVideoChunk {
|
|
14
16
|
private _data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncodedVideoChunk.d.ts","sourceRoot":"","sources":["../../src/core/EncodedVideoChunk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"EncodedVideoChunk.d.ts","sourceRoot":"","sources":["../../src/core/EncodedVideoChunk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AA0CD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAa;IAE1B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,IAAI,EAAE,qBAAqB;IAkDvC,MAAM,CAAC,WAAW,EAAE,YAAY,GAAG,IAAI;IAUvC,IAAI,OAAO,IAAI,UAAU,CAExB;CACF"}
|
|
@@ -2,7 +2,48 @@
|
|
|
2
2
|
* EncodedVideoChunk - Represents a chunk of encoded video data
|
|
3
3
|
* https://developer.mozilla.org/en-US/docs/Web/API/EncodedVideoChunk
|
|
4
4
|
*/
|
|
5
|
-
import { toUint8Array } from '../utils/buffer.js';
|
|
5
|
+
import { toUint8Array, copyToUint8Array } from '../utils/buffer.js';
|
|
6
|
+
import { DOMException } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check if an ArrayBuffer is detached
|
|
9
|
+
* Uses the 'detached' property (Node.js 20+) when available.
|
|
10
|
+
* On Node <20, we cannot reliably detect detachment so we assume NOT detached.
|
|
11
|
+
*/
|
|
12
|
+
function isDetached(buffer) {
|
|
13
|
+
// Use the 'detached' property if available (Node.js 20+, modern browsers)
|
|
14
|
+
if ('detached' in buffer) {
|
|
15
|
+
return buffer.detached === true;
|
|
16
|
+
}
|
|
17
|
+
// On Node <20, we cannot reliably distinguish empty from detached.
|
|
18
|
+
// Assume NOT detached to avoid false positives on new ArrayBuffer(0).
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Detach ArrayBuffers after construction
|
|
23
|
+
*/
|
|
24
|
+
function detachArrayBuffers(buffers) {
|
|
25
|
+
if (!buffers || buffers.length === 0)
|
|
26
|
+
return;
|
|
27
|
+
for (const buffer of buffers) {
|
|
28
|
+
if (!(buffer instanceof ArrayBuffer)) {
|
|
29
|
+
throw new TypeError('transfer list must only contain ArrayBuffer objects');
|
|
30
|
+
}
|
|
31
|
+
if (isDetached(buffer)) {
|
|
32
|
+
throw new DOMException('Cannot transfer a detached ArrayBuffer', 'DataCloneError');
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
if (typeof buffer.transfer === 'function') {
|
|
36
|
+
buffer.transfer();
|
|
37
|
+
}
|
|
38
|
+
else if (typeof structuredClone === 'function') {
|
|
39
|
+
structuredClone(buffer, { transfer: [buffer] });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Ignore errors during detachment
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
6
47
|
export class EncodedVideoChunk {
|
|
7
48
|
_data;
|
|
8
49
|
type;
|
|
@@ -19,10 +60,37 @@ export class EncodedVideoChunk {
|
|
|
19
60
|
if (!init.data) {
|
|
20
61
|
throw new TypeError('data is required');
|
|
21
62
|
}
|
|
63
|
+
// Validate duration per WebCodecs spec (EnforceRange behavior)
|
|
64
|
+
if (init.duration !== undefined) {
|
|
65
|
+
if (typeof init.duration !== 'number' || !Number.isFinite(init.duration) || init.duration < 0) {
|
|
66
|
+
throw new TypeError('duration must be a non-negative finite number');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
22
69
|
this.type = init.type;
|
|
23
70
|
this.timestamp = init.timestamp;
|
|
24
71
|
this.duration = init.duration ?? null;
|
|
25
|
-
|
|
72
|
+
// Validate transfer list if provided
|
|
73
|
+
if (init.transfer) {
|
|
74
|
+
const seen = new Set();
|
|
75
|
+
for (const buffer of init.transfer) {
|
|
76
|
+
if (!(buffer instanceof ArrayBuffer)) {
|
|
77
|
+
throw new TypeError('transfer list must only contain ArrayBuffer objects');
|
|
78
|
+
}
|
|
79
|
+
if (seen.has(buffer)) {
|
|
80
|
+
throw new DOMException('Duplicate ArrayBuffer in transfer list', 'DataCloneError');
|
|
81
|
+
}
|
|
82
|
+
if (isDetached(buffer)) {
|
|
83
|
+
throw new DOMException('Cannot transfer a detached ArrayBuffer', 'DataCloneError');
|
|
84
|
+
}
|
|
85
|
+
seen.add(buffer);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Copy data (use copyToUint8Array when transfer is specified to avoid view issues)
|
|
89
|
+
this._data = init.transfer && init.transfer.length > 0
|
|
90
|
+
? copyToUint8Array(init.data)
|
|
91
|
+
: toUint8Array(init.data);
|
|
92
|
+
// Detach transferred buffers after data has been copied
|
|
93
|
+
detachArrayBuffers(init.transfer);
|
|
26
94
|
this.byteLength = this._data.byteLength;
|
|
27
95
|
}
|
|
28
96
|
copyTo(destination) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EncodedVideoChunk.js","sourceRoot":"","sources":["../../src/core/EncodedVideoChunk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"EncodedVideoChunk.js","sourceRoot":"","sources":["../../src/core/EncodedVideoChunk.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,16 @@ import { DOMRectReadOnly } from '../types/index.js';
|
|
|
7
7
|
import { VideoColorSpace } from '../formats/index.js';
|
|
8
8
|
import type { VideoPixelFormat, VideoFrameBufferInit, VideoFrameCopyToOptions, VideoFrameInit } from '../types/video.js';
|
|
9
9
|
export type { VideoPixelFormat, VideoFrameBufferInit, VideoFrameCopyToOptions, VideoFrameInit };
|
|
10
|
+
/**
|
|
11
|
+
* VideoFrameMetadata interface per W3C WebCodecs spec
|
|
12
|
+
* https://w3c.github.io/webcodecs/video_frame_metadata_registry.html
|
|
13
|
+
*/
|
|
14
|
+
export interface VideoFrameMetadata {
|
|
15
|
+
/** Frame rotation in degrees (0, 90, 180, 270) */
|
|
16
|
+
rotation?: 0 | 90 | 180 | 270;
|
|
17
|
+
/** Whether to flip the frame horizontally */
|
|
18
|
+
flip?: boolean;
|
|
19
|
+
}
|
|
10
20
|
export declare class VideoFrame {
|
|
11
21
|
private _data;
|
|
12
22
|
private _closed;
|
|
@@ -22,6 +32,9 @@ export declare class VideoFrame {
|
|
|
22
32
|
private _duration;
|
|
23
33
|
private _timestamp;
|
|
24
34
|
private _colorSpace;
|
|
35
|
+
private _inputLayout;
|
|
36
|
+
private _rotation;
|
|
37
|
+
private _flip;
|
|
25
38
|
get format(): VideoPixelFormat | null;
|
|
26
39
|
get codedWidth(): number;
|
|
27
40
|
get codedHeight(): number;
|
|
@@ -31,7 +44,11 @@ export declare class VideoFrame {
|
|
|
31
44
|
get displayHeight(): number;
|
|
32
45
|
get duration(): number | null;
|
|
33
46
|
get timestamp(): number;
|
|
34
|
-
get colorSpace(): VideoColorSpace
|
|
47
|
+
get colorSpace(): VideoColorSpace;
|
|
48
|
+
/** Frame rotation in degrees (0, 90, 180, 270) - preserved after close */
|
|
49
|
+
get rotation(): 0 | 90 | 180 | 270;
|
|
50
|
+
/** Whether frame is flipped horizontally - preserved after close */
|
|
51
|
+
get flip(): boolean;
|
|
35
52
|
/**
|
|
36
53
|
* Create a VideoFrame from raw pixel data or CanvasImageSource
|
|
37
54
|
*/
|
|
@@ -50,6 +67,11 @@ export declare class VideoFrame {
|
|
|
50
67
|
* Returns the number of bytes required to hold the frame
|
|
51
68
|
*/
|
|
52
69
|
allocationSize(options?: VideoFrameCopyToOptions): number;
|
|
70
|
+
/**
|
|
71
|
+
* Returns metadata associated with this VideoFrame.
|
|
72
|
+
* Per W3C WebCodecs spec: https://w3c.github.io/webcodecs/video_frame_metadata_registry.html
|
|
73
|
+
*/
|
|
74
|
+
metadata(): VideoFrameMetadata;
|
|
53
75
|
/**
|
|
54
76
|
* Returns the number of planes for this frame's format
|
|
55
77
|
*/
|
|
@@ -58,9 +80,12 @@ export declare class VideoFrame {
|
|
|
58
80
|
* Copies the frame data to the destination buffer
|
|
59
81
|
*/
|
|
60
82
|
copyTo(destination: BufferSource, options?: VideoFrameCopyToOptions): Promise<PlaneLayout[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Copy to destination with custom layout (offsets and strides)
|
|
85
|
+
*/
|
|
86
|
+
private _copyWithLayout;
|
|
61
87
|
private _copyWithConversion;
|
|
62
88
|
private _copyDirectWithClipping;
|
|
63
|
-
private _getPlaneLayoutForSize;
|
|
64
89
|
/**
|
|
65
90
|
* Creates a copy of this VideoFrame
|
|
66
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoFrame.d.ts","sourceRoot":"","sources":["../../src/core/VideoFrame.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"VideoFrame.d.ts","sourceRoot":"","sources":["../../src/core/VideoFrame.ts"],"names":[],"mappings":"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"}
|