Mapping the Deinterlace DDI to DirectDraw and DirectX VA

Deinterlacing functionality must be accessed through DirectDraw's motion compensation callback functions to which the deinterlace DDI can be mapped.

The deinterlace DDI is divided into two functional groups: the DirectX VA container methods and the DirectX VA device methods. The container methods determine the capabilities of each DirectX VA device that is contained by the display hardware. The device methods direct the device to perform operations specific to the device. A DirectX VA driver can have only one container, but it can support multiple devices.

It is possible to map the deinterlace DDI to the motion compensation callbacks because they do not use typed parameters (that is, their single parameter is a pointer to a structure). In other words, the information in the single parameter that is passed to a motion compensation callback function can be processed according to its information type. For example, if DXVA_DeinterlaceBltFnCode-type information is passed to the DdMoCompRender function, DdMoCompRender can call the DeinterlaceBlt function of the deinterlace DDI to perform a bit-block deinterlace of video stream objects. However, if DXVA_DeinterlaceQueryModeCapsFnCode-type information is passed to DdMoCompRender instead, DdMoCompRender can call the DeinterlaceQueryModeCaps function of the deinterlace DDI to query for the capabilities of a deinterlacing mode.

The following topics describe how the deinterlace DDI is mapped to the motion compensation callbacks:

Deinterlace Container Device for Deinterlacing

Calling the Deinterlace DDI from a User-Mode Component