Defining the Deinterlace Bob Device Class
Use the following example code to define the deinterlace bob device class:
// Deinterlace bob device class.
struct DXVA_DeinterlaceBobDeviceClass : public DXVA_DeviceBaseClass
{
DXVA_VideoDesc m_VideoDesc;
// Uses the base class's constructor.
DXVA_DeinterlaceBobDeviceClass(const GUID& guid, DXVA_DeviceType Type) :
DXVA_DeviceBaseClass(guid, Type)
{}
// The following functions are part of the
// Deinterlace DDI.
HRESULT DeinterlaceOpenStream(LPDXVA_VideoDesc lpVideoDescription);
HRESULT DeinterlaceCloseStream();
HRESULT DeinterlaceBlt(
REFERENCE_TIME rtTargetFrame,
LPRECT lprcDstRect,
LPDDSURFACE lpDDSDstSurface,
LPRECT lprcSrcRect,
LPDXVA_VideoSample lpDDSrcSurfaces,
DWORD dwNumSurfaces,
FLOAT fAlpha);
HRESULT DeinterlaceBltEx(
REFERENCE_TIME rtTargetFrame,
LPRECT lprcTargetRect,
DXVA_AYUVsample2 BackgroundColor,
DWORD dwDestinationFormat,
DWORD dwDestinationFlags,
LPDDSURFACE lpDDSDstSurface,
LPDXVA_VideoSample2 lpDDSrcSurfaces,
DWORD dwNumSurfaces,
FLOAT fAlpha);
};