共用方式為


IDXVAHD_Device::GetVideoProcessorOutputFormats 方法 (dxvahd.h)

取得 Microsoft DirectX Video Acceleration High Definition (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'。 如需詳細資訊,請參閱Video 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