次の方法で共有


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 サーフェスが使用されるため、ユーザー モード ディスプレイ ドライバーは、BufferIndexWidthHeightの値ではなく、指定された圧縮バッファーの種類からインデックス、幅、高さ、およびストライドの値を取得します。 ストライド メンバーを します。 実際、Microsoft Direct3D ランタイムはこれらのメンバーを 0 に設定します。

必要条件

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

関連項目

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo