Freigeben über


DXVA_BufferDescription-Struktur (dxva.h)

Die DXVA_BufferDescription-Struktur wird vom Hostdecoder an den Accelerator gesendet, um dem Accelerator Informationen über den Puffer bereitzustellen, der derzeit vom Host an den Accelerator übergeben wird.

Syntax

typedef struct _DXVA_BufferDescription {
  DWORD dwTypeIndex;
  DWORD dwBufferIndex;
  DWORD dwDataOffset;
  DWORD dwDataSize;
  DWORD dwFirstMBaddress;
  DWORD dwNumMBsInBuffer;
  DWORD dwWidth;
  DWORD dwHeight;
  DWORD dwStride;
  DWORD dwReservedBits;
} DXVA_BufferDescription, *LPDXVA_BufferDescription;

Member

dwTypeIndex

Gibt den Typ des Puffers an, der an die Zugriffstaste übergeben wird. In der folgenden Tabelle sind die numerischen Bezeichner und der zugeordnete Puffertyp aufgeführt.

Wert Puffertyp
1 Bilddecodierungsparameterpuffer.
2 Makroblocksteuerungsbefehlspuffer (eng mit und mit einer 1:1-Entsprechung mit Restdifferenzblockdatenpuffern verbunden).
3 Restdifferenzblockdatenpuffer. Weitere Informationen finden Sie unter Makroblock-orientierte Bilddecodierung .
4 Deaktivieren von Filtersteuerungsbefehlspuffern (mit oder ohne Einschränkung der Auswirkung des Filters).
5 Inverse-Quantisierungsmatrixpuffer (nur bei VLD-Off-Host-Verarbeitung verwendet).
6 Slice-Control-Puffer (eng mit bitstream-Datenpuffern verbunden und mit einer 1:1-Entsprechung mit Bitstreamdatenpuffern)
7 Bitstreamdatenpuffer.
8 AYUV-Alphamischungs-Beispielpuffer.
9 IA44/AI44 Alpha-Blending-Oberflächenpuffer.
10 DPXD-Oberflächenpuffer mit Alphamischung.
11 Hervorheben von Datenpuffern.
12 DCCMD-Datenpuffer.
13 Alpha-Blend-Kombinationspuffer.
14 Bild-Resampling-Steuerelementpuffer.
15 Zurücklese-Befehlspuffer, die Befehle zum Lesen von Makroblocks des resultierenden Bilds auf den Host enthalten.

dwBufferIndex

Gibt die Sequenznummer des Puffers innerhalb der Puffer desselben Typs an, die in derselben Pufferbeschreibungsliste übergeben wurden.

dwDataOffset

Gibt den Offset der relevanten Daten vom Anfang des Puffers in Bytes an. Die Verwendung dieses Members ist derzeit auf den Wert 0 beschränkt.

dwDataSize

Gibt die Menge der relevanten Daten im Puffer in Bytes an. Der Speicherort des letzten Byteinhalts im Puffer ist dwDataOffset plus dwDataSize minus 1.

dwFirstMBaddress

Gibt die Makroblockadresse des ersten Makroblocks im Puffer an, der an die Zugriffstaste übergeben wird. Die Makroblockadresse wird in der Rasterscanreihenfolge angegeben. Die Adresse wird von den Mitgliedern der DXVA_PictureParameters bestimmt. Beispiele für Makroblockadressen sind wie folgt.

