/** * Represents the pixel format of a video image buffer. * Video Formats are either **YUV** or **RGB**. * The most commonly used format is `yuv-420-8-bit-video`. * * | Format | Colorspace | Sampling | Bit depth | Color Range | Layout | * |-----------------------------|------------|----------|-----------|--------------|---------------------| * | `yuv-420-8-bit-video` | YUV | 4:2:0 | 8-bit | Video | Planar | * | `yuv-420-8-bit-full` | YUV | 4:2:0 | 8-bit | Full | Planar | * | `yuv-420-10-bit-video` | YUV | 4:2:0 | 10-bit | Video | Planar | * | `yuv-420-10-bit-full` | YUV | 4:2:0 | 10-bit | Full | Planar | * | `yuv-422-8-bit-video` | YUV | 4:2:2 | 8-bit | Video | Planar | * | `yuv-422-8-bit-full` | YUV | 4:2:2 | 8-bit | Full | Planar | * | `yuv-422-10-bit-video` | YUV | 4:2:2 | 10-bit | Video | Planar | * | `yuv-422-10-bit-full` | YUV | 4:2:2 | 10-bit | Full | Planar | * | `yuv-444-8-bit-video` | YUV | 4:4:4 | 8-bit | Video | Planar | * | `rgb-bgra-8-bit` | RGB | 4:4:4 | 8-bit | Full | Interleaved BGRA | * | `rgb-rgba-8-bit` | RGB | 4:4:4 | 8-bit | Full | Interleaved RGBA | * | `rgb-rgb-8-bit` | RGB | 4:4:4 | 8-bit | Full | Interleaved RGB | * | `raw-bayer-packed96-12-bit` | RAW Bayer | Mosaic | 12-bit | Sensor | Packed96 Bayer | * | `raw-bayer-unpacked-16-bit` | RAW Bayer | Mosaic | 16-bit | Sensor | Unpacked 16-bit | * | `unknown` | — | — | — | — | Unknown | */ export type VideoPixelFormat = 'yuv-420-8-bit-video' | 'yuv-420-8-bit-full' | 'yuv-420-10-bit-video' | 'yuv-420-10-bit-full' | 'yuv-422-8-bit-video' | 'yuv-422-8-bit-full' | 'yuv-422-10-bit-video' | 'yuv-422-10-bit-full' | 'yuv-444-8-bit-video' | 'rgb-bgra-8-bit' | 'rgb-rgba-8-bit' | 'rgb-rgb-8-bit' | 'raw-bayer-packed96-12-bit' | 'raw-bayer-unpacked-16-bit' | 'unknown'; /** * Represents a desired pixel format for a video * pipeline. * * Used to configure the format a {@linkcode CameraFrameOutput} * streams {@linkcode Frame}s in. * * - `'native'`: Choose whatever the {@linkcode CameraSessionConfig}'s * {@linkcode CameraSessionConfig.nativePixelFormat | nativePixelFormat} is. This can be a YUV format, * an RGB format like {@linkcode VideoPixelFormat | 'rgb-bgra-8-bit'}, a RAW format like * {@linkcode VideoPixelFormat | 'raw-bayer-packed96-12-bit'}, or a private * format ({@linkcode PixelFormat | 'private'}) and requires zero conversion. * - `'yuv'`: Choose the YUV format closest to the Camera's native format. Often YUV 4:2:0 * 8-bit full-range like {@linkcode VideoPixelFormat | 'yuv-420-8-bit-full'}. * - `'rgb'`: Choose an RGB format. Often 8-bit BGRA like * {@linkcode VideoPixelFormat | 'rgb-bgra-8-bit'}. */ export type TargetVideoPixelFormat = 'native' | 'yuv' | 'rgb';