Table of Contents

Introduction

This section describes how to integrate FFDShow into your third party applications (video players, media centers etc.). It is possible to get or set any live setting of a running instance of FFDShow.

For example, retrieve the list of audio/subtitles streams and switch between them, or get and set any postprocessing setting (picture brightness, noise reduction, subtitles delay or font size…).

To do this, a .NET library (coded in C#) is delivered in source and binary form. Feel free to use and modify it. A sample application which uses some functions of this library is included as well.

How it works

Each time an FFDShow instance is loaded to decode or process a video, a listener thread is created. This thread (FFDShowRemoteAPI) is able to handle a list of predefined commands, such as “get this setting” or “set this setting with this value”. The .NET library encapsulates the communication primitives and integrates a list of main functions (see below). For now it is only possible to communicate with FFDShow video instances/filters. Accessing remotely FFDShow's audio filters is not supported. However, FFDShow video integrates some features that go beyond its scope, such as the handling of audio/subtitle streams and chapters. About that, FFDShow video will browse the DirectShow filters that support multiple streams such as Matroska splitters (Haali's or Gabest's), or FFDShow audio that can handle multiple audio streams within Bivx files (i.e. an AVI file with multiple audio streams).

Features of the .NET library

With the library you can do the following with little effort. More functions will come in the future.

Configure FFDShow to accept remote control

The following paragraph describes how FFDShow should be configured in order to be used with the FFDShowAPI library. This configuration applies to both developers and end users.

Minimal configuration

Before using the library, FFDShow needs to be configured in order to accept incoming requests. Open the FFDShow video configuration dialog and go to the “Keys & remote” section:

You don't have to change anything else. Other options allow you to define keyboard shortcuts, but using this feature is not recommended as some applications like Media Center don't work with it.

Recommended configuration

It is recommended to enable two additional features thus allowing the full use of the library. The features are:

To let FFDShow handle multiple audio streams:

To let FFDShow video handle raw processing:

Get and build the library and sample application

  1. Get the source code:
    It is not necessary to check out the entire FFDShow source code. The library and sample application are available at the following subversion repository:
    https://ffdshow-tryout.svn.sourceforge.net/svnroot/ffdshow-tryout/trunk/FFDShowAPI
  2. Build the project:
    Load the solution file FFDShowAPI.sln into Visual Studio and build it.
  3. Launch the test application:
    Before testing any command you have to load a video file inside a DirectShow player like MPC or Window Media Player. Make sure that the FFDShow video decoder is running (indicated by the red FFDShow tray icon).

Documentation