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)

Weitere Informationen

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo