Freigeben über


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)

Siehe auch

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo