Reporting Support for DeinterlaceBltEx
This section applies only to Windows Server 2003 with SP1 and later, and Windows XP with SP2 and later.
The display driver reports support for the DeinterlaceBltExdeinterlace DDI function by setting the DXVA_VideoProcess_SubStreams, DXVA_VideoProcess_StretchX, and DXVA_VideoProcess_StretchY flags in the VideoProcessingCaps member of the DXVA_DeinterlaceCaps structure. The driver returns a pointer to DXVA_DeinterlaceCaps when its DeinterlaceQueryModeCaps function is called.
The display driver sets DXVA_VideoProcess_SubStreams to combine video substream compositing with deinterlacing. The driver sets DXVA_VideoProcess_StretchX and DXVA_VideoProcess_StretchY because the pixel aspect ratio of the video stream and substreams can be different and nonsquare, and the driver must be able to independently stretch (horizontally and/or vertically) the video frame that is submitted for deinterlacing as well as the supplied video substreams.
The DXVA_VideoProcess_YUV2RGB and DXVA_VideoProcess_AlphaBlend flags in the VideoProcessingCaps member of the DXVA_DeinterlaceCaps structure have no meaning in the context of the driver's DeinterlaceBltEx function. These flags relate to the original DeinterlaceBlt function. Because a display driver that supports DeinterlaceBltEx must also support DeinterlaceBlt, the driver must still report these flags if it supports their associated operations in the context of DeinterlaceBlt.
DXVA_VideoProcess_SubStreamsExtended DXVA_VideoProcess_YUV2RGBExtended and DXVA_VideoProcess_AlphaBlendExtended flags
A display driver that implements the DeinterlaceBltEx function can support significantly enhanced color information for each source and destination surface. The driver can report such support by setting the DXVA_VideoProcess_SubStreamsExtended, DXVA_VideoProcess_YUV2RGBExtended, and DXVA_VideoProcess_AlphaBlendExtended flags in the VideoProcessingCaps member of the DXVA_DeinterlaceCaps structure.
Support for the DXVA_VideoProcess_SubStreamsExtended flag indicates that the display driver can perform the necessary color adjustments to the source video streams and substreams. These adjustments are indicated in the extended color data, as the video is deinterlaced, composited with the substreams, and written to the destination surface. Extended color data is specified by members of the DXVA_ExtendedFormat structure in the SampleFormat members of the DXVA_VideoSample2 structures for the source sample array (lpDDSrcSurfaces parameter in the DeinterlaceBltEx call or Source member of the DXVA_DeinterlaceBltEx structure).
Support for the DXVA_VideoProcess_YUV2RGBExtended flag indicates that the display driver can perform a color-space-conversion operation as the deinterlaced and composited pixels are written to the destination surface. If an RGB destination surface is passed to the display driver, the VMR ensures that each color channel contains a minimum of 8 bits. An RGB destination surface could be an offscreen, texture, or Direct3D render target, or a combined texture and Direct3D render target surface type. The VMR still specifies the background color parameter in the YUV color space even though an RGB destination surface is used.
Support for the DXVA_VideoProcess_AlphaBlendExtended flag indicates that the display driver can perform an alpha-blend operation with the destination surface when the deinterlaced and composited pixels are written to the destination surface. The driver must handle background color based on the alpha value of the fAlpha parameter in the DeinterlaceBltEx call. When the alpha value is 1.0f, the background color is drawn opaque (without transparency). When the alpha value is 0.0f, the background should not be drawn (transparent).