2

I'm building a C# application where 2 or more cameras are connected to a processing module that has one or more outputs. I need to be able to connect "monitor" windows to preview each camera and the processed output that can be hidden or shown independently, with additional processing filters added to the stream while the video program is running.

Conceptually, I'm trying to build something that looks like this:

conceptual application illustration
(source: fkeinternet.net)

(Using the Video Mixing Filter from the Video Processing Project, I can actually build the above graph and have it run with the three video renderers displaying their respective video streams - in ActiveMovie windows, not C# form windows. Building a graph is not exactly the problem, building the complete application is the issue.)

Building on example code from the DirectShow .NET project, combined with code generated by GraphEditPlus, I can build a basic application with the video stream from a single camera displayed in a C# form window. I'm in the process of debugging multiple preview windows operating simultaneously, but I've realized there are other issues:

One of the problems with the graph illustrated above is that if any of the output windows are closed, the whole graph stops. Another is that it doesn't allow adding filters in the processing stage without stopping the whole graph and rebuilding it.

My idea is to break the monolithic graph into separate source, processing and display graphs so that each piece can be started or stopped as needed, something like this:

multiple connected graphs concept
(source: fkeinternet.net)

I'm assuming I'd have to keep one graph running all the time to provide a "master clock" source for everything else (probably the "Processing Graph" component), but I'm not quite sure how to do that.

Is there a "standard" way for connecting multiple graphs together? For that matter, is it even possible? I've done a number of searches along the lines of "c# directshow connect two graphs" but all of the links returned are related to connecting filters together, not graphs. Am I asking the wrong question?

Community
  • 1
  • 1
FKEinternet
  • 1,050
  • 1
  • 11
  • 20

1 Answers1

0

I stumbled across this post which pointed me to the answer I was looking for - GMFBridge

Community
  • 1
  • 1
FKEinternet
  • 1,050
  • 1
  • 11
  • 20