Quantcast
Channel: DirectShow – Fooling Around
Viewing all articles
Browse latest Browse all 72

DirectShow Spy: Human Friendly Filter Graph Information and Filter Graph List

$
0
0

A typical task for DirectShow Spy is to get installed onto, make the target application filter graphs available for inspection and… then get inspected with some additional tool. The last step assumes there is an additional application ready to pick the graphs and an interactive user attaches to the graphs for visual inspection and troubleshooting.

There are great tools to access DirectShow filter graphs via Running Object Table, GraphEdit, GraphStudio and GraphStudioNext – to name a few. However quite so often the task in question is to simply grab information about the filter graph topology and take it away. DirectShow Spy now offers this capability:

ROT Filter Graphs

The property sheet lists the available ROT filter graphs in a developer-friendly way:

  • sorted in reverse chronological order to easily pick the one of interest
  • Check button updates filter count and state of the selected graphs
  • Copy button puts a user friendly filter graph description onto clipboard, for one or several selected filter graphs:
    • information is formatted using Markdown formatting (both readable as raw text and even better via HTML conversion; a sample filter graph information is shown below)
    • the text mentions graph state, filters, connections and media types

Clipboard integration makes it really easy to pass the information through remote access applications.

More to that, the “graph to text” conversion is available programmatically. C# code snippet (full C# project is here) as simple as the following makes Markdown filter graph information available to the application for logging or otherwise troubleshooting purposes:

[STAThread]
static void Main(string[] args)
{
    IFilterGraph2 graph = new FilterGraph() as IFilterGraph2;
    graph.RenderFile(@"E:\Media\GoPro 2010 Highlights - You in HD - 1920x1080.mp4", "");
    FilterGraphHelper helper = new FilterGraphHelper();
    helper.FilterGraph = graph;
    Console.WriteLine(helper.Text);
}

The new UI is available through exported function DoFilterGraphListPropertySheetModal.

Download links


An example of filter graph description is shown below:

Sample Markdown Output


Viewing all articles
Browse latest Browse all 72

Trending Articles