Compartilhar via


estrutura DXVADDI_DECODEBUFFERDESC (d3dumddi.h)

A estrutura DXVADDI_DECODEBUFFERDESC descreve um buffer que atualmente é passado do decodificador de host para o acelerador.

Sintaxe

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;

Membros

[in] hBuffer

Um identificador para o buffer.

[in] CompressedBufferType

Um valor do tipo D3DDDIFORMAT que indica o formato de pixel do buffer.

[in] BufferIndex

Reservado. Não use esse membro. Para obter mais informações, consulte a seção Comentários.

[in] DataOffset

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

[in] DataSize

A quantidade de dados relevantes no buffer, em bytes. O local do último byte de conteúdo no buffer é o valor de DataOffset mais o valor de DataSize menos 1.

[in] FirstMBaddress

O endereço de macroblock do primeiro macroblock no buffer que é passado para o acelerador. O endereço de macroblock é dado na ordem de verificação do raster. O endereço é determinado pelos membros da estrutura DXVA_PictureParameters . A tabela a seguir mostra exemplos de endereços de macroblock.

Macroblock Endereço
Canto superior esquerdo Zero
Canto superior direito wPicWidthInMBminus1 de DXVA_PictureParameters.
Parte inferior esquerda wPicHeightInMBminus1 x (wPicWidthInMBminus1+1). Membros do DXVA_PictureParameters.
Canto inferior direito (wPicHeightInMBminus1+1) x (wPicWidthInMBminus1+1)-1. Membros do DXVA_PictureParame

O membro FirstMBaddress deverá ser zero se o buffer de dados for um dos 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, FirstMBaddress deverá ter o mesmo valor do buffer de comando de controle de macroblock correspondente.

[in] NumMBsInBuffer

O número de macroblocks de dados no buffer, incluindo macroblocks ignorados. Esse membro deverá ser zero se o buffer de dados for um dos seguintes tipos: parâmetros de decodificação de imagem, matriz de quantização inversa, AYUV, IA44/AI44, DPXD, Highlight ou DCCMD.

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

Tipo de buffer Valor de NumMBsInBuffer
Comando de controle Macroblock A soma de todos os valores para MBskipsFollowing, adicionada ao número de comandos de controle de macroblock no buffer de comando de controle de macroblock.
Bloco de diferença residual O mesmo valor do buffer de comando de controle de macroblock correspondente.
Comando slice-control O valor do membro wNumberMBsInSlice da estrutura DXVA_SliceInfo no buffer de controle de fatia.
Bitstream O mesmo valor do buffer de comando de controle de fatia correspondente.

[in] Width

Reservado. Não use esse membro. Para obter mais informações, consulte a seção Comentários.

[in] Height

Reservado. Não use esse membro. Para obter mais informações, consulte a seção Comentários.

[in] Stride

Reservado. Não use esse membro. Para obter mais informações, consulte a seção Comentários.

[in] ReservedBits

Bits reservados que são usados para empacotamento e alinhamento. Esse membro deve ser zero.

[in] pCipherCounter

Um ponteiro para uma estrutura DXVADDI_PVP_HW_IV que contém um valor PVP (caminho de vídeo protegido) de 128 bits.

Comentários

Uma matriz de estruturas de DXVADDI_DECODEBUFFERDESC é 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 DXVADDI_DECODEBUFFERDESC para cada buffer neste conjunto. A lista de descrição do buffer começa com uma estrutura DXVADDI_DECODEBUFFERDESC para o primeiro buffer do primeiro tipo, seguida por uma estrutura DXVADDI_DECODEBUFFERDESC para o próximo buffer do mesmo tipo e assim por diante. Em seguida, a lista de descrição do buffer continua com uma estrutura DXVADDI_DECODEBUFFERDESC para o primeiro buffer do próximo tipo e assim por diante. Esta lista inteira está contida em uma estrutura de D3DDDIARG_DECODEEXECUTE .

Como a VA (Aceleração de Vídeo) do Microsoft DirectX versão 2.0 usa superfícies do Microsoft Direct3D em vez das superfícies privadas que o DirectX VA 1.0 usa, o driver de exibição no modo de usuário obtém valores para o índice, largura, altura e passo do tipo de buffer compactado fornecido em vez dos valores nos membros BufferIndex, Width, Height e Stride . Na verdade, o runtime do Microsoft Direct3D define esses membros como zero.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

D3DDDIARG_DECODEEXECUTE

DXVADDI_PVP_HW_IV

DXVA_PictureParameters

DXVA_SliceInfo