다음을 통해 공유


IDXVAHD_Device::GetVideoProcessorOutputFormats 메서드(dxvahd.h)

Microsoft DXVA-HD(DirectX Video Acceleration High Definition) 디바이스에서 지원하는 출력 형식의 목록을 가져옵니다.

구문

HRESULT GetVideoProcessorOutputFormats(
  [in]  UINT      Count,
  [out] D3DFORMAT *pFormats
);

매개 변수

[in] Count

검색할 형식의 수입니다. 이 매개 변수는 DXVAHD_VPDEVCAPS 구조체의 OutputFormatCount 멤버와 같아야 합니다. 이 값을 얻으려면 IDXVAHD_Device::GetVideoProcessorDeviceCaps 메서드를 호출합니다.

[out] pFormats

D3DFORMAT 값 배열에 대한 포인터입니다. Count 매개 변수는 배열의 요소 수를 지정합니다. 메서드는 출력 형식 목록으로 배열을 채웁니다.

반환 값

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

형식 목록에는 D3DFMT_X8R8G8B8 같은 D3DFORMAT 값과 'NV12'와 같은 FOURCC 코드가 모두 포함될 수 있습니다. 자세한 내용은 비디오 FOURC를 참조하세요.

예제

// Checks whether a DXVA-HD device supports a specified output format.

HRESULT CheckOutputFormatSupport(
    IDXVAHD_Device          *pDXVAHD,
    const DXVAHD_VPDEVCAPS& caps,
    D3DFORMAT               d3dformat
    )
{
    D3DFORMAT *pFormats = new (std::nothrow) D3DFORMAT[caps.OutputFormatCount];
    if (pFormats == NULL)
    {
        return E_OUTOFMEMORY;
    }

    HRESULT hr = pDXVAHD->GetVideoProcessorOutputFormats(
        caps.OutputFormatCount, 
        pFormats
        );

    if (FAILED(hr)) 
    { 
        goto done; 
    }

    UINT index;
    for (index = 0; index < caps.OutputFormatCount; index++)
    {
        if (pFormats[index] == d3dformat)
        {
            break;
        }
    }
    if (index == caps.OutputFormatCount)
    {
        hr = E_FAIL;
    }

done:
    delete [] pFormats;
    return hr;
}

요구 사항

   
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 dxvahd.h

추가 정보

DXVA-HD

IDXVAHD_Device