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 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../../../../src/backends/node-av/video/encoder/timestamp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAErF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,MAAM,CAG7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EACrD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GACjD,CAAC,CAOH"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timestamp conversion utilities for video encoding
|
|
3
|
+
*
|
|
4
|
+
* Handles conversion between WebCodecs microsecond timestamps
|
|
5
|
+
* and FFmpeg encoder timebases.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Convert input timestamp (microseconds) to encoder PTS
|
|
9
|
+
*
|
|
10
|
+
* For most codecs, timebase is 1/1000000 so pts = timestamp
|
|
11
|
+
* For AV1/SVT-AV1, timebase is 1/framerate so pts = timestamp * framerate / 1000000
|
|
12
|
+
*/
|
|
13
|
+
export function microsecondsToPts(timestampUs, timeBase) {
|
|
14
|
+
return BigInt(Math.round(timestampUs * timeBase.den / 1_000_000));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Convert packet PTS to microseconds
|
|
18
|
+
*
|
|
19
|
+
* timestamp_us = pts * (timeBase.num / timeBase.den) * 1_000_000
|
|
20
|
+
*/
|
|
21
|
+
export function ptsToMicroseconds(pts, timeBase) {
|
|
22
|
+
const ptsUs = (pts * BigInt(timeBase.num) * 1000000n) / BigInt(timeBase.den);
|
|
23
|
+
return Number(ptsUs);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the appropriate timebase for a codec
|
|
27
|
+
*
|
|
28
|
+
* Most codecs use microsecond timebase (1/1000000)
|
|
29
|
+
* SVT-AV1 requires framerate-based timebase to avoid "maximum 240 fps" error
|
|
30
|
+
*/
|
|
31
|
+
export function getCodecTimeBase(codecName, framerate, RationalClass) {
|
|
32
|
+
if (codecName === 'av1') {
|
|
33
|
+
// SVT-AV1 derives framerate from timebase
|
|
34
|
+
return new RationalClass(1, framerate);
|
|
35
|
+
}
|
|
36
|
+
// Use microsecond timebase to preserve input timestamps exactly
|
|
37
|
+
return new RationalClass(1, 1_000_000);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../../../../src/backends/node-av/video/encoder/timestamp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,QAAsB;IAC3E,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,QAAsB;IACnE,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,SAAiB,EACjB,aAAkD;IAElD,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QACxB,0CAA0C;QAC1C,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IACD,gEAAgE;IAChE,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/backends/types.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
8
8
|
import type { AudioSampleFormat } from '../formats/audio-formats.js';
|
|
9
|
+
import type { VideoColorSpaceInit } from '../formats/color-space.js';
|
|
9
10
|
/**
|
|
10
11
|
* Encoded frame data emitted by encoders
|
|
11
12
|
*/
|
|
@@ -15,6 +16,8 @@ export interface EncodedFrame {
|
|
|
15
16
|
keyFrame: boolean;
|
|
16
17
|
/** Optional codec description (e.g., HVCC for HEVC, AVC config for H.264) */
|
|
17
18
|
description?: Buffer;
|
|
19
|
+
/** Optional duration in samples (audio only) */
|
|
20
|
+
durationSamples?: number;
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Decoded frame data emitted by decoders
|
|
@@ -26,6 +29,13 @@ export interface DecodedFrame {
|
|
|
26
29
|
timestamp: number;
|
|
27
30
|
format: string;
|
|
28
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* AV1-specific backend encoder options
|
|
34
|
+
*/
|
|
35
|
+
export interface Av1BackendConfig {
|
|
36
|
+
/** Force all frames to use screen content tools (for screen sharing) */
|
|
37
|
+
forceScreenContentTools?: boolean;
|
|
38
|
+
}
|
|
29
39
|
/**
|
|
30
40
|
* Video encoder configuration
|
|
31
41
|
*/
|
|
@@ -33,15 +43,25 @@ export interface VideoEncoderBackendConfig {
|
|
|
33
43
|
codec: string;
|
|
34
44
|
width: number;
|
|
35
45
|
height: number;
|
|
46
|
+
/** Input frame width - if different from width, rescaling will be applied */
|
|
47
|
+
inputWidth?: number;
|
|
48
|
+
/** Input frame height - if different from height, rescaling will be applied */
|
|
49
|
+
inputHeight?: number;
|
|
36
50
|
inputPixelFormat?: string;
|
|
37
51
|
framerate?: number;
|
|
38
52
|
bitrate?: number;
|
|
39
53
|
bitrateMode?: 'constant' | 'variable' | 'quantizer';
|
|
40
54
|
latencyMode?: 'quality' | 'realtime';
|
|
41
55
|
alpha?: 'discard' | 'keep';
|
|
56
|
+
/** Content hint for encoder optimization: 'text' for screen content, 'detail' for high detail, 'motion' for video */
|
|
57
|
+
contentHint?: 'text' | 'detail' | 'motion';
|
|
42
58
|
hardwareAcceleration?: 'no-preference' | 'prefer-hardware' | 'prefer-software';
|
|
43
59
|
/** Output format: 'annexb' for raw Annex B, 'mp4' for length-prefixed (AVCC/HVCC) */
|
|
44
60
|
format?: 'annexb' | 'mp4';
|
|
61
|
+
/** Color space for HDR encoding with optional HDR metadata */
|
|
62
|
+
colorSpace?: VideoColorSpaceInit;
|
|
63
|
+
/** AV1-specific options */
|
|
64
|
+
av1?: Av1BackendConfig;
|
|
45
65
|
}
|
|
46
66
|
/**
|
|
47
67
|
* Video decoder configuration
|
|
@@ -55,6 +75,26 @@ export interface VideoDecoderBackendConfig {
|
|
|
55
75
|
framerate?: number;
|
|
56
76
|
hardwareAcceleration?: 'no-preference' | 'prefer-hardware' | 'prefer-software';
|
|
57
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Opus-specific backend encoder options
|
|
80
|
+
*/
|
|
81
|
+
export interface OpusBackendConfig {
|
|
82
|
+
/** Output format: only 'opus' (raw packets) is supported at encoder level */
|
|
83
|
+
format?: 'opus';
|
|
84
|
+
frameDuration?: number;
|
|
85
|
+
application?: 'voip' | 'audio' | 'lowdelay';
|
|
86
|
+
packetlossperc?: number;
|
|
87
|
+
useinbandfec?: boolean;
|
|
88
|
+
usedtx?: boolean;
|
|
89
|
+
signal?: 'auto' | 'music' | 'voice';
|
|
90
|
+
complexity?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* AAC-specific backend encoder options
|
|
94
|
+
*/
|
|
95
|
+
export interface AacBackendConfig {
|
|
96
|
+
format?: 'aac' | 'adts';
|
|
97
|
+
}
|
|
58
98
|
/**
|
|
59
99
|
* Audio encoder configuration
|
|
60
100
|
*/
|
|
@@ -65,6 +105,10 @@ export interface AudioEncoderBackendConfig {
|
|
|
65
105
|
bitrate?: number;
|
|
66
106
|
bitrateMode?: 'constant' | 'variable';
|
|
67
107
|
latencyMode?: 'quality' | 'realtime';
|
|
108
|
+
/** Opus-specific options */
|
|
109
|
+
opus?: OpusBackendConfig;
|
|
110
|
+
/** AAC-specific options */
|
|
111
|
+
aac?: AacBackendConfig;
|
|
68
112
|
}
|
|
69
113
|
/**
|
|
70
114
|
* Audio decoder configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiOH,iDAAiD;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,wDAAwD;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/codec-utils/formats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/codec-utils/formats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA8B1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA2C1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB9D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgGxF;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAU3G,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhE"}
|
|
@@ -11,7 +11,9 @@ export function pixelFormatToFFmpeg(format) {
|
|
|
11
11
|
'I420': 'yuv420p',
|
|
12
12
|
'I420A': 'yuva420p',
|
|
13
13
|
'I422': 'yuv422p',
|
|
14
|
+
'I422A': 'yuva422p',
|
|
14
15
|
'I444': 'yuv444p',
|
|
16
|
+
'I444A': 'yuva444p',
|
|
15
17
|
'NV12': 'nv12',
|
|
16
18
|
'RGBA': 'rgba',
|
|
17
19
|
'RGBX': 'rgb0',
|
|
@@ -19,9 +21,19 @@ export function pixelFormatToFFmpeg(format) {
|
|
|
19
21
|
'BGRX': 'bgr0',
|
|
20
22
|
// 10-bit formats
|
|
21
23
|
'I420P10': 'yuv420p10le',
|
|
24
|
+
'I420AP10': 'yuva420p10le',
|
|
22
25
|
'I422P10': 'yuv422p10le',
|
|
26
|
+
'I422AP10': 'yuva422p10le',
|
|
23
27
|
'I444P10': 'yuv444p10le',
|
|
28
|
+
'I444AP10': 'yuva444p10le',
|
|
24
29
|
'P010': 'p010le',
|
|
30
|
+
// 12-bit formats
|
|
31
|
+
'I420P12': 'yuv420p12le',
|
|
32
|
+
'I420AP12': 'yuva420p12le',
|
|
33
|
+
'I422P12': 'yuv422p12le',
|
|
34
|
+
'I422AP12': 'yuva422p12le',
|
|
35
|
+
'I444P12': 'yuv444p12le',
|
|
36
|
+
'I444AP12': 'yuva444p12le',
|
|
25
37
|
};
|
|
26
38
|
return formatMap[format] || format.toLowerCase();
|
|
27
39
|
}
|
|
@@ -33,7 +45,9 @@ export function ffmpegToPixelFormat(format) {
|
|
|
33
45
|
'yuv420p': 'I420',
|
|
34
46
|
'yuva420p': 'I420A',
|
|
35
47
|
'yuv422p': 'I422',
|
|
48
|
+
'yuva422p': 'I422A',
|
|
36
49
|
'yuv444p': 'I444',
|
|
50
|
+
'yuva444p': 'I444A',
|
|
37
51
|
'nv12': 'NV12',
|
|
38
52
|
'rgba': 'RGBA',
|
|
39
53
|
'rgb0': 'RGBX',
|
|
@@ -42,12 +56,31 @@ export function ffmpegToPixelFormat(format) {
|
|
|
42
56
|
// 10-bit formats
|
|
43
57
|
'yuv420p10le': 'I420P10',
|
|
44
58
|
'yuv420p10be': 'I420P10',
|
|
59
|
+
'yuva420p10le': 'I420AP10',
|
|
60
|
+
'yuva420p10be': 'I420AP10',
|
|
45
61
|
'yuv422p10le': 'I422P10',
|
|
46
62
|
'yuv422p10be': 'I422P10',
|
|
63
|
+
'yuva422p10le': 'I422AP10',
|
|
64
|
+
'yuva422p10be': 'I422AP10',
|
|
47
65
|
'yuv444p10le': 'I444P10',
|
|
48
66
|
'yuv444p10be': 'I444P10',
|
|
67
|
+
'yuva444p10le': 'I444AP10',
|
|
68
|
+
'yuva444p10be': 'I444AP10',
|
|
49
69
|
'p010le': 'P010',
|
|
50
70
|
'p010be': 'P010',
|
|
71
|
+
// 12-bit formats
|
|
72
|
+
'yuv420p12le': 'I420P12',
|
|
73
|
+
'yuv420p12be': 'I420P12',
|
|
74
|
+
'yuva420p12le': 'I420AP12',
|
|
75
|
+
'yuva420p12be': 'I420AP12',
|
|
76
|
+
'yuv422p12le': 'I422P12',
|
|
77
|
+
'yuv422p12be': 'I422P12',
|
|
78
|
+
'yuva422p12le': 'I422AP12',
|
|
79
|
+
'yuva422p12be': 'I422AP12',
|
|
80
|
+
'yuv444p12le': 'I444P12',
|
|
81
|
+
'yuv444p12be': 'I444P12',
|
|
82
|
+
'yuva444p12le': 'I444AP12',
|
|
83
|
+
'yuva444p12be': 'I444AP12',
|
|
51
84
|
};
|
|
52
85
|
return formatMap[format] || format.toUpperCase();
|
|
53
86
|
}
|
|
@@ -106,10 +139,18 @@ export function calculateFrameSize(format, width, height) {
|
|
|
106
139
|
case 'YUV422P':
|
|
107
140
|
// Y: width * height, U: chromaW * height, V: chromaW * height
|
|
108
141
|
return width * height + 2 * chromaW * height;
|
|
142
|
+
case 'I422A':
|
|
143
|
+
case 'YUVA422P':
|
|
144
|
+
// I422 + Alpha plane
|
|
145
|
+
return width * height * 2 + 2 * chromaW * height;
|
|
109
146
|
case 'I444':
|
|
110
147
|
case 'YUV444P':
|
|
111
148
|
// Y, U, V all full size
|
|
112
149
|
return width * height * 3;
|
|
150
|
+
case 'I444A':
|
|
151
|
+
case 'YUVA444P':
|
|
152
|
+
// I444 + Alpha plane
|
|
153
|
+
return width * height * 4;
|
|
113
154
|
case 'NV12':
|
|
114
155
|
// Y: width * height, UV interleaved: width * chromaH
|
|
115
156
|
return width * height + width * chromaH;
|
|
@@ -118,18 +159,55 @@ export function calculateFrameSize(format, width, height) {
|
|
|
118
159
|
case 'YUV420P10LE':
|
|
119
160
|
case 'YUV420P10BE':
|
|
120
161
|
return (width * height + 2 * chromaW * chromaH) * 2;
|
|
162
|
+
case 'I420AP10':
|
|
163
|
+
case 'YUVA420P10LE':
|
|
164
|
+
case 'YUVA420P10BE':
|
|
165
|
+
return (width * height * 2 + 2 * chromaW * chromaH) * 2;
|
|
121
166
|
case 'I422P10':
|
|
122
167
|
case 'YUV422P10LE':
|
|
123
168
|
case 'YUV422P10BE':
|
|
124
169
|
return (width * height + 2 * chromaW * height) * 2;
|
|
170
|
+
case 'I422AP10':
|
|
171
|
+
case 'YUVA422P10LE':
|
|
172
|
+
case 'YUVA422P10BE':
|
|
173
|
+
return (width * height * 2 + 2 * chromaW * height) * 2;
|
|
125
174
|
case 'I444P10':
|
|
126
175
|
case 'YUV444P10LE':
|
|
127
176
|
case 'YUV444P10BE':
|
|
128
177
|
return width * height * 3 * 2;
|
|
178
|
+
case 'I444AP10':
|
|
179
|
+
case 'YUVA444P10LE':
|
|
180
|
+
case 'YUVA444P10BE':
|
|
181
|
+
return width * height * 4 * 2;
|
|
129
182
|
case 'P010':
|
|
130
183
|
case 'P010LE':
|
|
131
184
|
case 'P010BE':
|
|
132
185
|
return (width * height + width * chromaH) * 2;
|
|
186
|
+
// 12-bit formats: 2 bytes per sample
|
|
187
|
+
case 'I420P12':
|
|
188
|
+
case 'YUV420P12LE':
|
|
189
|
+
case 'YUV420P12BE':
|
|
190
|
+
return (width * height + 2 * chromaW * chromaH) * 2;
|
|
191
|
+
case 'I420AP12':
|
|
192
|
+
case 'YUVA420P12LE':
|
|
193
|
+
case 'YUVA420P12BE':
|
|
194
|
+
return (width * height * 2 + 2 * chromaW * chromaH) * 2;
|
|
195
|
+
case 'I422P12':
|
|
196
|
+
case 'YUV422P12LE':
|
|
197
|
+
case 'YUV422P12BE':
|
|
198
|
+
return (width * height + 2 * chromaW * height) * 2;
|
|
199
|
+
case 'I422AP12':
|
|
200
|
+
case 'YUVA422P12LE':
|
|
201
|
+
case 'YUVA422P12BE':
|
|
202
|
+
return (width * height * 2 + 2 * chromaW * height) * 2;
|
|
203
|
+
case 'I444P12':
|
|
204
|
+
case 'YUV444P12LE':
|
|
205
|
+
case 'YUV444P12BE':
|
|
206
|
+
return width * height * 3 * 2;
|
|
207
|
+
case 'I444AP12':
|
|
208
|
+
case 'YUVA444P12LE':
|
|
209
|
+
case 'YUVA444P12BE':
|
|
210
|
+
return width * height * 4 * 2;
|
|
133
211
|
case 'RGBA':
|
|
134
212
|
case 'RGBX':
|
|
135
213
|
case 'BGRA':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/codec-utils/formats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,SAAS,GAA2B;QACxC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,UAAU;QACnB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,iBAAiB;QACjB,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/codec-utils/formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ export type BitrateMode = 'constant' | 'variable' | 'quantizer';
|
|
|
62
62
|
/**
|
|
63
63
|
* Alpha channel handling mode
|
|
64
64
|
* - 'discard': Drop alpha channel (default, works with all codecs)
|
|
65
|
-
* - 'keep': Preserve alpha channel (only VP9
|
|
65
|
+
* - 'keep': Preserve alpha channel (only VP9 software encoding supports this)
|
|
66
66
|
*/
|
|
67
67
|
export type AlphaOption = 'discard' | 'keep';
|
|
68
68
|
/**
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AAC codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from utils/aac.ts for backward compatibility.
|
|
5
|
+
* This module provides:
|
|
6
|
+
* - AudioSpecificConfig parsing
|
|
7
|
+
* - ADTS header framing/stripping
|
|
8
|
+
*/
|
|
9
|
+
export { parseAudioSpecificConfig, wrapAacFrameWithAdts, buildAudioSpecificConfig, stripAdtsHeader, SAMPLING_RATES, type AacConfig, } from '../utils/aac.js';
|
|
10
|
+
//# sourceMappingURL=aac.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aac.d.ts","sourceRoot":"","sources":["../../src/codecs/aac.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AAC codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from utils/aac.ts for backward compatibility.
|
|
5
|
+
* This module provides:
|
|
6
|
+
* - AudioSpecificConfig parsing
|
|
7
|
+
* - ADTS header framing/stripping
|
|
8
|
+
*/
|
|
9
|
+
export { parseAudioSpecificConfig, wrapAacFrameWithAdts, buildAudioSpecificConfig, stripAdtsHeader, SAMPLING_RATES, } from '../utils/aac.js';
|
|
10
|
+
//# sourceMappingURL=aac.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aac.js","sourceRoot":"","sources":["../../src/codecs/aac.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,cAAc,GAEf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AVC (H.264) codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from utils/avc.ts for backward compatibility.
|
|
5
|
+
* This module provides:
|
|
6
|
+
* - AVCDecoderConfigurationRecord parsing
|
|
7
|
+
* - Annex B <-> avcC format conversion
|
|
8
|
+
* - SPS/PPS parameter set extraction
|
|
9
|
+
*/
|
|
10
|
+
export { parseAvcDecoderConfig, convertAvccToAnnexB, splitAnnexBNals, extractAvcParameterSetsFromAnnexB, buildAvcDecoderConfig, convertAnnexBToAvcc, type AvcConfig, } from '../utils/avc.js';
|
|
11
|
+
//# sourceMappingURL=avc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avc.d.ts","sourceRoot":"","sources":["../../src/codecs/avc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iCAAiC,EACjC,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AVC (H.264) codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from utils/avc.ts for backward compatibility.
|
|
5
|
+
* This module provides:
|
|
6
|
+
* - AVCDecoderConfigurationRecord parsing
|
|
7
|
+
* - Annex B <-> avcC format conversion
|
|
8
|
+
* - SPS/PPS parameter set extraction
|
|
9
|
+
*/
|
|
10
|
+
export { parseAvcDecoderConfig, convertAvccToAnnexB, splitAnnexBNals, extractAvcParameterSetsFromAnnexB, buildAvcDecoderConfig, convertAnnexBToAvcc, } from '../utils/avc.js';
|
|
11
|
+
//# sourceMappingURL=avc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avc.js","sourceRoot":"","sources":["../../src/codecs/avc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iCAAiC,EACjC,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HEVC (H.265) codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from utils/hevc.ts for backward compatibility.
|
|
5
|
+
* This module provides:
|
|
6
|
+
* - HEVCDecoderConfigurationRecord (HVCC) parsing
|
|
7
|
+
* - Annex B <-> HVCC format conversion
|
|
8
|
+
* - VPS/SPS/PPS parameter set extraction
|
|
9
|
+
*/
|
|
10
|
+
export { parseHvccDecoderConfig, convertHvccToAnnexB, splitHevcAnnexBNals, extractHevcParameterSetsFromAnnexB, buildHvccDecoderConfig, convertAnnexBToHvcc, type HvccConfig, } from '../utils/hevc.js';
|
|
11
|
+
//# sourceMappingURL=hevc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hevc.d.ts","sourceRoot":"","sources":["../../src/codecs/hevc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HEVC (H.265) codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from utils/hevc.ts for backward compatibility.
|
|
5
|
+
* This module provides:
|
|
6
|
+
* - HEVCDecoderConfigurationRecord (HVCC) parsing
|
|
7
|
+
* - Annex B <-> HVCC format conversion
|
|
8
|
+
* - VPS/SPS/PPS parameter set extraction
|
|
9
|
+
*/
|
|
10
|
+
export { parseHvccDecoderConfig, convertHvccToAnnexB, splitHevcAnnexBNals, extractHevcParameterSetsFromAnnexB, buildHvccDecoderConfig, convertAnnexBToHvcc, } from '../utils/hevc.js';
|
|
11
|
+
//# sourceMappingURL=hevc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hevc.js","sourceRoot":"","sources":["../../src/codecs/hevc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codecs module
|
|
3
|
+
*
|
|
4
|
+
* Provides codec-specific utilities and validation functions.
|
|
5
|
+
*/
|
|
6
|
+
export * from './validation/index.js';
|
|
7
|
+
export { parseAvcDecoderConfig, convertAvccToAnnexB, splitAnnexBNals, extractAvcParameterSetsFromAnnexB, buildAvcDecoderConfig, convertAnnexBToAvcc, type AvcConfig, } from './avc.js';
|
|
8
|
+
export { parseHvccDecoderConfig, convertHvccToAnnexB, splitHevcAnnexBNals, extractHevcParameterSetsFromAnnexB, buildHvccDecoderConfig, convertAnnexBToHvcc, type HvccConfig, } from './hevc.js';
|
|
9
|
+
export { parseAudioSpecificConfig, wrapAacFrameWithAdts, buildAudioSpecificConfig, stripAdtsHeader, SAMPLING_RATES, type AacConfig, } from './aac.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iCAAiC,EACjC,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,SAAS,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,KAAK,SAAS,GACf,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codecs module
|
|
3
|
+
*
|
|
4
|
+
* Provides codec-specific utilities and validation functions.
|
|
5
|
+
*/
|
|
6
|
+
// Validation
|
|
7
|
+
export * from './validation/index.js';
|
|
8
|
+
// AVC (H.264) utilities
|
|
9
|
+
export { parseAvcDecoderConfig, convertAvccToAnnexB, splitAnnexBNals, extractAvcParameterSetsFromAnnexB, buildAvcDecoderConfig, convertAnnexBToAvcc, } from './avc.js';
|
|
10
|
+
// HEVC (H.265) utilities
|
|
11
|
+
export { parseHvccDecoderConfig, convertHvccToAnnexB, splitHevcAnnexBNals, extractHevcParameterSetsFromAnnexB, buildHvccDecoderConfig, convertAnnexBToHvcc, } from './hevc.js';
|
|
12
|
+
// AAC utilities
|
|
13
|
+
export { parseAudioSpecificConfig, wrapAacFrameWithAdts, buildAudioSpecificConfig, stripAdtsHeader, SAMPLING_RATES, } from './aac.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,wBAAwB;AACxB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,iCAAiC,EACjC,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,UAAU,CAAC;AAElB,yBAAyB;AACzB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,WAAW,CAAC;AAEnB,gBAAgB;AAChB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,cAAc,GAEf,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio codec string validation according to WebCodecs specification
|
|
3
|
+
*
|
|
4
|
+
* @see https://www.w3.org/TR/webcodecs-codec-registry/
|
|
5
|
+
*/
|
|
6
|
+
export interface AudioCodecValidationResult {
|
|
7
|
+
valid: boolean;
|
|
8
|
+
supported: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Validate an audio codec string according to WebCodecs spec
|
|
13
|
+
*
|
|
14
|
+
* Returns { valid: true, supported: true } for valid, supported codecs
|
|
15
|
+
* Returns { valid: true, supported: false } for valid but unsupported codecs
|
|
16
|
+
* Returns { valid: false, supported: false } for invalid codec strings
|
|
17
|
+
*/
|
|
18
|
+
export declare function validateAudioCodec(codec: string): AudioCodecValidationResult;
|
|
19
|
+
//# sourceMappingURL=audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../src/codecs/validation/audio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,0BAA0B,CA+D5E"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio codec string validation according to WebCodecs specification
|
|
3
|
+
*
|
|
4
|
+
* @see https://www.w3.org/TR/webcodecs-codec-registry/
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Validate an audio codec string according to WebCodecs spec
|
|
8
|
+
*
|
|
9
|
+
* Returns { valid: true, supported: true } for valid, supported codecs
|
|
10
|
+
* Returns { valid: true, supported: false } for valid but unsupported codecs
|
|
11
|
+
* Returns { valid: false, supported: false } for invalid codec strings
|
|
12
|
+
*/
|
|
13
|
+
export function validateAudioCodec(codec) {
|
|
14
|
+
// Check for whitespace (invalid)
|
|
15
|
+
if (codec !== codec.trim()) {
|
|
16
|
+
return { valid: true, supported: false, error: 'Codec string contains whitespace' };
|
|
17
|
+
}
|
|
18
|
+
// Check for MIME type format (invalid for WebCodecs)
|
|
19
|
+
if (codec.includes('/') || codec.includes(';')) {
|
|
20
|
+
return { valid: true, supported: false, error: 'MIME type format not accepted' };
|
|
21
|
+
}
|
|
22
|
+
// Opus: exactly "opus"
|
|
23
|
+
if (codec === 'opus') {
|
|
24
|
+
return { valid: true, supported: true };
|
|
25
|
+
}
|
|
26
|
+
// Opus with wrong casing
|
|
27
|
+
if (codec.toLowerCase() === 'opus' && codec !== 'opus') {
|
|
28
|
+
return { valid: true, supported: false, error: 'Opus codec must be lowercase "opus"' };
|
|
29
|
+
}
|
|
30
|
+
// AAC: mp4a.40.X format
|
|
31
|
+
if (codec.startsWith('mp4a.')) {
|
|
32
|
+
return validateAacCodec(codec);
|
|
33
|
+
}
|
|
34
|
+
// FLAC: exactly "flac"
|
|
35
|
+
if (codec === 'flac') {
|
|
36
|
+
return { valid: true, supported: true };
|
|
37
|
+
}
|
|
38
|
+
// FLAC with wrong casing
|
|
39
|
+
if (codec.toLowerCase() === 'flac' && codec !== 'flac') {
|
|
40
|
+
return { valid: true, supported: false, error: 'FLAC codec must be lowercase "flac"' };
|
|
41
|
+
}
|
|
42
|
+
// Vorbis: exactly "vorbis"
|
|
43
|
+
if (codec === 'vorbis') {
|
|
44
|
+
return { valid: true, supported: true };
|
|
45
|
+
}
|
|
46
|
+
// Vorbis with wrong casing
|
|
47
|
+
if (codec.toLowerCase() === 'vorbis' && codec !== 'vorbis') {
|
|
48
|
+
return { valid: true, supported: false, error: 'Vorbis codec must be lowercase "vorbis"' };
|
|
49
|
+
}
|
|
50
|
+
// MP3: exactly "mp3"
|
|
51
|
+
if (codec === 'mp3') {
|
|
52
|
+
return { valid: true, supported: true };
|
|
53
|
+
}
|
|
54
|
+
// MP3 with wrong casing
|
|
55
|
+
if (codec.toLowerCase() === 'mp3' && codec !== 'mp3') {
|
|
56
|
+
return { valid: true, supported: false, error: 'MP3 codec must be lowercase "mp3"' };
|
|
57
|
+
}
|
|
58
|
+
// PCM formats: pcm-u8, pcm-s16, pcm-s24, pcm-s32, pcm-f32
|
|
59
|
+
if (codec.startsWith('pcm-')) {
|
|
60
|
+
return validatePcmCodec(codec);
|
|
61
|
+
}
|
|
62
|
+
// Unknown codec
|
|
63
|
+
return { valid: true, supported: false, error: `Unrecognized codec: ${codec}` };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Validate AAC codec string
|
|
67
|
+
* Format: mp4a.40.X where X is the audio object type
|
|
68
|
+
* Common values: mp4a.40.2 (AAC-LC), mp4a.40.5 (HE-AAC), mp4a.40.29 (HE-AACv2)
|
|
69
|
+
*/
|
|
70
|
+
function validateAacCodec(codec) {
|
|
71
|
+
// mp4a.40.X format
|
|
72
|
+
const match = codec.match(/^mp4a\.40\.(\d+)$/);
|
|
73
|
+
if (!match) {
|
|
74
|
+
// Check for mp4a.XX.Y format (other MPEG-4 audio)
|
|
75
|
+
const otherMatch = codec.match(/^mp4a\.([0-9A-Fa-f]{2})\.(\d+)$/);
|
|
76
|
+
if (otherMatch) {
|
|
77
|
+
const objectTypeIndication = parseInt(otherMatch[1], 16);
|
|
78
|
+
// 0x40 = MPEG-4 Audio, others may not be supported
|
|
79
|
+
if (objectTypeIndication !== 0x40) {
|
|
80
|
+
return { valid: true, supported: false, error: `Unsupported MPEG-4 audio type: 0x${objectTypeIndication.toString(16)}` };
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return { valid: true, supported: false, error: 'Invalid AAC codec format, expected mp4a.40.X' };
|
|
84
|
+
}
|
|
85
|
+
const audioObjectType = parseInt(match[1], 10);
|
|
86
|
+
// Valid audio object types for AAC:
|
|
87
|
+
// 1 = AAC Main, 2 = AAC-LC, 3 = AAC SSR, 4 = AAC LTP
|
|
88
|
+
// 5 = SBR (HE-AAC), 29 = PS (HE-AACv2)
|
|
89
|
+
// 23 = LD, 39 = ELD
|
|
90
|
+
const validTypes = [1, 2, 3, 4, 5, 6, 17, 19, 20, 23, 29, 39, 42];
|
|
91
|
+
if (!validTypes.includes(audioObjectType)) {
|
|
92
|
+
return { valid: true, supported: false, error: `Unknown AAC audio object type: ${audioObjectType}` };
|
|
93
|
+
}
|
|
94
|
+
return { valid: true, supported: true };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Validate PCM codec string
|
|
98
|
+
* Format: pcm-{format} where format is u8, s16, s24, s32, or f32
|
|
99
|
+
*/
|
|
100
|
+
function validatePcmCodec(codec) {
|
|
101
|
+
const validFormats = ['pcm-u8', 'pcm-s16', 'pcm-s24', 'pcm-s32', 'pcm-f32'];
|
|
102
|
+
if (validFormats.includes(codec)) {
|
|
103
|
+
return { valid: true, supported: true };
|
|
104
|
+
}
|
|
105
|
+
// Check for valid format with wrong casing
|
|
106
|
+
if (validFormats.includes(codec.toLowerCase())) {
|
|
107
|
+
return { valid: true, supported: false, error: `PCM codec must be lowercase "${codec.toLowerCase()}"` };
|
|
108
|
+
}
|
|
109
|
+
return { valid: true, supported: false, error: `Unknown PCM format: ${codec}` };
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=audio.js.map
|