将 WDM 流式交叉开关设备添加到 FilterGraph

Add WDM Streaming Crossbar Devices to the FilterGraph

我有一个基本的 directshow 图:

Video Capture Source: SMI Grabber Dev (4ch usb dvr) > video Renderer

当我启动 Graph 时,出现此错误:

the device is not connected 0x8007048F

在 GraphStudioNext 或我的 C# 代码上。我找到了一个适用于 GraphStudioNext 的解决方案,它包括添加一个 WDM 流式交叉开关设备(SM DBA 交叉开关过滤器)并将其连接到视频捕获源,但我不知道如何在我的 c# 代码上做同样的事情。

感谢任何帮助,谢谢。

错误是ERROR_DEVICE_NOT_CONNECTED:捕获过滤器无法自行运行。这可以看作是硬件驱动的一个bug/inaccuracy,因为基本上不加crossbar就应该是运行。

您可以明确添加 crossbar 过滤器,因为您已经找到连接上游所需的内容,或者您​​可以通过 ICaptureGraphBuilder2::FindInterface 调用添加它:

If a capture device uses a Windows Driver Model (WDM) driver, the graph may require certain filters upstream from the WDM Video Capture filter, such as a TV Tuner filter or an Analog Video Crossbar filter. If the pCategory parameter does not equal NULL, this method automatically inserts any required WDM filters into the graph. To do so, it queries the input pins on the capture filter to determine what mediums they support, and connects them to matching filters.

您可以从 DirectShow.NET 中查找 DxTuner 示例以查看 FindInterface 用法示例。