Condividi tramite


struttura DXVA_BufferDescription (dxva.h)

La struttura DXVA_BufferDescription viene inviata dal decodificatore host all'acceleratore per fornire informazioni all'acceleratore sul buffer attualmente passato dall'host all'acceleratore.

Sintassi

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;

Members

dwTypeIndex

Identifica il tipo di buffer passato all'acceleratore. Nella tabella seguente sono elencati gli identificatori numerici e il tipo di buffer associato.

Valore Tipo di buffer
1 Buffer dei parametri di decodifica immagine.
2 Buffer dei comandi di controllo macroblock (strettamente associati a e con una corrispondenza 1:1 con buffer di dati del blocco di differenze residui).
3 Buffer di dati a blocchi di differenza residua. Per altre informazioni, vedere Decodifica immagine orientata a Macroblock .
4 Deblocking filter control command buffers (with or without a restriction on the effect of the filter).
5 Buffer matrice di quantizzazione inversa (usato solo con l'elaborazione VLD off-host).
6 Buffer di controllo sezione (strettamente associati a e con corrispondenza 1:1 con buffer di dati bitstream).
7 Buffer di dati bitstream.
8 Buffer di esempio alfa blending AYUV.
9 Buffer della superficie di fusione alfa IA44/AI44.
10 Buffer della superficie di fusione alfa DPXD.
11 Evidenziare i buffer dei dati.
12 Buffer di dati DCCMD.
13 Buffer di combinazione alfa-blend.
14 Buffer di controllo di ricampionamento immagine.
15 Buffer dei comandi read-back contenenti comandi per leggere i macroblock dell'immagine risultante nell'host.

dwBufferIndex

Specifica il numero di sequenza del buffer all'interno dei buffer dello stesso tipo passato nello stesso elenco di descrizione del buffer.

dwDataOffset

Specifica l'offset dei dati pertinenti dall'inizio del buffer in byte. L'uso di questo membro è attualmente limitato al valore zero.

dwDataSize

Specifica la quantità di dati pertinenti nel buffer in byte. Il percorso dell'ultimo byte del contenuto nel buffer è dwDataOffset, più dwDataSize meno 1.

dwFirstMBaddress

Specifica l'indirizzo macroblock del primo blocco macro nel buffer passato all'acceleratore. L'indirizzo macroblock viene specificato nell'ordine di analisi raster. L'indirizzo è determinato dai membri di DXVA_PictureParameters. Di seguito sono riportati alcuni esempi di indirizzi macroblock.

Macroblocco Indirizzo
in alto a sinistra zero
in alto a destra wPicWidthInMBminus1
in basso a sinistra wPicHeightInMBminus1 x (wPicWidthInMBminus1+1)
in basso a destra (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1

Questo membro deve essere zero se il buffer di dati è tra i tipi seguenti: parametri di decodifica dell'immagine, matrice di quantizzazione inversa, controllo sezione, dati bitstream, AYUV, IA44/AI44, DPXD, Highlight e DCCMD.

Se il buffer di dati è un buffer di dati del blocco di differenze residui, dwFirstMBaddress deve avere lo stesso valore del buffer dei comandi del controllo macroblock corrispondente. Per altre informazioni, vedere Decodifica immagine orientata a Macroblock .

dwNumMBsInBuffer

Specifica il numero di macroblock di dati nel buffer. Questo conteggio include macroblock ignorati. Deve essere zero se il buffer di dati è tra i tipi seguenti: parametri di decodifica immagine, matrice di quantizzazione inversa, AYUV, IA44/AI44, DPXD, Highlight o DCCMD.

Il valore per dwNumMBsInBuffer dipende dal tipo di buffer di dati usato come illustrato nella tabella seguente.

Tipo di buffer Valore di dwNumMBsInBuffer
Comando di controllo Macroblock Deve essere uguale alla somma di tutti i valori per MBskipsFollowing, aggiunta al numero di comandi di controllo macroblock nel buffer dei comandi del controllo macroblock.
Blocco di differenza residua Deve avere lo stesso valore del buffer dei comandi del controllo macroblock corrispondente.
Comando Slice-control Deve essere uguale al valore del membro wNumberMBsInSlice della struttura DXVA_SliceInfo nel buffer di controllo sezione.
Bitstream Deve avere lo stesso valore del buffer del comando slice-control corrispondente.

dwWidth

Specifica la larghezza dei dati nel buffer come numero di unità di bit per i tipi di dati seguenti: AYUV (i dati vengono specificati in unità a 32 bit), IA44/AI44 (i dati vengono specificati in unità a 8 bit) o DPXD (i dati vengono specificati in unità a 2 bit). Questo membro deve essere zero se il buffer di dati non è tra i tipi precedenti.

dwHeight

Specifica l'altezza dei dati nel buffer come numero di unità di bit per i tipi di dati seguenti: AYUV (dati specificati in unità a 32 bit), IA44/AI44 (i dati vengono specificati in unità a 8 bit) o DPXD (i dati vengono specificati in unità a 2 bit). Questo membro deve essere zero se il buffer di dati non è tra i tipi precedenti.

dwStride

Specifica lo stride dei dati nel buffer come numero di unità di bit per i tipi di dati seguenti: AYUV (i dati vengono specificati in unità a 32 bit), IA44/AI44 (i dati vengono specificati in unità a 8 bit) o DPXD (i dati vengono specificati in unità a 2 bit). Lo stride per i tipi di buffer applicabili viene determinato dalla configurazione dell'allocazione del buffer eseguita dall'acceleratore. Questo membro deve essere zero se il buffer di dati non è tra i tipi precedenti.

dwReservedBits

Bit riservati utilizzati per la compressione e l'allineamento. Deve essere zero.

Commenti

Una matrice di strutture DXVA_BufferDescription viene definita elenco di descrizioni del buffer. Quando un set di buffer viene inviato dal decodificatore host all'acceleratore hardware, viene inviato un elenco di descrizioni del buffer per descrivere i buffer. L'elenco di descrizione del buffer contiene una struttura DXVA_BufferDescription per ogni buffer in questo set. L'elenco di descrizione del buffer inizia con una struttura DXVA_BufferDescription per il primo buffer del primo tipo, seguito da una struttura DXVA_BufferDescription per il buffer successivo dello stesso tipo e così via. L'elenco di descrizione del buffer continua quindi con una struttura DXVA_BufferDescription per il primo buffer del tipo successivo e così via.

Requisiti

Requisito Valore
Intestazione dxva.h (include Dxva.h)

Vedi anche

DXVA_PictureParameters

DXVA_SliceInfo