虚拟驱动程序:如何强制调试分辨率
Virtual Driver: how to force resolutions for debugging
我正在开发虚拟驱动程序(Directshow 过滤器),我正在使用 graphedt 来测试和调试过滤器。
目前我的代码仅支持 320x240 像素的分辨率(硬编码)。
据我了解,我需要处理 GetMediaType 和 GetStreamCaps 函数以支持其他分辨率。
两个问题:
我正在为此寻找示例,但找不到,也许我在网络搜索中使用了错误的关键字
如何强制请求特定分辨率以便使用 graphedt 或任何其他工具测试我的代码?
I'm looking for an example for this but I cannot find it, perhaps I'm using wrong keywords in my websearch
八项决议:
if(iPosition < 0) return E_INVALIDARG;
if(iPosition > 8) return VFW_S_NO_MORE_ITEMS;
[...]
pvi->bmiHeader.biWidth = 80 * iPosition;
pvi->bmiHeader.biHeight = 60 * iPosition;
how to force a request for a specific resolution in order to test my code using graphedt or any other tool?
真正的应用程序将(可能)在可用中进行选择。
GraphStudioNext 在连接时提供 Ctrl+Shift+M 选项供选择。
否则通常会按枚举顺序选择 resolutions/media 类型,因此我在上面用 link 突出显示的第 237 行向您展示了临时覆盖的方法:
if (iIndex == 0) iIndex = 4;
我正在开发虚拟驱动程序(Directshow 过滤器),我正在使用 graphedt 来测试和调试过滤器。
目前我的代码仅支持 320x240 像素的分辨率(硬编码)。 据我了解,我需要处理 GetMediaType 和 GetStreamCaps 函数以支持其他分辨率。
两个问题:
我正在为此寻找示例,但找不到,也许我在网络搜索中使用了错误的关键字
如何强制请求特定分辨率以便使用 graphedt 或任何其他工具测试我的代码?
I'm looking for an example for this but I cannot find it, perhaps I'm using wrong keywords in my websearch
八项决议:
if(iPosition < 0) return E_INVALIDARG;
if(iPosition > 8) return VFW_S_NO_MORE_ITEMS;
[...]
pvi->bmiHeader.biWidth = 80 * iPosition;
pvi->bmiHeader.biHeight = 60 * iPosition;
how to force a request for a specific resolution in order to test my code using graphedt or any other tool?
真正的应用程序将(可能)在可用中进行选择。
GraphStudioNext 在连接时提供 Ctrl+Shift+M 选项供选择。
否则通常会按枚举顺序选择 resolutions/media 类型,因此我在上面用 link 突出显示的第 237 行向您展示了临时覆盖的方法:
if (iIndex == 0) iIndex = 4;