]> git.sesse.net Git - mlt/commitdiff
updated services docs plus minor fixes discovered during
authorddennedy <ddennedy@d19143bc-622f-0410-bfdd-b5b2a6649095>
Tue, 16 Mar 2004 05:21:00 +0000 (05:21 +0000)
committerddennedy <ddennedy@d19143bc-622f-0410-bfdd-b5b2a6649095>
Tue, 16 Mar 2004 05:21:00 +0000 (05:21 +0000)
git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@214 d19143bc-622f-0410-bfdd-b5b2a6649095

demo/luma1.pgm
demo/mlt_obscure
docs/services.txt
src/modules/core/composite_line_yuv_mmx.S
src/modules/core/filter_luma.c
src/modules/core/transition_luma.c
src/modules/fezzik/producer_fezzik.c

index 64433aa892a43f611d186d7dc5f92c4c34f02f2f..9d42359ec6fc479162c288656dd472730bc34c78 100644 (file)
Binary files a/demo/luma1.pgm and b/demo/luma1.pgm differ
index a8f9a36f31d9315014a2d9750f2414d3491d1fbd..0c0f8382a261f2e85aeb267646202e29aa9259d3 100644 (file)
@@ -1,5 +1,5 @@
 inigo \
 clip2.mpeg \
 inigo \
 clip2.mpeg \
--filter obscure:25%,25%:25%x25% in=0 out=68 \
+-filter obscure:25%,25%:25%x25%:10x10 in=0 out=68 \
 -filter region:circle.png filter=obscure composite.start=55%,25%:12%x50% in=68 out=200 \
 $*
 -filter region:circle.png filter=obscure composite.start=55%,25%:12%x50% in=68 out=200 \
 $*
index 6500f5ff831ca600b64f7a965812408c46a6986d..23fbf4bc829761f63474f3ca55e5ec0954c894ac 100644 (file)
@@ -1,3 +1,9 @@
+SERVICES
+--------
+
+Services marked as "(Proprietary)" are not distributed with the GPL version
+of mlt.
+
 Producers
 ---------
 
 Producers
 ---------
 
@@ -20,8 +26,11 @@ Producers
 
                Read Only Properties
 
 
                Read Only Properties
 
+                       string resource - file location
                        double fps - this is fixed at 25 for PAL currently
                        double fps - this is fixed at 25 for PAL currently
-                       double aspect_ratio - this is determined on the first frame read
+                       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
 
@@ -32,9 +41,10 @@ Producers
 
                        Audio sync discrepancy with some content.
                        Not all libavformat supported formats are seekable.
 
                        Audio sync discrepancy with some content.
                        Not all libavformat supported formats are seekable.
-                       ogg is currently broken.
-                       mpeg seeking is inaccurate - doesn't seek to i-frames so you may
+                       Ogg Vorbis is currently broken.
+                       MPEG seeking is inaccurate - doesn't seek to i-frames so you may
                        get junk for a few frames.
                        get junk for a few frames.
+                       RAW DV seeking not supported.
 
        fezzik
 
 
        fezzik
 
@@ -45,6 +55,8 @@ Producers
                Constructor Argument
 
                        'file'  - produce a/v from file
                Constructor Argument
 
                        'file'  - produce a/v from file
+                               - can also be the name of a producer service that can
+                                         accept the resource specified post construction.
 
                Initialisation Properties
 
 
                Initialisation Properties
 
@@ -78,7 +90,39 @@ Producers
 
                        None.
 
 
                        None.
 
-       ffmpeg
+       
+       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
+
+       
+       ffmpeg (DEPRECATED)
 
                Description
 
 
                Description
 
@@ -140,8 +184,12 @@ Producers
 
                        string resource - file location
                        double fps - output frames per second
 
                        string resource - file location
                        double fps - output frames per second
-                       double aspect_ratio - aspect ratio of video]
                        int length - duration of resource (in frames)
                        int length - duration of resource (in frames)
