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 |