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
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pixel format helper functions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Check if a format is RGB-based (as opposed to YUV)
|
|
6
|
+
*/
|
|
7
|
+
export function isRgbFormat(format) {
|
|
8
|
+
return format === 'RGBA' || format === 'RGBX' || format === 'BGRA' || format === 'BGRX';
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Check if a format is YUV-based
|
|
12
|
+
*/
|
|
13
|
+
export function isYuvFormat(format) {
|
|
14
|
+
return !isRgbFormat(format);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if a format uses BGR channel order
|
|
18
|
+
*/
|
|
19
|
+
export function isBgrFormat(format) {
|
|
20
|
+
return format === 'BGRA' || format === 'BGRX';
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Check if a format has an alpha channel
|
|
24
|
+
*/
|
|
25
|
+
export function hasAlphaChannel(format) {
|
|
26
|
+
return format === 'RGBA' || format === 'BGRA' ||
|
|
27
|
+
format === 'I420A' || format === 'I422A' || format === 'I444A' ||
|
|
28
|
+
format === 'I420AP10' || format === 'I422AP10' || format === 'I444AP10' ||
|
|
29
|
+
format === 'I420AP12' || format === 'I422AP12' || format === 'I444AP12';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if a format is 10-bit (high bit depth)
|
|
33
|
+
*/
|
|
34
|
+
export function is10BitFormat(format) {
|
|
35
|
+
return format === 'I420P10' || format === 'I422P10' || format === 'I444P10' || format === 'P010' ||
|
|
36
|
+
format === 'I420AP10' || format === 'I422AP10' || format === 'I444AP10';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if a format is 12-bit (high bit depth)
|
|
40
|
+
*/
|
|
41
|
+
export function is12BitFormat(format) {
|
|
42
|
+
return format === 'I420P12' || format === 'I422P12' || format === 'I444P12' ||
|
|
43
|
+
format === 'I420AP12' || format === 'I422AP12' || format === 'I444AP12';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check if a format uses high bit depth (10 or 12 bit)
|
|
47
|
+
*/
|
|
48
|
+
export function isHighBitDepthFormat(format) {
|
|
49
|
+
return is10BitFormat(format) || is12BitFormat(format);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get the bit depth for a format (8, 10, or 12)
|
|
53
|
+
*/
|
|
54
|
+
export function getBitDepth(format) {
|
|
55
|
+
if (is12BitFormat(format))
|
|
56
|
+
return 12;
|
|
57
|
+
if (is10BitFormat(format))
|
|
58
|
+
return 10;
|
|
59
|
+
return 8;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the 8-bit equivalent of a high bit depth format
|
|
63
|
+
*/
|
|
64
|
+
export function get8BitEquivalent(format) {
|
|
65
|
+
switch (format) {
|
|
66
|
+
case 'I420P10':
|
|
67
|
+
case 'I420P12':
|
|
68
|
+
return 'I420';
|
|
69
|
+
case 'I420AP10':
|
|
70
|
+
case 'I420AP12':
|
|
71
|
+
return 'I420A';
|
|
72
|
+
case 'I422P10':
|
|
73
|
+
case 'I422P12':
|
|
74
|
+
return 'I422';
|
|
75
|
+
case 'I422AP10':
|
|
76
|
+
case 'I422AP12':
|
|
77
|
+
return 'I422A';
|
|
78
|
+
case 'I444P10':
|
|
79
|
+
case 'I444P12':
|
|
80
|
+
return 'I444';
|
|
81
|
+
case 'I444AP10':
|
|
82
|
+
case 'I444AP12':
|
|
83
|
+
return 'I444A';
|
|
84
|
+
case 'P010': return 'NV12';
|
|
85
|
+
default: return format;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get the 10-bit equivalent of an 8-bit format
|
|
90
|
+
*/
|
|
91
|
+
export function get10BitEquivalent(format) {
|
|
92
|
+
switch (format) {
|
|
93
|
+
case 'I420': return 'I420P10';
|
|
94
|
+
case 'I420A': return 'I420AP10';
|
|
95
|
+
case 'I422': return 'I422P10';
|
|
96
|
+
case 'I422A': return 'I422AP10';
|
|
97
|
+
case 'I444': return 'I444P10';
|
|
98
|
+
case 'I444A': return 'I444AP10';
|
|
99
|
+
case 'NV12': return 'P010';
|
|
100
|
+
default: return format;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the 12-bit equivalent of an 8-bit format
|
|
105
|
+
*/
|
|
106
|
+
export function get12BitEquivalent(format) {
|
|
107
|
+
switch (format) {
|
|
108
|
+
case 'I420': return 'I420P12';
|
|
109
|
+
case 'I420A': return 'I420AP12';
|
|
110
|
+
case 'I422': return 'I422P12';
|
|
111
|
+
case 'I422A': return 'I422AP12';
|
|
112
|
+
case 'I444': return 'I444P12';
|
|
113
|
+
case 'I444A': return 'I444AP12';
|
|
114
|
+
default: return format;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/formats/pixel-format/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pixel format module
|
|
3
|
+
*
|
|
4
|
+
* Provides pixel format types and utilities for WebCodecs video frames.
|
|
5
|
+
*/
|
|
6
|
+
export type { VideoPixelFormat, PlaneInfo } from './types.js';
|
|
7
|
+
export { getFrameAllocationSize, getPlaneCount, getPlaneInfo, } from './sizes.js';
|
|
8
|
+
export { isRgbFormat, isYuvFormat, isBgrFormat, hasAlphaChannel, is10BitFormat, is12BitFormat, isHighBitDepthFormat, getBitDepth, get8BitEquivalent, get10BitEquivalent, get12BitEquivalent, } from './helpers.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formats/pixel-format/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pixel format module
|
|
3
|
+
*
|
|
4
|
+
* Provides pixel format types and utilities for WebCodecs video frames.
|
|
5
|
+
*/
|
|
6
|
+
// Size calculations
|
|
7
|
+
export { getFrameAllocationSize, getPlaneCount, getPlaneInfo, } from './sizes.js';
|
|
8
|
+
// Helper functions
|
|
9
|
+
export { isRgbFormat, isYuvFormat, isBgrFormat, hasAlphaChannel, is10BitFormat, is12BitFormat, isHighBitDepthFormat, getBitDepth, get8BitEquivalent, get10BitEquivalent, get12BitEquivalent, } from './helpers.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formats/pixel-format/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,oBAAoB;AACpB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pixel format size calculations
|
|
3
|
+
*/
|
|
4
|
+
import type { VideoPixelFormat, PlaneInfo } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Calculate total allocation size for a frame
|
|
7
|
+
*/
|
|
8
|
+
export declare function getFrameAllocationSize(format: VideoPixelFormat, width: number, height: number): number;
|
|
9
|
+
/**
|
|
10
|
+
* Get number of planes for a pixel format
|
|
11
|
+
*/
|
|
12
|
+
export declare function getPlaneCount(format: VideoPixelFormat): number;
|
|
13
|
+
/**
|
|
14
|
+
* Get plane info for a format at a specific plane index
|
|
15
|
+
*/
|
|
16
|
+
export declare function getPlaneInfo(format: VideoPixelFormat, width: number, height: number, planeIndex: number): PlaneInfo;
|
|
17
|
+
//# sourceMappingURL=sizes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizes.d.ts","sourceRoot":"","sources":["../../../src/formats/pixel-format/sizes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA+CtG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiC9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,SAAS,CAuDX"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pixel format size calculations
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Calculate total allocation size for a frame
|
|
6
|
+
*/
|
|
7
|
+
export function getFrameAllocationSize(format, width, height) {
|
|
8
|
+
const chromaW = Math.ceil(width / 2);
|
|
9
|
+
const chromaH = Math.ceil(height / 2);
|
|
10
|
+
switch (format) {
|
|
11
|
+
case 'I420':
|
|
12
|
+
return width * height + 2 * chromaW * chromaH;
|
|
13
|
+
case 'I420A':
|
|
14
|
+
return width * height * 2 + 2 * chromaW * chromaH;
|
|
15
|
+
case 'I422':
|
|
16
|
+
return width * height + 2 * chromaW * height;
|
|
17
|
+
case 'I422A':
|
|
18
|
+
return width * height * 2 + 2 * chromaW * height;
|
|
19
|
+
case 'I444':
|
|
20
|
+
return width * height * 3;
|
|
21
|
+
case 'I444A':
|
|
22
|
+
return width * height * 4;
|
|
23
|
+
case 'NV12':
|
|
24
|
+
return width * height + width * chromaH;
|
|
25
|
+
case 'I420P10':
|
|
26
|
+
case 'I420P12':
|
|
27
|
+
return (width * height + 2 * chromaW * chromaH) * 2;
|
|
28
|
+
case 'I420AP10':
|
|
29
|
+
case 'I420AP12':
|
|
30
|
+
return (width * height * 2 + 2 * chromaW * chromaH) * 2;
|
|
31
|
+
case 'I422P10':
|
|
32
|
+
case 'I422P12':
|
|
33
|
+
return (width * height + 2 * chromaW * height) * 2;
|
|
34
|
+
case 'I422AP10':
|
|
35
|
+
case 'I422AP12':
|
|
36
|
+
return (width * height * 2 + 2 * chromaW * height) * 2;
|
|
37
|
+
case 'I444P10':
|
|
38
|
+
case 'I444P12':
|
|
39
|
+
return width * height * 3 * 2;
|
|
40
|
+
case 'I444AP10':
|
|
41
|
+
case 'I444AP12':
|
|
42
|
+
return width * height * 4 * 2;
|
|
43
|
+
case 'P010':
|
|
44
|
+
return (width * height + width * chromaH) * 2;
|
|
45
|
+
case 'RGBA':
|
|
46
|
+
case 'RGBX':
|
|
47
|
+
case 'BGRA':
|
|
48
|
+
case 'BGRX':
|
|
49
|
+
return width * height * 4;
|
|
50
|
+
default:
|
|
51
|
+
return width * height * 4;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get number of planes for a pixel format
|
|
56
|
+
*/
|
|
57
|
+
export function getPlaneCount(format) {
|
|
58
|
+
switch (format) {
|
|
59
|
+
case 'I420':
|
|
60
|
+
case 'I422':
|
|
61
|
+
case 'I444':
|
|
62
|
+
case 'I420P10':
|
|
63
|
+
case 'I422P10':
|
|
64
|
+
case 'I444P10':
|
|
65
|
+
case 'I420P12':
|
|
66
|
+
case 'I422P12':
|
|
67
|
+
case 'I444P12':
|
|
68
|
+
return 3;
|
|
69
|
+
case 'I420A':
|
|
70
|
+
case 'I422A':
|
|
71
|
+
case 'I444A':
|
|
72
|
+
case 'I420AP10':
|
|
73
|
+
case 'I422AP10':
|
|
74
|
+
case 'I444AP10':
|
|
75
|
+
case 'I420AP12':
|
|
76
|
+
case 'I422AP12':
|
|
77
|
+
case 'I444AP12':
|
|
78
|
+
return 4;
|
|
79
|
+
case 'NV12':
|
|
80
|
+
case 'P010':
|
|
81
|
+
return 2;
|
|
82
|
+
case 'RGBA':
|
|
83
|
+
case 'RGBX':
|
|
84
|
+
case 'BGRA':
|
|
85
|
+
case 'BGRX':
|
|
86
|
+
return 1;
|
|
87
|
+
default:
|
|
88
|
+
return 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get plane info for a format at a specific plane index
|
|
93
|
+
*/
|
|
94
|
+
export function getPlaneInfo(format, width, height, planeIndex) {
|
|
95
|
+
const chromaW = Math.ceil(width / 2);
|
|
96
|
+
const chromaH = Math.ceil(height / 2);
|
|
97
|
+
switch (format) {
|
|
98
|
+
case 'I420':
|
|
99
|
+
if (planeIndex === 0)
|
|
100
|
+
return { width, height, bytesPerPixel: 1 };
|
|
101
|
+
return { width: chromaW, height: chromaH, bytesPerPixel: 1 };
|
|
102
|
+
case 'I420A':
|
|
103
|
+
if (planeIndex === 0 || planeIndex === 3)
|
|
104
|
+
return { width, height, bytesPerPixel: 1 };
|
|
105
|
+
return { width: chromaW, height: chromaH, bytesPerPixel: 1 };
|
|
106
|
+
case 'I422':
|
|
107
|
+
if (planeIndex === 0)
|
|
108
|
+
return { width, height, bytesPerPixel: 1 };
|
|
109
|
+
return { width: chromaW, height, bytesPerPixel: 1 };
|
|
110
|
+
case 'I422A':
|
|
111
|
+
if (planeIndex === 0 || planeIndex === 3)
|
|
112
|
+
return { width, height, bytesPerPixel: 1 };
|
|
113
|
+
return { width: chromaW, height, bytesPerPixel: 1 };
|
|
114
|
+
case 'I444':
|
|
115
|
+
case 'I444A':
|
|
116
|
+
return { width, height, bytesPerPixel: 1 };
|
|
117
|
+
case 'NV12':
|
|
118
|
+
if (planeIndex === 0)
|
|
119
|
+
return { width, height, bytesPerPixel: 1 };
|
|
120
|
+
return { width, height: chromaH, bytesPerPixel: 2 };
|
|
121
|
+
case 'I420P10':
|
|
122
|
+
case 'I420P12':
|
|
123
|
+
if (planeIndex === 0)
|
|
124
|
+
return { width, height, bytesPerPixel: 2 };
|
|
125
|
+
return { width: chromaW, height: chromaH, bytesPerPixel: 2 };
|
|
126
|
+
case 'I420AP10':
|
|
127
|
+
case 'I420AP12':
|
|
128
|
+
if (planeIndex === 0 || planeIndex === 3)
|
|
129
|
+
return { width, height, bytesPerPixel: 2 };
|
|
130
|
+
return { width: chromaW, height: chromaH, bytesPerPixel: 2 };
|
|
131
|
+
case 'I422P10':
|
|
132
|
+
case 'I422P12':
|
|
133
|
+
if (planeIndex === 0)
|
|
134
|
+
return { width, height, bytesPerPixel: 2 };
|
|
135
|
+
return { width: chromaW, height, bytesPerPixel: 2 };
|
|
136
|
+
case 'I422AP10':
|
|
137
|
+
case 'I422AP12':
|
|
138
|
+
if (planeIndex === 0 || planeIndex === 3)
|
|
139
|
+
return { width, height, bytesPerPixel: 2 };
|
|
140
|
+
return { width: chromaW, height, bytesPerPixel: 2 };
|
|
141
|
+
case 'I444P10':
|
|
142
|
+
case 'I444P12':
|
|
143
|
+
case 'I444AP10':
|
|
144
|
+
case 'I444AP12':
|
|
145
|
+
return { width, height, bytesPerPixel: 2 };
|
|
146
|
+
case 'P010':
|
|
147
|
+
if (planeIndex === 0)
|
|
148
|
+
return { width, height, bytesPerPixel: 2 };
|
|
149
|
+
return { width, height: chromaH, bytesPerPixel: 4 };
|
|
150
|
+
case 'RGBA':
|
|
151
|
+
case 'RGBX':
|
|
152
|
+
case 'BGRA':
|
|
153
|
+
case 'BGRX':
|
|
154
|
+
return { width, height, bytesPerPixel: 4 };
|
|
155
|
+
default:
|
|
156
|
+
return { width, height, bytesPerPixel: 4 };
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=sizes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizes.js","sourceRoot":"","sources":["../../../src/formats/pixel-format/sizes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAwB,EAAE,KAAa,EAAE,MAAc;IAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;QAChD,KAAK,OAAO;YACV,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC;QACpD,KAAK,MAAM;YACT,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;QAC/C,KAAK,OAAO;YACV,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;QACnD,KAAK,MAAM;YACT,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAC5B,KAAK,OAAO;YACV,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAC5B,KAAK,MAAM;YACT,OAAO,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;QAC1C,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1D,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACzD,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,KAAK,MAAM;YACT,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAC5B;YACE,OAAO,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC;QACX,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAwB,EACxB,KAAa,EACb,MAAc,EACd,UAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,OAAO;YACV,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,OAAO;YACV,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC/D,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,IAAI,UAAU,KAAK,CAAC;gBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC7C;YACE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pixel format type definitions
|
|
3
|
+
*/
|
|
4
|
+
export type VideoPixelFormat = 'I420' | 'I420A' | 'I422' | 'I422A' | 'I444' | 'I444A' | 'NV12' | 'RGBA' | 'RGBX' | 'BGRA' | 'BGRX' | 'I420P10' | 'I420AP10' | 'I422P10' | 'I422AP10' | 'I444P10' | 'I444AP10' | 'P010' | 'I420P12' | 'I420AP12' | 'I422P12' | 'I422AP12' | 'I444P12' | 'I444AP12';
|
|
5
|
+
/**
|
|
6
|
+
* Information about a single plane in a pixel format
|
|
7
|
+
*/
|
|
8
|
+
export interface PlaneInfo {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
bytesPerPixel: number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/formats/pixel-format/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GAEN,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,MAAM,GAEN,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/formats/pixel-format/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,57 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pixel format definitions and utilities
|
|
3
|
+
*
|
|
4
|
+
* @deprecated Import from './pixel-format' instead for new code.
|
|
5
|
+
* This file re-exports from the new modular structure for backward compatibility.
|
|
3
6
|
*/
|
|
4
|
-
export
|
|
5
|
-
/**
|
|
6
|
-
* Information about a single plane in a pixel format
|
|
7
|
-
*/
|
|
8
|
-
export interface PlaneInfo {
|
|
9
|
-
width: number;
|
|
10
|
-
height: number;
|
|
11
|
-
bytesPerPixel: number;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Calculate total allocation size for a frame
|
|
15
|
-
*/
|
|
16
|
-
export declare function getFrameAllocationSize(format: VideoPixelFormat, width: number, height: number): number;
|
|
17
|
-
/**
|
|
18
|
-
* Get number of planes for a pixel format
|
|
19
|
-
*/
|
|
20
|
-
export declare function getPlaneCount(format: VideoPixelFormat): number;
|
|
21
|
-
/**
|
|
22
|
-
* Get plane info for a format at a specific plane index
|
|
23
|
-
*/
|
|
24
|
-
export declare function getPlaneInfo(format: VideoPixelFormat, width: number, height: number, planeIndex: number): PlaneInfo;
|
|
25
|
-
/**
|
|
26
|
-
* Check if a format is RGB-based (as opposed to YUV)
|
|
27
|
-
*/
|
|
28
|
-
export declare function isRgbFormat(format: VideoPixelFormat): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* Check if a format is YUV-based
|
|
31
|
-
*/
|
|
32
|
-
export declare function isYuvFormat(format: VideoPixelFormat): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Check if a format uses BGR channel order
|
|
35
|
-
*/
|
|
36
|
-
export declare function isBgrFormat(format: VideoPixelFormat): boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Check if a format has an alpha channel
|
|
39
|
-
*/
|
|
40
|
-
export declare function hasAlphaChannel(format: VideoPixelFormat): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Check if a format is 10-bit (high bit depth)
|
|
43
|
-
*/
|
|
44
|
-
export declare function is10BitFormat(format: VideoPixelFormat): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Get the bit depth for a format (8 or 10)
|
|
47
|
-
*/
|
|
48
|
-
export declare function getBitDepth(format: VideoPixelFormat): number;
|
|
49
|
-
/**
|
|
50
|
-
* Get the 8-bit equivalent of a 10-bit format
|
|
51
|
-
*/
|
|
52
|
-
export declare function get8BitEquivalent(format: VideoPixelFormat): VideoPixelFormat;
|
|
53
|
-
/**
|
|
54
|
-
* Get the 10-bit equivalent of an 8-bit format
|
|
55
|
-
*/
|
|
56
|
-
export declare function get10BitEquivalent(format: VideoPixelFormat): VideoPixelFormat;
|
|
7
|
+
export * from './pixel-format/index.js';
|
|
57
8
|
//# sourceMappingURL=pixel-formats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixel-formats.d.ts","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pixel-formats.d.ts","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,183 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pixel format definitions and utilities
|
|
3
|
+
*
|
|
4
|
+
* @deprecated Import from './pixel-format' instead for new code.
|
|
5
|
+
* This file re-exports from the new modular structure for backward compatibility.
|
|
3
6
|
*/
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
export function getFrameAllocationSize(format, width, height) {
|
|
8
|
-
const chromaW = Math.ceil(width / 2);
|
|
9
|
-
const chromaH = Math.ceil(height / 2);
|
|
10
|
-
switch (format) {
|
|
11
|
-
case 'I420':
|
|
12
|
-
// Y: width * height, U: (width/2) * (height/2), V: (width/2) * (height/2)
|
|
13
|
-
return width * height + 2 * chromaW * chromaH;
|
|
14
|
-
case 'I420A':
|
|
15
|
-
// I420 + Alpha plane (width * height)
|
|
16
|
-
return width * height * 2 + 2 * chromaW * chromaH;
|
|
17
|
-
case 'I422':
|
|
18
|
-
// Y: width * height, U: (width/2) * height, V: (width/2) * height
|
|
19
|
-
return width * height + 2 * chromaW * height;
|
|
20
|
-
case 'I444':
|
|
21
|
-
// Y: width * height, U: width * height, V: width * height
|
|
22
|
-
return width * height * 3;
|
|
23
|
-
case 'NV12':
|
|
24
|
-
// Y: width * height, UV interleaved: width * (height/2)
|
|
25
|
-
return width * height + width * chromaH;
|
|
26
|
-
// 10-bit formats: 2 bytes per sample (16-bit container)
|
|
27
|
-
case 'I420P10':
|
|
28
|
-
// Y: width * height * 2, U: chromaW * chromaH * 2, V: chromaW * chromaH * 2
|
|
29
|
-
return (width * height + 2 * chromaW * chromaH) * 2;
|
|
30
|
-
case 'I422P10':
|
|
31
|
-
// Y: width * height * 2, U: chromaW * height * 2, V: chromaW * height * 2
|
|
32
|
-
return (width * height + 2 * chromaW * height) * 2;
|
|
33
|
-
case 'I444P10':
|
|
34
|
-
// Y, U, V all full size, 2 bytes each
|
|
35
|
-
return width * height * 3 * 2;
|
|
36
|
-
case 'P010':
|
|
37
|
-
// Y: width * height * 2, UV interleaved: width * chromaH * 2
|
|
38
|
-
return (width * height + width * chromaH) * 2;
|
|
39
|
-
case 'RGBA':
|
|
40
|
-
case 'RGBX':
|
|
41
|
-
case 'BGRA':
|
|
42
|
-
case 'BGRX':
|
|
43
|
-
return width * height * 4;
|
|
44
|
-
default:
|
|
45
|
-
return width * height * 4; // Assume RGBA as fallback
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get number of planes for a pixel format
|
|
50
|
-
*/
|
|
51
|
-
export function getPlaneCount(format) {
|
|
52
|
-
switch (format) {
|
|
53
|
-
case 'I420':
|
|
54
|
-
case 'I422':
|
|
55
|
-
case 'I444':
|
|
56
|
-
case 'I420P10':
|
|
57
|
-
case 'I422P10':
|
|
58
|
-
case 'I444P10':
|
|
59
|
-
return 3; // Y, U, V
|
|
60
|
-
case 'I420A':
|
|
61
|
-
return 4; // Y, U, V, A
|
|
62
|
-
case 'NV12':
|
|
63
|
-
case 'P010':
|
|
64
|
-
return 2; // Y, UV interleaved
|
|
65
|
-
case 'RGBA':
|
|
66
|
-
case 'RGBX':
|
|
67
|
-
case 'BGRA':
|
|
68
|
-
case 'BGRX':
|
|
69
|
-
return 1; // Single plane
|
|
70
|
-
default:
|
|
71
|
-
return 1;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get plane info for a format at a specific plane index
|
|
76
|
-
*/
|
|
77
|
-
export function getPlaneInfo(format, width, height, planeIndex) {
|
|
78
|
-
const chromaW = Math.ceil(width / 2);
|
|
79
|
-
const chromaH = Math.ceil(height / 2);
|
|
80
|
-
switch (format) {
|
|
81
|
-
case 'I420':
|
|
82
|
-
if (planeIndex === 0)
|
|
83
|
-
return { width, height, bytesPerPixel: 1 };
|
|
84
|
-
return { width: chromaW, height: chromaH, bytesPerPixel: 1 };
|
|
85
|
-
case 'I420A':
|
|
86
|
-
if (planeIndex === 0 || planeIndex === 3)
|
|
87
|
-
return { width, height, bytesPerPixel: 1 };
|
|
88
|
-
return { width: chromaW, height: chromaH, bytesPerPixel: 1 };
|
|
89
|
-
case 'I422':
|
|
90
|
-
if (planeIndex === 0)
|
|
91
|
-
return { width, height, bytesPerPixel: 1 };
|
|
92
|
-
return { width: chromaW, height, bytesPerPixel: 1 };
|
|
93
|
-
case 'I444':
|
|
94
|
-
return { width, height, bytesPerPixel: 1 };
|
|
95
|
-
case 'NV12':
|
|
96
|
-
if (planeIndex === 0)
|
|
97
|
-
return { width, height, bytesPerPixel: 1 };
|
|
98
|
-
return { width, height: chromaH, bytesPerPixel: 2 }; // UV interleaved
|
|
99
|
-
// 10-bit formats: 2 bytes per sample
|
|
100
|
-
case 'I420P10':
|
|
101
|
-
if (planeIndex === 0)
|
|
102
|
-
return { width, height, bytesPerPixel: 2 };
|
|
103
|
-
return { width: chromaW, height: chromaH, bytesPerPixel: 2 };
|
|
104
|
-
case 'I422P10':
|
|
105
|
-
if (planeIndex === 0)
|
|
106
|
-
return { width, height, bytesPerPixel: 2 };
|
|
107
|
-
return { width: chromaW, height, bytesPerPixel: 2 };
|
|
108
|
-
case 'I444P10':
|
|
109
|
-
return { width, height, bytesPerPixel: 2 };
|
|
110
|
-
case 'P010':
|
|
111
|
-
if (planeIndex === 0)
|
|
112
|
-
return { width, height, bytesPerPixel: 2 };
|
|
113
|
-
return { width, height: chromaH, bytesPerPixel: 4 }; // UV interleaved, 2 bytes each
|
|
114
|
-
case 'RGBA':
|
|
115
|
-
case 'RGBX':
|
|
116
|
-
case 'BGRA':
|
|
117
|
-
case 'BGRX':
|
|
118
|
-
return { width, height, bytesPerPixel: 4 };
|
|
119
|
-
default:
|
|
120
|
-
return { width, height, bytesPerPixel: 4 };
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Check if a format is RGB-based (as opposed to YUV)
|
|
125
|
-
*/
|
|
126
|
-
export function isRgbFormat(format) {
|
|
127
|
-
return format === 'RGBA' || format === 'RGBX' || format === 'BGRA' || format === 'BGRX';
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Check if a format is YUV-based
|
|
131
|
-
*/
|
|
132
|
-
export function isYuvFormat(format) {
|
|
133
|
-
return !isRgbFormat(format);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Check if a format uses BGR channel order
|
|
137
|
-
*/
|
|
138
|
-
export function isBgrFormat(format) {
|
|
139
|
-
return format === 'BGRA' || format === 'BGRX';
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Check if a format has an alpha channel
|
|
143
|
-
*/
|
|
144
|
-
export function hasAlphaChannel(format) {
|
|
145
|
-
return format === 'RGBA' || format === 'BGRA' || format === 'I420A';
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Check if a format is 10-bit (high bit depth)
|
|
149
|
-
*/
|
|
150
|
-
export function is10BitFormat(format) {
|
|
151
|
-
return format === 'I420P10' || format === 'I422P10' || format === 'I444P10' || format === 'P010';
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Get the bit depth for a format (8 or 10)
|
|
155
|
-
*/
|
|
156
|
-
export function getBitDepth(format) {
|
|
157
|
-
return is10BitFormat(format) ? 10 : 8;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Get the 8-bit equivalent of a 10-bit format
|
|
161
|
-
*/
|
|
162
|
-
export function get8BitEquivalent(format) {
|
|
163
|
-
switch (format) {
|
|
164
|
-
case 'I420P10': return 'I420';
|
|
165
|
-
case 'I422P10': return 'I422';
|
|
166
|
-
case 'I444P10': return 'I444';
|
|
167
|
-
case 'P010': return 'NV12';
|
|
168
|
-
default: return format;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Get the 10-bit equivalent of an 8-bit format
|
|
173
|
-
*/
|
|
174
|
-
export function get10BitEquivalent(format) {
|
|
175
|
-
switch (format) {
|
|
176
|
-
case 'I420': return 'I420P10';
|
|
177
|
-
case 'I422': return 'I422P10';
|
|
178
|
-
case 'I444': return 'I444P10';
|
|
179
|
-
case 'NV12': return 'P010';
|
|
180
|
-
default: return format;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
7
|
+
// Re-export everything from the new modular structure
|
|
8
|
+
export * from './pixel-format/index.js';
|
|
183
9
|
//# sourceMappingURL=pixel-formats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixel-formats.js","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pixel-formats.js","sourceRoot":"","sources":["../../src/formats/pixel-formats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sDAAsD;AACtD,cAAc,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder-args.d.ts","sourceRoot":"","sources":["../../src/hardware/decoder-args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,0BAA0B,
|
|
1
|
+
{"version":3,"file":"decoder-args.d.ts","sourceRoot":"","sources":["../../src/hardware/decoder-args.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAG1B,cAAc,EACf,MAAM,YAAY,CAAC;AAOpB;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,cAAc,EACrB,UAAU,GAAE,iBAAiB,GAAG,iBAAiB,GAAG,eAAiC,GACpF,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAGtG;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,UAAU,GAAE,iBAAiB,GAAG,iBAAiB,GAAG,eAAiC,GACpF;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAG7F"}
|