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) |