DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA 结构 (dxvahd.h)
指定 Microsoft DirectX 视频加速高清 (DXVA-HD) 输入流的颜色空间。
语法
typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
union {
struct {
UINT Type : 1;
UINT RGB_Range : 1;
UINT YCbCr_Matrix : 1;
UINT YCbCr_xvYCC : 1;
UINT Reserved : 28;
};
UINT Value;
};
} DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;
成员
Type
指定输入流是包含视频还是图形。 设备可以根据 类型优化处理。 默认状态值为 0 (视频) 。
值 | 含义 |
---|---|
|
视频。 |
|
图形。 |
RGB_Range
指定 RGB 颜色范围。 默认状态值为 0 (全范围) 。
值 | 含义 |
---|---|
|
全范围 (0-255) 。 |
|
有限范围 (16-235) 。 |
YCbCr_Matrix
指定 YCbCr 传输矩阵。 默认状态值为 0 (BT.601) 。
值 | 含义 |
---|---|
|
ITU-R BT.601。 |
|
ITU-R BT.709。 |
YCbCr_xvYCC
指定输入流是使用传统的 YCbCr 还是扩展的 YCbCr (xvYCC) 。 默认状态值为 0 (传统 YCbCr) 。
值 | 含义 |
---|---|
|
传统 YCbCr。 |
|
扩展的 YCbCr (xvYCC) 。 |
Reserved
Value
注解
RGB_Range成员适用于 RGB 输入,而YCbCr_Matrix和YCbCr_xvYCC成员适用于 YCbCr (YUV) 输入。
在某些情况下,设备可能会对输入流执行中间颜色转换。 如果是,则它使用应用于这两个颜色空间的标志。 例如,假设设备从 RGB 转换为 YCbCr。 如果 RGB_Range 成员为 0,YCbCr_Matrix 成员为 1,则设备将从全范围 RGB 转换为 BT.709 YCbCr。
如果设备支持 xvYCC,它将在 DXVAHD_VPDEVCAPS 结构的 DeviceCaps 成员中返回 DXVAHD_DEVICE_CAPS_xvYCC 功能标志。 否则,设备将忽略 YCbCr_xvYCC 的值,并将所有 YCbCr 输入视为传统 YCbCr。 若要获取设备的功能,请调用 IDXVAHD_Device::GetVideoProcessorDeviceCaps。
示例
HRESULT DXVAHD_SetInputColorSpace(
IDXVAHD_VideoProcessor *pVP,
UINT stream,
BOOL bPlayback, // TRUE = playback, FALSE = video processing
UINT RGB_Range, // 0 = 0-255, 1 = 16-235
UINT YCbCr_Matrix, // 0 = BT.601, 1 = BT.709
UINT YCbCr_xvYCC // 0 = Conventional YCbCr, 1 = xvYCC
)
{
DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA data =
{
bPlayback ? 0 : 1,
RGB_Range ? 1 : 0,
YCbCr_Matrix ? 1 : 0,
YCbCr_xvYCC ? 1 : 0
};
HRESULT hr = pVP->SetVideoProcessStreamState(
stream,
DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE,
sizeof(data),
&data
);
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
标头 | dxvahd.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