+                       
+               Mutable Properties
+               
+                       string quality - one of "best," "fast" or anything else chooses
+                                        medium.
 
                Dependencies
 
 
                Dependencies
 
@@ -149,13 +197,14 @@ Producers
 
                Known Bugs
 
 
                Known Bugs
 
-                       None.
+                       DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
+                       libdv from CVS or a post 0.101 release. 
 
 
-       mcdv
+       mcdv (Proprietary)
 
                Description
 
 
                Description
 
-                       Mainconcept based dv decoder for video and audio.
+                       MainConcept based dv decoder for video and audio.
 
                Constructor Argument
 
 
                Constructor Argument
 
@@ -170,23 +219,22 @@ Producers
 
                        string resource - file location
                        double fps - output frames per second
 
                        string resource - file location
                        double fps - output frames per second
-                       double aspect_ratio - aspect ratio of video
                        int length - duration of resource (in frames)
 
                Dependencies
 
                        int length - duration of resource (in frames)
 
                Dependencies
 
-                       mainconcept dv sdk and libdv.
+                       MainConcept DV or DVCPRO SDK, libdv.
                        "dv_sdk" installed parallel to mlt.
 
                Known Bugs
 
                        "dv_sdk" installed parallel to mlt.
 
                Known Bugs
 
-                       Can be problematic with some NTSC DV files?
+                       None
 
 
-       mcmpeg
+       mcmpeg (Proprietary)
 
                Description
 
 
                Description
 
-                       Mainconcept based mpeg decoder for video and audio.
+                       MainConcept based mpeg decoder for video and audio.
 
                Constructor Argument
 
 
                Constructor Argument
 
@@ -201,12 +249,13 @@ Producers
 
                        string resource - file location
                        double fps - output frames per second
 
                        string resource - file location
                        double fps - output frames per second
-                       double aspect_ratio - aspect ratio of video
-
+                       double aspect_ratio - sample aspect ratio of video
+                       int length - duration of resource (in frames)
+                       
                Dependencies
 
                Dependencies
 
-                       mainconcept mpeg sdk.
-                       "mpeg_sdk_demo" installed parallel to mlt.
+                       MainConcept MPEG SDK.
+                       "mpeg_sdk_release" installed parallel to mlt.
 
                Known Bugs
 
 
                Known Bugs
 
@@ -222,8 +271,24 @@ Producers
                Constructor Argument
 
                        string file - a text file containing Pango markup, see:
                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: <, >, & to &lt;, &gt;, &amp;
+                       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.
+                       If you need to embed Pango markup in a westley XML file, then
+                       enclose the value inside "<![CDATA[ ... ]]>".
+                       
+                       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
 
 
                Initialisation Properties
 
@@ -232,42 +297,47 @@ Producers
 
                Mutable Properties
 
 
                Mutable Properties
 
-                       int video_standard - enum mlt_video_standard from mlt_frame.h
-                                            PAL = 0, NTSC = 1
-                                            this determines proper pixel aspect ratio
-
-                       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: <, >, & 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
-                       int align - paragraph alignment: 0 = left, 1 = center, 2 = right
-                       int pad - the number of pixels to pad the background rectangle beyond edges of text
-                                 default 0
+                       string markup - a UTF-8 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 markup - see constructor argument
-                       string text - non-markup text (can contain markup chars un-encoded)
-                       string font - the default typeface to use when not using markup
-                                     default "Sans 48"
+                       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.
 
                Read Only Properties
 
 
                Read Only Properties
 
-                       string resource - the text/markup file or "pango" if no file
+                       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
 
 
                Dependencies
 
-                       libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0, libglib-2.0,
-                       libgobject-2.0, libgmodule-2.0, libfontconfig
+                       libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0, 
+                       libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
 
                Known Bugs
 
 
                Known Bugs
 
-                       no frame-alignment functionality
+                       The foreground and background Pango markup span attributes are not
+                       supported.
+                       Word wrapping is not supported.
 
        pixbuf
 
                Description
 
 
        pixbuf
 
                Description
 
