Add WDM Streaming Crossbar Devices to the FilterGraph

1

i have a basic directshow graph :

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

when i start the Graph, i get this error :

the device is not connected 0x8007048F

either on GraphStudioNext or my c# code. and i found a solution that worked on GraphStudioNext which consist of adding a WDM streaming crossbar devices device (SM DBA crossbar filter) and connect it the Video Capture Source, but i don't know how do the same on my c# code.

i appreciate any help, thanks.

c#
c++
video
directshow
directshow.net
asked on Stack Overflow Apr 11, 2016 by habibhassani • edited Apr 26, 2016 by Roman R.

1 Answer

2

The error is ERROR_DEVICE_NOT_CONNECTED: the capture filter is unable to run on its own. This can be considered as a bug/inaccuracy of the hardware driver because basically it is expected to run without adding crossbar.

You can add the crossbar filter explicitly, as you already found what is necessary to be connected upstream, or rather you can have it added by ICaptureGraphBuilder2::FindInterface call:

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.

You can look up DxTuner sample from DirectShow.NET to see FindInterface usage example.

answered on Stack Overflow Apr 11, 2016 by Roman R.

User contributions licensed under CC BY-SA 3.0