在 Direct3D 12 中,D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 结构是 D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS 结构的扩展版本。以下是其定义:
typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1
{
    D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type;
    union
    {
        struct
        {
            D3D12_VIDEO_SAMPLE DecodeFrame;
            D3D12_VIDEO_PROCESS_REFERENCES1 References;
            D3D12_VIDEO_PROCESS_CONVERSION_ARGUMENTS1 ConversionArguments;
            BOOL OutputReferenceFrameAsSubresource;
        } Decode;
        // 其他成员
    };
} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1;

这个结构主要用于描述视频解码输出流的参数。与 D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS 相比,它在 References 和 ConversionArguments 成员中引入了相应结构的扩展版本,即 D3D12_VIDEO_PROCESS_REFERENCES1 和 D3D12_VIDEO_PROCESS_CONVERSION_ARGUMENTS1。

具体的成员含义如下:

  •  DecodeFrame: 描述解码帧的 D3D12_VIDEO_SAMPLE 结构。

  •  References: 描述视频处理引用的 D3D12_VIDEO_PROCESS_REFERENCES1 结构。

  •  ConversionArguments: 描述视频解码输出转换参数的 D3D12_VIDEO_PROCESS_CONVERSION_ARGUMENTS1 结构。

  •  OutputReferenceFrameAsSubresource: 是否将输出参考帧作为子资源。


结构中还包含一个注释部分,表示该联合还可以包含其他成员,具体取决于 Type 的值。

使用这个结构时,你需要根据解码输出流的需求填充不同的成员,然后将其传递给相应的 API 函数或接口。

具体的使用方式和最佳实践会根据你的视频解码输出流场景而有所不同。你可能需要查阅相关的 Direct3D 12 文档或示例代码以获取详细信息。


转载请注明出处:http://www.zyzy.cn/article/detail/26195/Win32 API/D3d12video.h/D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1