Specifies the color space for video processing.
typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE {
UINT Usage : 1;
UINT RGB_Range : 1;
UINT YCbCr_Matrix : 1;
UINT YCbCr_xvYCC : 1;
UINT Reserved : 28;
} D3D11_VIDEO_PROCESSOR_COLOR_SPACE;
Usage
Specifies whether the output is intended for playback or video processing (such as editing or authoring). The device can optimize the processing based on the type. The default state value is 0 (playback).
RGB_Range
Specifies the RGB color range. The default state value is 0 (full range).
YCbCr_Matrix
Specifies the YCbCr transfer matrix. The default state value is 0 (BT.601).
YCbCr_xvYCC
Specifies whether the output uses conventional YCbCr or extended YCbCr (xvYCC). The default state value is zero (conventional YCbCr).
Reserved
Reserved. Set to zero.
The RGB_Range member applies to RGB output, while the YCbCr_Matrix and YCbCr_xvYCC members apply to YCbCr output. If the driver performs color-space conversion on the background color, it uses the values that apply to both color spaces.
If the driver supports extended YCbCr (xvYCC), it returns the D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC capabilities flag in the ID3D11VideoProcessorEnumerator::GetVideoProcessorCaps method. Otherwise, the driver ignores the value of YCbCr_xvYCC and treats all YCbCr output as conventional YCbCr.
If extended YCbCr is supported, it can be used with either transfer matrix. Extended YCbCr does not change the black point or white point—the black point is still 16 and the white point is still 235. However, extended YCbCr explicitly allows blacker-than-black values in the range 1–15, and whiter-than-white values in the range 236–254. When extended YCbCr is used, the driver should not clip the luma values to the nominal 16–235 range.
Header: Declared in d3d11_x.h (d3d11.h on other Windows platforms).