次の方法で共有


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 オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_DECODEEXECUTE

D3DDDI_DEVICEFUNCS