Retrieving DirectX VA Devices
Use the following example code to retrieve DirectX VA devices. This code is an implementation of the DdMoCompGetGuids callback function. The GetMoCompGuids member of the DD_MOTIONCOMPCALLBACKS structure points to the callback function.
DWORD g_dwDXVANumSupportedGUIDs = 4;
const GUID* g_DXVASupportedGUIDs[4] = {
&DXVA_DeinterlaceContainerDevice,
&DXVA_ProcAmpControlDevice
&DXVA_DeinterlaceBobDevice
&DXVA_COPPDevice
};
DWORD APIENTRY
MOCOMPCB_GETGUIDS(
PDD_GETMOCOMPGUIDSDATA lpData
)
{
DWORD dwNumToCopy;
// If lpGuids == NULL, the driver must return the number of
// supported GUIDS in the dwNumGuids parameter. If non-NULL,
// the supported GUIDS must be copied into the buffer at lpGuids.
if (lpData->lpGuids) {
dwNumToCopy = min(g_dwDXVANumSupportedGUIDs, lpData->dwNumGuids);
for (DWORD i = 0; i < dwNumToCopy; i++) {
lpData->lpGuids[i] = *g_DXVASupportedGUIDs[i];
}
}
else {
dwNumToCopy = g_dwDXVANumSupportedGUIDs;
}
lpData->dwNumGuids = dwNumToCopy;
lpData->ddRVal = DD_OK;
return DDHAL_DRIVER_HANDLED;
}