DXVADDI_DECODEBUFFERDESC-Struktur (d3dumddi.h)
Die DXVADDI_DECODEBUFFERDESC-Struktur beschreibt einen Puffer, der derzeit vom Hostdecoder an den Accelerator ü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;
Member
[in] hBuffer
Ein Handle für den Puffer.
[in] CompressedBufferType
Ein D3DDDIFORMAT typisierter Wert, der das Pixelformat des Puffers angibt.
[in] BufferIndex
Reserviert. Verwenden Sie diesen Member nicht. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] DataOffset
Der Offset der relevanten Daten vom Anfang des Puffers in Bytes. Die Verwendung dieses Members ist derzeit auf den Wert 0 beschränkt.
[in] DataSize
Die Menge der relevanten Daten im Puffer in Bytes. Der Speicherort des letzten Byte-Inhalts im Puffer ist der Wert von DataOffset plus der Wert von 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.
Macroblock | 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 |
Der FirstMBaddress-Member muss null sein, wenn der Datenpuffer einer der folgenden Typen ist: Bilddecodierungsparameter, Inverse-Quantisierungsmatrix, Slice-Steuerelement, Bitstreamdaten, AYUV, IA44/AI44, DPXD, Hervorhebung und DCCMD.
Wenn der Datenpuffer ein Restdifferenz-Blockdatenpuffer ist, muss FirstMBaddress den gleichen Wert wie für den entsprechenden Makroblocksteuerelementbefehlspuffer aufweisen.
[in] NumMBsInBuffer
Die Anzahl der Makroblocks von Daten im Puffer, einschließlich übersprungener Makroblocks. Dieser Member muss null sein, wenn der Datenpuffer einer der folgenden Typen ist: Bilddecodierungsparameter, Umgekehrt-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 gezeigt.
Puffertyp | Wert von NumMBsInBuffer |
---|---|
Befehl "Makroblock-Steuerelement" | Die Summe aller Werte für MBskipsFollowing, die zur Anzahl der Makroblock-Steuerelementbefehle im Makroblock-Steuerelementbefehlspuffer hinzugefügt wurde. |
Restdifferenzblock | Der gleiche Wert wie für den entsprechenden Makroblocksteuerungsbefehlspuffer. |
Befehl "Slice-control" | Der Wert des wNumberMBsInSlice-Elements der DXVA_SliceInfo-Struktur im Slice-Control-Puffer. |
Bitstream | Derselbe Wert wie für den entsprechenden Slice-Control-Befehlspuffer. |
[in] Width
Reserviert. Verwenden Sie diesen Member nicht. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] Height
Reserviert. Verwenden Sie diesen Member nicht. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] Stride
Reserviert. Verwenden Sie diesen Member nicht. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
[in] ReservedBits
Reservierte Bits, die zum Verpacken und Ausrichten verwendet werden. Dieser Member muss 0 (null) sein.
[in] pCipherCounter
Ein Zeiger auf eine DXVADDI_PVP_HW_IV-Struktur , die einen 128-Bit-PvP-Wert (Protected Video Path) enthält.
Hinweise
Ein Array von DXVADDI_DECODEBUFFERDESC Strukturen wird als Pufferbeschreibungsliste bezeichnet. Wenn eine Reihe von Puffern vom Hostdecoder an den Hardwarebeschleuniger gesendet wird, wird eine Pufferbeschreibungsliste gesendet, um die Puffer zu beschreiben. Die Pufferbeschreibungsliste enthält eine DXVADDI_DECODEBUFFERDESC Struktur für jeden Puffer in diesem Satz. Die Pufferbeschreibungsliste 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 DirectX VA 1.0 verwendet, erhält der Benutzermodusanzeigetreiber Werte für Index, Breite, Höhe und Stride aus dem angegebenen komprimierten Puffertyp und nicht aus den Werten in den Elementen BufferIndex, Width, Height und Stride . Tatsächlich legt die Microsoft Direct3D-Runtime diese Member auf 0 (null) fest.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Kopfzeile | d3dumddi.h (include D3dumddi.h) |