Share via


PDXVAHDSW_ProposeVideoPrivateFormat 콜백 함수(dxvahd.h)

소프트웨어 플러그 인 Microsoft DirectX 비디오 가속 고화질(DXVA-HD) 디바이스에서 프라이빗 표면 형식을 가져옵니다.

구문

PDXVAHDSW_ProposeVideoPrivateFormat PdxvahdswProposevideoprivateformat;

HRESULT PdxvahdswProposevideoprivateformat(
  [in]      HANDLE hDevice,
  [in, out] D3DFORMAT *pFormat
)
{...}

매개 변수

[in] hDevice

플러그 인 DXVA-HD 디바이스에 대한 핸들입니다.

[in, out] pFormat

D3DFORMAT 값에 대한 포인터입니다. 입력에서 는 애플리케이션에서 요청하는 표면 형식을 지정합니다. 출력 시 플러그 인 디바이스에서 제안하는 개인 표면 형식을 지정합니다.

반환 값

이 콜백 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 함수는 다음 조건이 충족되는 경우 애플리케이션이 IDXVAHD_Device::CreateVideoSurface 를 호출할 때 호출됩니다.

  • 입력 표면의 유형이 DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE.
  • Direct3D 디바이스는 애플리케이션에서 기본적으로 요청한 표면 형식을 지원하지 않습니다.
이 함수를 사용하면 플러그 인 디바이스가 동일한 메모리 레이아웃의 대체 형식을 제안할 수 있습니다. 예를 들어 애플리케이션이 AYUV를 요청하는 경우 플러그 인 디바이스는 D3DFMT_A8R8G8B8 형식의 표면을 할당할 수 있습니다.

함수가 성공하면 CreateVideoSurface 메서드는 pFormat에서 반환된 형식으로 표면을 만들려고 시도합니다.

예제

다음 코드는 플러그 인 디바이스가 AYUV의 대체 표면 형식으로 D3DFMT_A8R8G8B8 제안하는 방법을 보여 줍니다.

HRESULT CALLBACK ProposeVideoPrivateFormat(
    HANDLE hDevice,
    D3DFORMAT* pFormat 
    )
{
    switch (*pFormat)
    {
        case D3DFMT_AYUV: 
            *pFormat = D3DFMT_A8R8G8B8; 
            return S_OK;

        default: 
            return E_FAIL;
    }
}

요구 사항

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

추가 정보

DXVA-HD

DXVAHDSW_CALLBACKS

IDXVAHD_Device::CreateVideoSurface

미디어 파운데이션 함수