estructura DXVADDI_DECODEBUFFERDESC (d3dumddi.h)
La estructura DXVADDI_DECODEBUFFERDESC describe un búfer que se pasa actualmente desde el descodificador del 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 D3DDDIFORMATcon tipo 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 macrobloqueo del primer bloque de macros del búfer que se pasa al acelerador. La dirección de macrobloqueo 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 macrobloqueo.
macrobloqueo | dirección |
---|---|
Superior izquierda | Cero |
Superior derecha | wPicWidthInMBminus1 de DXVA_PictureParameters. |
Abajo a la izquierda | wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Miembros de DXVA_PictureParameters. |
Abajo a la 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 macrobloque correspondiente.
[in] NumMBsInBuffer
Número de macrobloqueos de datos en el búfer, incluidos los bloques 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 de | valor de NumMBsInBuffer |
---|---|
Comando de control Macroblock | Suma de todos los valores de MBskipsFollowing, agregados al número de comandos de control de macrobloqueo en el búfer de comandos de control de macrobloqueo. |
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.
Observaciones
Una matriz de estructuras de DXVADDI_DECODEBUFFERDESC se conoce como una lista de descripción del búfer de . 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 está contenida en una estructura 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 de 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 la BufferIndex, Width, Height, y miembros de Stride. De hecho, el entorno de ejecución de Microsoft Direct3D establece estos miembros en cero.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
encabezado de | d3dumddi.h (incluya D3dumddi.h) |