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
缓冲区中传递给加速器的第一个宏块的宏块地址。 宏块地址按光栅扫描顺序提供。 地址由 DXVA_PictureParameters 结构的成员确定。 下表显示了宏块地址的示例。
宏块 | Address |
---|---|
左上角 | 零个 |
右上角 | 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 的值 |
---|---|
宏块控制命令 | MBskipsFollowing 的所有值的总和,加到宏块控制命令缓冲区中的宏块控制命令数。 |
残差块 | 与对应的宏块控制命令缓冲区的值相同。 |
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 视频加速 (VA) 版本 2.0 使用 Microsoft Direct3D 图面,而不是 DirectX VA 1.0 使用的专用图面,因此用户模式显示驱动程序从给定的压缩缓冲区类型获取索引、宽度、高度和步幅的值,而不是从 BufferIndex、 Width、 Height 和 Stride 成员中的值获取值。 事实上,Microsoft Direct3D 运行时将这些成员设置为零。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 操作系统中可用。 |
标头 | d3dumddi.h (包括 D3dumddi.h) |