次の方法で共有


PFND3DDDI_DECODEEXECUTE コールバック関数 (d3dumddi.h)

DecodeExecute 関数は、指定された Microsoft DirectX ビデオ アクセラレータ (VA) デコード デバイスを使用してデコード操作を実行します。

構文

PFND3DDDI_DECODEEXECUTE Pfnd3dddiDecodeexecute;

HRESULT Pfnd3dddiDecodeexecute(
  HANDLE hDevice,
  const D3DDDIARG_DECODEEXECUTE *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

pData [in]

実行する DirectX VA デコード操作を記述する D3DDDIARG_DECODEEXECUTE 構造体へのポインター。

戻り値

DecodeExecute は、次のいずれかの値を返します。

リターン コード 形容
S_OK DirectX VA デコード操作が正常に実行されました。
E_OUTOFMEMORY DecodeExecute が完了するために必要なメモリを割り当てませんでした。

備考

Microsoft Direct3D ランタイムは、標準の DirectX VA デコード操作すべてに対して DecodeExecute 関数を呼び出します。 各フレーム DecodeExecute が最初に呼び出されると、pData で指定される D3DDDIARG_DECODEEXECUTE 構造体には、フレームのデコードに必要なすべてのバッファー情報が含まれている必要があります。 DecodeExecute は、その後、同じフレームに対して呼び出すことができます。ただし、これらの呼び出しには増分データのみが必要です。 特定の DirectX VA デコードの種類の GUID が、D3DDDIARG_DECODEEXECUTEで指定されたバッファーを使用しない場合、バッファーのハンドルと説明は null に設定されます。 たとえば、MPEG2 デコードの種類には画像パラメーター、マクロ ブロック バッファー、および残差バッファーが必要であるため、これらの項目はすべて各フレームの最初の呼び出しに存在する必要があります。 ただし、データのサイズによっては、Direct3D ランタイムが DecodeExecute を再度呼び出して、フレーム全体をデコードするために必要な追加の残差データのみを提供する場合があります。

DirectX VA 1.0 では、DdMoCompQueryStatus 関数の呼び出しによって外部同期メカニズムがサポートされました。 DirectX VA 2.0 では、ユーザー モード ディスプレイ ドライバーは、3-D パイプを同期する方法と同様に、独自の同期を実行する必要があります。 この同期の詳細については、「ビデオ デコード操作の同期」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDIARG_DECODEEXECUTE

D3DDDI_DEVICEFUNCS