Поделиться через


функция обратного вызова PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 (d3d12umddi.h)

Функция обратного вызова PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 записывает команду для разрешения выходных метаданных операции кодирования в доступный для чтения формат.

Синтаксис

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
)
{...}

Параметры

[in] hDrvCommandList

Обработка данных драйвера для списка команд. Драйвер использует этот регион памяти для хранения внутренних структур данных, связанных с его списком команд.

[in] pInputArguments

Указатель на D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 структуру, содержащую входные аргументы для этого обратного вызова.

[out] pOutputArguments

Указатель на D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 структуру, в которой следует хранить выходные данные из этого обратного вызова.

Возвращаемое значение

Никакой

Замечания

Для всех кодировщиков драйвер должен размещать все сведения о макете в памяти в ResolvedLayoutEncoderMetadataDrvBuffer. Клиент API анализирует эти метаданные соответствующим образом в зависимости от типа кодировщика (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec на уровне драйвера).

ResolvedLayoutEncoderMetadataDrvBuffer для кодеков H264/HEVC

Для кодировщиков H264 и HEVC (типы, поддерживаемые до добавления расширения AV1), разрешенный макет памяти буфера не изменяется.

  • структура D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0

  • Элементах типа writtenSubregionsCount D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0, указывающих каждый плитку в том же порядке, что они записываются в сжатом потоке выходных данных.

  • Вызывающий объект может определить максимальный размер разрешенного буфера метаданных с помощью макета H264/HEVC для ResolveEncoderOutputMetadata:

ResolvedLayoutEncoderMetadataDrvBuffer для кодека AV1

Для кодирования AV1 (pInputArguments->CoderCodec равным D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), добавленным в Windows 11 версии 24H2 (WDDM 3.2), драйвер должен использовать добавленный макет буфера, зависящий от AV1.

  • Макет памяти определяется следующим образом:

    • структура D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0

    • Элементах типа WrittenSubregionsCount D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0, указывающих каждый элемент в том же порядке, что они записываются в сжатом битовом потоке выходных данных.

      • bSize = tile_size_minus_1 + 1 + bStartOffset
      • bStartOffset = Байты, чтобы пропустить относительно этой плитки, фактический размер закодированного битового фрагмента равен tile_size_minus_1 = (bSize - bStartOffset - 1).
      • bHeaderSize = 0
      • Плитка i-th считывается из compressed_bitstream[смещение] с смещением = [sum j = (0, (i-1)){ плитка[j].bSize }] + плитка[i].bStartOffset
    • Структура D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095, указывающая структуру сетки сетки в кодировке кадра

    • D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 структура, указывающая значения метаданных кодировки, полученные только после выполнения CodeFrame на GPU.

  • Вызывающий объект может определить максимальный размер разрешенного буфера метаданных с помощью макета AV1 в 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)

Общие сведения см. в кодировке видео D3D12.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 11 (WDDM 3.0)
заголовка d3d12umddi.h

См. также

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0