Compartir a través de


PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 función de devolución de llamada (d3d12umddi.h)

La función de devolución de llamada PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 registra un comando para resolver los metadatos de salida de una operación de codificación en un formato legible.

Sintaxis

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

Controle los datos del controlador para la lista de comandos. El controlador usa esta región de memoria para almacenar estructuras de datos internas relacionadas con su lista de comandos.

[in] pInputArguments

Puntero a una estructura D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 que contiene argumentos de entrada para esta devolución de llamada.

[out] pOutputArguments

Puntero a una estructura D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 en la que se va a almacenar la salida de esta devolución de llamada.

Valor devuelto

None

Observaciones

Para todos los codificadores, el controlador debe colocar toda la información de diseño de forma contigua en la memoria en resolvedLayoutEncoderMetadataDrvBuffer. El cliente de API analizará estos metadatos según el tipo de codificador (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec en el nivel de controlador).

ResolvedLayoutEncoderMetadataDrvBuffer para códecs H264/HEVC

En el caso de los codificadores H264 y HEVC (tipos admitidos antes de agregar la extensión AV1), el diseño de memoria del búfer resuelto no cambia.

ResolvedLayoutEncoderMetadataDrvBuffer para el códec AV1

Para la codificación AV1 (pInputArguments-EncoderCodec> igual a D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), que se agregó en Windows 11, versión 24H2 (WDDM 3.2), el controlador debe usar el diseño de búfer resuelto específico de AV1 agregado.

  • El diseño de memoria se define como:

    • estructura de D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0

    • Elementos WrittenSubregionsCount de tipo D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 que indican cada icono en el mismo orden en que se escriben en la secuencia de bits de salida comprimida.

      • bSize = tile_size_minus_1 + 1 + bStartOffset
      • bStartOffset = Bytes que se omiten en relación con este icono, el tamaño real del icono codificado de secuencia de bits es tile_size_minus_1 = (bSize - bStartOffset - 1).
      • bHeaderSize = 0
      • El icono i-th se lee de la compressed_bitstream[offset] con offset = [sum j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset
    • Estructura D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095 que indica la estructura de cuadrícula de mosaicos de marco codificada

    • D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 estructura que indica los valores de metadatos de codificación que solo se obtienen después de la ejecución de EncodeFrame en la GPU.

  • El autor de la llamada puede deducir el tamaño máximo del búfer de metadatos resuelto por el diseño de AV1 en 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)

Consulte codificación de vídeo D3D12 para obtener información general.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 11 (WDDM 3.0)
Encabezado d3d12umddi.h

Consulte también

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0