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 的值 加上 DataS ize 的值減 1。
[in] FirstMBaddress
傳遞至加速器之緩衝區中第一個巨集區塊的macroblock位址。 巨集區塊位址是以點陣掃描順序提供。 位址是由 DXVA_PictureParameters 結構的成員所決定。 下表顯示macroblock位址的範例。
Macroblock | 位址 |
---|---|
左上方 | 零 |
右上方 | wPicWidthInMBminus1 of DXVA_PictureParameters。 |
左下角 | 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 |
---|---|
巨集區塊控件命令 | MBskipsFollowing 的所有值總和,會新增至macroblock控制項命令緩衝區中的巨集區塊控件命令數目。 |
剩餘差異區塊 | 與對應巨集區塊控件命令緩衝區相同的值。 |
Slice-control 命令 | 配量控制緩衝區中 DXVA_SliceInfo 結構之 wNumberMBsInSlice 成員的值。 |
Bitstream | 與對應配量控制命令緩衝區相同的值。 |
[in] Width
保留。 請勿使用此成員。 如需詳細資訊,請參閱一節。
[in] Height
保留。 請勿使用此成員。 如需詳細資訊,請參閱一節。
[in] Stride
保留。 請勿使用此成員。 如需詳細資訊,請參閱一節。
[in] ReservedBits
用於封裝和對齊的保留位。 這個成員必須是零。
[in] pCipherCounter
包含128位受保護視訊路徑 (PVP) 值的 DXVADDI_PVP_HW_IV 結構的指標。
言論
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 (包括 D3dumddi.h) |