DXVAHDDDI_VPDEVCAPS 结构 (d3dumddi.h)
DXVAHDDDI_VPDEVCAPS结构描述解码设备支持的视频处理器功能。
语法
typedef struct _DXVAHDDDI_VPDEVCAPS {
[in] UINT Reserved;
[out] UINT DeviceCaps;
[out] UINT FeatureCaps;
[out] UINT FilterCaps;
[out] UINT InputFormatCaps;
[out] D3DDDI_POOL InputPool;
[out] UINT OutputFormatCount;
[out] UINT InputFormatCount;
[out] UINT VideoProcessorCount;
[out] UINT MaxInputStreams;
[out] UINT MaxStreamStates;
} DXVAHDDDI_VPDEVCAPS;
成员
[in] Reserved
保留。 必须为零。
[out] DeviceCaps
DXVAHDDDI_DEVICE_CAPS枚举中的以下值的按位 OR,用于指示特定于设备的功能。
DXVAHDDDI_DEVICE_CAPS_LINEAR_SPACE (0x1)
驱动程序可以在线性空间中混合视频内容。 由于视频内容传统上位于非线性空间中,并且 gamma 2.2 已更正 (sRGB) ,因此驱动程序可以在执行混合操作之前将视频内容转换为线性空间,以获得更好的结果。
DXVAHDDDI_DEVICE_CAPS_xvYCC (0x2)
当驱动程序从 YCbCr 格式类型输入和输出时,驱动程序可以执行视频处理,同时保留扩展的色域颜色。
DXVAHDDDI_DEVICE_CAPS_RGB_RANGE_CONVERSION (0x4)
当输入和输出均为 RGB 颜色空间,但范围不同时,驱动程序可以执行范围转换 (例如,输入为全范围 RGB,输出为有限范围的 RGB) 。 如果未设置此值,驱动程序将忽略 RGB 范围,并将 RGB 输入流组成到 RGB 输出,而不更改范围。
DXVAHDDDI_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION (0x8)
当输入和输出均为 YCbCr 颜色空间,但矩阵 (不同时,驱动程序可以执行矩阵转换,例如,输入为 BT.601,输出为 BT.709) 。 如果未设置此值,驱动程序将忽略 YCbCr 矩阵,并将 YCbCr 输入流组成到 YCbCr 输出,而无需更改矩阵。
DXVAHDDDI_DEVICE_CAPS_NOMINAL_RANGE (0x10)
当输入和输出使用不同的亮度范围时,视频处理器可以在亮度范围之间进行转换。
有关亮度范围的详细信息,请参阅 Windows 8.1 中的 YUV 格式范围。
从 Windows 8.1 开始支持。
驱动程序确定XR_BIAS、FP16 和 FP32 格式 (宽色域格式) 都在线性空间中,因此无论是否设置了上述功能值,都可以保留扩展的色域颜色。
[out] FeatureCaps
DXVAHDDDI_FEATURE_CAPS枚举中的以下值的按位 OR,用于指示特定于功能的功能。
DXVAHDDDI_FEATURE_CAPS_ALPHA_FILL (0x1)
驱动程序可以在输出图面上的目标矩形内设置 alpha 值,如为 alpha 填充模式指定的那样。 有关此操作的详细信息,请参阅 DXVAHDDDI_BLT_STATE_ALPHA_FILL_DATA。
DXVAHDDDI_FEATURE_CAPS_CONSTRICTION (0x2)
驱动程序可以向下采样组合的目标矩形。 有关此操作的详细信息,请参阅 DXVAHDDDI_BLT_STATE_CONSTRICTION_DATA。
DXVAHDDDI_FEATURE_CAPS_LUMA_KEY (0x4)
驱动程序可将 luma 键范围内的像素设为透明。 有关此操作的详细信息,请参阅 DXVAHDDDI_STREAM_STATE_LUMA_KEY_DATA。
DXVAHDDDI_FEATURE_CAPS_ALPHA_PALETTE (0x8)
驱动程序可以应用调色板项的 alpha 值。 有关 alpha 混合的详细信息,请参阅 DXVAHDDDI_STREAM_STATE_ALPHA_DATA。
DXVAHDDDI_FEATURE_CAPS_ROTATION (0x10)
驱动程序可以将离散的显示旋转值应用于显示输出图面。 有关此操作的详细信息,请参阅 DXVAHDDDI_STREAM_STATE_ROTATION_DATA。
从 Windows 8 开始支持。
[out] FilterCaps
DXVAHDDDI_FILTER_CAPS枚举中以下值的按位 OR,以指示特定于筛选器的功能。
DXVAHDDDI_FILTER_CAPS_BRIGHTNESS (0x1)
驱动程序支持亮度 ProcAmp。
DXVAHDDDI_FILTER_CAPS_CONTRAST (0x2)
驱动程序支持对比度 ProcAmp。
DXVAHDDDI_FILTER_CAPS_HUE (0x4)
驱动程序支持 hue ProcAmp。
DXVAHDDDI_FILTER_CAPS_SATURATION (0x8)
驱动程序支持饱和 ProcAmp。
DXVAHDDDI_FILTER_CAPS_NOISE_REDUCTION (0x10)
驱动程序支持降噪筛选器。
DXVAHDDDI_FILTER_CAPS_EDGE_ENHANCEMENT (0x20)
驱动程序支持边缘增强筛选器。
DXVAHDDDI_FILTER_CAPS_ANAMORPHIC_SCALING (0x40)
驱动程序可以线性或非线性地从源矩形缩放到目标矩形。 如果驱动程序具有此功能,它可以将 4:3 标准视频内容拉伸到 16:9 宽屏。
[out] InputFormatCaps
DXVAHDDDI_INPUT_FORMAT_CAPS枚举中以下值的按位 OR,以指示特定于输入格式的功能。
DXVAHDDDI_INPUT_FORMAT_CAPS_RGB_INTERLACED (0x1)
驱动程序可以使用 RGB 格式类型取消交错输入流。
DXVAHDDDI_INPUT_FORMAT_CAPS_RGB_PROCAMP (0x2)
驱动程序可以将 ProcAmp 筛选器应用于 RGB 格式类型的输入流。
DXVAHDDDI_INPUT_FORMAT_CAPS_RGB_LUMA_KEY (0x4)
驱动程序可以使用 RGB 格式类型对输入流进行 luma 键。
DXVAHDDDI_INPUT_FORMAT_CAPS_PALETTE_INTERLACED (0x8)
驱动程序可以使用 palettized 格式类型取消对输入流的隔行。
驱动程序可以支持上述功能,而不是支持对输入帧进行很少使用的视频处理。 由于支持这些功能需要在视频处理器管道中执行额外的步骤,因此驱动程序可能不支持这些功能。
如果驱动程序支持这些功能,则驱动程序可能需要特定的颜色空间才能对输入流执行处理。 例如,ProcAmp 和 luma 键控制在 YCbCr 颜色空间中执行。 驱动程序引用流状态的颜色空间来执行中间颜色转换。
例如,当驱动程序将 DXVAHDDDI_STREAM_STATE_INPUT_COLOR_SPACE_DATA 的RGB_Range 和 YCbCr_Matrix 成员 分别设置为 0 和 1 时,驱动程序将在驱动程序应用 ProcAmp 之前从全范围 RGB 转换为 BT.709 YCbCr,然后将输入流转换回全范围 RGB。
[out] InputPool
一个D3DDDI_POOL类型的值,指示应从中分配输入图面的内存池。
[out] OutputFormatCount
支持的输出格式数。 当调用驱动程序的 GetCaps 函数并设置D3DDDICAPS_DXVAHD_GETVPOUTPUTFORMATS值时,驱动程序返回解码设备支持的输出格式的D3DDDIFORMAT枚举类型的数组。
[out] InputFormatCount
支持的输入格式数。 当调用驱动程序的 GetCaps 函数并设置D3DDDICAPS_DXVAHD_GETVPINPUTFORMATS值时,驱动程序返回D3DDDIFORMAT枚举类型的数组,该数组用于解码设备支持的输入格式。
[out] VideoProcessorCount
支持的视频处理器数。 当调用驱动程序的 GetCaps 函数并设置D3DDDICAPS_DXVAHD_GETVPCAPS值时,驱动程序返回解码设备支持的每个视频处理器功能的DXVAHDDDI_VPCAPS结构数组。
[out] MaxInputStreams
驱动程序一次可以启用最大数量的输入流。
[out] MaxStreamStates
最大流状态数。
注解
当用户模式显示驱动程序返回指向D3DDDIARG_GETCAPS结构的 pData 成员中填充的DXVAHDDDI_VPDEVCAPS结构的指针时,使用在 D3DDDIARG_GETCAPS 的 Type 成员中设置D3DDDICAPS_DXVAHD_GETVPDEVCAPS值调用其 GetCaps 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 7 开始支持DXVAHDDDI_VPDEVCAPS。 |
标头 | d3dumddi.h (包括 D3dumddi.h) |