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 for H264/HEVC 编解码器

对于 H264 和 HEVC 编码器(添加 AV1 扩展之前支持的类型),解析的缓冲区内存布局不会更改。

ResolvedLayoutEncoderMetadataDrvBuffer for AV1 编解码器

对于 AV1 编码(pInputArguments->EncoderCodec 等于 D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1),这是在 Windows 11 版本 24H2(WDDM 3.2)中添加的),驱动程序应使用添加的特定于 AV1 的缓冲区布局。

  • 内存布局定义为:

  • 调用方可以通过 ResolveEncoderOutputMetadata中的 AV1 布局推断解析元数据缓冲区的最大大小。

    • 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