]> git.sesse.net Git - mlt/blob - docs/services.txt
86a9ab6366be2e2caa36943eb99dc0e73374fa9a
[mlt] / docs / services.txt
1 Service Documentation
2
3 Copyright (C) 2004 Ushodaya Enterprises Limited
4 Authors: Charles Yates <charles.yates@pandora.be>
5          Dan Dennedy <dan@dennedy.org>
6 Last Revision: 2004-11-07
7
8
9 SERVICES
10 --------
11
12         Services marked as "(Proprietary)" are not distributed with the GPL version
13         of mlt.
14
15 Producers
16 ---------
17
18         avformat
19
20             Description
21
22                 ffmpeg libavformat based producer for video and audio.
23
24             Constructor Argument
25
26                 'file' - a filename specification or URL in the form:
27                          [{protocol}|{format}]:{resource}[?{format-parameter}[&{format-parameter}...]]
28                          For example, video4linux:/dev/video1?width:320&height:240
29                          Note: on the bash command line, & must be escaped as '\&'.
30                          Also, note the use of ':' instead of '=' for parameters.
31                          Use 'ffmpeg -formats' to see a list of supported protocols 
32                          and formats.
33                          
34             Details
35             
36                 Format parameters only appear to be useful with 'video4linux' or
37                 'audio_device' formats. For 'video4linux' the parameters are
38                 width, height, frame_rate, frame_rate_base, and standard (ntsc|pal).
39                 For 'audio_device' the parameters are channels and sample_rate.
40
41             Initialisation Properties
42
43                 int video_index - index of video stream to use (-1 is off)
44                 int audio_index - index of audio stream to use (-1 is off)
45                 int in - in point
46                 int out - out point
47
48             Read Only Properties
49
50                 string resource - file location
51                 double fps - this is fixed at 25 for PAL currently
52                 double source_fps - the framerate of the resource
53                 double aspect_ratio - sample aspect ratio of the resource
54                                     - this is determined on every frame read
55
56             Dependencies
57
58                 ffmpeg must be configured as --enable-shared and installed prior
59                 to compilation of mlt.
60
61             Known Bugs
62
63                 Audio sync discrepancy with some content.
64                 Not all libavformat supported formats are seekable.
65                 Ogg Vorbis is currently broken.
66                 MPEG seeking is inaccurate - doesn't seek to i-frames so you may
67                 get junk for a few frames.
68                 RAW DV seeking not supported.
69                 Fails to play beyond first frame of video of sources with PTS not
70                 starting at 0 (video4linux).
71
72         fezzik
73
74             Description
75
76                 A friendly giant that likes to rhyme and throw rocks
77
78             Constructor Argument
79
80                 'file'    - a filename specification:
81                           [{mlt-service}:]{resource} | {mlt-service}
82                         - can also be the name of a producer service that can
83                           accept the resource specified post construction.
84
85             Initialisation Properties
86
87                 int in - in point
88                 int out - out point
89                 + all producer initialising properties
90
91             Read Only Properties
92
93                 string resource - file location
94                 + all producer read only properties
95
96             Details
97
98                 This producer has two roles:
99
100                 1. it handles the mappings of all file names to the other
101                 producers;
102                 2. it attaches normalising filters (rescale, resize and resample)
103                 to the producers (when necessary).
104
105                 This producer simplifies many aspects of use. Essentially, it
106                 ensures that a consumer will receive images and audio precisely as
107                 they request them. 
108
109             Dependencies
110
111                 all.
112
113             Known Bugs
114
115                 None.
116
117         
118         colour
119         
120             Description
121             
122                 A simple colour generator.
123                 
124             Constructor Argument
125             
126                 colour - A colour value is a hexadecimal representation of RGB plus
127                          alpha channel as 0xrrggbbaa.
128                        - Also colours can be the words: white, black, red, green,
129                          or blue.
130                        - The default colour is black.
131                        
132             Initialisation Properties
133             
134                 none
135                 
136             Read Only Properties
137             
138                 none
139                 
140             Dependencies
141             
142                 none
143                 
144             Known Bugs
145             
146                 none
147
148         
149         libdv
150
151             Description
152
153                 libdv based decoder for video and audio.
154
155             Constructor Argument
156
157                 'file'    - produce a/v from file
158
159             Initialisation Properties
160
161                 int in - in point
162                 int out - out point
163
164             Read Only Properties
165
166                 string resource - file location
167                 double fps - output frames per second
168                 int length - duration of resource (in frames)
169                 
170             Mutable Properties
171             
172                 string quality - one of "best," "fast" or anything else chooses
173                                  medium.
174
175             Dependencies
176
177                 libdv.
178
179             Known Bugs
180
181                 DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
182                 libdv from CVS or a post 0.101 release. 
183
184         mcdv (Proprietary)
185
186             Description
187
188                 MainConcept based dv decoder for video and audio.
189
190             Constructor Argument
191
192                 'file'    - produce a/v from file
193
194             Initialisation Properties
195
196                 int in - in point
197                 int out - out point
198
199             Read Only Properties
200
201                 string resource - file location
202                 double fps - output frames per second
203                 int length - duration of resource (in frames)
204
205             Dependencies
206
207                 MainConcept DV or DVCPRO SDK, libdv.
208                 "dv_sdk" installed parallel to mlt.
209
210             Known Bugs
211
212                 None
213
214         mcmpeg (Proprietary)
215
216             Description
217
218                 MainConcept based mpeg decoder for video and audio.
219
220             Constructor Argument
221
222                 'file'    - produce a/v from file
223
224             Initialisation Properties
225
226                 int in - in point
227                 int out - out point
228
229             Read Only Properties
230
231                 string resource - file location
232                 double fps - output frames per second
233                 double aspect_ratio - sample aspect ratio of video
234                 int length - duration of resource (in frames)
235                 
236             Dependencies
237
238                 MainConcept MPEG SDK.
239                 "mpeg_sdk_release" installed parallel to mlt.
240
241             Known Bugs
242
243                 None.
244
245         noise
246
247             Description
248
249                 White noise producer
250
251             Constructor Argument
252
253                 none
254
255             Initialisation Properties
256
257                 int in - in point
258                 int out - out point
259
260             Read Only Properties
261
262                 string resource - file location
263                 double fps - output frames per second
264                 double aspect_ratio - sample aspect ratio of video
265                 int length - duration of resource (in frames)
266                 
267             Dependencies
268
269                 none
270
271             Known Bugs
272
273                 none
274
275         pango
276
277             Description
278
279                 A title generator that uses the Pango international text layout
280                 and Freetype2 font renderer.
281
282             Constructor Argument
283
284                 string file - a text file containing Pango markup, see:
285                 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
286                             - requires xml-like encoding special chars from: 
287                               <, >, &   -to-   &lt;, &gt;, &amp;
288                               
289             Details
290             
291                 Supplying a filename with extension ".txt" causes the Fezzik 
292                 producer to load with pango. If the filename begins with "+" the 
293                 pango producer interprets the filename as pango text. This is a
294                 shortcut to embed titles in inigo commands. For westley, it is 
295                 recommended that you embed the title text in the property value.
296                 
297                 Pango has builtin scaling. It will rescale the originally rendered
298                 title to whatever the consumer requests. Therefore, it will lose
299                 its aspect ratio if so requested, and it is up to the consumer to
300                 request a proper width and height that maintains the image aspect.
301
302             Initialisation Properties
303
304                 int in - in point
305                 int out - out point
306
307             Mutable Properties
308
309                 string markup - a string containing Pango markup see:
310                 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
311                               - requires xml-like encoding special chars from: 
312                                 <, >, &   -to-   &lt;, &gt;, &amp;
313                 string fgcolour - an RGBA colour specification of the text 
314                                   (i.e. 0xrrggbbaa)
315                 string bgcolour - an RGBA colour of the background rectangle
316                 string align - paragraph alignment: left, centre, right
317                              - also, numbers 0, 1 and 2 can be used respectively.
318                 int pad - the number of pixels to pad the background rectangle 
319                           beyond edges of text. default 0.
320                 string markup - see constructor argument
321                 string text - non-markup string in UTF-8 encoding (can contain 
322                               markup chars un-encoded)
323                 string font - the default typeface to use when not using markup.
324                               default "Sans 48". FreeType2 renders at 72 dpi.
325                 string encoding - the text encoding type of the input if not UTF-8.
326                                 - see 'iconv --list' for a list of possible inputs.
327                         int weight - the weight of the font (default is 400)
328
329             Read Only Properties
330
331                 string resource - the text/markup file or "pango" if no file.
332                 int real_width - the original, unscaled width of the rendered title.
333                 int real_height - the original, unscaled height of the title.
334                 int width - the last requested scaled image width.
335                 int height - the last requested scaled image height.
336
337             Dependencies
338
339                 libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0, 
340                 libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
341
342             Known Bugs
343
344                 The foreground and background Pango markup span attributes are not
345                 supported.
346                 Word wrapping is not supported.
347
348         pixbuf
349
350             Description
351
352                 A still graphics to video generator using gdk-pixbuf
353
354             Constructor Argument
355
356                 'file' - The name of a graphics file loadable by
357                          a gdk-pixbuf loader. see /usr/lib/gdk-pixbuf/loaders
358                          definitely png, jpeg, tiff, pnm, and xpm
359                        - If "%" in filename, the filename is used with sprintf
360                          generate a filename from a counter for multi-file/flipbook 
361                          animation. The file sequence ends when numeric 
362                          discontinuity >100.
363                        - If filename contains "/.all.", suffix with an extension to 
364                          load all pictures with matching extension from a directory.
365                        - If filename contains the string "<svg", then pixbuf tries
366                          to load the filename as inline SVG XML, which is convenient
367                          for inigo commands.
368                          
369             Details
370             
371                 Pixbuf has builtin scaling. It will rescale the originally rendered
372                 title to whatever the consumer requests. Therefore, it will lose
373                 its aspect ratio if so requested, and it is up to the consumer to
374                 request a proper width and height that maintains the image aspect.
375
376             Initialisation Properties
377
378                 int in - in point
379                 int out - out point
380
381             Mutable Properties
382
383                 int ttl - how long (in frames) to repeat each picture in file 
384                           sequences. default is 25.
385
386             Read Only Properties
387
388                 string resource - file location. See Constructor Argument above.
389                 int real_width - the original, unscaled width of the rendered title.
390                 int real_height - the original, unscaled height of the title.
391                 int width - the last requested scaled image width.
392                 int height - the last requested scaled image height.
393
394             Dependencies
395
396                 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
397
398             Known Bugs
399
400                 XXX: in/out settings are incorrectly handled.
401
402         ppm
403         
404             Description
405
406                 Reads a stream of contiguous PPM images.
407                 
408             Constructor Argument
409
410                 command - a shell command to run something that produces ppm
411                           streams on stdout.
412                 
413             Initialisation Properties
414
415                 none
416                 
417             Read Only Properties
418
419                 string resource - the command
420                 
421             Dependencies
422
423                 none
424                 
425             Known Bugs
426
427                 Since it uses pipes, it is not compatible with bluefish.
428
429         westley
430
431             Description
432
433                 Construct a service network from an XML description.
434                 See docs/westley.txt.
435
436             Constructor Argument
437
438                 URL - an XML text file containing westley XML (schema/DTD pending)
439                     - Since westley files can be parameterised, the URL syntax is:
440                       {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
441                       A colon is allowed instead of an equal sign to pacify inigo,
442                       who tokenises anything with an equal sign as a property 
443                       setting. Also, when running inigo from the shell, beware of
444                       the '?' and shell filename expansion. You can surround the URL
445                       with single quotations to prevent expansion. Finally, fezzik
446                       will fail to match the filename when you use parameters, so
447                       preface the url with 'westley:' to force fezzik to load with
448                       the westley service.
449                       
450             Read Only Properties
451
452                 string resource - file location
453
454             Dependencies
455
456                 libxml2
457
458             Known Bugs
459
460                 Non-referenced producers and playlists are not destroyed until the 
461                 network is destroyed.
462                 A referenced producer or playlist must appear before the reference.
463                 A filter that occurs before a producer has been defined causes a 
464                 segfault.
465
466         vorbis
467
468             Description
469
470                 OGG Vorbis file reader.
471
472             Constructor Argument
473
474                 'file' - file to use (only .ogg supported at the moment)
475
476             Initialisation Properties
477
478                 int in - in point
479                 int out - out point
480
481             Read Only Properties
482
483                 double fps - this is fixed at 25 for PAL currently
484
485             Dependencies
486
487                 libvorbisfile
488
489             Known Bugs
490
491                 Fixed frame size (PAL audio chunks).
492                 Doesn't cover ogg files with multiple, differing sections.
493
494 Filters
495 -------
496
497         brightness
498         
499             Description
500             
501                 Shift the luma component using a constant value.
502                 
503             Constructor Argument
504             
505                 start - the constant floating point numeric value to apply.
506                       - the default is 0.
507                 
508             Initialisation Properties
509             
510                 int in - in point
511                 int out - out point
512                 double start - see Constructor Argument above.
513                 double end - the ending adjustment value. the filter interpolates
514                              between the start and end adjustments over the 
515                              duration of the effect.
516                              
517             Read Only Properties
518             
519                 none
520                 
521             Dependencies
522             
523                 none
524                 
525             Known Bugs
526             
527                 Does not go completely to black or white.
528                 
529         
530         channelcopy
531         
532             Description
533             
534                 Copy audio from one channel to another channel.
535                 
536             Constructor Argument
537             
538                 to - the 0-indexed channel to copy into, default is 1.
539                 
540             Mutable Properties
541             
542                 int to - see above
543                 int from - the channel from which to copy, default is 0.
544                 
545             Dependencies
546             
547                 none
548                 
549             Known Bugs
550             
551                 none
552                 
553
554
555         deinterlace
556         
557             Description
558
559                 Deinterlace a frame consisting of two fields using bob, weave,
560                 greedy, one-field, and linear blend methods. This code is 
561                 appropriated from the Xine XV video output plugin.
562             
563             Constructor Argument
564
565                 method - a string containing the deinterlace method: bob, weave,
566                          greedy, onefield, or linearblend. The default is
567                          linearblend.
568             
569             Initialisation Properties
570
571                 int in - in point
572                 int out - out point
573                 
574             Read Only Properties
575
576                 none
577             
578             Mutable Properties
579             
580                 string method
581                 
582             Details
583             
584                 If the frame properties "progressive" or "consumer_progressive"
585                 are non-zero, then the filter is not applied. Also, if applied,
586                 this sets the frame property "progressive" to 1.
587
588             Dependencies
589
590                 none
591                 
592             Known Bugs
593
594                 Not a bug, but it only provides fair quality.
595                 
596             
597         gamma
598         
599             Description
600
601                 Adjust image luma using a non-linear power-law curve
602                 
603             Constructor Argument
604
605                 gamma - a floating point value. The default is 1.0, or none.
606             
607             Initialisation Properties
608             
609                 int in - in point
610                 int out - out point
611
612             Mutable Properties
613
614                 double gamma - the exponential factor of the power-law curve
615                 
616             Dependencies
617
618                 none
619                 
620             Known Bugs
621
622                 none
623                 
624         
625         greyscale
626         
627             Description
628
629                 Convert colour image to greyscale
630                 
631             Constructor Argument
632
633                 none
634                 
635             Initialisation Properties
636             
637                 int in - in point
638                 int out - out point
639
640             Read Only Properties
641
642                 none
643                 
644             Dependencies
645
646                 none
647                 
648             Known Bugs
649
650                 none
651             
652         gtkrescale
653
654             Description
655
656                 Scale the producer video frame size to match the consumer.
657                 This filter is designed for use as a Fezzik normaliser.
658
659             Constructor Argument
660
661                 interpolation - the rescaling method, one of:
662                     nearest (lowest quality, fastest),
663                     tiles,
664                     bilinear (default; good quality, moderate speed),
665                     hyper (best quality, slowest).
666
667             Initialisation Properties
668
669                 int in - in point
670                 int out - out point
671
672             Mutable Properties
673
674                 string interpolation - see constructor argument above
675
676                 If a property "consumer_aspect_ratio" exists on the frame, then
677                 rescaler normalises the producer's aspect ratio and maximises the
678                 size of the frame, but may not produce the consumer's requested
679                 dimension. Therefore, this option works best in conjunction with the
680                 resize filter. This behavior can be disabled by another service by
681                 either removing the property, setting it to zero, or setting
682                 frame property "distort" to 1.
683
684             Dependencies
685
686                 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
687
688             Known Bugs
689
690                 none
691
692         jackrack
693         
694             Description
695             
696                 Creates Jack ports and runs a JackRack project to process audio
697                         through a stack of LADSPA filters.
698                 
699             Constructor Argument
700             
701                 src - a JackRack file
702                         
703                 Details
704                 
705                         If you are using a consumer that uses ALSA, then you should start
706                         jacks with the dummy driver: jackd -d dummy.
707                         I also recommend using a period size of 2048: -p 2048.
708                         
709                         jackd -ddummy -r48000 -p2048
710                 
711             Initialisation Properties
712             
713                 int in - in point
714                 int out - out point
715                         
716                         The following can be used without a rack file in order to connect
717                         filter_jackrack to a running instance of JackRack:
718                         string out_1 - Jack port to connect MLT's output port (JackRack's input)
719                         string out_2 - Jack port to connect MLT's output port (JackRack's input)
720                         string in_1 - Jack port to connect MLT's input port (JackRack's output)
721                         string in_2 - Jack port to connect MLT's input port (JackRack's output)
722                 
723             Read Only Properties
724             
725                 none
726                 
727             Mutable Properties
728
729                         none
730                 
731             Dependencies
732             
733                 Jack, LADSPA, glib-2.0, libxml2
734                 
735             Known Bugs
736             
737                 no encapsulated resampling and jack runs at a fixed frequency
738             
739         luma
740         
741             Description
742             
743                 Applies a luma transition between the current and next frames.
744                 Useful for transitions from a slideshow created using producer
745                 pixbuf.
746                 
747             Constructor Argument
748             
749                 file - a luma wipe
750                 
751             Initialisation Properties
752             
753                 int in - in point
754                 int out - out point
755                 
756             Read Only Properties
757             
758                 none
759                 
760             Mutable Properties
761             
762                 int period - how long to wait between success iterations of the
763                              transition. For best results set this to a multiple
764                              of ttl used in pixbuf. The default is 24.
765                              
766                 luma. - all properties beginning with "luma." are passed to the
767                         encapsulated luma transition. For example, luma.out controls
768                         the duration of the wipe.
769                 
770             Dependencies
771             
772                 transition_luma and its dependencies
773                 
774             Known Bugs
775             
776                 none
777             
778         mcrescale
779
780             Description
781
782                 Scale the producer video frame size to match the consumer.
783                 This filter is designed for use as a Fezzik normaliser.
784
785             Constructor Argument
786
787                 interpolation - the rescaling method, one of:
788                     nearest (lowest quality, fastest),
789                     bilinear (default; good quality, moderate speed),
790                     hyper (best quality, slowest).
791
792             Initialisation Properties
793
794                 int in - in point
795                 int out - out point
796
797             Mutable Properties
798
799                 string interpolation - see constructor argument above
800
801                 If a property "consumer_aspect_ratio" exists on the frame, then
802                 rescaler normalises the producer's aspect ratio and maximises the
803                 size of the frame, but may not produce the consumer's requested
804                 dimension. Therefore, this option works best in conjunction with the
805                 resize filter. This behavior can be disabled by another service by
806                 either removing the property, setting it to zero, or setting
807                 frame property "distort" to 1.
808
809             Dependencies
810
811                 the mainconcept rescaling sdk.
812
813             Known Bugs
814
815                 none
816         
817         mirror
818         
819             Description
820             
821                 Provides various mirror and image reversing effects.
822
823             Constructor Argument
824             
825                 mirror - horizontal, vertical, diagonal, flip, flop
826                 
827             Initialisation Properties
828             
829                 int reverse - being 0 or 1
830                 int in - in point
831                 int out - out point
832                 
833             Read Only Properties
834             
835                 none
836                 
837             Mutable Properties
838             
839                 none
840
841             Dependencies
842             
843                 none
844                 
845             Known Bugs
846             
847                 none
848
849
850         obscure
851         
852             Description
853
854                 Obscuring filter.
855                 
856             Constructor Argument
857
858                 none
859                 
860             Initialisation Properties
861             
862                 string start - in the format X,Y:WxH[:PWxPY]
863                              - PWxPY is the size of the averaging region in pixels.
864                 string end - in the format X,Y:WxH[:PWxPY]
865                 int in - in point
866                 int out - out point
867
868             Read Only Properties
869
870                 none
871                 
872             Dependencies
873
874                 none
875
876             Known Bugs
877
878                 none
879
880         region
881         
882             Description
883             
884                 Apply one or more filters to a region of the video image. The region
885                 can be shaped as well using the alpha channel of another producer.
886                 
887             Constructor Argument
888             
889                 resource - A file whose alpha channel will "shape"  the region.
890                      - The string "circle" is a shortcut but it requires pixbuf with
891                        the librsvg loader. The circle is automatically stretched
892                        to the region to create an ellipse.
893         
894             Initialisation Properties
895
896                 int in - in point
897                 int out - out point
898                 plus and region transition properties
899                 
900             Read Only Properties
901             
902                 see the region transition
903                 
904             Dependencies
905             
906                 transition_region
907                 
908             Known Bugs
909             
910                 "circle" is unpredictable in the absence of the librsvg pixbuf loader.
911                 
912
913         resample
914
915             Description
916
917                 Adjust an audio stream's sampling rate, and duplicate channels if 
918                 producer provides less than consumer requested.
919                 
920                 This filter is automatically invoked by Fezzik for the sake of
921                 normalisation over inputs and with the consumer.
922
923             Constructor Argument
924
925                 frequency - a numeric value for the new sample rate
926
927             Initialisation Properties
928
929                 int in - in point
930                 int out - out point
931
932             Mutable Properties
933
934                 int frequency - the target sample rate
935
936             Dependencies
937
938                 libresample
939
940             Known Bugs
941
942                 Assumes 2 channels during libsamplerate initialisation. Untested
943                 with >2 channels.
944
945         rescale
946
947             Description
948
949                 Scale the producer video frame size to match the consumer.
950                 This filter is designed for use as a Fezzik normaliser.
951
952             Constructor Argument
953
954                 None.
955
956             Initialisation Properties
957
958                 int in - in point
959                 int out - out point
960
961             Mutable Properties
962
963                 If a property "consumer_aspect_ratio" exists on the frame, then
964                 rescaler normalises the producer's aspect ratio and maximises the
965                 size of the frame, but may not produce the consumer's requested
966                 dimension. Therefore, this option works best in conjunction with the
967                 resize filter. This behavior can be disabled by another service by
968                 either removing the property, setting it to zero, or setting
969                 frame property "distort" to 1.
970
971             Dependencies
972
973                 none
974
975             Known Bugs
976
977                 none but... it only implements a nearest neighbour scaling - it is
978                         used as the base class for the gtkrescale and mcrescale filters.
979
980         resize
981         
982             Description
983
984                 Image scaling and padding and field order adjustment.
985                     
986             Details
987             
988                 Normally resize is used to pad the producer's
989                 output to what the consumer has requested after an upstream rescale
990                 filter first scales the image to maximise usage of the image area.
991                 This filter also adjusts the field order to lower field first
992                 if the frame property "top_field_first" has been set to 1.
993                 Therefore, when done, it sets the top_field_first to 0.
994                 This filter is automatically invoked by Fezzik as part of image
995                 sample aspect ratio normalisation.
996                 
997             Constructor Argument
998
999                 scale - "affine" to use affine transform scaling, otherwise
1000                          center and pad.
1001                 
1002             Initialisation Properties
1003             
1004                 int in - in point
1005                 int out - out point
1006
1007             Read Only Properties
1008
1009                 none
1010                 
1011             Dependencies
1012
1013                 none
1014                 
1015             Known Bugs
1016
1017                 Assumes lower field first output.
1018
1019         volume
1020
1021             Description
1022
1023                 Adjust an audio stream's volume level 
1024                                 - based on the 'normalize' utility
1025                 
1026             Constructor Argument
1027
1028                 gain - a string containing one of:
1029                      - a floating point value of the gain adjustment
1030                      - a numeric value with the suffix "dB" to adjust in terms of decibels
1031                      - "normalise" to normalise the volume to the target amplitude -12dBFS
1032                 
1033             Initialisation Properties
1034             
1035                 int in - in point
1036                 int out - out point
1037                 int window - the number of video frames over which to smooth normalisation.
1038                              defaults to 75.
1039
1040             Mutable Properties
1041
1042                 string gain - same as constructor argument above
1043
1044                 string normalise - normalise the volume to the amplitude:
1045                     - a numeric value with the suffix "dB" to set amplitude in decibels
1046                     - a floating point value of the relative volume
1047                     - an unspecified value uses the default -12dBFS
1048
1049                 string limiter - limit all samples above:
1050                     - a numeric value with the suffix "dB"
1051                     - a floating point value ( dB = 20 * log10(x) )
1052                     - an unspecified value uses the default -6dBFS
1053
1054                 double max_gain - a floating point or decibel value of the maximum gain that
1055                     can be applied during normalisation.
1056                     - an unspecified value uses the default 20dB
1057
1058                 string end - a gain value just like the gain property above.
1059                              This causes the gain to be interpolated from 'gain' to 'end'
1060                              over the duration.
1061
1062                 int window - the size of the normalising smoothing buffer in video frame units.
1063                            - the smoothing buffer prevents erratic gain changes.
1064                            - the default value is 75 video frames. 
1065
1066                 gain can be applied as a factor to the normalise amplitude!
1067                 
1068             Dependencies
1069
1070                 none
1071                 
1072             Known Bugs
1073
1074                 none
1075
1076         watermark
1077
1078             Description
1079
1080                 Add a watermark to the frames.
1081
1082             Constructor Argument
1083
1084                 resource - the producer to use (ie: a .png)
1085
1086             Initialisation Properties
1087
1088                 string resource - the producer to use
1089                 string factory - producer required for the resource ('fezzik')
1090                 string geometry - composite geometry
1091                 string distort - control scaling
1092                 int in - in point
1093                 int out - out point
1094
1095             Mutable Properties
1096
1097                 none
1098
1099             Dependencies
1100
1101                 mlt core modules and optionally, fezzik
1102
1103             Known Bugs
1104
1105                 none
1106
1107 Transitions
1108 -----------
1109
1110         composite
1111         
1112             Description
1113
1114                 A key-framable alpha-channel compositor for two frames.
1115                 
1116             Details
1117             
1118                 Performs dissolves and luma wipes in addition to alpha compositing.
1119                 
1120                 By default, the aspect ratio of the B frame is respected and the
1121                 size portion of the geometry specification simply defines a 
1122                 bounding rectangle.
1123             
1124                 This performs field-based rendering unless the A frame property
1125                 "progressive" or "consumer_progressive" or the transition property
1126                 "progressive" is set to 1.
1127                 
1128             Constructor Argument
1129
1130                         none[*]
1131
1132             Initialisation Properties
1133                 
1134                 int in - in point
1135                 int out - out point
1136                 string factory - The name of a factory service used as a non-PGM
1137                                  producer loader. The default is fezzik.
1138         
1139             Read Only Properties
1140
1141                 none
1142
1143             Mutable Properties
1144
1145
1146                         string geometry - key frame specification
1147                                                         - this is a ; delimited form of the deprecated start,
1148                                                           key[n], end properties
1149                 int progressive - set to 1 to disable field-based rendering.
1150                 string distort - when set, causes the B frame image to fill the WxH
1151                                  completely with no regard to B's aspect ratio.
1152                 string halign - when not distorting, set the horizontal alignment
1153                                 of B within the geometry rectangle.
1154                               - one of: left (0), centre (1), or right (2).
1155                               - the default is left.
1156                 string valign - when not distorting, set the vertical alignment of 
1157                                 B within the geometry rectangle.
1158                               - one of: top (0), middle (1), or bottom (2).
1159                               - the default is top.
1160                 string luma - the luma map file name. If not supplied, a dissolve.
1161                 double softness - only when using a luma map, how soft to make the
1162                                   edges between A and B. 0.0 = no softness. 1.0 =
1163                                   too soft.
1164                 Any property starting with "luma." is passed to the non-PGM luma
1165                     producer.
1166
1167                 Deprecated Properties
1168
1169                 string start - a geometry specification as X,Y:WxH[!][:mix]
1170                              - X, Y, W, H are assumed to pixel units unless they
1171                                have the suffix '%'
1172                              - '!' is a shortcut to specify distort, see below.
1173                              - mix is always a 2 digit percentage, defaults to 100.
1174                              - default is "85%,5%:10%x10%"
1175                 string end - the ending size and position.
1176                 string key[F] - X,Y:WxH[:mix] - set a key frame for geometry between
1177                                 the in and out. F is a frame number and can be
1178                                 negative to make it relative to the out point.
1179
1180             Dependencies
1181
1182                 none
1183             
1184             Known Bugs
1185
1186                 Assumes lower field first during field rendering.
1187
1188         luma
1189         
1190             Description
1191
1192                 A generic dissolve and wipe transition processor.
1193
1194             Details
1195
1196                 luma gets its name
1197                 from how it uses a grayscale "map" file. As the luma value varies
1198                 over time, a threshold filter is applied to the map to determine
1199                 what parts of frame A vs. frame B to show. It reads PGM files
1200                 up to 16 bits! Alternatively, it can use the first frame from any
1201                 producer that outputs yuv, but it will be limited to the luma
1202                 gamut of 220 values.
1203                 This performs field-based rendering unless the A frame property
1204                 "progressive" or "consumer_progressive" or the transition property
1205                 "progressive" is set to 1.
1206             
1207             Constructor Argument
1208
1209                 string resource - the luma map file name - either PGM or any other
1210                                   producable video. 
1211                                 - If not supplied, a dissolve.
1212
1213             Initialisation Properties
1214             
1215                 int in - in point
1216                 int out - out point
1217                 string factory - The name of a factory service used as a non-PGM
1218                                  producer loader. The default is Fezzik.
1219
1220             Mutable Properties
1221
1222                 string resource - same as above
1223                 double softness - only when using a luma map, how soft to make the
1224                                   edges between A and B. 0.0 = no softness. 1.0 =
1225                                   too soft.
1226                 int reverse - reverse the direction of the transition.
1227                 Any property starting with "producer." is passed to the non-PGM luma
1228                     producer.
1229                 
1230             Read Only Properties
1231
1232                 none
1233                 
1234             Dependencies
1235
1236                 none
1237                 
1238             Known Bugs
1239                 
1240                 Assumes lower field first output.
1241
1242         mix
1243
1244             Description
1245
1246                 An two stream audio mixer.
1247
1248             Constructor Argument
1249
1250                 start - see below
1251
1252             Initalisation Properties
1253
1254                 int in - in point
1255                 int out - out point
1256
1257             Mutable Properties
1258
1259                 double start - the mix level to apply to the second frame.
1260                              - any negative value causes an automatic crossfade from 0 to 1.
1261                 double end - the ending value of the mix level. mix level will be interpolated
1262                              from start to end over the in-out range.
1263                 int reverse - set to 1 to reverse the direction of the mix.
1264
1265             Read Only Properties
1266
1267                 none
1268
1269             Dependencies
1270
1271                 none
1272
1273             Known Bugs
1274
1275                 Samples from the longer of the two frames are discarded.
1276                 
1277         
1278         region
1279         
1280             Description
1281             
1282                 Apply zero or more filters to B frame as it is composited onto
1283                 a region of the A frame. The "shape" of the region can be defined
1284                 by the alpha channel of a third producer.
1285                 
1286             Constructor Argument
1287
1288                 resource - a shape producer
1289             
1290             Initialisation Properties
1291             
1292                 string resource - nothing is rectangle, "circle" is a pixbuf-
1293                     generated SVG circle, anything else is loaded by the factory.
1294                 string factory - the service that creates the shape producer.
1295                                - the default is fezzik.
1296                 string filter[N] - one or more filters to apply. All filter
1297                                    properties are passed using the same filter "key"
1298                 Any property starting with "composite." is passed to the 
1299                     encapsulated composite transition.
1300                 
1301             Read Only Properties
1302             
1303                 none
1304                 
1305             Dependencies
1306             
1307                 transition_composite
1308                 
1309             Known Bugs
1310             
1311                 none
1312                 
1313
1314 Consumers
1315 ---------
1316
1317         avformat
1318         
1319             Description
1320             
1321                 Multiformat transcoding consumer.
1322
1323             Constructor Argument
1324
1325                 string target - the filename to write to, e.g. test.mpeg.
1326
1327             Initialisation Properties
1328             
1329                 int buffer - the number of frames to buffer, minimum 1, default 25.
1330                 string rescale - a rescale method, see the Filters/rescale.
1331                 int progressive - indicates whether to use progressive or field-
1332                                   based rendering, default 0 (off).
1333                 
1334             Read Only Properties
1335             
1336                 none
1337                 
1338             Dependencies
1339             
1340                 libavformat
1341                 
1342             Known Bugs
1343             
1344                 Plenty.
1345
1346         bluefish (Proprietary)
1347         
1348             Description
1349
1350                 BlueFish444 audio and video output module.
1351             
1352             Constructor Argument
1353
1354                 card - a numeric card id starting at 1, default is 1.
1355                 
1356             Initialisation Properties
1357
1358                 string standard - "PAL" (default) or "NTSC"
1359                                 - default is based upon MLT_NORMALISATION 
1360                                   environment variable, which defaults to PAL.
1361                 int frames - the number of DMA video frames. default is 8.
1362                              minimum is 2. maximum on my system is 11.
1363                 int buffer - the number of frames to buffer within MLT, minimum 1, 
1364                              default 25.
1365                 string rescale - a rescale method, see the Filters/rescale.
1366                 
1367             Read Only Properties
1368
1369                 none
1370             
1371             Dependencies
1372
1373                 BlueVelvet SDK installed parallel to mlt in "bluefish."
1374             
1375             Known Bugs
1376
1377                 Does not work with any service that uses pipes!
1378                 
1379                 If mlt crashes, you might need to reload the BlueDriver kernel 
1380                 module due to unreleased DMA buffers.
1381                 
1382                 Only supports 2 channel audio at the moment.
1383             
1384         libdv
1385         
1386             Description
1387             
1388                 libdv dv producer.
1389
1390             Constructor Argument
1391
1392                 string target - the filename to write to, e.g. /dev/dv1394.
1393
1394             Initialisation Properties
1395             
1396                 int buffer - the number of frames to buffer, minimum 1, default 25.
1397                 string rescale - a rescale method, see the Filters/rescale.
1398             
1399             Mutable Properties
1400             
1401                 int progressive - indicates whether to use progressive or field-
1402                                   based rendering, default 0 (off).
1403                 
1404             Read Only Properties
1405             
1406                 none
1407                 
1408             Dependencies
1409             
1410                 libdv
1411                 
1412             Known Bugs
1413             
1414                 none
1415
1416         mcmpeg
1417         
1418             Description
1419             
1420                 Mainconcept MPEG encoder.
1421
1422             Constructor Argument
1423
1424                 string target - the filename to write to.
1425
1426             Initialisation Properties
1427             
1428                 int buffer - the number of frames to buffer, minimum 1, default 25.
1429                 string rescale - a rescale method, see the Filters/rescale.
1430                 string format - vcd [default], svcd or dvd provide base settings
1431                 int motion_search_type - 0 to 16 - reduces quality/cpu usage
1432                 int gop - group of picture size (default: format dependent)
1433
1434             Mutable Properties
1435             
1436                 int progressive - indicates whether to use progressive or field-
1437                                   based rendering, default 0 (off).
1438                 
1439             Read Only Properties
1440             
1441                 none
1442                 
1443             Dependencies
1444             
1445                 Mainconcept MPEG SDK
1446                 
1447             Known Bugs
1448             
1449                 none
1450
1451         sdl
1452
1453             Description
1454
1455                 Simple DirectMedia Layer audio and video output module.
1456                 
1457             Constructor Argument
1458
1459                 string video_standard - "PAL" (default), "NTSC", or "WxH"
1460                 
1461             Initialisation Properties
1462             
1463                 int buffer - the number of frames to buffer, minimum 1, default 25.
1464                 string rescale - a rescale method, see the Filters/rescale.
1465                                - Hint: "none" works very good with SDL output.
1466                 
1467             Mutable Properties
1468
1469                 double volume - audio level factor
1470                 int video_off - if 1, disable video output
1471                 int audio_off - if 1, disable audio output
1472                         int resize - TODO
1473                 int progressive - indicates whether to use progressive or field-
1474                                   based rendering, default 0 (off).
1475                 int audio_buffer - size of the sdl audio buffer (default: 1024)
1476                 
1477             Read Only Properties
1478
1479                 none
1480                 
1481             Dependencies
1482
1483                 libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
1484             
1485             Known Bugs
1486
1487                 none
1488
1489         westley
1490
1491             Description
1492
1493                 Serialise the service network to XML.
1494                 See docs/westley.txt for more information.
1495                 
1496             Constructor Argument
1497
1498                 resource - the name of a file in which to store the XML.
1499                           - stdout is default.
1500                 
1501             Initialisation Properties
1502
1503                 string resource - same as above.
1504                 
1505             Dependencies
1506             
1507                 libxml2
1508                 
1509             Known Bugs
1510
1511                 Untested arbitrary nesting of multitracks and playlists.
1512                 Property "id" is generated as service type followed by number if
1513                 no property named "id" exists, but it fails to guarantee uniqueness.