estructura DXVADDI_DECODEBUFFERDESC (d3dumddi.h)
La estructura de DXVADDI_DECODEBUFFERDESC describe un búfer que se pasa actualmente desde el descodificador de host al acelerador.
Sintaxis
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;
Miembros
[in] hBuffer
Identificador del búfer.
[in] CompressedBufferType
Valor con tipo D3DDDIFORMAT que indica el formato de píxel del búfer.
[in] BufferIndex
Reservado. No use este miembro. Para obtener más información, vea la sección Comentarios.
[in] DataOffset
Desplazamiento de los datos pertinentes desde el principio del búfer, en bytes. El uso de este miembro está restringido actualmente al valor cero.
[in] DataSize
Cantidad de datos relevantes en el búfer, en bytes. La ubicación del último byte de contenido en el búfer es el valor de DataOffset más el valor de DataSize menos 1.
[in] FirstMBaddress
Dirección de bloqueo de macros del primer bloque de macros del búfer que se pasa al acelerador. La dirección de bloqueo de macros se da en orden de examen de trama. La dirección viene determinada por los miembros de la estructura DXVA_PictureParameters . En la tabla siguiente se muestran ejemplos de direcciones de macroblock.
Macroblock | Dirección |
---|---|
Parte superior izquierda | Cero |
Superior derecha | wPicWidthInMBminus1 de DXVA_PictureParameters. |
Parte inferior izquierda | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Miembros de DXVA_PictureParameters. |
Inferior derecha | (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Miembros de DXVA_PictureParame |
El miembro FirstMBaddress debe ser cero si el búfer de datos es uno de los siguientes tipos: parámetros de descodificación de imágenes, matriz de cuantificación inversa, control de segmento, datos de secuencia de bits, AYUV, IA44/AI44, DPXD, Highlight y DCCMD.
Si el búfer de datos es un búfer de datos de bloque de diferencia residual, FirstMBaddress debe tener el mismo valor que para el búfer de comandos de control de macroblock correspondiente.
[in] NumMBsInBuffer
Número de macrobloqueos de datos en el búfer, incluidos los bloqueos de macro omitidos. Este miembro debe ser cero si el búfer de datos es uno de los siguientes tipos: parámetros de descodificación de imágenes, matriz de cuantificación inversa, AYUV, IA44/AI44, DPXD, Highlight o DCCMD.
El valor de NumMBsInBuffer depende del tipo de búfer de datos que se usa, como se muestra en la tabla siguiente.
Tipo de búfer | Valor de NumMBsInBuffer |
---|---|
Comando de control Macroblock | Suma de todos los valores de MBskipsFollowing, agregados al número de comandos de control de macroblock en el búfer de comandos de control de macroblock. |
Bloque de diferencia residual | El mismo valor que para el búfer de comandos de control de macroblock correspondiente. |
Comando Slice-control | Valor del miembro wNumberMBsInSlice de la estructura DXVA_SliceInfo en el búfer de control de segmentos. |
Bitstream | El mismo valor que para el búfer de comandos de control de segmento correspondiente. |
[in] Width
Reservado. No use este miembro. Para obtener más información, vea la sección Comentarios.
[in] Height
Reservado. No use este miembro. Para obtener más información, vea la sección Comentarios.
[in] Stride
Reservado. No use este miembro. Para obtener más información, vea la sección Comentarios.
[in] ReservedBits
Bits reservados que se usan para empaquetar y alinear. Este miembro debe ser cero.
[in] pCipherCounter
Puntero a una estructura de DXVADDI_PVP_HW_IV que contiene un valor de ruta de acceso de vídeo protegido (PVP) de 128 bits.
Comentarios
Una matriz de estructuras de DXVADDI_DECODEBUFFERDESC se conoce como una lista de descripción del búfer. Cuando se envía un conjunto de búferes desde el descodificador de host al acelerador de hardware, se envía una lista de descripción del búfer para describir los búferes. La lista de descripción del búfer contiene una estructura DXVADDI_DECODEBUFFERDESC para cada búfer de este conjunto. La lista de descripción del búfer comienza con una estructura de DXVADDI_DECODEBUFFERDESC para el primer búfer del primer tipo, seguido de una estructura de DXVADDI_DECODEBUFFERDESC para el siguiente búfer del mismo tipo, etc. A continuación, la lista de descripción del búfer continúa con una estructura de DXVADDI_DECODEBUFFERDESC para el primer búfer del siguiente tipo, etc. Esta lista completa se encuentra en una estructura de D3DDDIARG_DECODEEXECUTE .
Dado que Microsoft DirectX Video Acceleration (VA) versión 2.0 usa superficies de Microsoft Direct3D en lugar de las superficies privadas que usa DirectX VA 1.0, el controlador de pantalla en modo usuario obtiene valores para el índice, el ancho, el alto y el paso del tipo de búfer comprimido dado en lugar de los valores de los miembros BufferIndex, Width, Height y Stride . De hecho, el entorno de ejecución de Microsoft Direct3D establece estos miembros en cero.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Encabezado | d3dumddi.h (incluya D3dumddi.h) |