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 所使用的私人表面,所以使用者模式顯示驅動程式會從指定的壓縮緩衝區類型取得索引、寬度、高度和步幅的值,而不是從 BufferIndex、 Width、 Height 和 Stride 成員中的值取得值。 事實上,Microsoft Direct3D 運行時間會將這些成員設定為零。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
標頭 | d3dumddi.h (include D3dumddi.h) |