]> git.sesse.net Git - mlt/commitdiff
Doc formating
authorlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Sat, 27 Mar 2004 10:31:28 +0000 (10:31 +0000)
committerlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Sat, 27 Mar 2004 10:31:28 +0000 (10:31 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@255 d19143bc-622f-0410-bfdd-b5b2a6649095

12 files changed:
demo/mlt_fade_black
demo/mlt_push
demo/mlt_squeeze
docs/TODO
docs/dvcp.txt
docs/framework.txt
docs/inigo.txt
docs/install.txt
docs/services.txt
docs/testing.txt
docs/valerie.txt
docs/westley.txt

index ac1b38b3ecd6de4df05450d9fdbadea5dd791843..376fe865a42812e2f8469f9d56df8adfb8954cf0 100644 (file)
@@ -1,13 +1,9 @@
 inigo \
-clip3.mpeg in=100 out=299 \
--hide-track \
 colour:black out=199 \
--transition \
-luma in=0 out=49 a_track=0 b_track=1 reverse=1 \
--transition \
-luma in=150 out=199 a_track=0 b_track=1 \
--filter \
-volume in=0 out=49 track=0 gain=0 end=1.0 \
--filter \
-volume in=150 out=199 track=0 gain=1.0 end=0 \
+-track \
+clip3.mpeg in=100 out=299 \
+-transition luma in=0 out=49 a_track=0 b_track=1 \
+-transition luma in=150 out=199 a_track=0 b_track=1 reverse=1 \
+-filter volume in=0 out=49 track=1 gain=0 end=1.0 \
+-filter volume in=150 out=199 track=1 gain=1.0 end=0 \
 $*
index c21ccc1543d7eed38f0f84f1173deb43eeac1bd9..151ea54200f1f32d1da06ac58fb4d06c94ba4d40 100644 (file)
@@ -1,7 +1,5 @@
 inigo \
--blank 49 \
-colour:red out=25 \
--blank 999 \
+-blank 49 colour:red out=25 -blank 999 \
 -track \
 clip3.dv in=200 out=275 \
 -track \
index efe99ebcb80e8bc7d0d2e7aeaceb0831efec35d2..6b90afff1a380b3a406af5e42bbc067f0f784588 100644 (file)
@@ -4,5 +4,5 @@ clip1.dv out=124 clip2.dv out=149 clip3.dv in=75 out=224 clip1.dv \
 -blank 99 colour:black out=49 -blank 99 colour:black out=49 -blank 99 colour:black out=49 \
 -transition composite:0%,0%:100%x100% key[25]=50%,0%:5%x100% end=0%,0%:100%x100% distort=true a_track=1 b_track=0 in=100 out=149 \
 -transition composite:0%,0%:100%x100% key[25]=0%,50%:100%x5% end=0%,0%:100%x100% distort=true a_track=1 b_track=0 in=250 out=299 \
--transition composite:0%,0%:100%x100% key[25]=100%,0%:5%x100% key[26]=0%,0%:5%x100% end=0%,0%:100%x100% distort=true a_track=1 b_track=0 in=400 out=449 \
+-transition composite:0%,0%:100%x100% key[25]=100%,0%:5%x100% end=0%,0%:100%x100% distort=true a_track=1 b_track=0 in=400 out=449 \
 $*
index f0f3ae5cb26d811fd3b80126622b641227364380..344c68cb24b8564b43ed6719479d5b06e932e002 100644 (file)
--- a/docs/TODO
+++ b/docs/TODO
@@ -1,17 +1,17 @@
-* PARTIAL - optimisations
+* DONE    - optimisations
 * DONE    - memory pooling
-* PARTIAL - all memory leak detection
-* PARTIAL - global property handling (more later)
-*         - documentation (framework, implementations)
+* DONE    - all memory leak detection
+* DONE    - global property handling (more later)
+* DONE    - documentation (framework, implementations)
 * DONE    - finalisation of westley (entry, in/out points)
-*         - installation procedure
+* DONE    - installation procedure
 *         - dependency checks
 * DONE    - field order considerations and normalisation
-* PARTIAL - sdl rework (minor)
+* DONE    - sdl rework (minor)
 *         - speex?
 * DONE    - text/overlay/obsucure placement (units)
-*         - i18n (use of iconv api in producer_pango)
-*         - shaped fx for obscurer (and alpha in general?)
+* DONE    - i18n (use of iconv api in producer_pango)
+* DONE    - shaped fx for obscurer (and alpha in general?)
 * DONE    - aspect constraints for scaling
 * DONE    - field-based compositing for animation
-*         - frame hold
+* DONE    - frame hold
index 6da16dbfc4b753adf6d9d58191283c16745b14fe..d565c7f71870fcbbd062287205889fa28b12ec40 100644 (file)
@@ -1,9 +1,9 @@
+Miracle Control Protocol (DVCP) Reference Documentation
 
-dv1394d Control Protocol (DVCP) Reference Documentation
-
-Copyright (C) 2003 Ushodaya Enterprised Limited
+Copyright (C) 2004 Ushodaya Enterprised Limited
 Author: Dan Dennedy <dan@dennedy.org>
-Last Revision: 2003-01-13
+Last Revision: 2004-03-20
+
 
 General Format
 --------------
@@ -27,10 +27,11 @@ Response Codes
        is an error or exception. Most responses do not contain a body except
        some of the success results that report information and sometimes the
        500 Server Error returns specific information. 
-               A 200 result code contains no body.
-               A 201 result code contains one or more lines in the body, and a empty
-                       line terminates the response.
-               A 202 result code contains only a single response line in the body.
+
+       A 200 result code contains no body.
+       A 201 result code contains one or more lines in the body, and an empty
+       line terminates the response.
+       A 202 result code contains only a single response line in the body.
 
        Errors in the 400 range indicate a normally handled error where the
        command could not perform its action due to protocol syntax errors or
@@ -303,8 +304,7 @@ USTA {unit}
        - unit number: U0, U1, U2, or U3 without the "U" prefix
        - mode: (offline|not_loaded|playing|stopped|paused|disconnected|unknown)
          "unknown" means the unit has not been added
-         "disconnected" means the server has closed a connection to a client running
-               STATUS.
+         "disconnected" means the server has closed the connection to the client.
        - current clip name: filename
        - current position: in absolute frame number units
        - speed: playback rate in (percent * 10)
index 0ef24a97f936a127dc9d5717cb98e8f7a32ca42b..a1276db855b69ec6ac3f340965b09efc936cfba6 100644 (file)
@@ -1,3 +1,10 @@
+Framework Documentation
+
+Copyright (C) 2004 Ushodaya Enterprises Limited
+Author: Charles Yates <charles.yates@pandora.be>
+Last Revision: 2004-03-20
+
+
 MLT FRAMEWORK
 -------------
 
@@ -7,7 +14,7 @@ Preamble:
        it provides a pluggable architecture for the inclusion of new audio/video 
        sources, filters, transitions and playback devices.
 
-       The MLT framework provides the structure and utility functionality on which
+       The framework provides the structure and utility functionality on which
        all of the MLT applications and services are defined. 
 
        On its own, the framework provides little more than 'abstract classes' and
@@ -75,7 +82,7 @@ Structure and Flow:
        A typical consumer requests MLT Frame objects from the producer, does 
        something with them and when finished with a frame, closes it. 
        
-        /\  A common confusion with the producer/consumer terminoligy used here is 
+        /\  A common confusion with the producer/consumer terminology used here is 
        /!!\ that a consumer may 'produce' something. For example, the libdv consumer
        \!!/ produces DV and the libdv producer seems to consume DV. However, the
         \/  naming conventions refer only to producers and consumers of MLT Frames.
@@ -290,13 +297,13 @@ Playlists:
        Let's assume that we're adapting the Hello World example, and wish to queue
        a number of files for playout, ie:
 
-               hello *.avi
+           hello *.avi
 
        Instead of invoking mlt_factory_producer directly, we'll create a new
        function called create_playlist. This function is responsible for creating
        the playlist, creating each producer, appending to the playlist and ensuring
        that all the producers are cleaned up when the playlist is destroyed. The
-       last point is important - a close on the playlist won't explicitly these 
+       last point is important - a close on the playlist won't explicitly close these 
        producers. In this example, we use unique "data" properties with destructors
        to ensure closing.
 
@@ -312,7 +319,7 @@ Playlists:
            int i = 0;
            for ( i = 1; i < argc; i ++ )
            {
-               // Definie the unique key
+               // Define the unique key
                char key[ 256 ];
 
                // Create the producer
@@ -373,14 +380,14 @@ Filters:
        properties can be set as needed.
 
        The additional argument in the filter connection is an important one as it
-       dicates the 'track' on which the filter operates. For basic producers and
+       dictates the 'track' on which the filter operates. For basic producers and
        playlists, there's only one track (0), and as you will see in the next
        section, even multiple tracks have a single track output.
 
 
 Multiple Tracks and Transitions:
 
-       MLT's approach to mutliple tracks is governed by two requirements:
+       MLT's approach to multiple tracks is governed by two requirements:
 
        1) The need for a consumer and producer to communicate with one another via
        a single frame;
@@ -416,7 +423,7 @@ Multiple Tracks and Transitions:
        evenly, the correct frame is output and that we have 'producer like'
        behaviour.
 
-       Thus, a mulitrack is conceptually 'pulled' by a tractor as shown here:
+       Thus, a multitrack is conceptually 'pulled' by a tractor as shown here:
 
        +----------+
        |multitrack|
@@ -438,7 +445,7 @@ Multiple Tracks and Transitions:
 
        The tracks can be producers, playlists, or even other tractors. 
 
-       Now we wish to insert filters and transitions between the mulitrack and the
+       Now we wish to insert filters and transitions between the multitrack and the
        tractor. We can do this directly by inserting filters directly between the
        tractor and the multitrack, but this involves a lot of connecting and
        reconnecting left and right producers and consumers, and it seemed only fair
@@ -571,9 +578,9 @@ Multiple Tracks and Transitions:
 SECTION 3 - STRUCTURE AND DESIGN
 --------------------------------
 
-Class Heirachy:
+Class Hierarchy:
 
-       The mlt framework consists of an OO class heirachy which consists of the
+       The mlt framework consists of an OO class hierarchy which consists of the
        following public classes and abstractions:
 
        mlt_properties
@@ -643,7 +650,7 @@ mlt_properties:
        too.
 
        Steps 6 and 7 demonstrate that the properties object handles deserialisation
-       from strings. The string value of "50" is set, the integer value of 50 is
+       from strings. The string value of "0" is set, the integer value of 0 is
        retrieved.
 
        Steps 8 and 9 demonstrate that the properties object handles serialisation
@@ -924,8 +931,8 @@ mlt_frame:
        |rescale.interp    |Use this scale method for test image|"string"          |
        +------------------+------------------------------------+------------------+
 
-       While most of these are mainly self explainatory, the normalised_width and
-       normalised_height values require a little explaination. These are required
+       While most of these are mainly self explanatory, the normalised_width and
+       normalised_height values require a little explanation. These are required
        to ensure that effects are consistently handled as PAL or NTSC, regardless 
        of the consumers or producers width/height image request. 
 
@@ -993,8 +1000,7 @@ mlt_service:
        void mlt_service_close( mlt_service this );
 
        Typically, only direct descendents of services need invoke these methods and
-       developers are encouraged to use those extensions when definining new
-       services. 
+       developers are encouraged to use those extensions when defining new services. 
 
 
 mlt_producer:
index ed417d99b65902fff90fe1bf637c50ff8f3cf9cf..6749ee52bd4fd8366d56c4b05173226f2eb97f07 100644 (file)
@@ -1,14 +1,21 @@
+Inigo Documentation
+
+Copyright (C) 2004 Ushodaya Enterprised Limited
+Author: Charles Yates <charles.yates@pandora.be>
+Last Revision: 2004-03-20
+
+
 INIGO
 -----
 
 Preamble:
 
-       inigo was developed as a test tool for the MLT framework. It can
-       be thought of as a powerful, if somewhat obscure, multitrack
-       command line oriented video editor.
+       inigo was developed as a test tool for the MLT framework. It can be thought
+       of as a powerful, if somewhat obscure, multitrack command line oriented 
+       video editor.
 
-       The following details the usage of the tool and as a result,
-       provides a lot of insight into the workings of the MLT framework.
+       The following details the usage of the tool and as a result, provides a lot 
+       of insight into the workings of the MLT framework.
 
 
 Usage:
@@ -18,7 +25,7 @@ Usage:
              [ -filter id[:arg] [ name=value ] * ]
              [ -transition id[:arg] [ name=value ] * ]
              [ -blank frames ]
-             [ -track ]
+             [ -track | -hide-track | -hide-video | -hide-audio ]
              [ producer [ name=value ] * ]+
              [ -serialise file.inigo ]
 
@@ -29,47 +36,43 @@ General rules:
 
        2. Error checking on command line parsing is weak;
 
-       3. Please refer to services.txt for details on services 
-       available;
+       3. Please refer to services.txt for details on services available;
 
-       4. The MLT framework, from which inigo has inherited its 
-       naming convention, is very mlt-centric. Producers produce 
-       MLT frame objects and consumers consume MLT frame objects. 
-       The distinction is important - a DV producer does not produce 
-       DV, it produces MLT frames from a DV source, and similarly a 
-       DV consumer does not consume DV, it consumes MLT frames and 
-       produces DV frames.
+       4. The MLT framework, from which inigo has inherited its naming convention,
+       is very mlt-centric. Producers produce MLT frame objects and consumers 
+       consume MLT frame objects.  The distinction is important - a DV producer 
+       does not produce DV, it produces MLT frames from a DV source, and similarly
+       a DV consumer does not consume DV, it consumes MLT frames and produces DV
+       frames.
 
 
 Terminology:
 
-       'Producers' typically refer to files but may also indicate
-       devices (such as dv1394 input or video4linux). Hence, the more
-       generic term is used [yes, the more generic usage is out of
-       scope for now...].
+       'Producers' typically refer to files but may also indicate devices (such as
+       dv1394 input or video4linux). Hence, the more generic term is used [the more 
+       generic usage is out of scope for now...].
 
-       'Filters' are frame modifiers - they always guarantee that for
-       every frame they receive, they output *precisely* one frame.
-       Never more, never less, ever.
+       'Filters' are frame modifiers - they always guarantee that for every frame 
+       they receive, they output *precisely* one frame.  Never more, never less, 
+       ever. Nothing says that a filter cannot generate frames though
        
-       'Transitions' collect frames from two tracks (a and b) and
-       output 1 modified frame on their 'a track', and 1 unmodified
-       frame on their 'b track'. Never more, never less, ever.
+       'Transitions' collect frames from two tracks (a and b) and output 1 
+       modified frame on their 'a track', and 1 unmodified frame on their 'b track'.
+       Never more, never less, ever.
        
-       'Consumers' collect frames from a producer, do something with
-       them and destroy them.
+       'Consumers' collect frames from a producer, do something with them and
+       destroy them.
        
        Collectively, these are known as 'services'. 
        
-       All services have 'properties' associated to them. These are
-       typically defaulted or evaluated and may be overriden on a case
-       by case basis.
+       All services have 'properties' associated to them. These are typically
+       defaulted or evaluated and may be overriden on a case by case basis.
        
        All services except consumers obey in and out properties.
        
-       Consumers have no say in the flow of frames [though they may
-       give the illusion that they do]. They get frames from a
-       connected producer, use them, destroy them and get more.
+       Consumers have no say in the flow of frames [though they may give the
+       illusion that they do]. They get frames from a connected producer, use them, 
+       destroy them and get more.
 
 
 Basics:
@@ -77,24 +80,29 @@ Basics:
        To play a file with the default SDL PAL consumer, usage is:
        
        $ inigo file
-       
-       Note that 'file' can be anything that inigo has a known
-       'producer' mapping for (so this can be anything from .dv to
-       .txt).
+
+       Note that 'file' can be anything that inigo has a known 'producer' mapping 
+       for (so this can be anything from .dv to .txt).
+
+       You can also specify the producer directly, for example:
+
+       $ inigo avformat:file.mpeg
+
+       Would force the direct use of avformat for loading the file.
 
 
 Properties:
 
-       Properties can be assigned to the producer by adding additional
-       name=value pairs after the producer:
+       Properties can be assigned to the producer by adding additional name=value
+       pairs after the producer:
        
        $ inigo file in=50 out=100 something="something else"
        
-       Note that while some properties have meaning to all producers (for 
-       example: in, out and length are guaranteed to be valid for all, though 
-       typically, length is determined automatically), the validity of others 
-       are dependent on the producer - however, properties will always be 
-       assigned and silently ignored if they won't be used.
+       Note that while some properties have meaning to all producers (for example:
+       in, out and length are guaranteed to be valid for all, though typically, 
+       length is determined automatically), the validity of others are dependent on 
+       the producer - however, properties will always be assigned and silently 
+       ignored if they won't be used.
 
 
 Multiple Files:
@@ -123,7 +131,7 @@ Filters:
 
        As with producers, properties may be specified on filters too.
        
-       Again, in and out properties are common to all, so to apply a filter to a 
+       Again, in and out properties are common to all, so to apply a filter to a
        range of frames, you would use something like:
        
        $ inigo a.dv -filter greyscale in=0 out=50
@@ -134,21 +142,21 @@ Filters:
 
 Groups:
 
-       The -group switch is provided to force default properties on the
-       following 'services'. For example:
+       The -group switch is provided to force default properties on the following
+       'services'. For example:
        
        $ inigo -group in=0 out=49 clip*
        
-       would play the first 50 frames of all clips that match the wild
-       card pattern.
+       would play the first 50 frames of all clips that match the wild card
+       pattern.
        
-       Note that the last -group settings also apply to the following
-       filters, transitions and consumers, so:
+       Note that the last -group settings also apply to the following filters, 
+       transitions and consumers, so:
        
        $ inigo -group in=0 out=49 clip* -filter greyscale
        
-       is *probably not* what you want (ie: the greyscale filter would
-       only be applied to the first 50 frames).
+       is *probably not* what you want (ie: the greyscale filter would only be 
+       applied to the first 50 frames).
        
        To shed the group properties, you can use any empty group:
        
@@ -161,27 +169,32 @@ Introducing Tracks and Blanks:
        playlist, or more accurately, track.
 
        When multiple tracks exist, the consumer will receive a frame
-       from the 'lowest numbered' track that is generating a non-blank
+       from the 'highest numbered' track that is generating a non-blank
        frame.
        
        It is best to visualise a track arrangement, so we'll start with
        an example:
        
-       $ inigo a.dv in=0 out=49 -track b.dv
+       $ inigo a.dv -track b.dv in=0 out=49
        
        This can be visualised as follows:
        
-       +-------+
-       |a      |
-       +-------+----------+
-       |b                 |
        +------------------+
-       
-       Playout will show the first 50 frames of a and the 51st frame
-       shown will be the 51st frame of b.
-       
-       To have the 51st frame be the first frame of b, we can use the 
-       -blank switch:
+       |a                 |
+       +-------+----------+
+       |b      |
+       +-------+
+
+       Playout will show the first 50 frames of b and the 51st frame shown will be
+       the 51st frame of a.
+
+       This rule also applies to audio only producers on the second track, for
+       example, the following would show the video from the a track, but the audio
+       would come from the second track:
+
+       $ inigo a.dv -track b.mp3 in=0 out=49
+
+       To have the 51st frame be the first frame of b, we can use the -blank switch:
        
        $ inigo a.dv out=49 -track -blank 49 b.dv
        
index 52b50a6d8e158a8f45cd2de80ba6335b8d650b5e..e4b3b8dfb825eff6c8dd58bdf7762dee4f7c93c9 100644 (file)
@@ -90,36 +90,34 @@ Testing
 Installation
 ------------
 
-       * NOT IMPLEMENTED YET *
-
-       The install is triggered by running make install or make install-strip
-       from the top level directory.
+       The install is triggered by running make install from the top level
+       directory.
        
        The framework produces a single shared object which is installed in 
        $prefix/lib/ and public header files which are installed in
        $prefix/include/mlt/framework.
 
-       The client produces a single shared object which is installed in 
+       Valerie produces a single shared object which is installed in 
        $prefix/lib/ and public header which are installed in 
-       $prefix/include/mlt/client.
+       $prefix/include/mlt/valerie.
 
-       The server produces a single exectuable which is installed in
-       $prefix/bin/. This is linked against the framework shared object and
-       posix libs but not against any of the modules.
+       Miracle produces a single exectuable which is installed in
+       $prefix/bin/, a library in $prefix/lib and associated header files in
+       $prefix/include.
 
        The modules produce a shared object per module and update text files
        containing a list of modules provided by this build. These are installed 
-       in $prefix/share/mlt/. It is at the discretion of the module to install
-       additional support files. 
+       in $prefix/share/mlt/modules. It is at the discretion of the module to 
+       install additional support files. 
        
-       To allow the development of external components, mlt-client-config and
-       mlt-framework-config scripts are generated and installed in $prefix/bin.
+       To allow the development of external components, mlt-config and scripts 
+       are generated and installed in $prefix/bin.
 
        After install, only those modules listed are usable by the server. No
        module is loaded unless explicitly requested via server configuration
        or usage.
 
-       External modules are also placed in this $prefix/share/mlt, and the 
+       External modules are also placed in this $prefix/share/mlt/modules, and the
        installation of those must modify the text file accordingly before they
        will be considered at runtime.
 
index 068a79ad39fe4fb9dffa716ed389d137cfe1e33b..e932147722bb55bd1b203f714d7fba1bdc0b0ee0 100644 (file)
+Service Documentation
+
+Copyright (C) 2004 Ushodaya Enterprises Limited
+Authors: Charles Yates <charles.yates@pandora.be>
+            Dan Dennedy <dan@dennedy.org>
+Last Revision: 2004-03-20
+
+
 SERVICES
 --------
 
-Services marked as "(Proprietary)" are not distributed with the GPL version
-of mlt.
+       Services marked as "(Proprietary)" are not distributed with the GPL version
+       of mlt.
 
 Producers
 ---------
 
        avformat
 
-               Description
+           Description
 
-                       ffmpeg libavformat based producer for video and audio.
+               ffmpeg libavformat based producer for video and audio.
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file' - a filename specification or URL in the form:
-                            [{protocol}|{format}]:{resource}[?{format-parameter}[&{format-parameter}...]]
-                                For example, video4linux:/dev/video1?width:320&height:240
-                                Note: on the bash command line, & must be escaped as '\&'.
-                                        Also, note the use of ':' instead of '=' for parameters.
-                                Use 'ffmpeg -formats' to see a list of supported protocols 
-                                and formats.
-                                        
-               Details
-               
-                       Format parameters only appear to be useful with 'video4linux' or
-                       'audio_device' formats. For 'video4linux' the parameters are
-                       width, height, frame_rate, frame_rate_base, and standard (ntsc|pal).
-                       For 'audio_device' the parameters are channels and sample_rate.
+               'file' - a filename specification or URL in the form:
+                        [{protocol}|{format}]:{resource}[?{format-parameter}[&{format-parameter}...]]
+                        For example, video4linux:/dev/video1?width:320&height:240
+                        Note: on the bash command line, & must be escaped as '\&'.
+                        Also, note the use of ':' instead of '=' for parameters.
+                        Use 'ffmpeg -formats' to see a list of supported protocols 
+                        and formats.
+                        
+           Details
+           
+               Format parameters only appear to be useful with 'video4linux' or
+               'audio_device' formats. For 'video4linux' the parameters are
+               width, height, frame_rate, frame_rate_base, and standard (ntsc|pal).
+               For 'audio_device' the parameters are channels and sample_rate.
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int video_index - index of video stream to use (-1 is off)
-                       int audio_index - index of audio stream to use (-1 is off)
-                       int in - in point
-                       int out - out point
+               int video_index - index of video stream to use (-1 is off)
+               int audio_index - index of audio stream to use (-1 is off)
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file location
-                       double fps - this is fixed at 25 for PAL currently
-                       double source_fps - the framerate of the resource
-                       double aspect_ratio - sample aspect ratio of the resource
-                                           - this is determined on every frame read
+               string resource - file location
+               double fps - this is fixed at 25 for PAL currently
+               double source_fps - the framerate of the resource
+               double aspect_ratio - sample aspect ratio of the resource
+                                   - this is determined on every frame read
 
-               Dependencies
+           Dependencies
 
-                       ffmpeg must be configured as --enable-shared and installed prior
-                       to compilation of mlt.
+               ffmpeg must be configured as --enable-shared and installed prior
+               to compilation of mlt.
 
-               Known Bugs
+           Known Bugs
 
-                       Audio sync discrepancy with some content.
-                       Not all libavformat supported formats are seekable.
-                       Ogg Vorbis is currently broken.
-                       MPEG seeking is inaccurate - doesn't seek to i-frames so you may
-                       get junk for a few frames.
-                       RAW DV seeking not supported.
-                       Fails to play beyond first frame of video of sources with PTS not
-                       starting at 0 (video4linux).
+               Audio sync discrepancy with some content.
+               Not all libavformat supported formats are seekable.
+               Ogg Vorbis is currently broken.
+               MPEG seeking is inaccurate - doesn't seek to i-frames so you may
+               get junk for a few frames.
+               RAW DV seeking not supported.
+               Fails to play beyond first frame of video of sources with PTS not
+               starting at 0 (video4linux).
 
        fezzik
 
-               Description
+           Description
 
-                       A friendly giant that likes to rhyme and throw rocks
+               A friendly giant that likes to rhyme and throw rocks
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file'  - a filename specification:
-                                 [{mlt-service}:]{resource} | {mlt-service}
-                               - can also be the name of a producer service that can
-                                         accept the resource specified post construction.
+               'file'    - a filename specification:
+                         [{mlt-service}:]{resource} | {mlt-service}
+                       - can also be the name of a producer service that can
+                         accept the resource specified post construction.
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
-                       + all producer initialising properties
+               int in - in point
+               int out - out point
+               + all producer initialising properties
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file location
-                       + all producer read only properties
+               string resource - file location
+               + all producer read only properties
 
-               Details
+           Details
 
-                       This producer is has two roles:
+               This producer is has two roles:
 
-                       1. it handles the mappings of all file names to the other
-                       producers;
-                       2. it attaches normalising filters (rescale, resize and resample)
-                       to the producers (when necessary).
+               1. it handles the mappings of all file names to the other
+               producers;
+               2. it attaches normalising filters (rescale, resize and resample)
+               to the producers (when necessary).
 
-                       This producer simplifies many aspects of use. Essentially, it
-                       ensures that a consumer will receive images and audio precisely as
-                       they request them. 
+               This producer simplifies many aspects of use. Essentially, it
+               ensures that a consumer will receive images and audio precisely as
+               they request them. 
 
-               Dependencies
+           Dependencies
 
-                       all.
+               all.
 
-               Known Bugs
+           Known Bugs
 
-                       None.
+               None.
 
        
        colour
        
-               Description
-               
-                       A simple colour generator.
-                       
-               Constructor Argument
-               
-                       colour - A colour value is a hexadecimal representation of RGB plus
-                                alpha channel as 0xrrggbbaa.
-                              - Also colours can be the words: white, black, red, green,
-                                or blue.
-                              - The default colour is black.
-                                  
-               Initialisation Properties
-               
-                       none
-                       
-               Read Only Properties
-               
-                       none
-                       
-               Dependencies
-               
-                       none
-                       
-               Known Bugs
-               
-                       none
+           Description
+           
+               A simple colour generator.
+               
+           Constructor Argument
+           
+               colour - A colour value is a hexadecimal representation of RGB plus
+                        alpha channel as 0xrrggbbaa.
+                      - Also colours can be the words: white, black, red, green,
+                        or blue.
+                      - The default colour is black.
+                      
+           Initialisation Properties
+           
+               none
+               
+           Read Only Properties
+           
+               none
+               
+           Dependencies
+           
+               none
+               
+           Known Bugs
+           
+               none
 
        
        ffmpeg (DEPRECATED)
 
-               Description
+           Description
 
-                       Test case pipe based producer for video and audio.
+               Test case pipe based producer for video and audio.
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file'  - produce a/v from file
-                       v4l             - produce a/v from video4linux and dsp device
+               'file'    - produce a/v from file
+               v4l        - produce a/v from video4linux and dsp device
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       string video_type - "file" or "v4l"
-                       string video_file - file or v4l device
-                       string video_size - WxH of video to produce (default: "")
-                       int video_loop - loop video until audio exhausted (default: 0)
-                       string audio_type - "file" or "dsp"
-                       string audio_file - file or dsp device
-                       int audio_rate - audio frequency (default: 48000)
-                       int audio_channels - audio channels (default: 2)
-                       int audio_track - audio track to use (default: 0)
-                       int audio_loop - loop audio until video exhausted (default: 0)
-                       int in - in point
-                       int out - out point
-                       double fps - output frames per second (default: 25)
-                       double aspect_ratio - aspect ratio of video
+               string video_type - "file" or "v4l"
+               string video_file - file or v4l device
+               string video_size - WxH of video to produce (default: "")
+               int video_loop - loop video until audio exhausted (default: 0)
+               string audio_type - "file" or "dsp"
+               string audio_file - file or dsp device
+               int audio_rate - audio frequency (default: 48000)
+               int audio_channels - audio channels (default: 2)
+               int audio_track - audio track to use (default: 0)
+               int audio_loop - loop audio until video exhausted (default: 0)
+               int in - in point
+               int out - out point
+               double fps - output frames per second (default: 25)
+               double aspect_ratio - aspect ratio of video
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file or "v4l"
-                       int end_of_clip - holds 1 when input is exhausted
+               string resource - file or "v4l"
+               int end_of_clip - holds 1 when input is exhausted
 
-               Dependencies
+           Dependencies
 
-                       ffmpeg executable.
+               ffmpeg executable.
 
-               Known Bugs
+           Known Bugs
 
-                       in point setting is broken.
+               in point setting is broken.
 
-                       Implementation does not allow fast random access.
+               Implementation does not allow fast random access.
 
        libdv
 
-               Description
+           Description
 
-                       libdv based decoder for video and audio.
+               libdv based decoder for video and audio.
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file'  - produce a/v from file
+               'file'    - produce a/v from file
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file location
-                       double fps - output frames per second
-                       int length - duration of resource (in frames)
-                       
-               Mutable Properties
-               
-                       string quality - one of "best," "fast" or anything else chooses
-                                        medium.
+               string resource - file location
+               double fps - output frames per second
+               int length - duration of resource (in frames)
+               
+           Mutable Properties
+           
+               string quality - one of "best," "fast" or anything else chooses
+                                medium.
 
-               Dependencies
+           Dependencies
 
-                       libdv.
+               libdv.
 
-               Known Bugs
+           Known Bugs
 
-                       DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
-                       libdv from CVS or a post 0.101 release. 
+               DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
+               libdv from CVS or a post 0.101 release. 
 
        mcdv (Proprietary)
 
-               Description
+           Description
 
-                       MainConcept based dv decoder for video and audio.
+               MainConcept based dv decoder for video and audio.
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file'  - produce a/v from file
+               'file'    - produce a/v from file
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file location
-                       double fps - output frames per second
-                       int length - duration of resource (in frames)
+               string resource - file location
+               double fps - output frames per second
+               int length - duration of resource (in frames)
 
-               Dependencies
+           Dependencies
 
-                       MainConcept DV or DVCPRO SDK, libdv.
-                       "dv_sdk" installed parallel to mlt.
+               MainConcept DV or DVCPRO SDK, libdv.
+               "dv_sdk" installed parallel to mlt.
 
-               Known Bugs
+           Known Bugs
 
-                       None
+               None
 
        mcmpeg (Proprietary)
 
-               Description
+           Description
+
+               MainConcept based mpeg decoder for video and audio.
+
+           Constructor Argument
+
+               'file'    - produce a/v from file
+
+           Initialisation Properties
+
+               int in - in point
+               int out - out point
+
+           Read Only Properties
+
+               string resource - file location
+               double fps - output frames per second
+               double aspect_ratio - sample aspect ratio of video
+               int length - duration of resource (in frames)
+               
+           Dependencies
+
+               MainConcept MPEG SDK.
+               "mpeg_sdk_release" installed parallel to mlt.
+
+           Known Bugs
+
+               None.
+
+       noise
+
+           Description
 
-                       MainConcept based mpeg decoder for video and audio.
+               White noise producer
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file'  - produce a/v from file
+               none
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file location
-                       double fps - output frames per second
-                       double aspect_ratio - sample aspect ratio of video
-                       int length - duration of resource (in frames)
-                       
-               Dependencies
+               string resource - file location
+               double fps - output frames per second
+               double aspect_ratio - sample aspect ratio of video
+               int length - duration of resource (in frames)
+               
+           Dependencies
 
-                       MainConcept MPEG SDK.
-                       "mpeg_sdk_release" installed parallel to mlt.
+               none
 
-               Known Bugs
+           Known Bugs
 
-                       None.
+               none
 
        pango
 
-               Description
-
-                       A title generator that uses the Pango international text layout
-                       and Freetype2 font renderer.
-
-               Constructor Argument
-
-                       string file - a text file containing Pango markup, see:
-                       http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
-                                   - requires xml-like encoding special chars from: 
-                                     <, >, &   -to-   &lt;, &gt;, &amp;
-                                                 
-               Details
-               
-                       Supplying a filename with extension ".txt" causes the Fezzik 
-                       producer to load with pango. If the filename begins with "+" the 
-                       pango producer interprets the filename as pango text. This is a
-                       shortcut to embed titles in inigo commands. For westley, it is 
-                       recommended that you embed the title text in the property value.
-                       
-                       Pango has builtin scaling. It will rescale the originally rendered
-                       title to whatever the consumer requests. Therefore, it will lose
-                       its aspect ratio if so requested, and it is up to the consumer to
-                       request a proper width and height that maintains the image aspect.
-
-               Initialisation Properties
-
-                       int in - in point
-                       int out - out point
-
-               Mutable Properties
-
-                       string markup - a string containing Pango markup see:
-                       http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
-                                     - requires xml-like encoding special chars from: 
-                                       <, >, &   -to-   &lt;, &gt;, &amp;
-                       string fgcolour - an RGBA colour specification of the text 
-                                         (i.e. 0xrrggbbaa)
-                       string bgcolour - an RGBA colour of the background rectangle
-                       string align - paragraph alignment: left, centre, right
-                                    - also, numbers 0, 1 and 2 can be used respectively.
-                       int pad - the number of pixels to pad the background rectangle 
-                                 beyond edges of text. default 0.
-                       string markup - see constructor argument
-                       string text - non-markup string in UTF-8 encoding (can contain 
-                                     markup chars un-encoded)
-                       string font - the default typeface to use when not using markup.
-                                     default "Sans 48". FreeType2 renders at 72 dpi.
-                       string encoding - the text encoding type of the input if not UTF-8.
-                                       - see 'iconv --list' for a list of possible inputs.
-
-               Read Only Properties
-
-                       string resource - the text/markup file or "pango" if no file.
-                       int real_width - the original, unscaled width of the rendered title.
-                       int real_height - the original, unscaled height of the title.
-                       int width - the last requested scaled image width.
-                       int height - the last requested scaled image height.
-
-               Dependencies
-
-                       libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0, 
-                       libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
-
-               Known Bugs
-
-                       The foreground and background Pango markup span attributes are not
-                       supported.
-                       Word wrapping is not supported.
+           Description
+
+               A title generator that uses the Pango international text layout
+               and Freetype2 font renderer.
+
+           Constructor Argument
+
+               string file - a text file containing Pango markup, see:
+               http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
+                           - requires xml-like encoding special chars from: 
+                             <, >, &   -to-   &lt;, &gt;, &amp;
+                             
+           Details
+           
+               Supplying a filename with extension ".txt" causes the Fezzik 
+               producer to load with pango. If the filename begins with "+" the 
+               pango producer interprets the filename as pango text. This is a
+               shortcut to embed titles in inigo commands. For westley, it is 
+               recommended that you embed the title text in the property value.
+               
+               Pango has builtin scaling. It will rescale the originally rendered
+               title to whatever the consumer requests. Therefore, it will lose
+               its aspect ratio if so requested, and it is up to the consumer to
+               request a proper width and height that maintains the image aspect.
+
+           Initialisation Properties
+
+               int in - in point
+               int out - out point
+
+           Mutable Properties
+
+               string markup - a string containing Pango markup see:
+               http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
+                             - requires xml-like encoding special chars from: 
+                               <, >, &   -to-   &lt;, &gt;, &amp;
+               string fgcolour - an RGBA colour specification of the text 
+                                 (i.e. 0xrrggbbaa)
+               string bgcolour - an RGBA colour of the background rectangle
+               string align - paragraph alignment: left, centre, right
+                            - also, numbers 0, 1 and 2 can be used respectively.
+               int pad - the number of pixels to pad the background rectangle 
+                         beyond edges of text. default 0.
+               string markup - see constructor argument
+               string text - non-markup string in UTF-8 encoding (can contain 
+                             markup chars un-encoded)
+               string font - the default typeface to use when not using markup.
+                             default "Sans 48". FreeType2 renders at 72 dpi.
+               string encoding - the text encoding type of the input if not UTF-8.
+                               - see 'iconv --list' for a list of possible inputs.
+
+           Read Only Properties
+
+               string resource - the text/markup file or "pango" if no file.
+               int real_width - the original, unscaled width of the rendered title.
+               int real_height - the original, unscaled height of the title.
+               int width - the last requested scaled image width.
+               int height - the last requested scaled image height.
+
+           Dependencies
+
+               libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0, 
+               libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
+
+           Known Bugs
+
+               The foreground and background Pango markup span attributes are not
+               supported.
+               Word wrapping is not supported.
 
        pixbuf
 
-               Description
+           Description
 
-                       A still graphics to video generator using gdk-pixbuf
+               A still graphics to video generator using gdk-pixbuf
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file' - The name of a graphics file loadable by
-                                a gdk-pixbuf loader. see /usr/lib/gdk-pixbuf/loaders
-                                definitely png, jpeg, tiff, pnm, and xpm
-                              - If "%" in filename, the filename is used with sprintf
-                                generate a filename from a counter for multi-file/flipbook 
-                                animation. The file sequence ends when numeric 
-                                discontinuity >100.
-                              - If filename contains "/.all.", suffix with an extension to 
-                                load all pictures with matching extension from a directory.
-                              - If filename contains the string "<svg", then pixbuf tries
-                                to load the filename as inline SVG XML, which is convenient
-                                for inigo commands.
-                                        
-               Details
-               
-                       Pixbuf has builtin scaling. It will rescale the originally rendered
-                       title to whatever the consumer requests. Therefore, it will lose
-                       its aspect ratio if so requested, and it is up to the consumer to
-                       request a proper width and height that maintains the image aspect.
+               'file' - The name of a graphics file loadable by
+                        a gdk-pixbuf loader. see /usr/lib/gdk-pixbuf/loaders
+                        definitely png, jpeg, tiff, pnm, and xpm
+                      - If "%" in filename, the filename is used with sprintf
+                        generate a filename from a counter for multi-file/flipbook 
+                        animation. The file sequence ends when numeric 
+                        discontinuity >100.
+                      - If filename contains "/.all.", suffix with an extension to 
+                        load all pictures with matching extension from a directory.
+                      - If filename contains the string "<svg", then pixbuf tries
+                        to load the filename as inline SVG XML, which is convenient
+                        for inigo commands.
+                        
+           Details
+           
+               Pixbuf has builtin scaling. It will rescale the originally rendered
+               title to whatever the consumer requests. Therefore, it will lose
+               its aspect ratio if so requested, and it is up to the consumer to
+               request a proper width and height that maintains the image aspect.
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Mutable Properties
+           Mutable Properties
 
-                       int ttl - how long (in frames) to repeat each picture in file 
-                                 sequences. default is 25.
+               int ttl - how long (in frames) to repeat each picture in file 
+                         sequences. default is 25.
 
-               Read Only Properties
+           Read Only Properties
 
-                       string resource - file location. See Constructor Argument above.
-                       int real_width - the original, unscaled width of the rendered title.
-                       int real_height - the original, unscaled height of the title.
-                       int width - the last requested scaled image width.
-                       int height - the last requested scaled image height.
+               string resource - file location. See Constructor Argument above.
+               int real_width - the original, unscaled width of the rendered title.
+               int real_height - the original, unscaled height of the title.
+               int width - the last requested scaled image width.
+               int height - the last requested scaled image height.
 
-               Dependencies
+           Dependencies
 
-                       libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
+               libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
 
-               Known Bugs
+           Known Bugs
 
-                       XXX: in/out settings are incorrectly handled.
+               XXX: in/out settings are incorrectly handled.
 
        ppm
        
-               Description
+           Description
 
-                       Reads a stream of contiguous PPM images.
-                       
-               Constructor Argument
+               Reads a stream of contiguous PPM images.
+               
+           Constructor Argument
 
-                       command - a shell command to run something that produces ppm
-                                 streams on stdout.
-                       
-               Initialisation Properties
+               command - a shell command to run something that produces ppm
+                         streams on stdout.
+               
+           Initialisation Properties
 
-                       none
-                       
-               Read Only Properties
+               none
+               
+           Read Only Properties
 
-                       string resource - the command
-                       
-               Dependencies
+               string resource - the command
+               
+           Dependencies
 
-                       none
-                       
-               Known Bugs
+               none
+               
+           Known Bugs
 
-                       Since it uses pipes, it is not compatible with bluefish.
+               Since it uses pipes, it is not compatible with bluefish.
 
        westley
 
-               Description
+           Description
 
-                       Construct a service network from an XML description.
-                       See docs/westley.txt.
+               Construct a service network from an XML description.
+               See docs/westley.txt.
 
-               Constructor Argument
+           Constructor Argument
 
-                       URL - an XML text file containing westley XML (schema/DTD pending)
-                           - Since westley files can be parameterised, the URL syntax is:
-                             {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
-                                 A colon is allowed instead of an equal sign to pacify inigo,
-                                 who tokenises anything with an equal sign as a property 
-                                 setting. Also, when running inigo from the shell, beware of
-                                 the '?' and shell filename expansion. You can surround the URL
-                                 with single quotations to prevent expansion. Finally, fezzik
-                                 will fail to match the filename when you use parameters, so
-                                 preface the url with 'westley:' to force fezzik to load with
-                                 the westley service.
-                                 
-               Read Only Properties
+               URL - an XML text file containing westley XML (schema/DTD pending)
+                   - Since westley files can be parameterised, the URL syntax is:
+                     {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
+                     A colon is allowed instead of an equal sign to pacify inigo,
+                     who tokenises anything with an equal sign as a property 
+                     setting. Also, when running inigo from the shell, beware of
+                     the '?' and shell filename expansion. You can surround the URL
+                     with single quotations to prevent expansion. Finally, fezzik
+                     will fail to match the filename when you use parameters, so
+                     preface the url with 'westley:' to force fezzik to load with
+                     the westley service.
+                     
+           Read Only Properties
 
-                       string resource - file location
+               string resource - file location
 
-               Dependencies
+           Dependencies
 
-                       libxml2
+               libxml2
 
-               Known Bugs
+           Known Bugs
 
-                       Non-referenced producers and playlists are not destroyed until the 
-                       network is destroyed.
-                       A referenced producer or playlist must appear before the reference.
-                       A filter that occurs before a producer has been defined causes a 
-                       segfault.
+               Non-referenced producers and playlists are not destroyed until the 
+               network is destroyed.
+               A referenced producer or playlist must appear before the reference.
+               A filter that occurs before a producer has been defined causes a 
+               segfault.
 
        vorbis
 
-               Description
+           Description
 
-                       OGG Vorbis file reader.
+               OGG Vorbis file reader.
 
-               Constructor Argument
+           Constructor Argument
 
-                       'file' - file to use (only .ogg supported at the moment)
+               'file' - file to use (only .ogg supported at the moment)
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       double fps - this is fixed at 25 for PAL currently
+               double fps - this is fixed at 25 for PAL currently
 
-               Dependencies
+           Dependencies
 
-                       libvorbisfile
+               libvorbisfile
 
-               Known Bugs
+           Known Bugs
 
-                       Fixed frame size (PAL audio chunks).
-                       Doesn't cover ogg files with multiple, differing sections.
+               Fixed frame size (PAL audio chunks).
+               Doesn't cover ogg files with multiple, differing sections.
 
 Filters
 -------
 
        brightness
        
-               Description
-               
-                       Shift the luma component using a constant value.
-                       
-               Constructor Argument
-               
-                       start - the constant floating point numeric value to apply.
-                             - the default is 0.
-                       
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
-                       double start - see Constructor Argument above.
-                       double end - the ending adjustment value. the filter interpolates
-                                    between the start and end adjustments over the 
-                                    duration of the effect.
-                                                
-               Read Only Properties
-               
-                       none
-                       
-               Dependencies
-               
-                       none
-                       
-               Known Bugs
-               
-                       Does not go completely to black or white.
-                       
+           Description
+           
+               Shift the luma component using a constant value.
+               
+           Constructor Argument
+           
+               start - the constant floating point numeric value to apply.
+                     - the default is 0.
+               
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
+               double start - see Constructor Argument above.
+               double end - the ending adjustment value. the filter interpolates
+                            between the start and end adjustments over the 
+                            duration of the effect.
+                            
+           Read Only Properties
+           
+               none
+               
+           Dependencies
+           
+               none
+               
+           Known Bugs
+           
+               Does not go completely to black or white.
+               
        
        channelcopy
        
-               Description
-               
-                       Copy audio from one channel to another channel.
-                       
-               Constructor Argument
-               
-                       to - the 0-indexed channel to copy into, default is 1.
-                       
-               Mutable Properties
-               
-                       int to - see above
-                       int from - the channel from which to copy, default is 0.
-                       
-               Dependencies
-               
-                       none
-                       
-               Known Bugs
-               
-                       none
-                       
+           Description
+           
+               Copy audio from one channel to another channel.
+               
+           Constructor Argument
+           
+               to - the 0-indexed channel to copy into, default is 1.
+               
+           Mutable Properties
+           
+               int to - see above
+               int from - the channel from which to copy, default is 0.
+               
+           Dependencies
+           
+               none
+               
+           Known Bugs
+           
+               none
+               
 
 
        deinterlace
        
-               Description
-
-                       Deinterlace a frame consisting of two fields using bob, weave,
-                       greedy, one-field, and linear blend methods. This code is 
-                       appropriated from the Xine XV video output plugin.
-               
-               Constructor Argument
-
-                       method - a string containing the deinterlace method: bob, weave,
-                                greedy, onefield, or linearblend. The default is
-                                        linearblend.
-               
-               Initialisation Properties
-
-                       int in - in point
-                       int out - out point
-                       
-               Read Only Properties
-
-                       none
-               
-               Mutable Properties
-               
-                       string method
-                       
-               Details
-               
-                       If the frame properties "progressive" or "consumer_progressive"
-                       are non-zero, then the filter is not applied. Also, if applied,
-                       this sets the frame property "progressive" to 1.
-
-               Dependencies
-
-                       none
-                       
-               Known Bugs
-
-                       Not a bug, but it only provides fair quality.
-                       
-               
+           Description
+
+               Deinterlace a frame consisting of two fields using bob, weave,
+               greedy, one-field, and linear blend methods. This code is 
+               appropriated from the Xine XV video output plugin.
+           
+           Constructor Argument
+
+               method - a string containing the deinterlace method: bob, weave,
+                        greedy, onefield, or linearblend. The default is
+                        linearblend.
+           
+           Initialisation Properties
+
+               int in - in point
+               int out - out point
+               
+           Read Only Properties
+
+               none
+           
+           Mutable Properties
+           
+               string method
+               
+           Details
+           
+               If the frame properties "progressive" or "consumer_progressive"
+               are non-zero, then the filter is not applied. Also, if applied,
+               this sets the frame property "progressive" to 1.
+
+           Dependencies
+
+               none
+               
+           Known Bugs
+
+               Not a bug, but it only provides fair quality.
+               
+           
        ffmpeg_dub
        
-               Description
-
-                   Use ffmpeg executable to substitute audio stream.
-               
-               Constructor Argument
-
-                       file - filename of a WAV, Ogg Vorbis (--enable-vorbis),
-                              MP3 (--enable-mp3lame), or AC-3 (--enable-a52) audio file.
-               
-               Initialisation Properties
-
-                       int in - in point
-                       int out - out point
-               
-               Read Only Properties
-               
-                       string resource - file
-                       
-               Dependencies
-
-                       ffmpeg plus for ffmpeg:
-                       libogg and libvorbis for Ogg Vorbis, libmp3lame for MP3, liba52 for AC-3.
-                       
-               Known Bugs
-
-                       Uses pipes and is therefore not compatible with bluefish.
-                       
+           Description
+
+               Use ffmpeg executable to substitute audio stream.
+           
+           Constructor Argument
+
+               file - filename of a WAV, Ogg Vorbis (--enable-vorbis),
+                      MP3 (--enable-mp3lame), or AC-3 (--enable-a52) audio file.
+           
+           Initialisation Properties
+
+               int in - in point
+               int out - out point
+           
+           Read Only Properties
+           
+               string resource - file
+               
+           Dependencies
+
+               ffmpeg plus for ffmpeg:
+               libogg and libvorbis for Ogg Vorbis, libmp3lame for MP3, liba52 for AC-3.
+               
+           Known Bugs
+
+               Uses pipes and is therefore not compatible with bluefish.
+               
 
        gamma
        
-               Description
+           Description
 
-                       Adjust image luma using a non-linear power-law curve
-                       
-               Constructor Argument
+               Adjust image luma using a non-linear power-law curve
+               
+           Constructor Argument
 
-                       gamma - a floating point value. The default is 1.0, or none.
-               
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
+               gamma - a floating point value. The default is 1.0, or none.
+           
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
 
-               Mutable Properties
+           Mutable Properties
 
-                       double gamma - the exponential factor of the power-law curve
-                       
-               Dependencies
+               double gamma - the exponential factor of the power-law curve
+               
+           Dependencies
 
-                       none
-                       
-               Known Bugs
+               none
+               
+           Known Bugs
 
-                       none
-                       
+               none
+               
        
        greyscale
        
-               Description
+           Description
 
-                       Convert colour image to greyscale
-                       
-               Constructor Argument
+               Convert colour image to greyscale
+               
+           Constructor Argument
 
-                       none
-                       
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
+               none
+               
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       none
-                       
-               Dependencies
+               none
+               
+           Dependencies
 
-                       none
-                       
-               Known Bugs
+               none
+               
+           Known Bugs
 
-                       none
-               
+               none
+           
        luma
        
-               Description
-               
-                       Applies a luma transition between the current and next frames.
-                       Useful for transitions from a slideshow created using producer
-                       pixbuf.
-                       
-               Constructor Argument
-               
-                       file - a luma wipe
-                       
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
-                       
-               Read Only Properties
-               
-                       none
-                       
-               Mutable Properties
-               
-                       int period - how long to wait between success iterations of the
-                                    transition. For best results set this to a multiple
-                                    of ttl used in pixbuf. The default is 24.
-                                                
-                       luma. - all properties beginning with "luma." are passed to the
-                               encapsulated luma transition. For example, luma.out controls
-                               the duration of the wipe.
-                       
-               Dependencies
-               
-                       transition_luma and its dependencies
-                       
-               Known Bugs
-               
-                       none
-               
+           Description
+           
+               Applies a luma transition between the current and next frames.
+               Useful for transitions from a slideshow created using producer
+               pixbuf.
+               
+           Constructor Argument
+           
+               file - a luma wipe
+               
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
+               
+           Read Only Properties
+           
+               none
+               
+           Mutable Properties
+           
+               int period - how long to wait between success iterations of the
+                            transition. For best results set this to a multiple
+                            of ttl used in pixbuf. The default is 24.
+                            
+               luma. - all properties beginning with "luma." are passed to the
+                       encapsulated luma transition. For example, luma.out controls
+                       the duration of the wipe.
+               
+           Dependencies
+           
+               transition_luma and its dependencies
+               
+           Known Bugs
+           
+               none
+           
        
        mirror
        
-               Description
-               
-                       Provides various mirror and image reversing effects.
-
-               Constructor Argument
-               
-                       mirror - horizontal, vertical, diagonal, flip, flop
-                       
-               Initialisation Properties
-               
-                       int reverse - being 0 or 1
-                       int in - in point
-                       int out - out point
-                       
-               Read Only Properties
-               
-                       none
-                       
-               Mutable Properties
-               
-                       none
-
-               Dependencies
-               
-                       none
-                       
-               Known Bugs
-               
-                       none
+           Description
+           
+               Provides various mirror and image reversing effects.
+
+           Constructor Argument
+           
+               mirror - horizontal, vertical, diagonal, flip, flop
+               
+           Initialisation Properties
+           
+               int reverse - being 0 or 1
+               int in - in point
+               int out - out point
+               
+           Read Only Properties
+           
+               none
+               
+           Mutable Properties
+           
+               none
+
+           Dependencies
+           
+               none
+               
+           Known Bugs
+           
+               none
 
 
        obscure
        
-               Description
+           Description
 
-                       Obscuring filter.
-                       
-               Constructor Argument
+               Obscuring filter.
+               
+           Constructor Argument
 
-                       none
-                       
-               Initialisation Properties
-               
-                       string start - in the format X,Y:WxH[:PWxPY]
-                                    - PWxPY is the size of the averaging region in pixels.
-                       string end - in the format X,Y:WxH[:PWxPY]
-                       int in - in point
-                       int out - out point
+               none
+               
+           Initialisation Properties
+           
+               string start - in the format X,Y:WxH[:PWxPY]
+                            - PWxPY is the size of the averaging region in pixels.
+               string end - in the format X,Y:WxH[:PWxPY]
+               int in - in point
+               int out - out point
 
-               Read Only Properties
+           Read Only Properties
 
-                       none
-                       
-               Dependencies
+               none
+               
+           Dependencies
 
-                       none
+               none
 
-               Known Bugs
+           Known Bugs
 
-                       none
+               none
 
        region
        
-               Description
-               
-                       Apply one or filters to a region of the video image. The region
-                       can be shaped as well using the alpha channel of another producer.
-                       
-               Constructor Argument
-               
-                       file - A file whose alpha channel will "shape"  the region.
-                            - The string "circle" is a shortcut but it requires pixbuf with
-                              the librsvg loader. The circle is automatically stretched
-                              to the region to create an ellipse.
+           Description
+           
+               Apply one or filters to a region of the video image. The region
+               can be shaped as well using the alpha channel of another producer.
+               
+           Constructor Argument
+           
+               file - A file whose alpha channel will "shape"  the region.
+                    - The string "circle" is a shortcut but it requires pixbuf with
+                      the librsvg loader. The circle is automatically stretched
+                      to the region to create an ellipse.
        
-               Initialisation Properties
-
-                       int in - in point
-                       int out - out point
-                       plus and region transition properties
-                       
-               Read Only Properties
-               
-                       see the region transition
-                       
-               Dependencies
-               
-                       transition_region
-                       
-               Known Bugs
-               
-                       "circle" is unpredictable in the absence of the librsvg pixbuf loader.
-                       
+           Initialisation Properties
+
+               int in - in point
+               int out - out point
+               plus and region transition properties
+               
+           Read Only Properties
+           
+               see the region transition
+               
+           Dependencies
+           
+               transition_region
+               
+           Known Bugs
+           
+               "circle" is unpredictable in the absence of the librsvg pixbuf loader.
+               
 
        resample
 
-               Description
+           Description
 
-                       Adjust an audio stream's sampling rate, and duplicate channels if 
-                       producer provides less than consumer requested.
-                       
-                       This filter is automatically invoked by Fezzik for the sake of
-                       normalisation over inputs and with the consumer.
+               Adjust an audio stream's sampling rate, and duplicate channels if 
+               producer provides less than consumer requested.
+               
+               This filter is automatically invoked by Fezzik for the sake of
+               normalisation over inputs and with the consumer.
 
-               Constructor Argument
+           Constructor Argument
 
-                       frequency - a numeric value for the new sample rate
+               frequency - a numeric value for the new sample rate
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Mutable Properties
+           Mutable Properties
 
-                       int frequency - the target sample rate
+               int frequency - the target sample rate
 
-               Dependencies
+           Dependencies
 
-                       libresample
+               libresample
 
-               Known Bugs
+           Known Bugs
 
-                       Assumes 2 channels during libsamplerate initialisation. Untested
-                       with >2 channels.
+               Assumes 2 channels during libsamplerate initialisation. Untested
+               with >2 channels.
 
        rescale
 
-               Description
+           Description
 
-                       Scale the producer video frame size to match the consumer.
-                       This filter is automatically invoked by Fezzik in order to normalise
-                       sample aspect ratio.
+               Scale the producer video frame size to match the consumer.
+               This filter is automatically invoked by Fezzik in order to normalise
+               sample aspect ratio.
 
-               Constructor Argument
+           Constructor Argument
 
-                       interpolation - the rescaling method, one of:
-                               nearest (lowest quality, fastest),
-                               tiles,
-                               bilinear (default; good quality, moderate speed),
-                               hyper (best quality, slowest).
+               interpolation - the rescaling method, one of:
+                   nearest (lowest quality, fastest),
+                   tiles,
+                   bilinear (default; good quality, moderate speed),
+                   hyper (best quality, slowest).
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Mutable Properties
+           Mutable Properties
 
-                       string interpolation - see constructor argument above
+               string interpolation - see constructor argument above
 
-                       If a property "consumer_aspect_ratio" exists on the frame, then
-                       rescaler normalises the producer's aspect ratio and maximises the
-                       size of the frame, but may not produce the consumer's requested
-                       dimension. Therefore, this option works best in conjunction with the
-                       resize filter. This behavior can be disabled by another service by
-                       either removing the property, setting it to zero, or setting
-                       frame property "distort" to 1.
+               If a property "consumer_aspect_ratio" exists on the frame, then
+               rescaler normalises the producer's aspect ratio and maximises the
+               size of the frame, but may not produce the consumer's requested
+               dimension. Therefore, this option works best in conjunction with the
+               resize filter. This behavior can be disabled by another service by
+               either removing the property, setting it to zero, or setting
+               frame property "distort" to 1.
 
-               Dependencies
+           Dependencies
 
-                       libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
+               libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
 
-               Known Bugs
+           Known Bugs
 
-                       none
+               none
 
        resize
        
-               Description
-
-                       Image scaling and padding and field order adjustment.
-                               
-               Details
-               
-                       Normally resize is used to pad the producer's
-                       output to what the consumer has requested after an upstream rescale
-                       filter first scales the image to maximise usage of the image area.
-                       This filter also adjusts the field order to lower field first
-                       if the frame property "top_field_first" has been set to 1.
-                       Therefore, when done, it sets the top_field_first to 0.
-                       This filter is automatically invoked by Fezzik as part of image
-                       sample aspect ratio normalisation.
-                       
-               Constructor Argument
-
-                       scale - "affine" to use affine transform scaling, otherwise
-                                center and pad.
-                       
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
-
-               Read Only Properties
-
-                       none
-                       
-               Dependencies
-
-                       none
-                       
-               Known Bugs
-
-                       Assumes lower field first output.
+           Description
+
+               Image scaling and padding and field order adjustment.
+                   
+           Details
+           
+               Normally resize is used to pad the producer's
+               output to what the consumer has requested after an upstream rescale
+               filter first scales the image to maximise usage of the image area.
+               This filter also adjusts the field order to lower field first
+               if the frame property "top_field_first" has been set to 1.
+               Therefore, when done, it sets the top_field_first to 0.
+               This filter is automatically invoked by Fezzik as part of image
+               sample aspect ratio normalisation.
+               
+           Constructor Argument
+
+               scale - "affine" to use affine transform scaling, otherwise
+                        center and pad.
+               
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
+
+           Read Only Properties
+
+               none
+               
+           Dependencies
+
+               none
+               
+           Known Bugs
+
+               Assumes lower field first output.
 
        volume
 
-               Description
+           Description
 
-                       Adjust an audio stream's volume level
-                       
-               Constructor Argument
+               Adjust an audio stream's volume level
+               
+           Constructor Argument
 
-                       gain - a string containing one of:
-                                - a floating point value of the gain adjustment
-                                - a numeric value with the suffix "dB" to adjust in terms of decibels
-                                - "normalise" to normalise the volume to the target amplitude -12dBFS
-                       
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
-                       int window - the number of video frames over which to smooth normalisation.
-                                    defaults to 75.
+               gain - a string containing one of:
+                    - a floating point value of the gain adjustment
+                    - a numeric value with the suffix "dB" to adjust in terms of decibels
+                    - "normalise" to normalise the volume to the target amplitude -12dBFS
+               
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
+               int window - the number of video frames over which to smooth normalisation.
+                            defaults to 75.
 
-               Mutable Properties
+           Mutable Properties
 
-                       string gain - same as constructor argument above
+               string gain - same as constructor argument above
 
-                       string normalise - normalise the volume to the amplitude:
-                               - a numeric value with the suffix "dB" to set amplitude in decibels
-                               - a floating point value of the relative volume
-                               - an unspecified value uses the default -12dBFS
+               string normalise - normalise the volume to the amplitude:
+                   - a numeric value with the suffix "dB" to set amplitude in decibels
+                   - a floating point value of the relative volume
+                   - an unspecified value uses the default -12dBFS
 
-                       string limiter - limit all samples above:
-                               - a numeric value with the suffix "dB"
-                               - a floating point value ( dB = 20 * log10(x) )
-                               - an unspecified value uses the default -6dBFS
+               string limiter - limit all samples above:
+                   - a numeric value with the suffix "dB"
+                   - a floating point value ( dB = 20 * log10(x) )
+                   - an unspecified value uses the default -6dBFS
 
-                       double max_gain - a floating point or decibel value of the maximum gain that
-                               can be applied during normalisation.
-                               - an unspecified value uses the default 20dB
+               double max_gain - a floating point or decibel value of the maximum gain that
+                   can be applied during normalisation.
+                   - an unspecified value uses the default 20dB
 
-                       string end - a gain value just like the gain property above.
-                                    This causes the gain to be interpolated from 'gain' to 'end'
-                                    over the duration.
+               string end - a gain value just like the gain property above.
+                            This causes the gain to be interpolated from 'gain' to 'end'
+                            over the duration.
 
-                       int window - the size of the normalising smoothing buffer in video frame units.
-                                  - the smoothing buffer prevents erratic gain changes.
-                                  - the default value is 75 video frames. 
+               int window - the size of the normalising smoothing buffer in video frame units.
+                          - the smoothing buffer prevents erratic gain changes.
+                          - the default value is 75 video frames. 
 
-                       gain can be applied as a factor to the normalise amplitude!
-                       
-               Dependencies
+               gain can be applied as a factor to the normalise amplitude!
+               
+           Dependencies
 
-                       none
-                       
-               Known Bugs
+               none
+               
+           Known Bugs
 
-                       none
+               none
 
        watermark
 
-               Description
+           Description
 
-                       Add a watermark to the frames.
+               Add a watermark to the frames.
 
-               Constructor Argument
+           Constructor Argument
 
-                       resource - the producer to use (ie: a .png)
+               resource - the producer to use (ie: a .png)
 
-               Initialisation Properties
+           Initialisation Properties
 
-                       string resource - the producer to use
-                       string factory - producer required for the resource ('fezzik')
-                       string geometry - composite geometry
-                       string distort - control scaling
-                       int in - in point
-                       int out - out point
+               string resource - the producer to use
+               string factory - producer required for the resource ('fezzik')
+               string geometry - composite geometry
+               string distort - control scaling
+               int in - in point
+               int out - out point
 
-               Mutable Properties
+           Mutable Properties
 
-                       none
+               none
 
-               Dependencies
+           Dependencies
 
-                       mlt core modules and optionally, fezzik
+               mlt core modules and optionally, fezzik
 
-               Known Bugs
+           Known Bugs
 
-                       none
+               none
 
 Transitions
 -----------
 
        composite
        
-               Description
-
-                       A key-framable alpha-channel compositor for two frames.
-                       
-               Details
-               
-                       Performs dissolves and luma wipes in addition to alpha compositing.
-                       
-                       By default, the aspect ratio of the B frame is respected and the
-                       size portion of the geometry specification simply defines a 
-                       bounding rectangle.
-               
-                       This performs field-based rendering unless the A frame property
-                       "progressive" or "consumer_progressive" or the transition property
-                       "progressive" is set to 1.
-                       
-               Constructor Argument
-
-                       string start - a geometry specification as X,Y:WxH[!][:mix]
-                                    - X, Y, W, H are assumed to pixel units unless they
-                                      have the suffix '%'
-                                    - '!' is a shortcut to specify distort, see below.
-                                    - mix is always a 2 digit percentage, defaults to 100.
-                                                - default is "85%,5%:10%x10%"
-
-               Initialisation Properties
-                       
-                       string end - the ending size and position.
-                       string key[F] - X,Y:WxH[:mix] - set a key frame for geometry between
-                                       the in and out. F is a frame number and can be
-                                       negative to make it relative to the out point.
-                       int in - in point
-                       int out - out point
-                       string factory - The name of a factory service used as a non-PGM
-                                        producer loader. The default is fezzik.
+           Description
+
+               A key-framable alpha-channel compositor for two frames.
+               
+           Details
+           
+               Performs dissolves and luma wipes in addition to alpha compositing.
+               
+               By default, the aspect ratio of the B frame is respected and the
+               size portion of the geometry specification simply defines a 
+               bounding rectangle.
+           
+               This performs field-based rendering unless the A frame property
+               "progressive" or "consumer_progressive" or the transition property
+               "progressive" is set to 1.
+               
+           Constructor Argument
+
+               string start - a geometry specification as X,Y:WxH[!][:mix]
+                            - X, Y, W, H are assumed to pixel units unless they
+                              have the suffix '%'
+                            - '!' is a shortcut to specify distort, see below.
+                            - mix is always a 2 digit percentage, defaults to 100.
+                            - default is "85%,5%:10%x10%"
+
+           Initialisation Properties
+               
+               string end - the ending size and position.
+               string key[F] - X,Y:WxH[:mix] - set a key frame for geometry between
+                               the in and out. F is a frame number and can be
+                               negative to make it relative to the out point.
+               int in - in point
+               int out - out point
+               string factory - The name of a factory service used as a non-PGM
+                                producer loader. The default is fezzik.
        
-               Read Only Properties
-
-                       none
-
-               Mutable Properties
-                       
-                       int progressive - set to 1 to disable field-based rendering.
-                       string distort - when set, causes the B frame image to fill the WxH
-                                        completely with no regard to B's aspect ratio.
-                       string halign - when not distorting, set the horizontal alignment
-                                       of B within the geometry rectangle.
-                                     - one of: left (0), centre (1), or right (2).
-                                     - the default is left.
-                       string valign - when not distorting, set the vertical alignment of 
-                                       B within the geometry rectangle.
-                                     - one of: top (0), middle (1), or bottom (2).
-                                     - the default is top.
-                       string luma - the luma map file name. If not supplied, a dissolve.
-                       double softness - only when using a luma map, how soft to make the
-                                         edges between A and B. 0.0 = no softness. 1.0 =
-                                         too soft.
-                       Any property starting with "luma." is passed to the non-PGM luma
-                           producer.
-
-               Dependencies
-
-                       none
-               
-               Known Bugs
-
-                       Assumes lower field first during field rendering.
+           Read Only Properties
+
+               none
+
+           Mutable Properties
+               
+               int progressive - set to 1 to disable field-based rendering.
+               string distort - when set, causes the B frame image to fill the WxH
+                                completely with no regard to B's aspect ratio.
+               string halign - when not distorting, set the horizontal alignment
+                               of B within the geometry rectangle.
+                             - one of: left (0), centre (1), or right (2).
+                             - the default is left.
+               string valign - when not distorting, set the vertical alignment of 
+                               B within the geometry rectangle.
+                             - one of: top (0), middle (1), or bottom (2).
+                             - the default is top.
+               string luma - the luma map file name. If not supplied, a dissolve.
+               double softness - only when using a luma map, how soft to make the
+                                 edges between A and B. 0.0 = no softness. 1.0 =
+                                 too soft.
+               Any property starting with "luma." is passed to the non-PGM luma
+                   producer.
+
+           Dependencies
+
+               none
+           
+           Known Bugs
+
+               Assumes lower field first during field rendering.
 
        luma
        
-               Description
-
-                       A generic dissolve and wipe transition processor.
-
-               Details
-
-                       luma gets its name
-                       from how it uses a grayscale "map" file. As the luma value varies
-                       over time, a threshold filter is applied to the map to determine
-                       what parts of frame A vs. frame B to show. It reads PGM files
-                       up to 16 bits! Alternatively, it can use the first frame from any
-                       producer that outputs yuv, but it will be limited to the luma
-                       gamut of 220 values.
-                       This performs field-based rendering unless the A frame property
-                       "progressive" or "consumer_progressive" or the transition property
-                       "progressive" is set to 1.
-               
-               Constructor Argument
-
-                       string resource - the luma map file name - either PGM or any other
-                                         producable video. 
-                                       - If not supplied, a dissolve.
-
-               Initialisation Properties
-               
-                       int in - in point
-                       int out - out point
-                       string factory - The name of a factory service used as a non-PGM
-                                        producer loader. The default is Fezzik.
-
-               Mutable Properties
-
-                       string resource - same as above
-                       double softness - only when using a luma map, how soft to make the
-                                         edges between A and B. 0.0 = no softness. 1.0 =
-                                         too soft.
-                       int reverse - reverse the direction of the transition.
-                       Any property starting with "producer." is passed to the non-PGM luma
-                           producer.
-                       
-               Read Only Properties
-
-                       none
-                       
-               Dependencies
-
-                       none
-                       
-               Known Bugs
-                       
-                       Assumes lower field first output.
+           Description
+
+               A generic dissolve and wipe transition processor.
+
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
+               string factory - The name of a factory service used as a non-PGM
+                                producer loader. The default is Fezzik.
+
+           Mutable Properties
+
+               string resource - same as above
+               double softness - only when using a luma map, how soft to make the
+                                 edges between A and B. 0.0 = no softness. 1.0 =
+                                 too soft.
+               int reverse - reverse the direction of the transition.
+               Any property starting with "producer." is passed to the non-PGM luma
+                   producer.
+               
+           Read Only Properties
+
+               none
+               
+           Dependencies
+
+               luma gets its name
+               from how it uses a grayscale "map" file. As the luma value varies
+               over time, a threshold filter is applied to the map to determine
+               what parts of frame A vs. frame B to show. It reads PGM files
+               up to 16 bits! Alternatively, it can use the first frame from any
+               producer that outputs yuv, but it will be limited to the luma
+               gamut of 220 values.
+               This performs field-based rendering unless the A frame property
+               "progressive" or "consumer_progressive" or the transition property
+               "progressive" is set to 1.
+           
+           Constructor Argument
+
+               string resource - the luma map file name - either PGM or any other
+                                 producable video. 
+                               - If not supplied, a dissolve.
+
+           Initialisation Properties
+           
+               int in - in point
+               int out - out point
+               string factory - The name of a factory service used as a non-PGM
+                                producer loader. The default is Fezzik.
+
+           Mutable Properties
+
+               string resource - same as above
+               double softness - only when using a luma map, how soft to make the
+                                 edges between A and B. 0.0 = no softness. 1.0 =
+                                 too soft.
+               Any property starting with "producer." is passed to the non-PGM luma
+                   producer.
+               
+           Read Only Properties
+
+               none
+               
+           Dependencies
+
+               none
+               
+           Known Bugs
+               
+               Assumes lower field first output.
 
        mix
 
-               Description
+           Description
 
-                       An two stream audio mixer.
+               An two stream audio mixer.
 
-               Constructor Argument
+           Constructor Argument
 
-                       start - see below
+               start - see below
 
-               Initalisation Properties
+           Initalisation Properties
 
-                       int in - in point
-                       int out - out point
+               int in - in point
+               int out - out point
 
-               Mutable Properties
+           Mutable Properties
 
-                       double start - the mix level to apply to the second frame.
-                                    - any negative value causes an automatic crossfade from 0 to 1.
-                       double end - the ending value of the mix level. mix level will be interpolated
-                                    from start to end over the in-out range.
-                       int reverse - set to 1 to reverse the direction of the mix.
+               double start - the mix level to apply to the second frame.
+                            - any negative value causes an automatic crossfade from 0 to 1.
+               double end - the ending value of the mix level. mix level will be interpolated
+                            from start to end over the in-out range.
+               int reverse - set to 1 to reverse the direction of the mix.
 
-               Read Only Properties
+           Read Only Properties
 
-                       none
+               none
 
-               Dependencies
+           Dependencies
 
-                       none
+               none
 
-               Known Bugs
+           Known Bugs
 
-                       Samples from the longer of the two frames are discarded.
-                       
+               Samples from the longer of the two frames are discarded.
+               
        
        region
        
-               Description
-               
-                       Apply zero or more filters to B frame as it is composited onto
-                       a region of the A frame. The "shape" of the region can be defined
-                       by the alpha channel of a third producer.
-                       
-               Constructor Argument
-
-                       resource - a shape producer
-               
-               Initialisation Properties
-               
-                       string resource - nothing is rectangle, "circle" is a pixbuf-
-                           generated SVG circle, anything else is loaded by the factory.
-                       string factory - the service that creates the shape producer.
-                                      - the default is fezzik.
-                       string filter[N] - one or more filters to apply. All filter
-                                          properties are passed using the same filter "key"
-                       Any property starting with "composite." is passed to the 
-                           encapsulated composite transition.
-                       
-               Read Only Properties
-               
-                       none
-                       
-               Dependencies
-               
-                       transition_composite
-                       
-               Known Bugs
-               
-                       none
-                       
+           Description
+           
+               Apply zero or more filters to B frame as it is composited onto
+               a region of the A frame. The "shape" of the region can be defined
+               by the alpha channel of a third producer.
+               
+           Constructor Argument
+
+               resource - a shape producer
+           
+           Initialisation Properties
+           
+               string resource - nothing is rectangle, "circle" is a pixbuf-
+                   generated SVG circle, anything else is loaded by the factory.
+               string factory - the service that creates the shape producer.
+                              - the default is fezzik.
+               string filter[N] - one or more filters to apply. All filter
+                                  properties are passed using the same filter "key"
+               Any property starting with "composite." is passed to the 
+                   encapsulated composite transition.
+               
+           Read Only Properties
+           
+               none
+               
+           Dependencies
+           
+               transition_composite
+               
+           Known Bugs
+           
+               none
+               
 
 Consumers
 ---------
 
        bluefish (Proprietary)
        
-               Description
-
-                       BlueFish444 audio and video output module.
-               
-               Constructor Argument
-
-                       card - a numeric card id starting at 1, default is 1.
-                       
-               Initialisation Properties
-
-                       string standard - "PAL" (default) or "NTSC"
-                                       - default is based upon MLT_NORMALISATION 
-                                                         environment variable, which defaults to PAL.
-                       int frames - the number of DMA video frames. default is 8.
-                                    minimum is 2. maximum on my system is 11.
-                       int buffer - the number of frames to buffer within MLT, minimum 1, 
-                                    default 25.
-                       string rescale - a rescale method, see the Filters/rescale.
-                       
-               Read Only Properties
-
-                       none
-               
-               Dependencies
-
-                       BlueVelvet SDK installed parallel to mlt in "bluefish."
-               
-               Known Bugs
-
-                       Does not work with any service that uses pipes!
-                       
-                       If mlt crashes, you might need to reload the BlueDriver kernel 
-                       module due to unreleased DMA buffers.
-                       
-                       Only supports 2 channel audio at the moment.
-               
+           Description
+
+               BlueFish444 audio and video output module.
+           
+           Constructor Argument
+
+               card - a numeric card id starting at 1, default is 1.
+               
+           Initialisation Properties
+
+               string standard - "PAL" (default) or "NTSC"
+                               - default is based upon MLT_NORMALISATION 
+                                 environment variable, which defaults to PAL.
+               int frames - the number of DMA video frames. default is 8.
+                            minimum is 2. maximum on my system is 11.
+               int buffer - the number of frames to buffer within MLT, minimum 1, 
+                            default 25.
+               string rescale - a rescale method, see the Filters/rescale.
+               
+           Read Only Properties
+
+               none
+           
+           Dependencies
+
+               BlueVelvet SDK installed parallel to mlt in "bluefish."
+           
+           Known Bugs
+
+               Does not work with any service that uses pipes!
+               
+               If mlt crashes, you might need to reload the BlueDriver kernel 
+               module due to unreleased DMA buffers.
+               
+               Only supports 2 channel audio at the moment.
+           
        libdv
        
-               Description
-               
-                       libdv dv producer.
-
-               Constructor Argument
-
-                       string target - the filename to write to, e.g. /dev/dv1394.
-
-               Initialisation Properties
-               
-                       int buffer - the number of frames to buffer, minimum 1, default 25.
-                       string rescale - a rescale method, see the Filters/rescale.
-               
-               Mutable Properties
-               
-                       int progressive - indicates whether to use progressive or field-
-                                         based rendering, default 0 (off).
-                       
-               Read Only Properties
-               
-                       none
-                       
-               Dependencies
-               
-                       libdv
-                       
-               Known Bugs
-               
-                       none
+           Description
+           
+               libdv dv producer.
+
+           Constructor Argument
+
+               string target - the filename to write to, e.g. /dev/dv1394.
+
+           Initialisation Properties
+           
+               int buffer - the number of frames to buffer, minimum 1, default 25.
+               string rescale - a rescale method, see the Filters/rescale.
+           
+           Mutable Properties
+           
+               int progressive - indicates whether to use progressive or field-
+                                 based rendering, default 0 (off).
+               
+           Read Only Properties
+           
+               none
+               
+           Dependencies
+           
+               libdv
+               
+           Known Bugs
+           
+               none
 
        sdl
 
-               Description
-
-                       Simple DirectMedia Layer audio and video output module.
-                       
-               Constructor Argument
-
-                       string video_standard - "PAL" (default), "NTSC", or "WxH"
-                       
-               Initialisation Properties
-               
-                       int buffer - the number of frames to buffer, minimum 1, default 25.
-                       string rescale - a rescale method, see the Filters/rescale.
-                                      - Hint: "none" works very good with SDL output.
-                       
-               Mutable Properties
-
-                       double volume - audio level factor
-                       int video_off - if 1, disable video output
-                       int audio_off - if 1, disable audio output
-                       int scale_overlay - if 1, resample video from source pixel aspect
-                                           ratio to square pixels.
-                       int progressive - indicates whether to use progressive or field-
-                                         based rendering, default 0 (off).
-                       
-               Read Only Properties
-
-                       none
-                       
-               Dependencies
-
-                       libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
-               
-               Known Bugs
-
-                       none
+           Description
+
+               Simple DirectMedia Layer audio and video output module.
+               
+           Constructor Argument
+
+               string video_standard - "PAL" (default), "NTSC", or "WxH"
+               
+           Initialisation Properties
+           
+               int buffer - the number of frames to buffer, minimum 1, default 25.
+               string rescale - a rescale method, see the Filters/rescale.
+                              - Hint: "none" works very good with SDL output.
+               
+           Mutable Properties
+
+               double volume - audio level factor
+               int video_off - if 1, disable video output
+               int audio_off - if 1, disable audio output
+               int scale_overlay - if 1, resample video from source pixel aspect
+                                   ratio to square pixels.
+               int progressive - indicates whether to use progressive or field-
+                                 based rendering, default 0 (off).
+               
+           Read Only Properties
+
+               none
+               
+           Dependencies
+
+               libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
+           
+           Known Bugs
+
+               none
 
        westley
 
-               Description
-
-                       Serialise the service network to XML.
-                       See docs/westley.txt for more information.
-                       
-               Constructor Argument
-
-                       resource - the name of a file in which to store the XML.
-                                 - stdout is default.
-                       
-               Initialisation Properties
-
-                       string resource - same as above.
-                       
-               Dependencies
-               
-                       libxml2
-                       
-               Known Bugs
-
-                       Untested arbitrary nesting of multitracks and playlists.
-                       Property "id" is generated as service type followed by number if
-                       no property named "id" exists, but it fails to guarantee uniqueness.
+           Description
+
+               Serialise the service network to XML.
+               See docs/westley.txt for more information.
+               
+           Constructor Argument
+
+               resource - the name of a file in which to store the XML.
+                         - stdout is default.
+               
+           Initialisation Properties
+
+               string resource - same as above.
+               
+           Dependencies
+           
+               libxml2
+               
+           Known Bugs
+
+               Untested arbitrary nesting of multitracks and playlists.
+               Property "id" is generated as service type followed by number if
+               no property named "id" exists, but it fails to guarantee uniqueness.
index 8d57a60e543a6f85f3ce0abb61438f18b4ca46ff..342a5888430d46863791c587eea1bc1bfded5546 100644 (file)
@@ -1,9 +1,9 @@
-
-MLT Miracle Test Procedure
+Miracle Test Procedure
 
 Copyright (C) 2003 Ushodaya Enterprised Limited
 Author: Dan Dennedy <dan@dennedy.org>
-Last Revision: 2003-01-17
+Last Revision: 2004-03-20
+
 
 NOTE: THIS DOCUMENT REQUIRES REVISION TO NEW, EXPECTED BEHAVIOR FROM MIRACLE.
 
@@ -133,7 +133,7 @@ level client (albino).
 --> U0 ?? {GUID} 1
 --> U1 00 0000000f00055c1 0
 --> It is important that the last column of the last row is '0' to
-       indicate offline.
+    indicate offline.
 
 2.4 Attempt unit commands for a unit that does not exist: LOAD U6 foo
 --> 403 Unit not found
@@ -501,9 +501,9 @@ document assumes that they are named test001.dv and up.
 --> 1
 --> 0 "test001.dv" 0 6999 7000 7000 25.00
 --> The 1 on the second line denotes the number of times the list has been changed
-       via user commands (known as the 'generation' number).
+    via user commands (known as the 'generation' number).
 --> The third line and beyond reports the clip index (from 0 to n), file loaded, in point,
-       out point, real size of the file and the calculated size (out - in + 1 ).
+    out point, real size of the file and the calculated size (out - in + 1 ).
 
 9.1.4 Check the unit status with USTA U0
 --> 202 OK
@@ -531,7 +531,7 @@ document assumes that they are named test001.dv and up.
 --> 1 "test002.dv" 0 6999 7000 7000
 --> Check that USTA U0 reports a generation of 4 and current clip of 0
 --> Note that the order in which you run 9.1.6 and 9.1.7 shouldn't matter as the
-       result will be identical
+    result will be identical
 
 9.1.8 Change the position to the next clip with GOTO U0 0 +1
 --> 200 OK
index a5abcceec9f054d71efcd81910ea1b3d0fb8028f..9a90c867f2eeccaec5b27618f93fc0a8f7c63ad1 100644 (file)
@@ -1,8 +1,8 @@
-VALERIE API Documentation 
+Valerie API Documentation 
 
-Copyright (C) 2003 Ushodaya Enterprised Limited 
+Copyright (C) 2004 Ushodaya Enterprised Limited 
 Author: Charles Yates <charles.yates@pandora.be> 
-Last Revision: 2004-01-11
+Last Revision: 2004-03-20
 
 
 TABLE OF CONTENTS
@@ -222,10 +222,10 @@ TABLE OF CONTENTS
 
            valerie_error_code error = valerie_unit_play( dv, 0 );
            if ( error == valerie_ok )
-            fprintf( stderr, "Unit 0 is now playing\n" );
+               fprintf( stderr, "Unit 0 is now playing\n" );
            else
-            fprintf( stderr, "Play on unit 0 failed: %s\n",
-                         valerie_error_description( error ) );
+               fprintf( stderr, "Play on unit 0 failed: %s\n",
+                            valerie_error_description( error ) );
 
        The complete interface to valerie is listed in Appendix B of this document.
 
@@ -314,7 +314,7 @@ TABLE OF CONTENTS
        and would provide a response formatted as follows:
        
            201 OK
-               U0 00 sdl:360x288 1
+           U0 00 sdl:360x288 1
        
        with a trailing empty line.
        
@@ -371,8 +371,8 @@ TABLE OF CONTENTS
        and would provide a response formated as follows:
        
            202 OK
-               0 playing "a.dv" 58 1000 25.00 0 6999 7000 "a.dv" 157 0 6999 7000 1 4 0
-               
+           0 playing "a.dv" 58 1000 25.00 0 6999 7000 "a.dv" 157 0 6999 7000 1 4 0
+       
        with no trailing empty line.
        
        The entries in the record are:
@@ -472,15 +472,15 @@ TABLE OF CONTENTS
            double fps;
            int64_t in;
            int64_t out;
-               int64_t length;
+           int64_t length;
            char tail_clip[ 2048 ];
            int64_t tail_position;
            int64_t tail_in;
            int64_t tail_out;
-               int64_t tail_length;
-               int seekable;
-               int generation;
-               int clip_index;
+           int64_t tail_length;
+           int seekable;
+           int generation;
+           int clip_index;
        
        You will always receive a status record for every frame output.
 
@@ -529,39 +529,39 @@ TABLE OF CONTENTS
        
        The following shows an example of obtaining the clips queued on unit 0:
        
-               valerie_list list = valerie_list_init( dv, 0 );
-               valerie_list_entry_t entry;
-               int index;
-               
-               printf( "Generation = %d\n", list->generation );
-               for ( index = 0; index < valerie_list_count( list ); index ++ )
-               {
-                       valerie_list_get( list, index, &entry );
-                       printf( "%d %s %d %d %d %d\n", 
-                                       entry.clip, 
-                                       entry.full,
-                                       entry.in,
-                                       entry.out,
-                                       entry.max,
-                                       entry.size );
-               }
-               valerie_list_close( list );
-               
+           valerie_list list = valerie_list_init( dv, 0 );
+           valerie_list_entry_t entry;
+           int index;
+           
+           printf( "Generation = %d\n", list->generation );
+           for ( index = 0; index < valerie_list_count( list ); index ++ )
+           {
+               valerie_list_get( list, index, &entry );
+               printf( "%d %s %d %d %d %d\n", 
+                       entry.clip, 
+                       entry.full,
+                       entry.in,
+                       entry.out,
+                       entry.max,
+                       entry.size );
+           }
+           valerie_list_close( list );
+           
        To load a clip on unit 0:
        
-               valerie_unit_load( dv, 0, "/path/clip.dv" );
-               
+           valerie_unit_load( dv, 0, "/path/clip.dv" );
+           
        To append a clip on unit 0:
        
-               valerie_unit_append( dv, 0, "/path/clip.dv", -1, -1 );
-               
+           valerie_unit_append( dv, 0, "/path/clip.dv", -1, -1 );
+           
        Note that the last two arguments specify the in and out points of the clip
        with -1 denoting dfaults of the entirety of the file.
        
        To insert a clip at position 0 on unit 0, we can use the following:
        
-               valerie_unit_clip_insert( dv, 0, clip_absolute, 0, "/path/clip.dv", -1, -1 );
-               
+           valerie_unit_clip_insert( dv, 0, clip_absolute, 0, "/path/clip.dv", -1, -1 );
+           
        The 3rd and 4th arguments here are common to all the valerie_unit_clip functions.
        They take the form of either [clip_absolute, n] to indicate an absolute clip
        index, or [clip_relative, n] to indicate a clip index relative to the 
@@ -570,34 +570,34 @@ TABLE OF CONTENTS
        So, to insert a clip immediately before the currently playing clip, we can
        use:
        
-               valerie_unit_clip_insert( dv, 0, clip_relative, -1, "/path/clip.dv", -1, -1 );
-               
+           valerie_unit_clip_insert( dv, 0, clip_relative, -1, "/path/clip.dv", -1, -1 );
+           
        To move the current clip to the next position in the list:
        
-               valerie_unit_clip_move( dv, 0, clip_relative, 0, clip_relative, 1 );
-               
+           valerie_unit_clip_move( dv, 0, clip_relative, 0, clip_relative, 1 );
+           
        To remove a specific clip:
        
-               valerie_unit_clip_remove( dv, 0, clip_absolute, index );
-               
+           valerie_unit_clip_remove( dv, 0, clip_absolute, index );
+           
        To remove all but the currently playing clip:
        
-               valerie_unit_clean( dv, 0 );
-               
+           valerie_unit_clean( dv, 0 );
+           
        To goto the first frame in the first clip, you can use:
        
-               valerie_unit_clip_goto( dv, 0, clip_absolute, 0, 0 );
-               
+           valerie_unit_clip_goto( dv, 0, clip_absolute, 0, 0 );
+           
        To set the in and out points on the current clip:
        
-               valerie_unit_clip_set_in( dv, 0, clip_relative, 0, 0 );
-               valerie_unit_clip_set_out( dv, 0, clip_relative, 0, 1000 );
-               
+           valerie_unit_clip_set_in( dv, 0, clip_relative, 0, 0 );
+           valerie_unit_clip_set_out( dv, 0, clip_relative, 0, 1000 );
+           
        A more complete example of use of the server side can queuing can be found
        at:
        
-               http://users.pandora.be/acp/gdv1394
-               
+           http://users.pandora.be/acp/rugen
+           
        The demo client provided with valerie is used for retaining backward 
        compatability with the client side queuing API.
 
index 5625c5d4e7fd8c3d2c075d973ffff13e1bc72764..288e284365c46ed4d236f9a61a2ed73fafb0dcd4 100644 (file)
@@ -1,3 +1,10 @@
+Westley Documentation
+
+Copyright (C) 2004 Ushodaya Enterprised Limited
+Authors: Charles Yates <charles.yates@pandora.be>
+Last Revision: 2004-03-20
+
+
 WESTLEY
 -------
 
@@ -178,9 +185,6 @@ Interlude - Introducing Multitracks:
        appear to be an exception - it isn't - it simply has a route back to the 
        application to allow the application to interpret key presses).
 
-       Whether this is better or worse than a traditional graph approach is a moot
-       point. The author of this document likes it anyway :-).
-
 
 Tractors:
 
@@ -298,35 +302,35 @@ Tractors:
        
        <westley>
          <producer id="producer0">
-               <property name="resource">clip1.dv</property>
+           <property name="resource">clip1.dv</property>
          </producer>
          <playlist id="playlist0">
-               <entry producer="producer0"/>
+           <entry producer="producer0"/>
          </playlist>
          <producer id="producer1">
-               <property name="resource">clip2.mpeg</property>
+           <property name="resource">clip2.mpeg</property>
          </producer>
          <playlist id="playlist1">
-               <blank length="50"/>
-               <entry producer="producer1"/>
+           <blank length="50"/>
+           <entry producer="producer1"/>
          </playlist>
          <tractor id="tractor0" in="0" out="315">
-               <multitrack id="multitrack0">
-                 <track producer="playlist0"/>
-                 <track producer="playlist1"/>
-               </multitrack>
-               <transition id="transition0" in="50" out="74">
-                 <property name="a_track">0</property>
-                 <property name="b_track">1</property>
-                 <property name="mlt_service">luma</property>
-               </transition>
-               <transition id="transition1" in="50" out="74">
-                 <property name="a_track">0</property>
-                 <property name="b_track">1</property>
-                 <property name="mlt_service">mix</property>
-                 <property name="start">0.0</property>
-                 <property name="end">1.0</property>
-               </transition>
+           <multitrack id="multitrack0">
+             <track producer="playlist0"/>
+             <track producer="playlist1"/>
+           </multitrack>
+           <transition id="transition0" in="50" out="74">
+             <property name="a_track">0</property>
+             <property name="b_track">1</property>
+             <property name="mlt_service">luma</property>
+           </transition>
+           <transition id="transition1" in="50" out="74">
+             <property name="a_track">0</property>
+             <property name="b_track">1</property>
+             <property name="mlt_service">mix</property>
+             <property name="start">0.0</property>
+             <property name="end">1.0</property>
+           </transition>
          </tractor>
        </westley>
 
@@ -336,7 +340,7 @@ Tractors:
        between the gain scaling factors between the start and end properties - 
        in this example, from 0.0 (none of track B) to 1.0 (all of track B). 
        Because the bottom track starts out with a gap specified using the <blank>
-       element, the upper track appears during the blank segment. See the demos and
+       element, the upper track appears during the blank segment. See the demos and
        services.txt to get an idea of the capabilities of the included transitions.
 
 Flexibility:
@@ -476,12 +480,12 @@ Entities and Parameterisation:
        
        <?xml version="1.0"?>
        <!DOCTYPE westley [
-               <!ENTITY msg "Hello world!">
+           <!ENTITY msg "Hello world!">
        ]>
        <westley>
          <producer id="producer0">
-               <property name="mlt_service">pango</property>
-               <property name="text">&msg;</property>
+           <property name="mlt_service">pango</property>
+           <property name="text">&msg;</property>
          </producer>
        </westley>
        
@@ -520,39 +524,39 @@ Tips and Technique:
 
        If one finds the above hierarchical, abbreviated format intuitive,
        start with a simple template and fill and extend as needed:
-               <westley>
-                 <multitrack>
-                   <playlist>
-                   </playlist>
-                   ...add a playlist for each track...
-                 </multitrack>
-                 ...add filters and transitions...
-               </westley>
-               
+           <westley>
+             <multitrack>
+               <playlist>
+               </playlist>
+               ...add a playlist for each track...
+             </multitrack>
+             ...add filters and transitions...
+           </westley>
+           
        By using a playlist for each track, it is easier to iteratively add new 
-       clips and blank regions as you develop the project.     You will not have to
+       clips and blank regions as you develop the project. You will not have to
        use <track> or later add <playlist> when necessary.
        
        A more advanced template that allows sequencing multitracks is:
-               <playlist>
-                 <entry>
-                   <multitrack>
-                     <playlist>
-                     </playlist>
-                     ...add a playlist for each track...
-                   </multitrack>
-                   ...add filters and transitions...
-                 </entry>
-                 
-                 <entry>
-                   <multitrack>
-                     <playlist>
-                     </playlist>
-                     ...add a playlist for each track...
-                   </multitrack>
-                   ...add filters and transitions...
-                 </entry>
-               </playlist>
+           <playlist>
+             <entry>
+               <multitrack>
+                 <playlist>
+                 </playlist>
+                 ...add a playlist for each track...
+               </multitrack>
+               ...add filters and transitions...
+             </entry>
+             
+             <entry>
+               <multitrack>
+                 <playlist>
+                 </playlist>
+                 ...add a playlist for each track...
+               </multitrack>
+               ...add filters and transitions...
+             </entry>
+           </playlist>
 
        If you end up making a collection of templates for various situations, then
        consider using XML Entities to make the template more effective by moving