Macroblock Adresse
oben links Null
oben rechts wPicWidthInMBminus1
links unten wPicHeightInMBminus1 x (wPicWidthInMBminus1+1)
unten rechts (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1

Dieser Member muss null sein, wenn der Datenpuffer zu den folgenden Typen gehört: Bilddecodierungsparameter, Inverse-Quantisierungsmatrix, Slice-Steuerung, Bitstreamdaten, AYUV, IA44/AI44, DPXD, Highlight und DCCMD.

Wenn der Datenpuffer ein Restdifferenz-Blockdatenpuffer ist, muss dwFirstMBaddress den gleichen Wert wie für den entsprechenden Makroblocksteuerungsbefehlspuffer aufweisen. Weitere Informationen finden Sie unter Makroblock-orientierte Bilddecodierung .

dwNumMBsInBuffer

Gibt die Anzahl der Makroblocks von Daten im Puffer an. Diese Anzahl umfasst übersprungene Makroblocks. Muss null sein, wenn der Datenpuffer zu den folgenden Typen gehört: Bilddecodierungsparameter, Inverse-Quantisierungsmatrix, AYUV, IA44/AI44, DPXD, Highlight oder DCCMD.

Der Wert für dwNumMBsInBuffer hängt vom Typ des verwendeten Datenpuffers ab, wie in der folgenden Tabelle gezeigt.

Puffertyp Wert von dwNumMBsInBuffer
Befehl "Makroblock-Steuerelement" Muss gleich der Summe aller Werte für MBskipsFollowing sein, die der Anzahl der Makroblock-Steuerelementbefehle im Makroblock-Steuerelementbefehlspuffer hinzugefügt werden.
Restdifferenzblock Muss den gleichen Wert wie für den entsprechenden Makroblocksteuerungsbefehlspuffer aufweisen.
Befehl "Slice-control" Muss gleich dem Wert des wNumberMBsInSlice-Elements der DXVA_SliceInfo-Struktur im Slice-Steuerelementpuffer sein.
Bitstream Muss den gleichen Wert wie für den entsprechenden Slice-Control-Befehlspuffer aufweisen.

dwWidth

Gibt die Breite der Daten im Puffer als Anzahl von Biteinheiten für die folgenden Datentypen an: AYUV (Daten werden in 32-Bit-Einheiten angegeben), IA44/AI44 (Daten werden in 8-Bit-Einheiten angegeben) oder DPXD (Daten werden in 2-Bit-Einheiten angegeben). Dieser Member muss 0 (null) sein, wenn der Datenpuffer nicht zu den vorherigen Typen gehört.

dwHeight

Gibt die Höhe der Daten im Puffer als Anzahl von Biteinheiten für die folgenden Datentypen an: AYUV (Daten werden in 32-Bit-Einheiten angegeben), IA44/AI44 (Daten werden in 8-Bit-Einheiten angegeben) oder DPXD (Daten werden in 2-Bit-Einheiten angegeben). Dieser Member muss 0 (null) sein, wenn der Datenpuffer nicht zu den vorherigen Typen gehört.

dwStride

Gibt den Schritt der Daten im Puffer als Anzahl von Biteinheiten für die folgenden Datentypen an: AYUV (Daten werden in 32-Bit-Einheiten angegeben), IA44/AI44 (Daten werden in 8-Bit-Einheiten angegeben) oder DPXD (Daten werden in 2-Bit-Einheiten angegeben). Der Schritt für die anwendbaren Puffertypen wird anhand der Pufferzuordnungseinrichtung bestimmt, die von der Zugriffstaste durchgeführt wird. Dieser Member muss 0 (null) sein, wenn der Datenpuffer nicht zu den vorherigen Typen gehört.

dwReservedBits

Reservierte Bits, die zum Verpacken und Ausrichten verwendet werden. Muss Null sein.

Hinweise

Ein Array von DXVA_BufferDescription 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 DXVA_BufferDescription-Struktur für jeden Puffer in diesem Satz. Die Pufferbeschreibungsliste beginnt mit einer DXVA_BufferDescription-Struktur für den ersten Puffer des ersten Typs, gefolgt von einer DXVA_BufferDescription-Struktur für den nächsten Puffer desselben Typs usw. Die Pufferbeschreibungsliste wird dann mit einer DXVA_BufferDescription-Struktur für den ersten Puffer des nächsten Typs usw. fortgesetzt.

Anforderungen

Anforderung Wert
Header dxva.h (dxva.h einschließen)

Weitere Informationen

DXVA_PictureParameters

DXVA_SliceInfo