DXVAHDDDI_VPDEVCAPS structure (d3dumddi.h)

The DXVAHDDDI_VPDEVCAPS structure describes the video processor capabilities that the decode device supports.

Syntax

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;

Members

[in] Reserved

Reserved. Must be zero.

[out] DeviceCaps

A bitwise OR of the following values from the DXVAHDDDI_DEVICE_CAPS enumeration to indicate device-specific capabilities.

DXVAHDDDI_DEVICE_CAPS_LINEAR_SPACE (0x1)

The driver can blend video content in linear space. Because the video content is traditionally in non-linear space and gamma 2.2 corrected (sRGB), the driver can convert the video content to linear space before performing blending operations to achieve better results.

DXVAHDDDI_DEVICE_CAPS_xvYCC (0x2)

The driver can perform video processing while retaining the extended gamut color when the driver inputs from and outputs to the YCbCr format type.

DXVAHDDDI_DEVICE_CAPS_RGB_RANGE_CONVERSION (0x4)

The driver can perform the range conversion when both input and output are RGB color space but the range is different (for example, the input is full range RGB and the output is limited range RGB). If this value is not set, the driver ignores the RGB range and composes the RGB input stream to the RGB output without changing the range.

DXVAHDDDI_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION (0x8)

The driver can perform the matrix conversion when both input and output are YCbCr color space but the matrix is different (for example, the input is BT.601 and the output is BT.709). If this value is not set, the driver ignores the YCbCr matrix and composes the YCbCr input stream to the YCbCr output without changing the matrix.

DXVAHDDDI_DEVICE_CAPS_NOMINAL_RANGE (0x10)

The video processor can convert between luminance ranges when the input and output use different luminance ranges.

For more information on luminance range, see YUV format ranges in Windows 8.1.

Supported starting with Windows 8.1.

The driver determines that the XR_BIAS, FP16, and FP32 formats (wide gamut formats) are in linear space and so can retain the extended gamut color regardless of whether the preceding capability values are set.

[out] FeatureCaps

A bitwise OR of the following values from the DXVAHDDDI_FEATURE_CAPS enumeration to indicate feature-specific capabilities.

DXVAHDDDI_FEATURE_CAPS_ALPHA_FILL (0x1)

The driver can set the alpha values inside the target rectangle on the output surface as specified for the alpha-fill mode. For more information about this operation, see DXVAHDDDI_BLT_STATE_ALPHA_FILL_DATA.

DXVAHDDDI_FEATURE_CAPS_CONSTRICTION (0x2)

The driver can down-sample the composed target rectangle. For more information about this operation, see DXVAHDDDI_BLT_STATE_CONSTRICTION_DATA.

DXVAHDDDI_FEATURE_CAPS_LUMA_KEY (0x4)

The driver can make pixels within a luma-key range transparent. For more information about this operation, see DXVAHDDDI_STREAM_STATE_LUMA_KEY_DATA.

DXVAHDDDI_FEATURE_CAPS_ALPHA_PALETTE (0x8)

The driver can apply the alpha value of the palette entry. For more information about alpha blending, see DXVAHDDDI_STREAM_STATE_ALPHA_DATA.

DXVAHDDDI_FEATURE_CAPS_ROTATION (0x10)

The driver can apply discrete display rotation values to the display output surface. For more information about this operation, see DXVAHDDDI_STREAM_STATE_ROTATION_DATA.

Supported starting with Windows 8.

[out] FilterCaps

A bitwise OR of the following values from the DXVAHDDDI_FILTER_CAPS enumeration to indicate filter-specific capabilities.

DXVAHDDDI_FILTER_CAPS_BRIGHTNESS (0x1)

The driver supports brightness ProcAmp.

DXVAHDDDI_FILTER_CAPS_CONTRAST (0x2)

The driver supports contrast ProcAmp.

DXVAHDDDI_FILTER_CAPS_HUE (0x4)

The driver supports hue ProcAmp.

