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) |