If you develop applications using DirectShow, GraphEditPlus will make your life much easier. This is
GraphEdit done right. And yes, it can even write source code for you!
With GraphEditPlus you can:
Edit several graphs at one time.
Load and save .grf files compatible with MS GraphEdit.
Connect to remote graphs (in ROT - Running Objects Table). All graphs in GraphEditPlus are always
available in ROT.
See event log for each graph.
See all filters registered in the system, register new filters.
Work in 64 and 32 bit modes.
Search filters by name, display name, CLSID, path or file name.
Render media files and URLs, insert source filters determined by input file.
For each filter in your system you can:
See in what file on hard disk it is. For VfW codecs you'll see actual codec file, not the wrapper.
See all information about its file: creation and modification times, version, vendor, size, etc.
See and copy to clipboard filter's CLSID.
See and change filter's merit.
For each actual filter in your graph you can:
See what interfaces this filter supports (scan for 280+ known DirectShow interfaces).
For each interface you'll see all its functions and what values do
side-effect-free getter functions return.
See its own state in each moment (stopped/paused/running).
See its IUnknown address (for debugging purposes).
Open its property page (if present).
See all its pins.
Add it to favorites, so you can quickly insert such filter again.
Find this filter in filters list.
Connect pins using intelligent connect and direct connect.
For each unconnected pin you can:
See list of its desired mediatypes.
See list of filters that may connect to this pin. You'll see the order in which DirectShow
will try different filters when it renders pin or uses intelligent connect. You can add filters to your
graph right from that list.
If it supports IAMStreamConfig, see detailed report what GetStreamCaps
returns. You can see list of supported mediatypes and choose one of them.
This is useful for configuring codecs and cameras.
For each pin you can:
See its memory allocator properties (if it supports IMemInputPin).
Scan interfaces supported by the pin.
Open pin's property page (if present).
See pin's category (if present).
For each connection between filters you can see its mediatype.
For each mediatype you can see full information: not only major and sub types, but also all
the fields of all popular format blocks (like VideoInfo, VideoInfo2, WaveFormatEx, etc.) including
all fields of nested structures like BitmapInfoHeader etc.
See what samples go through your graph. You can insert Sample Grabber filter between any two
filters in graph, select mediatype you want Sample Grabber to get samples in, and for each sample
that goes through Sample Grabber you can see when it arrived, its timestamps, actual data length
and first few bytes of the data.
Control your graph: run, pause, stop, seek.
See current position and duration.
For each video window see graph and renderer it belongs to.
Once you've built your graph GraphEditPlus can generate source code
in C++ or C# of a simple application
that builds this graph and runs it. It will include all necessary filters
definitions and actions of building the graph. Code generation can be
customized by editing its templates.