-                       A graphics overlay generator using gdk-pixbuf
+                       A still graphics to video generator using gdk-pixbuf
 
                Constructor Argument
 
 
                Constructor Argument
 
@@ -275,10 +345,23 @@ Producers
                                 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
                                 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
+                                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. For westley XML, set the resource
+                                property value with inline XML embedded using a CDATA node
+                                ("<![CDATA[ ... ]]>").
+                                        
+               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
 
@@ -287,14 +370,16 @@ Producers
 
                Mutable Properties
 
 
                Mutable Properties
 
-                       int video_standard - enum mlt_video_standard from mlt_frame.h
-                                            PAL = 0, NTSC = 1
-                                            this determines proper pixel aspect ratio
-                       double ttl - how long (seconds) to repeat each picture in file sequences
+                       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
+                       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
 
@@ -302,7 +387,7 @@ Producers
 
                Known Bugs
 
 
                Known Bugs
 
-                       in/out settings are incorrectly handled.
+                       XXX: in/out settings are incorrectly handled.
 
        ppm
        
 
        ppm
        
@@ -336,6 +421,7 @@ Producers
                Description
 
                        Construct a service network from an XML description.
                Description
 
                        Construct a service network from an XML description.
+                       See docs/westley.txt.
 
                Constructor Argument
 
 
                Constructor Argument
 
@@ -351,8 +437,11 @@ Producers
 
                Known Bugs
 
 
                Known Bugs
 
-                       Non-referenced producers and playlists are not destroyed.
+                       Non-referenced producers and playlists are not destroyed until the 
+                       network is destroyed.
                        A referenced producer or playlist must appear before the reference.
                        A referenced producer or playlist must appear before the reference.
+                       A filter that occurs before a producer has been defined causes a 
+                       segfault.
 
        vorbis
 
 
        vorbis
 
@@ -385,33 +474,80 @@ Producers
 Filters
 -------
 
 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.
+
+
        deinterlace
        
                Description
 
        deinterlace
        
                Description
 
-                       Deinterlace a frame consisting of two fields by linearly blending.
+                       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
 
                
                Constructor Argument
 
-                       none
+                       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
                
                Initialisation Properties
 
                        int in - in point
                        int out - out point
-
+                       
                Read Only Properties
 
                        none
                
                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
 
                Dependencies
 
                        none
                        
                Known Bugs
 
-                       Not a bug, but it only provides fair quality at a fair performance;
-                               i.e., it excels at neither.
+                       Not a bug, but it only provides fair quality.
+                       
                
        ffmpeg_dub
        
                
        ffmpeg_dub
        
@@ -441,6 +577,7 @@ Filters
                Known Bugs
 
                        Uses pipes and is therefore not compatible with bluefish.
                Known Bugs
 
                        Uses pipes and is therefore not compatible with bluefish.
+                       
 
        gamma
        
 
        gamma
        
@@ -450,7 +587,7 @@ Filters
                        
                Constructor Argument
 
                        
                Constructor Argument
 
-                       gamma - a floating point value
+                       gamma - a floating point value. The default is 1.0, or none.
                
                Initialisation Properties
                
                
                Initialisation Properties
                
@@ -468,6 +605,7 @@ Filters
                Known Bugs
 
                        none
                Known Bugs
 
                        none
+                       
        
        greyscale
        
        
        greyscale
        
@@ -496,6 +634,46 @@ Filters
 
                        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
+               
+       
        obscure
        
                Description
        obscure
        
                Description
@@ -509,6 +687,7 @@ Filters
                Initialisation Properties
                
                        string start - in the format X,Y:WxH[:PWxPY]
                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
                        string end - in the format X,Y:WxH[:PWxPY]
                        int in - in point
                        int out - out point
@@ -525,39 +704,46 @@ Filters
 
                        none
 
 
                        none
 
-       resize
+       region
        
                Description
        
                Description
-
-                       Image scaling and padding
+               
+                       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
                        
                Constructor Argument
-
-                       scale - "affine" to use affine transform scaling, otherwise
-                                center and pad.
-                       
-               Initialisation Properties
                
                
+                       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
                        int in - in point
                        int out - out point
-
+                       plus and region transition properties
+                       
                Read Only Properties
                Read Only Properties
-
-                       none
+               
+                       see the region transition
                        
                Dependencies
                        
                Dependencies
-
-                       none
+               
+                       transition_region
                        
                Known Bugs
                        
                Known Bugs
-
-                       none
+               
+                       "circle" is unpredictable in the absence of the librsvg pixbuf loader.
+                       
 
        resample
 
                Description
 
 
        resample
 
                Description
 
-                       Adjust an audio stream's sampling rate
+                       Adjust an audio stream's sampling rate.
+                       This filter is automatically invoked by Fezzik for the sake of
+                       normalisation over inputs and with the consumer.
 
                Constructor Argument
 
 
                Constructor Argument
 
@@ -585,14 +771,16 @@ Filters
                Description
 
                        Scale the producer video frame size to match the consumer.
                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.
 
                Constructor Argument
 
                        interpolation - the rescaling method, one of:
                                nearest (lowest quality, fastest),
                                tiles,
 
                Constructor Argument
 
                        interpolation - the rescaling method, one of:
                                nearest (lowest quality, fastest),
                                tiles,
-                               bilinear (good quality, moderate speed),
-                               hyper (best quality, slowest)
+                               bilinear (default; good quality, moderate speed),
+                               hyper (best quality, slowest).
 
                Initialisation Properties
 
 
                Initialisation Properties
 
@@ -619,6 +807,45 @@ Filters
 
                        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.
+
        volume
 
                Description
        volume
 
                Description
@@ -713,49 +940,103 @@ Transitions
        
                Description
 
        
                Description
 
-                       An alpha-channel based compositor for two frames.
+                       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
 
                        
                Constructor Argument
 
-                       string start - X,Y:WxH[:mix]
+                       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
                        
 
                Initialisation Properties
                        
-                       string end - X,Y:WxH[:mix]
+                       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
                        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
        
                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
 
                Dependencies
 
                        none
                
                Known Bugs
 
-                       Need to add field-based rendering.
+                       Assumes lower field first during field rendering.
 
        luma
        
                Description
 
 
        luma
        
                Description
 
-                       A generic dissolve and wipe transition processor. It gets its name
+                       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
                        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 only reads PGM
-                       files, but it does handle 16 bit PGM. This performs field-based
-                       rendering.
+                       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
 
                
                Constructor Argument
 
-                       string resource - the luma map file name. If not supplied, a dissolve.
+                       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
 
                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
 
 
                Mutable Properties
 
@@ -763,6 +1044,8 @@ Transitions
                        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.
                        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
 
                        
                Read Only Properties
 
@@ -773,9 +1056,8 @@ Transitions
                        none
                        
                Known Bugs
                        none
                        
                Known Bugs
-
-                       The luma map must be the same size as the B frame.
-                       The PGM parser does not handle comments.
+                       
+                       Assumes lower field first output.
 
        mix
 
 
        mix
 
@@ -811,11 +1093,48 @@ Transitions
                Known Bugs
 
                        Samples from the longer of the two frames are discarded.
                Known Bugs
 
                        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
+                       
 
 Consumers
 ---------
 
 
 Consumers
 ---------
 
-       bluefish
+       bluefish (Proprietary)
        
                Description
 
        
                Description
 
@@ -863,12 +1182,24 @@ Consumers
 
                Constructor Argument
 
 
                Constructor Argument
 
-                       string video_standard - "PAL" (default) or "NTSC"
+                       string target
 
                Initialisation Properties
 
                Initialisation Properties
+               
+                       int buffer
+                       string rescale
+                       
                Read Only Properties
                Read Only Properties
+               
+                       none
+                       
                Dependencies
                Dependencies
