Defining the Deinterlace Container Device Class
Use the following example code to define the deinterlace container device class:
// Deinterlace container device class.
struct DXVA_DeinterlaceContainerDeviceClass : public DXVA_DeviceBaseClass
{
// Uses the base class's constructor.
DXVA_DeinterlaceContainerDeviceClass(const GUID& guid, DXVA_DeviceType Type) :
DXVA_DeviceBaseClass(guid, Type)
{}
// Part of the Deinterlace DDI.
HRESULT DeinterlaceQueryAvailableModes(
LPDXVA_VideoDesc lpVideoDescription,
LPDWORD lpdwNumModesSupported,
LPGUID pGuidsDeinterlaceModes
);
// Part of the Deinterlace DDI.
HRESULT DeinterlaceQueryModeCaps(
LPGUID pGuidDeinterlaceMode,
LPDXVA_VideoDesc lpVideoDescription,
LPDXVA_DeinterlaceCaps lpDeinterlaceCaps
);
// Part of the ProcAmp Control DDI.
HRESULT ProcAmpControlQueryCaps(
LPDXVA_VideoDesc lpVideoDescription,
LPDXVA_ProcAmpControlCaps lpProcAmpControlCaps
);
// Part of the ProcAmp Control DDI.
HRESULT ProcAmpControlQueryRange(
DWORD VideoProperty,
LPDXVA_VideoDesc lpVideoDescription,
LPDXVA_VideoPropertyRange lpProcAmpControlRange
);
};