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

要件

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

こちらもご覧ください

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo