ID3D12VideoEncodeCommandList2::EncodeFrame 方法 (d3d12video.h)

对位流进行编码。

语法

void EncodeFrame(
  ID3D12VideoEncoder                                     *pEncoder,
  ID3D12VideoEncoderHeap                                 *pHeap,
  const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS  *pInputArguments,
  const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments
);

参数

pEncoder

一个 ID3D12VideoEncoder,表示要用于编码操作的视频编码器。

pHeap

一个 ID3D12VideoEncoderHeap,表示要用于此操作的视频编码器堆。

在引用编码器堆对象的任何未执行 GPU 命令完成执行之前,不得释放编码器堆对象分配。

请注意,记录的命令中的重新配置输入参数在允许的边界内完成 (例如,允许的分辨率列表中的不同目标分辨率) 可以与同一编码器堆实例共存,前提是给定的编码器堆支持目标分辨率。

在当前版本中,我们一次仅支持使用同一编码器或编码器堆实例的一个执行流。 针对这些对象的所有命令都必须按序列化顺序进行记录和提交,即从单个 CPU 线程或同步多个线程,以便以序列化顺序记录命令。

视频编码器和视频编码器堆可用于记录来自多个命令列表的命令,但一次只能与一个命令列表相关联。 应用程序负责一次同步对视频编码器和视频编码器堆的单一访问。 应用程序还必须按照在 GPU 上执行的顺序,针对视频编码器和视频编码器堆录制视频编码命令。

pInputArguments

表示编码操作的输入参数 的D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS

pOutputArguments

表示编码操作的输出参数 的D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS

返回值

要求

要求
最低受支持的客户端 Windows 内部版本 22000
最低受支持的服务器 Windows 内部版本 22000
标头 d3d12video.h