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)

Consulte también

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo