Compartilhar via


estrutura DXVA_BufferDescription (dxva.h)

A estrutura de DXVA_BufferDescription é enviada pelo decodificador de host para o acelerador para fornecer informações ao acelerador sobre o buffer que está sendo passado do host para o acelerador.

Sintaxe

typedef struct _DXVA_BufferDescription {
  DWORD dwTypeIndex;
  DWORD dwBufferIndex;
  DWORD dwDataOffset;
  DWORD dwDataSize;
  DWORD dwFirstMBaddress;
  DWORD dwNumMBsInBuffer;
  DWORD dwWidth;
  DWORD dwHeight;
  DWORD dwStride;
  DWORD dwReservedBits;
} DXVA_BufferDescription, *LPDXVA_BufferDescription;

Membros

dwTypeIndex

Identifica o tipo de buffer passado para o acelerador. A tabela a seguir lista os identificadores numéricos e o tipo de buffer associado.

Value tipo de buffer
1 Buffers de parâmetro de decodificação de imagem.
2 buffers de comando de controle macroblock (intimamente associados e tendo uma correspondência 1:1 com buffers de dados de bloco de diferença residual).
3 Buffers de dados de bloco de diferença residual. Consulte Macroblock-Oriented de Decodificação de Imagem para obter mais informações.
4 Desbloqueio de buffers de comando de controle de filtro (com ou sem restrição no efeito do filtro).
5 Buffers de matriz de quantização inversa (usados apenas com processamento de VLD fora do host).
6 Buffers de controle de fatia (intimamente associados e com uma correspondência 1:1 com buffers de dados bitstream).
7 Buffers de dados bitstream.
8 Buffers de exemplo de combinação alfa do AYUV.
9 Buffers de superfície de mistura alfa IA44/AI44.
10 Buffers de superfície de mistura alfa DPXD.
11 Realce os buffers de dados.
12 Buffers de dados DCCMD.
13 Buffers de combinação de mistura alfa.
14 Buffers de controle de resampling de imagem.
15 Buffers de comando de read-back que contêm comandos para ler macroblocks da imagem resultante de volta para o host.

dwBufferIndex

Especifica o número de sequência do buffer dentro dos buffers do mesmo tipo que foram passados na mesma lista de descrição do buffer .

dwDataOffset

Especifica o deslocamento dos dados relevantes desde o início do buffer em bytes. No momento, o uso desse membro está restrito ao valor zero.

dwDataSize

Especifica a quantidade de dados relevantes no buffer em bytes. O local do último byte de conteúdo no buffer é dwDataOffset, além de dwDataSize menos 1.

dwFirstMBaddress

Especifica o endereço de macroblock do primeiro macroblock no buffer passado para o acelerador. O endereço de macroblock é dado na ordem de verificação de raster. O endereço é determinado pelos membros do DXVA_PictureParameters. Exemplos de endereços de macroblock são os seguintes.

macroblock endereço
canto superior esquerdo zero
canto superior direito wPicWidthInMBminus1
inferior esquerdo wPicHeightInMBminus1 x (wPicWidthInMBminus1+1)
inferior direito (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1

Esse membro deverá ser zero se o buffer de dados estiver entre os seguintes tipos: parâmetros de decodificação de imagem, matriz de quantização inversa, controle de fatia, dados de bitstream, AYUV, IA44/AI44, DPXD, Highlight e DCCMD.

Se o buffer de dados for um buffer de dados de bloco de diferença residual, dwFirstMBaddress deverá ter o mesmo valor do buffer de comando de controle de macroblock correspondente. Consulte Macroblock-Oriented de Decodificação de Imagem para obter mais informações.

dwNumMBsInBuffer

Especifica o número de macroblocks de dados no buffer. Essa contagem inclui macroblocks ignorados. Deve ser zero se o buffer de dados estiver entre os seguintes tipos: parâmetros de decodificação de imagem, matriz de quantização inversa, AYUV, IA44/AI44, DPXD, Highlight ou DCCMD.

O valor para dwNumMBsInBuffer depende do tipo de buffer de dados que está sendo usado, conforme mostrado na tabela a seguir.

tipo de buffer valor de dwNumMBsInBuffer
Comando de controle macroblock Deve ser igual à soma de todos os valores para MBskipsFollowing, adicionado ao número de comandos de controle de macroblock no buffer de comando de controle de macroblock.
Bloco de diferença residual Deve ter o mesmo valor do buffer de comando de controle de macroblock correspondente.
Comando de controle de fatia Deve ser igual ao valor do membro wNumberMBsInSlice da estrutura DXVA_SliceInfo no buffer de controle de fatia.
Bitstream Deve ter o mesmo valor do buffer de comando de controle de fatia correspondente.

dwWidth

Especifica a largura dos dados no buffer como o número de unidades de bits para os seguintes tipos de dados: AYUV (os dados são especificados em unidades de 32 bits), IA44/AI44 (os dados são especificados em unidades de 8 bits) ou DPXD (os dados são especificados em unidades de 2 bits). Esse membro deverá ser zero se o buffer de dados não estiver entre os tipos anteriores.

dwHeight

Especifica a altura dos dados no buffer como o número de unidades de bits para os seguintes tipos de dados: AYUV (os dados são especificados em unidades de 32 bits), IA44/AI44 (os dados são especificados em unidades de 8 bits) ou DPXD (os dados são especificados em unidades de 2 bits). Esse membro deverá ser zero se o buffer de dados não estiver entre os tipos anteriores.

dwStride

Especifica o passo dos dados no buffer como o número de unidades de bits para os seguintes tipos de dados: AYUV (os dados são especificados em unidades de 32 bits), IA44/AI44 (os dados são especificados em unidades de 8 bits) ou DPXD (os dados são especificados em unidades de 2 bits). O passo para os tipos de buffer aplicáveis é determinado a partir da configuração de alocação de buffer executada pelo acelerador. Esse membro deverá ser zero se o buffer de dados não estiver entre os tipos anteriores.

dwReservedBits

Bits reservados usados para empacotamento e alinhamento. Deve ser zero.

Observações

Uma matriz de estruturas de DXVA_BufferDescription é conhecida como uma lista de descrição do buffer. Quando um conjunto de buffers é enviado do decodificador de host para o acelerador de hardware, uma lista de descrição do buffer é enviada para descrever os buffers. A lista de descrição do buffer contém uma estrutura DXVA_BufferDescription para cada buffer neste conjunto. A lista de descrição do buffer começa com uma estrutura de DXVA_BufferDescription para o primeiro buffer do primeiro tipo, seguida por uma estrutura DXVA_BufferDescription para o próximo buffer do mesmo tipo e assim por diante. A lista de descrição do buffer continua com uma estrutura de DXVA_BufferDescription para o primeiro buffer do próximo tipo e assim por diante.

Requisitos

Requisito Valor
cabeçalho dxva.h (inclua Dxva.h)

Consulte também

DXVA_PictureParameters

DXVA_SliceInfo