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

另请参阅

DXVA-HD

IDXVAHD_Device