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 構造体のメンバーによって決定されます。 次の表に、マクロ ブロック アドレスの例を示します。
マクロ ブロック の | アドレス |
---|---|
左上 | ゼロ |
右上 | 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 は、対応するマクロ ブロック制御コマンド バッファーと同じ値を持つ必要があります。
[in] NumMBsInBuffer
スキップされたマクロ ブロックを含む、バッファー内のデータのマクロ ブロックの数。 データ バッファーが画像デコード パラメーター、逆量子化マトリックス、AYUV、IA44/AI44、DPXD、Highlight、DCCMD のいずれかの種類の場合、このメンバーは 0 である必要があります。
NumMBsInBuffer の値は、次の表に示すように、使用されているデータ バッファーの種類によって異なります。
バッファーの種類 | NumMBsInBuffer の 値 |
---|---|
Macroblock コントロール コマンド | MBskipsFollowing のすべての値の合計。マクロ ブロック コントロール コマンド バッファー内のマクロ ブロック コントロール コマンドの数に追加されます。 |
残差ブロック | 対応するマクロ ブロック制御コマンド バッファーの場合と同じ値。 |
Slice-control コマンド | スライス コントロール バッファー内の DXVA_SliceInfo 構造体の wNumberMBsInSlice メンバーの値。 |
Bitstream | 対応するスライス制御コマンド バッファーの場合と同じ値。 |
[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の値ではなく、指定された圧縮バッファーの種類からインデックス、幅、高さ、およびストライドの値を取得します。 ストライド メンバーを します。 実際、Microsoft Direct3D ランタイムはこれらのメンバーを 0 に設定します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー | d3dumddi.h (D3dumddi.h を含む) |