DirectX VA 디바이스 클래스 정의

이 섹션의 예제 코드를 사용하여 deinterlace 컨테이너 디바이스, ProcAmp 제어 디바이스, deinterlace 모드 디바이스(예: bob) 및 COPP 디바이스에 대한 디바이스 클래스를 정의합니다. 이러한 디바이스 클래스에는 ProcAmp Control DDIDeinterlace DDI를 구성하는 멤버 함수에 대한 선언이 포함됩니다. 이러한 디바이스 클래스 정의는 드라이버 제공 헤더 파일에서 선언할 수 있습니다.

다음 예제 코드를 사용하여 각 디바이스 유형과 각 디바이스 유형에 적용되는 기본 클래스를 정의합니다.

// These enumerated types specify the DirectX VA device class.
enum DXVA_DeviceType {
    DXVA_DeviceContainer        = 0x0001,
    DXVA_DeviceDecoder          = 0x0002,
    DXVA_DeviceDeinterlacer     = 0x0003,
     DXVA_DeviceProcAmpControl   = 0x0004,
    DXVA_DeviceCOPP             = 0x0005
};
// Other DirectX VA device classes inherit from this base class, 
struct DXVA_DeviceBaseClass {
    GUID            m_DeviceGUID;
    DXVA_DeviceType m_DeviceType;

    DXVA_DeviceBaseClass(const GUID& guid, DXVA_DeviceType Type) :
        m_DeviceGUID(guid), m_DeviceType(Type)
    {}
};

다음 항목에는 deinterlace 컨테이너 디바이스, ProcAmp 제어 디바이스, deinterlace bob 디바이스 및 COPP 디바이스에 대한 클래스를 정의하는 예제 코드가 포함되어 있습니다.

Deinterlace 컨테이너 디바이스 클래스 정의

ProcAmp 컨트롤 디바이스 클래스 정의

Deinterlace Bob 디바이스 클래스 정의

COPP 디바이스 클래스 정의