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

從緩衝區開頭開始的相關數據位移,以位元組為單位。 此成員的使用目前限制為零值。

[in] DataSize

緩衝區中相關數據的數量,以位元組為單位。 緩衝區中最後一個字節內容的位置是 DataOffset 的值加上 DataSize 的值減 1。

[in] FirstMBaddress

緩衝區中傳遞至加速器之第一個宏區塊的macroblock位址。 宏區塊位址會以點陣掃描順序提供。 位址是由 DXVA_PictureParameters 結構的成員所決定。 下表顯示macroblock位址的範例。

Macroblock 位址
左上方 零個
右上方 DXVA_PictureParameters的 wPicWidthInMBminus1。
左下 wPicHeightInMBminus1 x (wPicWidthInMBminus1+1) 。 DXVA_PictureParameters的成員。
右下角 (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1) -1。 DXVA_PictureParame的成員

如果數據緩衝區是下列其中一種類型, 則 FirstMBaddress 成員必須是零:圖片譯碼參數、反向量子化矩陣、配量控件、位數據流數據、AYUV、IA44/AI44、DPXD、Highlight 和 DCCMD。

如果數據緩衝區是剩餘差異區塊數據緩衝區, FirstMBaddress 必須具有與對應宏區塊控制命令緩衝區相同的值。

[in] NumMBsInBuffer

緩衝區中數據的宏區塊數目,包括略過的宏區塊。 如果數據緩衝區是下列其中一種類型,此成員必須是零:圖片譯碼參數、反向量子化矩陣、AYUV、IA44/AI44、DPXD、Highlight 或 DCCMD。

NumMBsInBuffer 的值取決於所使用的數據緩衝區類型,如下表所示。

緩衝區類型 NumMBsInBuffer 的值
Macroblock 控制項命令 MBskipsFollowing 的所有值總和,新增至macroblock控件命令緩衝區中的宏區塊控件命令數目。
剩餘差異區塊 與對應宏區塊控件命令緩衝區相同的值。
Slice-control 命令 配量控制緩衝區中 DXVA_SliceInfo 結構的 wNumberMBsInSlice 成員值。
Bitstream 與對應配量控制命令緩衝區相同的值。

[in] Width

保留的。 請勿使用此成員。 如需詳細資訊,請參閱<備註>一節。

[in] Height

保留的。 請勿使用此成員。 如需詳細資訊,請參閱<備註>一節。

[in] Stride

保留的。 請勿使用此成員。 如需詳細資訊,請參閱<備註>一節。

[in] ReservedBits

用於封裝和對齊的保留位。 這個成員必須是零。

[in] pCipherCounter

包含128位受保護視訊路徑 的DXVADDI_PVP_HW_IV 結構指標, (PVP) 值。

備註

DXVADDI_DECODEBUFFERDESC 結構的陣列稱為 緩衝區描述清單。 當一組緩衝區從主機譯碼器傳送到硬體加速器時,會傳送緩衝區描述清單來描述緩衝區。 緩衝區描述清單包含此集合中每個緩衝區的一個DXVADDI_DECODEBUFFERDESC結構。 緩衝區描述清單會從第一個類型之第一個緩衝區的DXVADDI_DECODEBUFFERDESC結構開始,後面接著相同類型的下一個緩衝區的DXVADDI_DECODEBUFFERDESC結構,依此類傳。 然後,緩衝區描述清單會繼續進行下一個類型之第一個緩衝區的DXVADDI_DECODEBUFFERDESC結構,依此類故。 此整個清單包含在 D3DDDIARG_DECODEEXECUTE 結構中。

因為 Microsoft DirectX Video Acceleration (VA) 2.0 版使用 Microsoft Direct3D 表面,而不是 DirectX VA 1.0 所使用的私人表面,所以使用者模式顯示驅動程式會從指定的壓縮緩衝區類型取得索引、寬度、高度和步幅的值,而不是從 BufferIndexWidthHeightStride 成員中的值取得值。 事實上,Microsoft Direct3D 運行時間會將這些成員設定為零。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo