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 を含む) |