DXVADDI_DECODEBUFFERDESC構造体 (d3dumddi.h)
DXVADDI_DECODEBUFFERDESC構造体は、ホスト デコーダーからアクセラレータに現在渡されているバッファーを記述します。
構文
typedef struct _DXVADDI_DECODEBUFFERDESC {
[in] HANDLE hBuffer;
[in] D3DDDIFORMAT CompressedBufferType;
[in] UINT BufferIndex;
[in] UINT DataOffset;
[in] UINT DataSize;
[in] UINT FirstMBaddress;
[in] UINT NumMBsInBuffer;
[in] UINT Width;
[in] UINT Height;
[in] UINT Stride;
[in] UINT ReservedBits;
[in] DXVADDI_PVP_HW_IV *pCipherCounter;
} DXVADDI_DECODEBUFFERDESC;
メンバー
[in] hBuffer
バッファーへのハンドル。
[in] CompressedBufferType
バッファーのピクセル形式を示す D3DDDIFORMAT型指定の値。
[in] BufferIndex
予約済み。 このメンバーは使用しないでください。 詳細については、「解説」を参照してください。
[in] DataOffset
バッファーの先頭からの関連データのオフセット (バイト単位)。 このメンバーの使用は現在、値 0 に制限されています。
[in] DataSize
バッファー内の関連データの量 (バイト単位)。 バッファー内のコンテンツの最後のバイトの位置は、 DataOffset の値と DataSize から 1 を引いた値です。
[in] FirstMBaddress
アクセラレータに渡されるバッファー内の最初のマクロ ブロックのマクロ ブロック アドレス。 マクロブロック アドレスはラスター スキャンの順序で指定されます。 アドレスは、 DXVA_PictureParameters 構造体のメンバーによって決定されます。 次の表は、マクロブロック アドレスの例を示しています。
Macroblock | アドレス |
---|---|
左上 | ゼロ |
右上 | DXVA_PictureParametersの wPicWidthInMBminus1。 |
左下 | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1)。 DXVA_PictureParametersのメンバー。 |
右下 | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1。 DXVA_PictureParameのメンバー |
データ バッファーが次のいずれかの種類である場合、 FirstMBaddress メンバーは 0 である必要があります。画像デコード パラメーター、逆量子化行列、スライス 制御、ビットストリーム データ、AYUV、IA44/AI44、DPXD、Highlight、DCCMD。
データ バッファーが残差ブロック データ バッファーの場合、 FirstMBaddress は対応する macroblock コントロール コマンド バッファーと同じ値を持つ必要があります。
[in] NumMBsInBuffer
スキップされたマクロブロックを含む、バッファー内のデータのマクロブロックの数。 データ バッファーが画像デコード パラメーター、逆量子化行列、AYUV、IA44/AI44、DPXD、Highlight、DCCMD のいずれかの種類の場合、このメンバーは 0 である必要があります。
NumMBsInBuffer の値は、次の表に示すように、使用されているデータ バッファーの種類によって異なります。
バッファーの種類 | NumMBsInBuffer の値 |
---|---|
Macroblock コントロール コマンド | MBskipsFollowing のすべての値の合計を、macroblock コントロール コマンド バッファー内の macroblock コントロール コマンドの数に追加します。 |
残差ブロック | 対応する macroblock コントロール コマンド バッファーの場合と同じ値。 |
Slice-control コマンド | スライス コントロール バッファー内の DXVA_SliceInfo 構造体の wNumberMBsInSlice メンバーの値。 |
Bitstream | 対応する slice-control コマンド バッファーの場合と同じ値。 |
[in] Width
予約済み。 このメンバーは使用しないでください。 詳細については、「解説」を参照してください。
[in] Height
予約済み。 このメンバーは使用しないでください。 詳細については、「解説」を参照してください。
[in] Stride
予約済み。 このメンバーは使用しないでください。 詳細については、「解説」を参照してください。
[in] ReservedBits
パッキングとアラインメントに使用される予約済みビット。 このメンバーは 0 である必要があります。
[in] pCipherCounter
128 ビットの保護されたビデオ パス (PVP) 値を含む DXVADDI_PVP_HW_IV構造体への ポインター。
注釈
DXVADDI_DECODEBUFFERDESC構造体の配列は、 バッファー記述リストと呼ばれます。 一連のバッファーがホスト デコーダーからハードウェア アクセラレータに送信されると、バッファー記述リストが送信され、バッファーが記述されます。 バッファー記述リストには、このセット内のバッファーごとに 1 つのDXVADDI_DECODEBUFFERDESC構造が含まれています。 バッファー記述リストは、最初の型の最初のバッファーのDXVADDI_DECODEBUFFERDESC構造体で始まり、その後に同じ型の次のバッファーのDXVADDI_DECODEBUFFERDESC構造体が続きます。 その後、バッファー記述リストは、次の型の最初のバッファーのDXVADDI_DECODEBUFFERDESC構造体で続行されます。 このリスト全体は、 D3DDDIARG_DECODEEXECUTE 構造体に含まれています。
Microsoft DirectX Video Acceleration (VA) バージョン 2.0 では、DirectX VA 1.0 で使用されるプライベート サーフェスではなく Microsoft Direct3D サーフェスが使用されるため、ユーザー モード ディスプレイ ドライバーは 、BufferIndex、 Width、 Height、Stride メンバーの値ではなく、指定された圧縮バッファーの種類からインデックス、幅、高さ、スト ライド の値を取得します。 実際、Microsoft Direct3D ランタイムは、これらのメンバーをゼロに設定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
Header | d3dumddi.h (D3dumddi.h を含む) |