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 使用的专用图面,因此用户模式显示驱动程序从给定的压缩缓冲区类型获取索引、宽度、高度和步幅的值,而不是从 BufferIndexWidthHeightStride 成员中的值获取值。 事实上,Microsoft Direct3D 运行时将这些成员设置为零。

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
标头 d3dumddi.h (包括 D3dumddi.h)

另请参阅

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo