функция обратного вызова 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 структуру, в которой будут храниться выходные данные этого обратного вызова.
Возвращаемое значение
None
Remarks
Для всех кодировщиков драйвер должен размещать все сведения о макете в памяти в ResolvedLayoutEncoderMetadataDrvBuffer. Клиент API анализирует эти метаданные соответствующим образом в зависимости от типа кодировщика (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec на уровне драйвера).
ResolvedLayoutEncoderMetadataDrvBuffer для кодеков H264/HEVC
Для кодировщиков H264 и HEVC (типов, поддерживаемых до добавления расширения AV1) разрешенный макет буферной памяти не изменяется.
Элементы WrittenSubregionsCount типа D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 , указывающие на каждую плитку в том же порядке, что и в сжатый выходной битовый поток.
Вызывающий объект может определить максимальный размер разрешенного буфера метаданных с помощью макета H264/HEVC для 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 для кодека AV1
Для кодировки AV1 (pInputArguments-EncoderCodec> равно D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), которая была добавлена в Windows 11 версии 24H2 (WDDM 3.2), драйвер должен использовать добавленный макет буфера с разрешением AV1.
Макет памяти определяется следующим образом:
Элементы 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-я плитка считывается из compressed_bitstream[смещение] со смещением = [sum j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset
Структура D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095 , указывающая структуру сетки фрагмента закодированного кадра
D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 структура, указывающая значения метаданных кодирования, которые получены только после выполнения EncodeFrame на 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 |