Partager via


structure DXVADDI_DECODEBUFFERDESC (d3dumddi.h)

La structure DXVADDI_DECODEBUFFERDESC décrit une mémoire tampon qui est actuellement passée du décodeur hôte à l’accélérateur.

Syntaxe

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;

Membres

[in] hBuffer

Handle vers la mémoire tampon.

[in] CompressedBufferType

Valeur D3DDDIFORMAT-typée qui indique le format de pixels de la mémoire tampon.

[in] BufferIndex

Réservé. N’utilisez pas ce membre. Pour plus d’informations, consultez la section Remarques.

[in] DataOffset

Décalage des données pertinentes à partir du début de la mémoire tampon, en octets. L’utilisation de ce membre est actuellement limitée à la valeur zéro.

[in] DataSize

Quantité de données pertinentes dans la mémoire tampon, en octets. L’emplacement du dernier octet du contenu dans la mémoire tampon est la valeur de DataOffset plus la valeur de DataSize moins 1.

[in] FirstMBaddress

Adresse de macroblock du premier macroblock dans la mémoire tampon transmise à l’accélérateur. L’adresse macroblock est donnée dans l’ordre d’analyse raster. L’adresse est déterminée par les membres de la structure DXVA_PictureParameters. Le tableau suivant présente des exemples d’adresses macroblock.

macroblock d’adresse
En haut à gauche Zéro
En haut à droite wPicWidthInMBminus1 de DXVA_PictureParameters.
En bas à gauche wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Membres de DXVA_PictureParameters.
En bas à droite (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Membres de DXVA_PictureParame

Le membre FirstMBaddress doit être égal à zéro si la mémoire tampon de données est l’un des types suivants : paramètres de décodage d’image, matrice de quantisation inverse, contrôle de segment, données de flux de bits, AYUV, IA44/AI44, DPXD, Mise en surbrillance et DCCMD.

Si la mémoire tampon de données est une mémoire tampon de données de bloc de différence résiduelle, FirstMBaddress doit avoir la même valeur que pour la mémoire tampon de commande de contrôle macroblock correspondante.

[in] NumMBsInBuffer

Nombre de macroblocks de données dans la mémoire tampon, y compris les macroblocks ignorés. Ce membre doit être égal à zéro si la mémoire tampon de données est l’un des types suivants : paramètres de décodage d’image, matrice de quantisation inverse, AYUV, IA44/AI44, DPXD, Mise en surbrillance ou DCCMD.

La valeur de NumMBsInBuffer dépend du type de mémoire tampon de données utilisée, comme indiqué dans le tableau suivant.

type de mémoire tampon valeur de numMBsInBuffer
Commande de contrôle Macroblock Somme de toutes les valeurs de MBskipsFollowing, ajoutée au nombre de commandes de contrôle macroblock dans la mémoire tampon de la commande de contrôle macroblock.
Bloc de différence résiduelle Même valeur que pour la mémoire tampon de commande de contrôle macroblock correspondante.
Commande slice-control Valeur du membre wNumberMBsInSlice de la structure DXVA_SliceInfo dans la mémoire tampon de contrôle de segment.
Flux de bits Même valeur que pour la mémoire tampon de commande de contrôle de segment correspondante.

[in] Width

Réservé. N’utilisez pas ce membre. Pour plus d’informations, consultez la section Remarques.

[in] Height

Réservé. N’utilisez pas ce membre. Pour plus d’informations, consultez la section Remarques.

[in] Stride

Réservé. N’utilisez pas ce membre. Pour plus d’informations, consultez la section Remarques.

[in] ReservedBits

Bits réservés utilisés pour l’emballage et l’alignement. Ce membre doit être égal à zéro.

[in] pCipherCounter

Pointeur vers une structure DXVADDI_PVP_HW_IV qui contient une valeur de chemin vidéo protégé 128 bits (SHORT).

Remarques

Un tableau de structures DXVADDI_DECODEBUFFERDESC est appelé liste de description de mémoire tampon . Lorsqu’un ensemble de mémoires tampons est envoyé du décodeur hôte à l’accélérateur matériel, une liste de description de la mémoire tampon est envoyée pour décrire les mémoires tampons. La liste de description de la mémoire tampon contient une structure DXVADDI_DECODEBUFFERDESC pour chaque mémoire tampon de cet ensemble. La liste de description de la mémoire tampon commence par une structure DXVADDI_DECODEBUFFERDESC pour la première mémoire tampon du premier type, suivie d’une structure DXVADDI_DECODEBUFFERDESC pour la mémoire tampon suivante du même type, et ainsi de suite. La liste de description de la mémoire tampon se poursuit ensuite avec une structure DXVADDI_DECODEBUFFERDESC pour la première mémoire tampon du type suivant, et ainsi de suite. Cette liste entière est contenue dans une structure D3DDDIARG_DECODEEXECUTE.

Étant donné que Microsoft DirectX Video Acceleration (VA) version 2.0 utilise des surfaces Microsoft Direct3D plutôt que les surfaces privées que DirectX VA 1.0 utilise, le pilote d’affichage en mode utilisateur obtient des valeurs pour l’index, la largeur, la hauteur et le pas à partir du type de mémoire tampon compressé donné plutôt que des valeurs dans le bufferIndex, Width, Height, et membres de Stride. En fait, le runtime Microsoft Direct3D définit ces membres sur zéro.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo