функция обратного вызова 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), разрешенный макет памяти буфера не изменяется.
Элементах типа 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->CoderCodec равным 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-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 |