次の方法で共有


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 エラー コードを返します。

解説

形式の一覧には、D3DFMT_X8R8G8B8などの D3DFORMAT 値と、'NV12' などの FOURCC コードの両方を含めることができます。 詳細については、「 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