Condividi tramite


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;

Members

[in] hBuffer

Handle per il buffer.

[in] CompressedBufferType

Valore tipizzato D3DDDIFORMAT 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 macroblock viene specificato nell'ordine di analisi raster. L'indirizzo è determinato dai membri della struttura DXVA_PictureParameters . La tabella seguente illustra esempi di indirizzi macroblock.

Macroblocco Indirizzo
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 dei blocchi di differenza residua, FirstMBaddress deve avere lo stesso valore del buffer dei comandi del 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 immagine, matrice di quantizzazione inversa, AYUV, IA44/AI44, DPXD, Highlight o DCCMD.

Il valore di NumMBsInBuffer dipende dal tipo di buffer di dati in uso, 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 del controllo sezione.
Bitstream Stesso valore del buffer del comando slice-control 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 DXVADDI_PVP_HW_IV che contiene un valore pvP (Protected Video Path) a 128 bit.

Commenti

Una matrice di strutture DXVADDI_DECODEBUFFERDESC 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 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, seguita 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 nei membri BufferIndex, Width, Height e Stride . In realtà, il runtime di Microsoft Direct3D imposta questi membri su zero.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Intestazione d3dumddi.h (include D3dumddi.h)

Vedi anche

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo