struttura DXVADDI_DECODEBUFFERDESC (d3dumddi.h)
La struttura DXVADDI_DECODEBUFFERDESC descrive un buffer attualmente passato dal decodificatore host all'acceleratore.
Sintassi
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;
Membri
[in] hBuffer
Handle per il buffer.
[in] CompressedBufferType
Valore D3DDDIFORMAT-typed che indica il formato pixel del buffer.
[in] BufferIndex
Riservato. Non utilizzare questo membro. Per altre informazioni, vedere la sezione Osservazioni.
[in] DataOffset
Offset dei dati pertinenti dall'inizio del buffer, in byte. L'uso di questo membro è attualmente limitato al valore zero.
[in] DataSize
Quantità di dati pertinenti nel buffer, in byte. Il percorso dell'ultimo byte del contenuto nel buffer è il valore di DataOffset più il valore di DataSize meno 1.
[in] FirstMBaddress
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 della struttura DXVA_PictureParameters. La tabella seguente mostra esempi di indirizzi di blocco macro.
macroblock | Address |
---|---|
In alto a sinistra | Zero |
In alto a destra | wPicWidthInMBminus1 di DXVA_PictureParameters. |
In basso a sinistra | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Membri di DXVA_PictureParameters. |
In basso a destra | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Membri di DXVA_PictureParame |
Il membro FirstMBaddress deve essere zero se il buffer di dati è uno dei 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, FirstMBaddress deve avere lo stesso valore del buffer del comando di controllo macroblock corrispondente.
[in] NumMBsInBuffer
Numero di macroblock di dati nel buffer, inclusi i macroblock ignorati. Questo membro deve essere zero se il buffer di dati è uno dei tipi seguenti: parametri di decodifica dell'immagine, matrice di quantizzazione inversa, AYUV, IA44/AI44, DPXD, Highlight o DCCMD.
Il valore di NumMBsInBuffer dipende dal tipo di buffer di dati utilizzato, come illustrato nella tabella seguente.
tipo di buffer | valore di NumMBsInBuffer |
---|---|
Comando di controllo Macroblock | 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 | Stesso valore del buffer dei comandi del controllo macroblock corrispondente. |
Comando Slice-control | Valore del membro wNumberMBsInSlice della struttura DXVA_SliceInfo nel buffer di controllo sezione. |
Bitstream | Stesso valore del buffer dei comandi del controllo sezione corrispondente. |
[in] Width
Riservato. Non utilizzare questo membro. Per altre informazioni, vedere la sezione Osservazioni.
[in] Height
Riservato. Non utilizzare questo membro. Per altre informazioni, vedere la sezione Osservazioni.
[in] Stride
Riservato. Non utilizzare questo membro. Per altre informazioni, vedere la sezione Osservazioni.
[in] ReservedBits
Bit riservati utilizzati per la compressione e l'allineamento. Questo membro deve essere zero.
[in] pCipherCounter
Puntatore a una struttura di DXVADDI_PVP_HW_IV che contiene un valore pvP (Video Path) a 128 bit.
Osservazioni
Una matrice di strutture di DXVADDI_DECODEBUFFERDESC viene definita elenco di descrizione 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 DXVADDI_DECODEBUFFERDESC per ogni buffer in questo set. L'elenco di descrizione del buffer inizia con una struttura DXVADDI_DECODEBUFFERDESC per il primo buffer del primo tipo, seguito da una struttura DXVADDI_DECODEBUFFERDESC per il buffer successivo dello stesso tipo e così via. L'elenco di descrizione del buffer continua quindi con una struttura DXVADDI_DECODEBUFFERDESC per il primo buffer del tipo successivo e così via. L'intero elenco è contenuto in una struttura D3DDDIARG_DECODEEXECUTE.
Poiché Microsoft DirectX Video Acceleration (VA) versione 2.0 usa superfici Microsoft Direct3D anziché le superfici private usate da DirectX VA 1.0, il driver di visualizzazione in modalità utente ottiene i valori per l'indice, la larghezza, l'altezza e lo stride dal tipo di buffer compresso specificato anziché dai valori nel buffer BufferIndex, Width, Height, e membri stride. In effetti, il runtime di Microsoft Direct3D imposta questi membri su zero.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
intestazione | d3dumddi.h (include D3dumddi.h) |