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 de la mémoire tampon.

[in] CompressedBufferType

Valeur de type D3DDDIFORMAT 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 Notes.

[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 de contenu dans la mémoire tampon est la valeur de DataOffset plus la valeur de DataSize moins 1.

[in] FirstMBaddress

Adresse macroblock du premier macroblock de la mémoire tampon passée à 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.

Macrobloc 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 quantification inverse, contrôle de tranche, données de flux de bits, AYUV, IA44/AI44, DPXD, Highlight et DCCMD.

Si la mémoire tampon de données est une mémoire tampon de données de blocs de différence résiduelle, FirstMBaddress doit avoir la même valeur que pour la mémoire tampon de commande 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 quantification inverse, AYUV, IA44/AI44, DPXD, Highlight 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 macroblock.
Bloc de différence résiduelle La même valeur que pour la mémoire tampon de commande macroblock correspondante.
Commande de contrôle de segment Valeur du membre wNumberMBsInSlice de la structure DXVA_SliceInfo dans la mémoire tampon de contrôle de segment.
Bitstream La 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 Notes.

[in] Height

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

[in] Stride

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

[in] ReservedBits

Bits réservés utilisés pour l’empaquetage 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 d’accès vidéo protégé (PVP) 128 bits.

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 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 continue 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 les 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 la foulée à partir du type de mémoire tampon compressé donné plutôt qu’à partir des valeurs des membres BufferIndex, Width, Height et Stride . En fait, le runtime Microsoft Direct3D définit ces membres sur zéro.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows.
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo