以下是 ID3D12VideoDecodeCommandList 接口的一些方法:
1. DecodeFrame: 用于解码视频帧。
HRESULT DecodeFrame(
_In_ ID3D12VideoDecoder *pDecoder,
_In_ const D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM *pOutputHistogram,
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputStreamArguments,
_In_ UINT NumInputStreams,
_In_reads_(NumInputStreams) const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputStreamArguments
);
这个方法会使用给定的解码器 (pDecoder) 解码视频帧,并将结果输出到指定的输出流。还可以提供输入流的相关参数。
2. WriteBuffer: 用于在解码命令列表中写入数据。
HRESULT WriteBuffer(
_In_ ID3D12Resource *pBuffer,
_In_ UINT64 Offset,
_In_ ID3D12Resource *pHeap,
_In_ D3D12_RESOURCE_STATES State
);
这个方法用于将视频码流数据写入解码命令列表中的缓冲区。
3. ReferenceDecodeFrame: 用于引用先前解码的视频帧。
HRESULT ReferenceDecodeFrame(
_In_ ID3D12VideoDecoder *pDecoder,
_In_ const D3D12_VIDEO_DECODE_REFERENCE_FRAMES *pReferenceFrames
);
这个方法用于引用先前解码的视频帧,以便在解码后的帧中使用。
请注意,这只是一些方法的简要概述,实际的使用需要根据具体的场景和需求进行更详细的配置和调用。如果需要更多详细信息,建议查阅最新的官方文档或 API 参考。
转载请注明出处:http://www.zyzy.cn/article/detail/26215/Win32 API/D3d12video.h/ID3D12VideoDecodeCommandList