DXVADDI_DECODEBUFFERDESC Struktur (d3dumddi.h)
Die DXVADDI_DECODEBUFFERDESC-Struktur beschreibt einen Puffer, der derzeit vom Hostdecoder an die Zugriffstaste übergeben wird.
Syntax
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;
Angehörige
[in] hBuffer
Ein Handle für den Puffer.
[in] CompressedBufferType
Ein D3DDDIFORMAT-typed-Wert, der das Pixelformat des Puffers angibt.
[in] BufferIndex
Reserviert. Verwenden Sie dieses Mitglied nicht. Weitere Informationen finden Sie im Abschnitt "Hinweise".
[in] DataOffset
Der Offset der relevanten Daten vom Anfang des Puffers in Byte. Die Verwendung dieses Elements ist derzeit auf den Wert Null beschränkt.
[in] DataSize
Die Menge der relevanten Daten im Puffer in Byte. Die Position des letzten Byte des Inhalts im Puffer ist der Wert von DataOffset plus dem Wert DataSize minus 1.
[in] FirstMBaddress
Die Makroblockadresse des ersten Makroblocks im Puffer, der an die Zugriffstaste übergeben wird. Die Makroblockadresse wird in der Rasterscanreihenfolge angegeben. Die Adresse wird durch die Member der DXVA_PictureParameters Struktur bestimmt. Die folgende Tabelle enthält Beispiele für Makroblockadressen.
Makroblock- | Adresse |
---|---|
Oben links | Null |
Oben rechts | wPicWidthInMBminus1 von DXVA_PictureParameters. |
Unten links | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Mitglieder von DXVA_PictureParameters. |
Unten rechts | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Mitglieder von DXVA_PictureParame |
Das FirstMBaddress Member muss null sein, wenn der Datenpuffer eines der folgenden Typen ist: Bilddecodierungsparameter, Umgekehrte Quantisierungsmatrix, Segmentsteuerelement, Bitstreamdaten, AYUV, IA44/AI44, DPXD, Highlight und DCCMD.
Wenn der Datenpuffer ein Restunterschied-Blockdatenpuffer ist, muss FirstMBaddress denselben Wert aufweisen wie für den entsprechenden Makroblock-Steuerelement-Befehlspuffer.
[in] NumMBsInBuffer
Die Anzahl der Makroblocks von Daten im Puffer, einschließlich übersprungener Makroblocks. Dieses Element muss null sein, wenn der Datenpuffer eines der folgenden Typen ist: Bilddecodierungsparameter, Inverse-Quantisierungsmatrix, AYUV, IA44/AI44, DPXD, Highlight oder DCCMD.
Der Wert für NumMBsInBuffer- hängt vom Typ des verwendeten Datenpuffers ab, wie in der folgenden Tabelle dargestellt.
Puffertyp | Wert von NumMBsInBuffer |
---|---|
Makroblock-Steuerelementbefehl | Die Summe aller Werte für MBskipsFollowing, die der Anzahl der Makroblock-Steuerelementbefehle im Makroblock-Steuerelement-Befehlspuffer hinzugefügt wurde. |
Restdifferenzblock | Derselbe Wert wie für den entsprechenden Makroblock-Steuerelement-Befehlspuffer. |
Befehl "Segmentsteuerelement" | Der Wert des wNumberMBsInSlice-Elements der DXVA_SliceInfo Struktur im Datenschnittsteuerelementpuffer. |
Bitstream | Derselbe Wert wie für den entsprechenden Datenschnittsteuerelement-Befehlspuffer. |
[in] Width
Reserviert. Verwenden Sie dieses Mitglied nicht. Weitere Informationen finden Sie im Abschnitt "Hinweise".
[in] Height
Reserviert. Verwenden Sie dieses Mitglied nicht. Weitere Informationen finden Sie im Abschnitt "Hinweise".
[in] Stride
Reserviert. Verwenden Sie dieses Mitglied nicht. Weitere Informationen finden Sie im Abschnitt "Hinweise".
[in] ReservedBits
Reservierte Bits, die für Verpackung und Ausrichtung verwendet werden. Dieses Element muss null sein.
[in] pCipherCounter
Ein Zeiger auf eine DXVADDI_PVP_HW_IV Struktur, die einen 128-Bit-geschützten Videopfadwert (PVP) enthält.
Bemerkungen
Ein Array von DXVADDI_DECODEBUFFERDESC Strukturen wird als Pufferbeschreibungslistebezeichnet. Wenn eine Reihe von Puffern vom Hostdecode an den Hardwarebeschleuniger gesendet wird, wird eine Pufferbeschreibungsliste gesendet, um die Puffer zu beschreiben. Die Liste der Pufferbeschreibungen enthält eine DXVADDI_DECODEBUFFERDESC Struktur für jeden Puffer in diesem Satz. Die Liste der Pufferbeschreibung beginnt mit einer DXVADDI_DECODEBUFFERDESC Struktur für den ersten Puffer des ersten Typs, gefolgt von einer DXVADDI_DECODEBUFFERDESC Struktur für den nächsten Puffer desselben Typs usw. Die Pufferbeschreibungsliste wird dann mit einer DXVADDI_DECODEBUFFERDESC Struktur für den ersten Puffer des nächsten Typs usw. fortgesetzt. Diese gesamte Liste ist in einer D3DDDIARG_DECODEEXECUTE Struktur enthalten.
Da Microsoft DirectX Video Acceleration (VA) Version 2.0 Microsoft Direct3D-Oberflächen anstelle der privaten Oberflächen verwendet, die Von DirectX VA 1.0 verwendet werden, ruft der Benutzermodusanzeigetreiber Werte für den Index, die Breite, höhe und die Stride aus dem angegebenen komprimierten Puffertyp und nicht aus den Werten im BufferIndex-, Width, Height, und stride Mitglieder. Tatsächlich legt die Microsoft Direct3D-Laufzeit diese Member auf Null fest.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Header- | d3dumddi.h (include D3dumddi.h) |