[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. Plugin Specification

3.1 Command line options  
3.2 Stream control  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 Command line options

All plugins honor the --help option that gives a description and usage information in a machine-readable format. This is necessary so a GUI wrapper can present the plugins usefully and accurately to the user. The following options are required when applicable to the plugin's function.

  1. video-in <url>
  2. video-out <url>
  3. audio-in <url>
  4. audio-out <url>

The --help option must print out (to standard output) a description of all options, along with some other information about the plugin. Each option must be described on a separate line by the following items, all separated by whitespace:

Only the last item (the desription) may contain whitespace.

This is an example of a valid option line: --help | -h Print usage help

The description also should specify the number and names of audio and video inputs. If enough other information is specified on the command line, the plugin MUST specify the number of audio and video outputs.

The format for a video input line is video inputs: name1 name2 ....

name1 is a one-word description of the input or output. Duplicate names are allowed.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 Stream control

Since some video editing requires seeking within audio and video streams, JANE provides a way for plugins to request data, using TimeRequest objects.

Filters and sinks do not use such requests; they simply process the frames they get on input. However, they can be wrapped to produce plugins that do honor requests.

A plugin must not send unrequested frames to any output. Plugins may process any data they receive, trusting that whatever sent the data had a good reason for doing so. In other words, it's the sendsr's responsibility to send only what is needed.

Plugins should never block on I/O to JANE streams. This could result in deadlocks. The standard C++ plugins use threads to avoid blocking.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Eric Buddington on February, 24 2004 using texi2html