IDXVAHD_Device::GetVideoProcessorOutputFormats 方法 (dxvahd.h)
获取 Microsoft DirectX 视频加速高清 (DXVA-HD) 设备支持的输出格式列表。
语法
HRESULT GetVideoProcessorOutputFormats(
[in] UINT Count,
[out] D3DFORMAT *pFormats
);
参数
[in] Count
要检索的格式数。 此参数必须等于 DXVAHD_VPDEVCAPS 结构的 OutputFormatCount 成员。 调用 IDXVAHD_Device::GetVideoProcessorDeviceCaps 方法以获取此值。
[out] pFormats
指向 D3DFORMAT 值数组的指针。 Count 参数指定数组中的元素数。 方法使用输出格式列表填充数组。
返回值
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
备注
格式列表可以包括 D3DFORMAT 值(如 D3DFMT_X8R8G8B8)和 FOURCC 代码(如“NV12”)。 有关详细信息,请参阅 视频 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 |