react-native-vision-camera
Version:
VisionCamera is the fastest and most powerful Camera for react-native.
61 lines (60 loc) • 2.04 kB
TypeScript
export type ColorSpace = 'srgb' | 'dolby-vision' | 'p3-d65' | 'hlg-bt2020' | 'apple-log' | 'apple-log-2' | 'unknown';
/**
* Represents the bit-depth of a {@linkcode DynamicRange}.
*
* - `'sdr-8-bit'`: Uses 8 bits per channel, often called "SDR"
* - `'hdr-10-bit'`: Uses 10 bits per channel, often called "HDR"
*/
export type DynamicRangeBitDepth = 'sdr-8-bit' | 'hdr-10-bit' | 'unknown';
/**
* Represents the range of YUV color components.
*
* - `'video'`: Limited Color Range, Y ranges from 16–235 and UV ranges from 16–240
* - `'full'`: Full Color Range, both Y and UV range from 0-255.
*/
export type ColorRange = 'video' | 'full' | 'unknown';
/**
* Represents a Dynamic Range, often used for recording
* HDR videos using a {@linkcode CameraVideoOutput}.
*
* @discussion
* To get all available {@linkcode DynamicRange}s on a
* device, use {@linkcode CameraDevice.supportedVideoDynamicRanges}.
*
* @discussion
* To use a specific {@linkcode DynamicRange} in a
* Camera session, use a {@linkcode VideoDynamicRangeConstraint}.
*/
export interface DynamicRange {
/**
* The bit-depth for the dynamic range.
* Often 8-bit or 10-bit.
*/
bitDepth: DynamicRangeBitDepth;
/**
* The color-space for the dynamic range.
*
* SDR is often composed of `srgb` and `p3-d65`,
* and HDR is often composed of `hlg-bt2020`.
*/
colorSpace: ColorSpace;
/**
* The range of YUV color components.
*/
colorRange: ColorRange;
}
export type TargetColorSpace = Exclude<ColorSpace, 'unknown'>;
export type TargetDynamicRangeBitDepth = Exclude<DynamicRangeBitDepth, 'unknown'>;
export type TargetColorRange = Exclude<ColorRange, 'unknown'>;
/**
* Represents a target {@linkcode DynamicRange}, for
* example to be used with the Constraints API.
*
* @see {@linkcode Constraint}
* @see {@linkcode CommonDynamicRanges}
*/
export interface TargetDynamicRange {
bitDepth: TargetDynamicRangeBitDepth;
colorSpace: TargetColorSpace;
colorRange: TargetColorRange;
}