DXVADDI_DECODEBUFFERDESC
TOC
Collapse the table of content
Expand the table of content

DXVADDI_DECODEBUFFERDESC structure

The DXVADDI_DECODEBUFFERDESC structure describes a buffer that is currently passed from the host decoder to the accelerator.

Syntax


typedef struct _DXVADDI_DECODEBUFFERDESC {
  HANDLE            hBuffer;
  D3DDDIFORMAT      CompressedBufferType;
  UINT              BufferIndex;
  UINT              DataOffset;
  UINT              DataSize;
  UINT              FirstMBaddress;
  UINT              NumMBsInBuffer;
  UINT              Width;
  UINT              Height;
  UINT              Stride;
  UINT              ReservedBits;
  DXVADDI_PVP_HW_IV *pCipherCounter;
} DXVADDI_DECODEBUFFERDESC;

Members

hBuffer

[in] A handle to the buffer.

CompressedBufferType

[in] A D3DDDIFORMAT-typed value that indicates the pixel format of the buffer.

BufferIndex

[in] Reserved. Do not use this member. For more information, see the Remarks section.

DataOffset

[in] The offset of the relevant data from the beginning of the buffer, in bytes. The use of this member is currently restricted to the value zero.

DataSize

[in] The amount of relevant data in the buffer, in bytes. The location of the last byte of content in the buffer is the value of DataOffset plus the value of DataSize minus 1.

FirstMBaddress

[in] The macroblock address of the first macroblock in the buffer that is passed to the accelerator. The macroblock address is given in raster scan order. The address is determined by the members of the DXVA_PictureParameters structure. The following table shows examples of macroblock addresses.

MacroblockAddress

Top-left

Zero

Top-right

wPicWidthInMBminus1 of DXVA_PictureParameters.

Bottom-left

wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Members of DXVA_PictureParameters.

Bottom-right

(wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Members of DXVA_PictureParameters.

 

The FirstMBaddress member must be zero if the data buffer is one of the following types: picture decoding parameters, inverse-quantization matrix, slice control, bitstream data, AYUV, IA44/AI44, DPXD, Highlight, and DCCMD.

If the data buffer is a residual difference block data buffer, FirstMBaddress must have the same value as for the corresponding macroblock control command buffer.

NumMBsInBuffer

[in] The number of macroblocks of data in the buffer, including skipped macroblocks. This member must be zero if the data buffer is one of the following types: picture decoding parameters, inverse-quantization matrix, AYUV, IA44/AI44, DPXD, Highlight, or DCCMD.

The value for NumMBsInBuffer depends on the type of data buffer that is being used, as shown in the following table.

Buffer typeValue of NumMBsInBuffer

Macroblock control command

The sum of all of the values for MBskipsFollowing, added to the number of macroblock control commands in the macroblock control command buffer.

Residual difference block

The same value as for the corresponding macroblock control command buffer.

Slice-control command

The value of the wNumberMBsInSlice member of the DXVA_SliceInfo structure in the slice-control buffer.

Bitstream

The same value as for the corresponding slice-control command buffer.

 

Width

[in] Reserved. Do not use this member. For more information, see the Remarks section.

Height

[in] Reserved. Do not use this member. For more information, see the Remarks section.

Stride

[in] Reserved. Do not use this member. For more information, see the Remarks section.

ReservedBits

[in] Reserved bits that are used for packing and alignment. This member must be zero.

pCipherCounter

[in] A pointer to a DXVADDI_PVP_HW_IV structure that contains a 128-bit protected video path (PVP) value.

Remarks

An array of DXVADDI_DECODEBUFFERDESC structures is referred to as a buffer description list. When a set of buffers is sent from the host decoder to the hardware accelerator, a buffer description list is sent to describe the buffers. The buffer description list contains one DXVADDI_DECODEBUFFERDESC structure for each buffer in this set. The buffer description list starts with a DXVADDI_DECODEBUFFERDESC structure for the first buffer of the first type, followed by a DXVADDI_DECODEBUFFERDESC structure for the next buffer of the same type, and so on. The buffer description list then continues with a DXVADDI_DECODEBUFFERDESC structure for the first buffer of the next type, and so on. This entire list is contained in a D3DDDIARG_DECODEEXECUTE structure.

Because Microsoft DirectX Video Acceleration (VA) version 2.0 uses Microsoft Direct3D surfaces rather than the private surfaces that DirectX VA 1.0 uses, the user-mode display driver obtains values for the index, width, height, and stride from the given compressed buffer type rather than from the values in the BufferIndex, Width, Height, and Stride members. In fact, the Microsoft Direct3D runtime sets these members to zero.

Requirements

Version

Available in Windows Vista and later versions of the Windows operating systems.

Header

D3dumddi.h (include D3dumddi.h)

See also

D3DDDIARG_DECODEEXECUTE
DXVA_PictureParameters
DXVA_SliceInfo
DXVADDI_PVP_HW_IV

 

 

Send comments about this topic to Microsoft

Show:
© 2016 Microsoft