DXVAHDDDI_FILTER_CAPS_SATURATION (0x8)

The driver supports saturation ProcAmp.

DXVAHDDDI_FILTER_CAPS_NOISE_REDUCTION (0x10)

The driver supports noise-reduction filter.

DXVAHDDDI_FILTER_CAPS_EDGE_ENHANCEMENT (0x20)

The driver supports edge-enhancement filter.

DXVAHDDDI_FILTER_CAPS_ANAMORPHIC_SCALING (0x40)

The driver can scale from the source rectangle to the destination rectangle linearly or nonlinearly. If the driver has this capability, it can stretch 4:3 standard video content to 16:9 widescreen.

[out] InputFormatCaps

A bitwise OR of the following values from the DXVAHDDDI_INPUT_FORMAT_CAPS enumeration to indicate input-format-specific capabilities.

DXVAHDDDI_INPUT_FORMAT_CAPS_RGB_INTERLACED (0x1)

The driver can deinterlace the input stream with RGB format type.

DXVAHDDDI_INPUT_FORMAT_CAPS_RGB_PROCAMP (0x2)

The driver can apply a ProcAmp filter to the input stream with RGB format type.

DXVAHDDDI_INPUT_FORMAT_CAPS_RGB_LUMA_KEY (0x4)

The driver can luma-key the input stream with RGB format type.

DXVAHDDDI_INPUT_FORMAT_CAPS_PALETTE_INTERLACED (0x8)

The driver can deinterlace the input stream with palettized format type.

The driver can support the preceding capabilities rather than supporting rarely used video processing to the input frames. Because supporting these capabilities requires extra steps in the video processor pipeline, the driver might not support them.

If the driver supports these capabilities, the driver might require a certain color space to perform the processing to the input stream. For example, ProcAmp and the luma keying are performed in YCbCr color space. The driver refers the color space of the stream state to perform the intermediate color conversion.

For example, when the driver sets the RGB_Range and YCbCr_Matrix members of DXVAHDDDI_STREAM_STATE_INPUT_COLOR_SPACE_DATA to 0 and 1 respectively, the driver converts from full range RGB to BT.709 YCbCr before the driver applies ProcAmp, and then converts the input stream back to full range RGB.

[out] InputPool

A D3DDDI_POOL-typed value that indicates the memory pool from which the input surfaces should be allocated.

[out] OutputFormatCount

The number of supported output formats. The driver returns an array of D3DDDIFORMAT enumeration types for the output formats that the decode device supports when the driver's GetCaps function is called with the D3DDDICAPS_DXVAHD_GETVPOUTPUTFORMATS value set.

[out] InputFormatCount

The number of supported input formats. The driver returns an array of D3DDDIFORMAT enumeration types for the input formats that the decode device supports when the driver's GetCaps function is called with the D3DDDICAPS_DXVAHD_GETVPINPUTFORMATS value set.

[out] VideoProcessorCount

The number of supported video processors. The driver returns an array of DXVAHDDDI_VPCAPS structures for the capabilities for each video processor that the decode device supports when the driver's GetCaps function is called with the D3DDDICAPS_DXVAHD_GETVPCAPS value set.

[out] MaxInputStreams

The driver can enable the maximum number of input streams at a time.

[out] MaxStreamStates

The maximum number of stream states.

Remarks

The user-mode display driver returns a pointer to a populated DXVAHDDDI_VPDEVCAPS structure in the pData member of the D3DDDIARG_GETCAPS structure when its GetCaps function is called with the D3DDDICAPS_DXVAHD_GETVPDEVCAPS value set in the Type member of D3DDDIARG_GETCAPS.

Requirements

Requirement Value
Minimum supported client DXVAHDDDI_VPDEVCAPS is supported starting with Windows 7.
Header d3dumddi.h (include D3dumddi.h)

See also

D3DDDIARG_GETCAPS

D3DDDIFORMAT

D3DDDI_POOL

DXVAHDDDI_VPCAPS

GetCaps