如何检测底层 VGA Video Mixing Render 7 正在使用什么?

How to detect what underlying VGA Video Mixing Render 7 is using?

我们遇到一个问题,包括 VMR7 在内的特定滤镜组合会导致帧渲染不正确。我们注意到它只发生在某些具有某些驱动程序版本的 GPU 卡上。

我们尝试仅针对 GPU 制定一些解决方法(有一些开销)。有什么方法可以知道与 VMR7 关联的底层 VGA 卡?

我找到了问题的答案。

有监控相关信息接口IVMRMonitorConfig可以从VMR7 filter查询关联的设备信息

https://msdn.microsoft.com/en-us/library/windows/desktop/dd390488(v=vs.85).aspx

IVMRMonitorConfig::GetAvailableMonitors(
    [out] VMRMONITORINFO *pInfo,
    [in]  DWORD          dwMaxInfoArraySize,
    [out] DWORD          *pdwNumDevices
);

我可以通过 VMRMONITORINFO::szDeviceVMRMONITORINFO::szDescription 字符串中的关键字识别特定的 VGA 卡。