GMFBridge源滤波器没有接收到帧
本文关键字:滤波器 GMFBridge | 更新日期: 2023-09-27 18:13:24
我有一个网络摄像头,我想开始/停止视频录制而不停止渲染器。这就是我想使用GMFBridge的原因。我的图表是:
Webcam -> FFDShow -> SampleGrabber -> Infinite Tee -> Color Converter -> Renderer
|---> GMFBridge Sink Filter
GMFBridge Source Filter -> Color Space Converter -> Encoder -> File Writer
我做的一切都像文档(InsertSinkFilter, InsertSourceFilter, BridgeGraphs等),但GMFBridge源过滤器不接收任何帧。
DirectShow中的GMFPreview示例。NET示例工作,但它使用RenderStream函数来准备图形。我的代码和GMFPreview之间的唯一区别是我手动添加过滤器并连接它们的引脚并启动图形(我不使用RenderStream函数)。
我应该怎么做才能在GMFBridge源过滤器中接收帧?
调试的第一步是在JoinFilterGraph方法中启用图形注册,并确保(使用Graphedt连接到远程图形)引脚以您期望的方式连接。
然后,创建一个日志文件-在My Documents中创建一个空文件gmfbridge.txt,运行应用程序,并查看日志以查看交付进度。
我真不敢相信我犯了这么愚蠢的错误。我曾经用ICaptureGraphBuilder
实例做桥图:
Bridge.BridgeGraphs(Graph_builder, Graph_builder2);
,但实际上我应该用吸收过滤器和源过滤器参数桥接图形:
Bridge.BridgeGraphs(Graph_BridgeSinkFilter, BridgeSourceFilter);