+               
+                       libdv
+                       
                Known Bugs
                Known Bugs
+               
+                       none
 
        sdl
 
 
        sdl
 
@@ -906,6 +1237,7 @@ Consumers
                Description
 
                        Serialise the service network to XML.
                Description
 
                        Serialise the service network to XML.
+                       See docs/westley.txt for more information.
                        
                Constructor Argument
 
                        
                Constructor Argument
 
@@ -925,4 +1257,3 @@ Consumers
                        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.
                        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 7a5fb801a22aee30d2d58f0578f5d03b0dde747e..27af4dc2006b42dcc65b360c3e117fff752a0729 100644 (file)
@@ -44,27 +44,34 @@ _composite_line_yuv_mmx:
        
 .loop:
 
        
 .loop:
 
-       movl $0xff, %ecx           # a = 255
+       movl $0xffff, %ecx           # a = 255
        cmpl $0, 20(%ebp)         # if alpha == NULL
        je .noalpha
        movl 20(%ebp), %edi       # a = alpha[ j ]
        movb (%edi,%edx), %cl
 .noalpha:
        cmpl $0, 20(%ebp)         # if alpha == NULL
        je .noalpha
        movl 20(%ebp), %edi       # a = alpha[ j ]
        movb (%edi,%edx), %cl
 .noalpha:
+       movl %ecx, -24(%ebp)      # save ecx
 
        movl 24(%ebp), %eax       # mix = weight
        cmpl $0, 28(%ebp)         # if luma == NULL
        je .noluma
        movl 28(%ebp), %edi       # mix = ...
        movl %edx, %ebx
 
        movl 24(%ebp), %eax       # mix = weight
        cmpl $0, 28(%ebp)         # if luma == NULL
        je .noluma
        movl 28(%ebp), %edi       # mix = ...
        movl %edx, %ebx
-       #sall $1, %ebx
-       movw (%edi,%ebx), %ax # luma[ j*2 ]
-       cmpw %cx, %ax
+       sall $1, %ebx
+       movw (%edi,%ebx), %bx # luma[ j*2 ]
+       cmpl %ebx, %eax
        jl .luma0
        jl .luma0
-       movl %eax, %ebx
-       addl 32(%ebp), %ebx       # + softness
-       cmpw %bx, %cx
+       movl %ebx, %ecx
+       addl 32(%ebp), %ecx       # + softness
+       cmpl %ecx, %eax
        jge .luma1
        jge .luma1
-       /* TODO: linear interpolate between edges eax and ebx */
+       /* TODO: linear interpolate between edges */
+       subw %bx, %ax
+       sall $8, %eax
+       subw %bx, %cx
+       movl %edx, %ebx
+       divw %cx
+       movl %ebx, %edx
        jmp .noluma
 .luma0:
        movl $0, %eax
        jmp .noluma
 .luma0:
        movl $0, %eax
@@ -75,6 +82,7 @@ _composite_line_yuv_mmx:
        shrl $8, %eax
 
        movl %edx, %ebx           # edx will be destroyed by mulw
        shrl $8, %eax
 
        movl %edx, %ebx           # edx will be destroyed by mulw
+       movl -24(%ebp), %ecx      # restore ecx
        mull %ecx                  # mix = mix * a...
        movl %ebx, %edx           # restore edx
        shrl $8, %eax             # >>8
        mull %ecx                  # mix = mix * a...
        movl %ebx, %edx           # restore edx
        shrl $8, %eax             # >>8
@@ -137,8 +145,8 @@ _composite_line_yuv_mmx:
 
 /* for..next */
        addl $1, %edx             # j++
 
 /* for..next */
        addl $1, %edx             # j++
-       cmpl %edx, 16(%ebp)       # if ( j == width_src )
-       je .out
+       cmpl 16(%ebp), %edx       # if ( j == width_src )
+       jge .out
        
        addl $2, %esi
        addl $2, 12(%ebp)
        
        addl $2, %esi
        addl $2, 12(%ebp)
