D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT 结构用于查询硬件是否支持特定的视频处理功能。以下是该结构的定义:
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT
{
    UINT NodeIndex;
    D3D12_VIDEO_SAMPLE InputSample;
    DXGI_FORMAT OutputFormat;
    BOOL Supported;
    UINT8  Reserved[3];
} D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT;

其中,各成员的含义如下:

  •  NodeIndex: 与硬件节点相关联的索引。

  •  InputSample: 一个 D3D12_VIDEO_SAMPLE 结构,描述视频处理的输入样本。

  •  OutputFormat: 指定视频处理的输出格式。

  •  Supported: 如果硬件支持指定的视频处理功能,则为 TRUE;否则为 FALSE。

  •  Reserved: 保留字段。


使用该结构时,你需要填充 NodeIndex、InputSample 和 OutputFormat 成员,然后通过 ID3D12Device::CheckFeatureSupport 函数查询硬件是否支持相应的视频处理功能。例如:
D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT videoProcessSupport = {};
videoProcessSupport.NodeIndex = 0;  // 可以根据需要设置节点索引
videoProcessSupport.InputSample.Format = DXGI_FORMAT_NV12;  // 设置输入样本格式
videoProcessSupport.OutputFormat = DXGI_FORMAT_B8G8R8A8_UNORM;  // 设置输出格式

HRESULT hr = pDevice->CheckFeatureSupport(
    D3D12_FEATURE_VIDEO_PROCESS_SUPPORT,
    &videoProcessSupport,
    sizeof(D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT)
);

if (SUCCEEDED(hr) && videoProcessSupport.Supported)
{
    // 硬件支持指定的视频处理功能
}
else
{
    // 硬件不支持或查询失败
}

请注意,具体的使用方式和支持的功能取决于你的硬件和驱动程序的实现。最好参考 Microsoft 的文档和相关示例代码以获取详细的信息。


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