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