PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 função de retorno de chamada (d3d12umddi.h)
A função de retorno de chamada PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 registra um comando para resolve os metadados de saída de uma operação de codificação em um formato legível.
Sintaxe
PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 Pfnd3d12ddiVideoEncodeResolveOutputMetadata00820;
void Pfnd3d12ddiVideoEncodeResolveOutputMetadata00820(
[in] D3D12DDI_HCOMMANDLIST hDrvCommandList,
[in] const D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 *pInputArguments,
[out] const D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 *pOutputArguments
)
{...}
Parâmetros
[in] hDrvCommandList
Manipule para os dados do driver para a lista de comandos. O driver usa essa região de memória para armazenar estruturas de dados internas relacionadas à sua lista de comandos.
[in] pInputArguments
Ponteiro para uma estrutura D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 que contém argumentos de entrada para esse retorno de chamada.
[out] pOutputArguments
Ponteiro para uma estrutura D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 na qual armazenar a saída desse retorno de chamada.
Retornar valor
Nenhum
Comentários
Para todos os codificadores, o driver deve posicionar todas as informações de layout contíguas na memória no ResolvedLayoutEncoderMetadataDrvBuffer. O Cliente de API analisará esses metadados de acordo com o tipo de codificador (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec no nível do driver).
ResolvedLayoutEncoderMetadataDrvBuffer para codecs H264/HEVC
Para codificadores H264 e HEVC (tipos com suporte antes da adição da extensão AV1), o layout de memória do buffer resolvido não é alterado.
Elementos WrittenSubregionsCount do tipo D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 indicando cada bloco na mesma ordem em que são gravados no bitstream de saída compactado.
O chamador pode inferir o tamanho máximo do buffer de metadados resolvido pelo layout H264/HEVC para ResolveEncoderOutputMetadata:
- maxSliceNumber = D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2.MaxSubregionsNumber;
- MaxEncoderOutputMetadataResolvedBufferSize = sizeof(D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0) + (maxSliceNumber * sizeof(D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0))
ResolvedLayoutEncoderMetadataDrvBuffer para codec AV1
Para codificação AV1 (pInputArguments-EncoderCodec> igual a D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), que foi adicionada em Windows 11, versão 24H2 (WDDM 3.2), o driver deve usar o layout de buffer resolvido específico do AV1 adicionado.
O layout de memória é definido como:
Elementos WrittenSubregionsCount do tipo D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 indicando cada bloco na mesma ordem em que são gravados no bitstream de saída compactado.
- bSize = tile_size_minus_1 + 1 + bStartOffset
- bStartOffset = Bytes para ignorar em relação a esse bloco, o tamanho real do bloco codificado em bitstream é tile_size_minus_1 = (bSize - bStartOffset - 1).
- bHeaderSize = 0
- O bloco i-th é lido do compressed_bitstream[offset] com offset = [sum j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset
A estrutura D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095 que indica a estrutura de grade do bloco de quadro codificado
D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 estrutura que indica valores de metadados de codificação obtidos somente após a execução de EncodeFrame na GPU.
O chamador pode inferir o tamanho máximo do buffer de metadados resolvido pelo layout para AV1 em ResolveEncoderOutputMetadata.
- MaxTiles = D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2.MaxSubregionsNumber;
- MaxEncoderOutputMetadataResolvedBufferSize = sizeof(D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0) + (MaxTiles * sizeof(D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0))); + sizeof(D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095) + sizeof(D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095)
Confira Codificação de vídeo D3D12 para obter informações gerais.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 11 (WDDM 3.0) |
Cabeçalho | d3d12umddi.h |