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;
Membri
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 a blocchi di differenza residua). |
3 | Buffer di dati a blocchi di differenza residua. Per altre informazioni, vedere Macroblock-Oriented di decodifica immagine. |
4 | Deblocking filter control command buffers (with or without a restriction on the effect of the filter). |
5 | Buffer della matrice inversa di quantizzazione (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 di fusione alfa AYUV. |
9 | Buffer di superficie di fusione alfa IA44/AI44. |
10 | Buffer di superficie di fusione alfa DPXD. |
11 | Evidenziare i buffer di dati. |
12 | Buffer di dati DCCMD. |
13 | Buffer combinati 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 passati 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 di macroblock viene specificato nell'ordine di analisi raster. L'indirizzo è determinato dai membri di DXVA_PictureParameters. Di seguito sono riportati alcuni esempi di indirizzi di macroblock.
macroblock | Address |
---|---|
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 a blocchi di differenza residua, dwFirstMBaddress deve avere lo stesso valore del buffer dei comandi del controllo macroblock corrispondente. Per altre informazioni, vedere Macroblock-Oriented di decodifica immagine.
dwNumMBsInBuffer
Specifica il numero di macroblock di dati nel buffer. Questo conteggio include i macroblock ignorati. Deve essere zero se il buffer di dati è tra i tipi seguenti: parametri di decodifica dell'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, aggiunto 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 dei comandi del controllo sezione 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 (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.
dwStride
Specifica lo stride 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). 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 usati per la compressione e l'allineamento. Deve essere zero.
Osservazioni
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.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | dxva.h (include Dxva.h) |