index b1b27d6f322e9d19d00d6ad5a39e2306e58d5c2e..e36ee3a2cc22c8b494a624cdab8fbe3ee6658565 100644 (file)
@@ -39,7 +39,10 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
        mlt_properties properties = mlt_filter_properties( filter );
        mlt_transition luma = mlt_properties_get_data( properties, "luma", NULL );
        mlt_frame b_frame = mlt_properties_get_data( properties, "frame", NULL );
        mlt_properties properties = mlt_filter_properties( filter );
        mlt_transition luma = mlt_properties_get_data( properties, "luma", NULL );
        mlt_frame b_frame = mlt_properties_get_data( properties, "frame", NULL );
-       int out = 24;
+       int out = mlt_properties_get_int( properties, "period" );
+       
+       if ( out == 0 )
+               out = 24;
 
        if ( luma == NULL )
        {
 
        if ( luma == NULL )
        {
@@ -49,11 +52,10 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format *
                {
                        mlt_properties luma_properties = mlt_transition_properties( luma );
                        mlt_properties_set_int( luma_properties, "in", 0 );
                {
                        mlt_properties luma_properties = mlt_transition_properties( luma );
                        mlt_properties_set_int( luma_properties, "in", 0 );
-                       mlt_properties_set_int( luma_properties, "out", out );
+                       mlt_properties_set_int( luma_properties, "out", 24 );
                        mlt_properties_set_int( luma_properties, "reverse", 1 );
                        mlt_properties_pass( luma_properties, properties, "luma." );
                        mlt_properties_set_data( properties, "luma", luma, 0, ( mlt_destructor )mlt_transition_close, NULL );
                        mlt_properties_set_int( luma_properties, "reverse", 1 );
                        mlt_properties_pass( luma_properties, properties, "luma." );
                        mlt_properties_set_data( properties, "luma", luma, 0, ( mlt_destructor )mlt_transition_close, NULL );
-                       out = mlt_properties_get_int( luma_properties, "out" );
                }
        }
 
                }
        }
 
@@ -119,4 +121,3 @@ mlt_filter filter_luma_init( void *arg )
        }
        return this;
 }
        }
        return this;
 }
-
index d4d4074998c888f6a0398476127a4c62d039b05d..f0032c131d647d74df92dff16cfd552bec7039c2 100644 (file)
@@ -437,8 +437,9 @@ static int transition_get_image( mlt_frame a_frame, uint8_t **image, mlt_image_f
        float frame_delta = delta_calculate( transition, a_frame );
        
        float luma_softness = mlt_properties_get_double( properties, "softness" );
        float frame_delta = delta_calculate( transition, a_frame );
        
        float luma_softness = mlt_properties_get_double( properties, "softness" );
-       int progressive = mlt_properties_get_int( b_props, "progressive" ) ||
+       int progressive = mlt_properties_get_int( a_props, "progressive" ) ||
                        mlt_properties_get_int( a_props, "consumer_progressive" ) ||
                        mlt_properties_get_int( a_props, "consumer_progressive" ) ||
+                       mlt_properties_get_int( properties, "progressive" ) ||
                        mlt_properties_get_int( b_props, "luma.progressive" );
        int top_field_first =  mlt_properties_get_int( b_props, "top_field_first" );
        int reverse = mlt_properties_get_int( properties, "reverse" );
                        mlt_properties_get_int( b_props, "luma.progressive" );
        int top_field_first =  mlt_properties_get_int( b_props, "top_field_first" );
        int reverse = mlt_properties_get_int( properties, "reverse" );
index bcc801c183662adcb7bb7e41418b056c8b2ca840..3f0445b16be03a1608d83eeb65e0c94e4143a399 100644 (file)
@@ -165,4 +165,3 @@ mlt_producer producer_fezzik_init( char *arg )
        // Return the tractor's producer
        return producer;
 }
        // Return the tractor's producer
        return producer;
 }
-