Articles Technology Blog News Company


32 and 64 bit
free, 0.5 MB

Source code

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.
    • Unregister filter.

  • 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.
    • Render pin.
    • 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.

    DirectShow development was never so easy before!

Changes in version 1.5.1:

  • When saving filter state to code, now can save both to C++ and C#.
  • Remembers window size and position at exit, restores on next run.

Changes in version 1.5.0:

  • Doesn't require administrator rights to run anymore.
  • Fixed problem with running unregistered 32-bit version on Windows 8.
  • Generated C++ code compiles fine in both Unicode and MBCS modes.
  • DMO filters are created in generated code differently (the right way).
  • Fixed problem with not fully releasing filters when they are deleted from a graph.
  • State (settings) of a filter can be exported to C++ code to be loaded in your app.
  • Since recent versions of Windows SDK don't include definitions for Sample Grabber, we provide them in an .h file for generated C++ code.
  • Other minor bugfixes and changes.


Graph editing and running
Filters list window, search for filters
Menus, options, code generation
Scanning for interfaces and querying data from filters
Displaying matching filters
Using Sample Grabber
Watching graph event log

If you have any questions or suggestions regarding GraphEditPlus don't hesitate to write! If you need our expertise in any DirectShow-related consultation or custom development we're also ready to help.

Email us here:

Events log

Filter file information

Editing filter info

Show supported interfaces

Pin information

SetFormat dialog

Pin interfaces

Memory allocator properties

Connection mediatype info

Watching grabbed samples

Code generation

Download now