지원되는 DXVA-HD 형식 확인
지원되는 입력 형식 확인
Microsoft DXVA-HD(DirectX Video Acceleration High Definition) 디바이스에서 지원하는 입력 형식 목록을 얻으려면 다음을 수행합니다.
- IDXVAHD_Device::GetVideoProcessorDeviceCaps를 호출하여 디바이스 기능을 가져옵니다.
- DXVAHD_VPDEVCAPS 구조체의 InputFormatCount 멤버를 확인합니다. 이 멤버는 지원되는 입력 형식의 수를 제공합니다.
- InputFormatCount 크기의 D3DFORMAT 값 배열을 할당합니다.
- 이 배열을 IDXVAHD_Device::GetVideoProcessorInputFormats 메서드에 전달합니다 . 메서드는 배열을 입력 형식 목록으로 채웁니다.
다음은 이러한 단계를 보여 주는 코드입니다.
// Checks whether a DXVA-HD device supports a specified input format.
HRESULT CheckInputFormatSupport(
IDXVAHD_Device *pDXVAHD,
const DXVAHD_VPDEVCAPS& caps,
D3DFORMAT d3dformat
)
{
D3DFORMAT *pFormats = new (std::nothrow) D3DFORMAT[ caps.InputFormatCount ];
if (pFormats == NULL)
{
return E_OUTOFMEMORY;
}
HRESULT hr = pDXVAHD->GetVideoProcessorInputFormats(
caps.InputFormatCount,
pFormats
);
if (FAILED(hr))
{
goto done;
}
UINT index;
for (index = 0; index < caps.InputFormatCount; index++)
{
if (pFormats[index] == d3dformat)
{
break;
}
}
if (index == caps.InputFormatCount)
{
hr = E_FAIL;
}
done:
delete [] pFormats;
return hr;
}
지원되는 출력 형식 확인
DXVA-HD 디바이스에서 지원하는 출력 형식 목록을 얻으려면 다음을 수행합니다.
- IDXVAHD_Device::GetVideoProcessorDeviceCaps를 호출하여 디바이스 기능을 가져옵니다.
- DXVAHD_VPDEVCAPS 구조체의 OutputFormatCount 멤버를 확인합니다. 이 멤버는 지원되는 입력 형식의 수를 제공합니다.
- OutputFormatCount 크기의 D3DFORMAT 값 배열을 할당합니다.
- 이 배열을 IDXVAHD_Device::GetVideoProcessorOutputFormats 메서드에 전달합니다 . 메서드는 출력 형식 목록으로 배열을 채웁니다.
다음은 이러한 단계를 보여 주는 코드입니다.
// 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;
}
관련 항목