ID3D12VideoDecodeCommandList 接口是 Direct3D 12 中用于表示视频解码命令列表的接口。这个接口提供了执行视频解码相关操作的方法。通常,视频解码是对视频进行解码以便渲染的过程。

以下是 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