我在以下链接中有完全相同的问题, Using DirectShow filters outside DirectShow? 我是一个新鲜直接的节目,那个堆栈中的两个答案对我来说不够清晰。而且我找不到与作者联系的方式来询问他是否解决了他的问题。有没有办法做到这一点?
或者,有人可以更详细地解释这两个答案吗? “手动”是什么意思“调用各种过滤器”,它对于“包装整个过滤器图形”意味着什么?
答案 0 :(得分:2)
我无法评论“手工”方法(坏主意,IMO),但使用DirectShow的一个选项是将整个过滤器图形包装在Media Foundation对象中。所以,是的,Media Foundation对象内部将是一个完整的directshow图表,以及您感兴趣的过滤器。
这当然是非常重要的 - 对于directshow图,你需要一些输入过滤器,然后可能需要一个样本抓取过滤器来从图中取样。您的图表看起来像:
源过滤器 - >一些DMO解码器 - >样品采集器 - >空渲染器
...每次样本通过时样本抓取器都会调用回调。
如果您的解码器过滤器是DMO,那么它会变得更加容易。我认为你没有使用DMO过滤器?