PDXVAHDSW_ProposeVideoPrivateFormat コールバック関数 (dxvahd.h)

ソフトウェア プラグイン Microsoft DirectX Video Acceleration High Definition (DXVA-HD) デバイスからプライベート サーフェス形式を取得します。

構文

PDXVAHDSW_ProposeVideoPrivateFormat PdxvahdswProposevideoprivateformat;

HRESULT PdxvahdswProposevideoprivateformat(
  [in]      HANDLE hDevice,
  [in, out] D3DFORMAT *pFormat
)
{...}

パラメーター

[in] hDevice

プラグイン DXVA-HD デバイスへのハンドル。

[in, out] pFormat

D3DFORMAT 値へのポインター。 入力時に、アプリケーションによって要求されるサーフェス形式を指定します。 出力時に、プラグイン デバイスが提案するプライベート サーフェス形式を指定します。

戻り値

このコールバック関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

解説

この関数は、次の条件に該当する場合、アプリケーションが IDXVAHD_Device::CreateVideoSurface を呼び出すときに呼び出されます。

  • 入力サーフェスの種類が DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE
  • Direct3D デバイスは、アプリケーションによってネイティブに要求されたサーフェス形式をサポートしていません。
この関数を使用すると、プラグイン デバイスは同等のメモリ レイアウトを持つ代替形式を提案できます。 たとえば、アプリケーションが AYUV を要求した場合、プラグイン デバイス は D3DFMT_A8R8G8B8 型のサーフェスを割り当てる可能性があります。

関数が成功した場合、 CreateVideoSurface メソッドは pFormat で返される形式のサーフェスの作成を試みます。

次のコードは、プラグイン デバイスが AYUV の代替サーフェス形式として D3DFMT_A8R8G8B8 を提案する方法を示しています。

HRESULT CALLBACK ProposeVideoPrivateFormat(
    HANDLE hDevice,
    D3DFORMAT* pFormat 
    )
{
    switch (*pFormat)
    {
        case D3DFMT_AYUV: 
            *pFormat = D3DFMT_A8R8G8B8; 
            return S_OK;

        default: 
            return E_FAIL;
    }
}

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dxvahd.h

関連項目

DXVA-HD

DXVAHDSW_CALLBACKS

IDXVAHD_Device::CreateVideoSurface

メディア ファンデーション機能