]> git.sesse.net Git - mlt/blob - docs/services.txt
cleanup and reduce code in jackrack support code and add new jack-less filter_ladspa.
[mlt] / docs / services.txt
1 Service Documentation
2
3 Copyright (C) 2004-2005 Ushodaya Enterprises Limited
4 Authors: Charles Yates <charles.yates@pandora.be>
5          Dan Dennedy <dan@dennedy.org>
6 Last Revision: 2005-04-22
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                 int begin  - when using an image sequence, this sets the starting
381                              number.
382
383             Mutable Properties
384
385                 int ttl - how long (in frames) to repeat each picture in file 
386                           sequences. default is 25.
387
388             Read Only Properties
389
390                 string resource - file location. See Constructor Argument above.
391                 int real_width - the original, unscaled width of the rendered title.
392                 int real_height - the original, unscaled height of the title.
393                 int width - the last requested scaled image width.
394                 int height - the last requested scaled image height.
395
396             Dependencies
397
398                 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
399
400             Known Bugs
401
402                 XXX: in/out settings are incorrectly handled.
403
404         ppm
405         
406             Description
407
408                 Reads a stream of contiguous PPM images.
409                 
410             Constructor Argument
411
412                 command - a shell command to run something that produces ppm
413                           streams on stdout.
414                 
415             Initialisation Properties
416
417                 none
418                 
419             Read Only Properties
420
421                 string resource - the command
422                 
423             Dependencies
424
425                 none
426                 
427             Known Bugs
428
429                 Since it uses pipes, it is not compatible with bluefish.
430
431         westley
432
433             Description
434
435                 Construct a service network from an XML description.
436                 See docs/westley.txt.
437
438             Constructor Argument
439
440                 URL - an XML text file containing westley XML (schema/DTD pending)
441                     - Since westley files can be parameterised, the URL syntax is:
442                       {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
443                       A colon is allowed instead of an equal sign to pacify inigo,
444                       who tokenises anything with an equal sign as a property 
445                       setting. Also, when running inigo from the shell, beware of
446                       the '?' and shell filename expansion. You can surround the URL
447                       with single quotations to prevent expansion. Finally, fezzik
448                       will fail to match the filename when you use parameters, so
449                       preface the url with 'westley:' to force fezzik to load with
450                       the westley service.
451                       
452             Read Only Properties
453
454                 string resource - file location
455
456             Dependencies
457
458                 libxml2
459
460             Known Bugs
461
462                 Non-referenced producers and playlists are not destroyed until the 
463                 network is destroyed.
464                 A referenced producer or playlist must appear before the reference.
465                 A filter that occurs before a producer has been defined causes a 
466                 segfault.
467
468         vorbis
469
470             Description
471
472                 OGG Vorbis file reader.
473
474             Constructor Argument
475
476                 'file' - file to use (only .ogg supported at the moment)
477
478             Initialisation Properties
479
480                 int in - in point
481                 int out - out point
482
483             Read Only Properties
484
485                 double fps - this is fixed at 25 for PAL currently
486
487             Dependencies
488
489                 libvorbisfile
490
491             Known Bugs
492
493                 Fixed frame size (PAL audio chunks).
494                 Doesn't cover ogg files with multiple, differing sections.
495
496 Filters
497 -------
498
499         brightness
500         
501             Description
502             
503                 Shift the luma component using a constant value.
504                 
505             Constructor Argument
506             
507                 start - the constant floating point numeric value to apply.
508                       - the default is 0.
509                 
510             Initialisation Properties
511             
512                 int in - in point
513                 int out - out point
514                 double start - see Constructor Argument above.
515                 double end - the ending adjustment value. the filter interpolates
516                              between the start and end adjustments over the 
517                              duration of the effect.
518                              
519             Read Only Properties
520             
521                 none
522                 
523             Dependencies
524             
525                 none
526                 
527             Known Bugs
528             
529                 Does not go completely to black or white.
530                 
531         
532         channelcopy
533         
534             Description
535             
536                 Copy audio from one channel to another channel.
537                 
538             Constructor Argument
539             
540                 to - the 0-indexed channel to copy into, default is 1.
541                 
542             Mutable Properties
543             
544                 int to - see above
545                 int from - the channel from which to copy, default is 0.
546                 
547             Dependencies
548             
549                 none
550                 
551             Known Bugs
552             
553                 none
554                 
555
556
557         deinterlace
558         
559             Description
560
561                 Deinterlace a frame consisting of two fields using bob, weave,
562                 greedy, one-field, and linear blend methods. This code is 
563                 appropriated from the Xine XV video output plugin.
564             
565             Constructor Argument
566
567                 method - a string containing the deinterlace method: bob, weave,
568                          greedy, onefield, or linearblend. The default is
569                          linearblend.
570             
571             Initialisation Properties
572
573                 int in - in point
574                 int out - out point
575                 
576             Read Only Properties
577
578                 none
579             
580             Mutable Properties
581             
582                 string method
583                 
584             Details
585             
586                 If the frame properties "progressive" or "consumer_progressive"
587                 are non-zero, then the filter is not applied. Also, if applied,
588                 this sets the frame property "progressive" to 1.
589
590             Dependencies
591
592                 none
593                 
594             Known Bugs
595
596                 Not a bug, but it only provides fair quality.
597                 
598             
599         gamma
600         
601             Description
602
603                 Adjust image luma using a non-linear power-law curve
604                 
605             Constructor Argument
606
607                 gamma - a floating point value. The default is 1.0, or none.
608             
609             Initialisation Properties
610             
611                 int in - in point
612                 int out - out point
613
614             Mutable Properties
615
616                 double gamma - the exponential factor of the power-law curve
617                 
618             Dependencies
619
620                 none
621                 
622             Known Bugs
623
624                 none
625                 
626         
627         greyscale
628         
629             Description
630
631                 Convert colour image to greyscale
632                 
633             Constructor Argument
634
635                 none
636                 
637             Initialisation Properties
638             
639                 int in - in point
640                 int out - out point
641
642             Read Only Properties
643
644                 none
645                 
646             Dependencies
647
648                 none
649                 
650             Known Bugs
651
652                 none
653             
654         gtkrescale
655
656             Description
657
658                 Scale the producer video frame size to match the consumer.
659                 This filter is designed for use as a Fezzik normaliser.
660
661             Constructor Argument
662
663                 interpolation - the rescaling method, one of:
664                     nearest (lowest quality, fastest),
665                     tiles,
666                     bilinear (default; good quality, moderate speed),
667                     hyper (best quality, slowest).
668
669             Initialisation Properties
670
671                 int in - in point
672                 int out - out point
673
674             Mutable Properties
675
676                 string interpolation - see constructor argument above
677
678                 If a property "consumer_aspect_ratio" exists on the frame, then
679                 rescaler normalises the producer's aspect ratio and maximises the
680                 size of the frame, but may not produce the consumer's requested
681                 dimension. Therefore, this option works best in conjunction with the
682                 resize filter. This behavior can be disabled by another service by
683                 either removing the property, setting it to zero, or setting
684                 frame property "distort" to 1.
685
686             Dependencies
687
688                 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
689
690             Known Bugs
691
692                 none
693
694         jackrack
695         
696             Description
697             
698                 Creates Jack ports and runs a JackRack project to process audio
699                         through a stack of LADSPA filters.
700                 
701             Constructor Argument
702             
703                 src - a JackRack file
704                         
705                 Details
706                 
707                         If you are using a consumer that uses ALSA, then you should start
708                         jacks with the dummy driver: jackd -d dummy.
709                         I also recommend using a period size of 2048: -p 2048.
710                         
711                         jackd -ddummy -r48000 -p2048
712                 
713             Initialisation Properties
714             
715                 int in - in point
716                 int out - out point
717                         
718                         The following can be used without a rack file in order to connect
719                         filter_jackrack to a running instance of JackRack:
720                         string out_1 - Jack port to connect MLT's output port (JackRack's input)
721                         string out_2 - Jack port to connect MLT's output port (JackRack's input)
722                         string in_1 - Jack port to connect MLT's input port (JackRack's output)
723                         string in_2 - Jack port to connect MLT's input port (JackRack's output)
724                 
725             Read Only Properties
726             
727                 none
728                 
729             Mutable Properties
730
731                         none
732                 
733             Dependencies
734             
735                 Jack, LADSPA, glib-2.0, libxml2
736                 
737             Known Bugs
738             
739                         Currently, due to timing and synchronisation issues, the audio
740                         is distorted with repeated samples and latency clicks.
741                 no encapsulated resampling and jack runs at a fixed frequency
742             
743         ladspa
744         
745             Description
746             
747                 Runs a JackRack project to process audio through a stack of
748                         LADSPA filters without using Jack.
749                 
750             Constructor Argument
751             
752                 src - a JackRack file
753                         
754                 Details
755
756                         Due to audio integrity issues with the jackrack filter, this
757                         filter is better for runtime, while jackrack is more suitable
758                         for prototyping a rack file using the Jack Rack GUI.
759                 
760             Initialisation Properties
761             
762                 int in - in point
763                 int out - out point
764                         
765             Read Only Properties
766             
767                 none
768                 
769             Mutable Properties
770
771                         none
772                 
773             Dependencies
774             
775                 Jack, LADSPA, glib-2.0, libxml2
776                         Jack is still required because this coexists with the jackrack 
777                         filter.
778                 
779             Known Bugs
780             
781                 no encapsulated resampling and jack runs at a fixed frequency
782             
783         luma
784         
785             Description
786             
787                 Applies a luma transition between the current and next frames.
788                 Useful for transitions from a slideshow created using producer
789                 pixbuf.
790                 
791             Constructor Argument
792             
793                 file - a luma wipe
794                 
795             Initialisation Properties
796             
797                 int in - in point
798                 int out - out point
799                 
800             Read Only Properties
801             
802                 none
803                 
804             Mutable Properties
805             
806                 int period - how long to wait between success iterations of the
807                              transition. For best results set this to a multiple
808                              of ttl used in pixbuf. The default is 24.
809                              
810                 luma. - all properties beginning with "luma." are passed to the
811                         encapsulated luma transition. For example, luma.out controls
812                         the duration of the wipe.
813                 
814             Dependencies
815             
816                 transition_luma and its dependencies
817                 
818             Known Bugs
819             
820                 none
821             
822         mcrescale
823
824             Description
825
826                 Scale the producer video frame size to match the consumer.
827                 This filter is designed for use as a Fezzik normaliser.
828
829             Constructor Argument
830
831                 interpolation - the rescaling method, one of:
832                     nearest (lowest quality, fastest),
833                     bilinear (default; good quality, moderate speed),
834                     hyper (best quality, slowest).
835
836             Initialisation Properties
837
838                 int in - in point
839                 int out - out point
840
841             Mutable Properties
842
843                 string interpolation - see constructor argument above
844
845                 If a property "consumer_aspect_ratio" exists on the frame, then
846                 rescaler normalises the producer's aspect ratio and maximises the
847                 size of the frame, but may not produce the consumer's requested
848                 dimension. Therefore, this option works best in conjunction with the
849                 resize filter. This behavior can be disabled by another service by
850                 either removing the property, setting it to zero, or setting
851                 frame property "distort" to 1.
852
853             Dependencies
854
855                 the mainconcept rescaling sdk.
856
857             Known Bugs
858
859                 none
860         
861         mirror
862         
863             Description
864             
865                 Provides various mirror and image reversing effects.
866
867             Constructor Argument
868             
869                 mirror - horizontal, vertical, diagonal, flip, flop
870                 
871             Initialisation Properties
872             
873                 int reverse - being 0 or 1
874                 int in - in point
875                 int out - out point
876                 
877             Read Only Properties
878             
879                 none
880                 
881             Mutable Properties
882             
883                 none
884
885             Dependencies
886             
887                 none
888                 
889             Known Bugs
890             
891                 none
892
893
894         obscure
895         
896             Description
897
898                 Obscuring filter.
899                 
900             Constructor Argument
901
902                 none
903                 
904             Initialisation Properties
905             
906                 string start - in the format X,Y:WxH[:PWxPY]
907                              - PWxPY is the size of the averaging region in pixels.
908                 string end - in the format X,Y:WxH[:PWxPY]
909                 int in - in point
910                 int out - out point
911
912             Read Only Properties
913
914                 none
915                 
916             Dependencies
917
918                 none
919
920             Known Bugs
921
922                 none
923
924         region
925         
926             Description
927             
928                 Apply one or more filters to a region of the video image. The region
929                 can be shaped as well using the alpha channel of another producer.
930                 
931             Constructor Argument
932             
933                 resource - A file whose alpha channel will "shape"  the region.
934                      - The string "circle" is a shortcut but it requires pixbuf with
935                        the librsvg loader. The circle is automatically stretched
936                        to the region to create an ellipse.
937         
938             Initialisation Properties
939
940                 int in - in point
941                 int out - out point
942                 plus and region transition properties
943                 
944             Read Only Properties
945             
946                 see the region transition
947                 
948             Dependencies
949             
950                 transition_region
951                 
952             Known Bugs
953             
954                 "circle" is unpredictable in the absence of the librsvg pixbuf loader.
955                 
956
957         resample
958
959             Description
960
961                 Adjust an audio stream's sampling rate, and duplicate channels if 
962                 producer provides less than consumer requested.
963                 
964                 This filter is automatically invoked by Fezzik for the sake of
965                 normalisation over inputs and with the consumer.
966
967             Constructor Argument
968
969                 frequency - a numeric value for the new sample rate
970
971             Initialisation Properties
972
973                 int in - in point
974                 int out - out point
975
976             Mutable Properties
977
978                 int frequency - the target sample rate
979
980             Dependencies
981
982                 libresample
983
984             Known Bugs
985
986                 Assumes 2 channels during libsamplerate initialisation. Untested
987                 with >2 channels.
988
989         rescale
990
991             Description
992
993                 Scale the producer video frame size to match the consumer.
994                 This filter is designed for use as a Fezzik normaliser.
995
996             Constructor Argument
997
998                 None.
999
1000             Initialisation Properties
1001
1002                 int in - in point
1003                 int out - out point
1004
1005             Mutable Properties
1006
1007                 If a property "consumer_aspect_ratio" exists on the frame, then
1008                 rescaler normalises the producer's aspect ratio and maximises the
1009                 size of the frame, but may not produce the consumer's requested
1010                 dimension. Therefore, this option works best in conjunction with the
1011                 resize filter. This behavior can be disabled by another service by
1012                 either removing the property, setting it to zero, or setting
1013                 frame property "distort" to 1.
1014
1015             Dependencies
1016
1017                 none
1018
1019             Known Bugs
1020
1021                 none but... it only implements a nearest neighbour scaling - it is
1022                         used as the base class for the gtkrescale and mcrescale filters.
1023
1024         resize
1025         
1026             Description
1027
1028                 Image scaling and padding and field order adjustment.
1029                     
1030             Details
1031             
1032                 Normally resize is used to pad the producer's
1033                 output to what the consumer has requested after an upstream rescale
1034                 filter first scales the image to maximise usage of the image area.
1035                 This filter also adjusts the field order to lower field first
1036                 if the frame property "top_field_first" has been set to 1.
1037                 Therefore, when done, it sets the top_field_first to 0.
1038                 This filter is automatically invoked by Fezzik as part of image
1039                 sample aspect ratio normalisation.
1040                 
1041             Constructor Argument
1042
1043                 scale - "affine" to use affine transform scaling, otherwise
1044                          center and pad.
1045                 
1046             Initialisation Properties
1047             
1048                 int in - in point
1049                 int out - out point
1050
1051             Read Only Properties
1052
1053                 none
1054                 
1055             Dependencies
1056
1057                 none
1058                 
1059             Known Bugs
1060
1061                 Assumes lower field first output.
1062
1063         volume
1064
1065             Description
1066
1067                 Adjust an audio stream's volume level 
1068                                 - based on the 'normalize' utility
1069                 
1070             Constructor Argument
1071
1072                 gain - a string containing one of:
1073                      - a floating point value of the gain adjustment
1074                      - a numeric value with the suffix "dB" to adjust in terms of decibels
1075                      - "normalise" to normalise the volume to the target amplitude -12dBFS
1076                 
1077             Initialisation Properties
1078             
1079                 int in - in point
1080                 int out - out point
1081                 int window - the number of video frames over which to smooth normalisation.
1082                              defaults to 75.
1083
1084             Mutable Properties
1085
1086                 string gain - same as constructor argument above
1087
1088                 string normalise - normalise the volume to the amplitude:
1089                     - a numeric value with the suffix "dB" to set amplitude in decibels
1090                     - a floating point value of the relative volume
1091                     - an unspecified value uses the default -12dBFS
1092
1093                 string limiter - limit all samples above:
1094                     - a numeric value with the suffix "dB"
1095                     - a floating point value ( dB = 20 * log10(x) )
1096                     - an unspecified value uses the default -6dBFS
1097
1098                 double max_gain - a floating point or decibel value of the maximum gain that
1099                     can be applied during normalisation.
1100                     - an unspecified value uses the default 20dB
1101
1102                 string end - a gain value just like the gain property above.
1103                              This causes the gain to be interpolated from 'gain' to 'end'
1104                              over the duration.
1105
1106                 int window - the size of the normalising smoothing buffer in video frame units.
1107                            - the smoothing buffer prevents erratic gain changes.
1108                            - the default value is 75 video frames. 
1109
1110                 gain can be applied as a factor to the normalise amplitude!
1111                 
1112             Dependencies
1113
1114                 none
1115                 
1116             Known Bugs
1117
1118                 none
1119
1120         watermark
1121
1122             Description
1123
1124                 Add a watermark to the frames.
1125
1126             Constructor Argument
1127
1128                 resource - the producer to use (ie: a .png)
1129
1130             Initialisation Properties
1131
1132                 string resource - the producer to use
1133                 string factory - producer required for the resource ('fezzik')
1134                 string geometry - composite geometry
1135                 string distort - control scaling
1136                 int in - in point
1137                 int out - out point
1138
1139             Mutable Properties
1140
1141                 none
1142
1143             Dependencies
1144
1145                 mlt core modules and optionally, fezzik
1146
1147             Known Bugs
1148
1149                 none
1150
1151 Transitions
1152 -----------
1153
1154         composite
1155         
1156             Description
1157
1158                 A key-framable alpha-channel compositor for two frames.
1159                 
1160             Details
1161             
1162                 Performs dissolves and luma wipes in addition to alpha compositing.
1163                 
1164                 By default, the aspect ratio of the B frame is respected and the
1165                 size portion of the geometry specification simply defines a 
1166                 bounding rectangle.
1167             
1168                 This performs field-based rendering unless the A frame property
1169                 "progressive" or "consumer_progressive" or the transition property
1170                 "progressive" is set to 1.
1171                 
1172             Constructor Argument
1173
1174                         none[*]
1175
1176             Initialisation Properties
1177                 
1178                 int in - in point
1179                 int out - out point
1180                 string factory - The name of a factory service used as a non-PGM
1181                                  producer loader. The default is fezzik.
1182         
1183             Read Only Properties
1184
1185                 none
1186
1187             Mutable Properties
1188
1189
1190                         string geometry - key frame specification
1191                                                         - this is a ; delimited form of the deprecated start,
1192                                                           key[n], end properties
1193                 int progressive - set to 1 to disable field-based rendering.
1194                 string distort - when set, causes the B frame image to fill the WxH
1195                                  completely with no regard to B's aspect ratio.
1196                 string halign - when not distorting, set the horizontal alignment
1197                                 of B within the geometry rectangle.
1198                               - one of: left (0), centre (1), or right (2).
1199                               - the default is left.
1200                 string valign - when not distorting, set the vertical alignment of 
1201                                 B within the geometry rectangle.
1202                               - one of: top (0), middle (1), or bottom (2).
1203                               - the default is top.
1204                 string luma - the luma map file name. If not supplied, a dissolve.
1205                 double softness - only when using a luma map, how soft to make the
1206                                   edges between A and B. 0.0 = no softness. 1.0 =
1207                                   too soft.
1208                 Any property starting with "luma." is passed to the non-PGM luma
1209                     producer.
1210
1211                 Deprecated Properties
1212
1213                 string start - a geometry specification as X,Y:WxH[!][:mix]
1214                              - X, Y, W, H are assumed to pixel units unless they
1215                                have the suffix '%'
1216                              - '!' is a shortcut to specify distort, see below.
1217                              - mix is always a 2 digit percentage, defaults to 100.
1218                              - default is "85%,5%:10%x10%"
1219                 string end - the ending size and position.
1220                 string key[F] - X,Y:WxH[:mix] - set a key frame for geometry between
1221                                 the in and out. F is a frame number and can be
1222                                 negative to make it relative to the out point.
1223
1224             Dependencies
1225
1226                 none
1227             
1228             Known Bugs
1229
1230                 Assumes lower field first during field rendering.
1231
1232         luma
1233         
1234             Description
1235
1236                 A generic dissolve and wipe transition processor.
1237
1238             Details
1239
1240                 luma gets its name
1241                 from how it uses a grayscale "map" file. As the luma value varies
1242                 over time, a threshold filter is applied to the map to determine
1243                 what parts of frame A vs. frame B to show. It reads PGM files
1244                 up to 16 bits! Alternatively, it can use the first frame from any
1245                 producer that outputs yuv, but it will be limited to the luma
1246                 gamut of 220 values.
1247                 This performs field-based rendering unless the A frame property
1248                 "progressive" or "consumer_progressive" or the transition property
1249                 "progressive" is set to 1.
1250             
1251             Constructor Argument
1252
1253                 string resource - the luma map file name - either PGM or any other
1254                                   producable video. 
1255                                 - If not supplied, a dissolve.
1256
1257             Initialisation Properties
1258             
1259                 int in - in point
1260                 int out - out point
1261                 string factory - The name of a factory service used as a non-PGM
1262                                  producer loader. The default is Fezzik.
1263
1264             Mutable Properties
1265
1266                 string resource - same as above
1267                 double softness - only when using a luma map, how soft to make the
1268                                   edges between A and B. 0.0 = no softness. 1.0 =
1269                                   too soft.
1270                 int reverse - reverse the direction of the transition.
1271                 Any property starting with "producer." is passed to the non-PGM luma
1272                     producer.
1273                 
1274             Read Only Properties
1275
1276                 none
1277                 
1278             Dependencies
1279
1280                 none
1281                 
1282             Known Bugs
1283                 
1284                 Assumes lower field first output.
1285
1286         mix
1287
1288             Description
1289
1290                 An two stream audio mixer.
1291
1292             Constructor Argument
1293
1294                 start - see below
1295
1296             Initalisation Properties
1297
1298                 int in - in point
1299                 int out - out point
1300
1301             Mutable Properties
1302
1303                 double start - the mix level to apply to the second frame.
1304                              - any negative value causes an automatic crossfade from 0 to 1.
1305                 double end - the ending value of the mix level. mix level will be interpolated
1306                              from start to end over the in-out range.
1307                 int reverse - set to 1 to reverse the direction of the mix.
1308
1309             Read Only Properties
1310
1311                 none
1312
1313             Dependencies
1314
1315                 none
1316
1317             Known Bugs
1318
1319                 Samples from the longer of the two frames are discarded.
1320                 
1321         
1322         region
1323         
1324             Description
1325             
1326                 Apply zero or more filters to B frame as it is composited onto
1327                 a region of the A frame. The "shape" of the region can be defined
1328                 by the alpha channel of a third producer.
1329                 
1330             Constructor Argument
1331
1332                 resource - a shape producer
1333             
1334             Initialisation Properties
1335             
1336                 string resource - nothing is rectangle, "circle" is a pixbuf-
1337                     generated SVG circle, anything else is loaded by the factory.
1338                 string factory - the service that creates the shape producer.
1339                                - the default is fezzik.
1340                 string filter[N] - one or more filters to apply. All filter
1341                                    properties are passed using the same filter "key"
1342                 Any property starting with "composite." is passed to the 
1343                     encapsulated composite transition.
1344                 
1345             Read Only Properties
1346             
1347                 none
1348                 
1349             Dependencies
1350             
1351                 transition_composite
1352                 
1353             Known Bugs
1354             
1355                 none
1356                 
1357
1358 Consumers
1359 ---------
1360
1361         avformat
1362         
1363             Description
1364             
1365                 Multiformat transcoding consumer.
1366
1367             Constructor Argument
1368
1369                 string target - the filename to write to, e.g. test.mpeg.
1370
1371             Initialisation Properties
1372             
1373                 int buffer - the number of frames to buffer, minimum 1, default 25.
1374                 string rescale - a rescale method, see the Filters/rescale.
1375                 int progressive - indicates whether to use progressive or field-
1376                                   based rendering, default 0 (off).
1377                 
1378             Read Only Properties
1379             
1380                 none
1381                 
1382             Dependencies
1383             
1384                 libavformat
1385                 
1386             Known Bugs
1387             
1388                 Plenty.
1389
1390         bluefish (Proprietary)
1391         
1392             Description
1393
1394                 BlueFish444 audio and video output module.
1395             
1396             Constructor Argument
1397
1398                 card - a numeric card id starting at 1, default is 1.
1399                 
1400             Initialisation Properties
1401
1402                 string standard - "PAL" (default) or "NTSC"
1403                                 - default is based upon MLT_NORMALISATION 
1404                                   environment variable, which defaults to PAL.
1405                 int frames - the number of DMA video frames. default is 8.
1406                              minimum is 2. maximum on my system is 11.
1407                 int buffer - the number of frames to buffer within MLT, minimum 1, 
1408                              default 25.
1409                 string rescale - a rescale method, see the Filters/rescale.
1410                 
1411             Read Only Properties
1412
1413                 none
1414             
1415             Dependencies
1416
1417                 BlueVelvet SDK installed parallel to mlt in "bluefish."
1418             
1419             Known Bugs
1420
1421                 Does not work with any service that uses pipes!
1422                 
1423                 If mlt crashes, you might need to reload the BlueDriver kernel 
1424                 module due to unreleased DMA buffers.
1425                 
1426                 Only supports 2 channel audio at the moment.
1427             
1428         libdv
1429         
1430             Description
1431             
1432                 libdv dv producer.
1433
1434             Constructor Argument
1435
1436                 string target - the filename to write to, e.g. /dev/dv1394.
1437
1438             Initialisation Properties
1439             
1440                 int buffer - the number of frames to buffer, minimum 1, default 25.
1441                 string rescale - a rescale method, see the Filters/rescale.
1442             
1443             Mutable Properties
1444             
1445                 int progressive - indicates whether to use progressive or field-
1446                                   based rendering, default 0 (off).
1447                 
1448             Read Only Properties
1449             
1450                 none
1451                 
1452             Dependencies
1453             
1454                 libdv
1455                 
1456             Known Bugs
1457             
1458                 none
1459
1460         mcmpeg
1461         
1462             Description
1463             
1464                 Mainconcept MPEG encoder.
1465
1466             Constructor Argument
1467
1468                 string target - the filename to write to.
1469
1470             Initialisation Properties
1471             
1472                 int buffer - the number of frames to buffer, minimum 1, default 25.
1473                 string rescale - a rescale method, see the Filters/rescale.
1474                 string format - vcd [default], svcd or dvd provide base settings
1475                 int motion_search_type - 0 to 16 - reduces quality/cpu usage
1476                 int gop - group of picture size (default: format dependent)
1477
1478             Mutable Properties
1479             
1480                 int progressive - indicates whether to use progressive or field-
1481                                   based rendering, default 0 (off).
1482                 
1483             Read Only Properties
1484             
1485                 none
1486                 
1487             Dependencies
1488             
1489                 Mainconcept MPEG SDK
1490                 
1491             Known Bugs
1492             
1493                 none
1494
1495         sdl
1496
1497             Description
1498
1499                 Simple DirectMedia Layer audio and video output module.
1500                 
1501             Constructor Argument
1502
1503                 string video_standard - "PAL" (default), "NTSC", or "WxH"
1504                 
1505             Initialisation Properties
1506             
1507                 int buffer - the number of frames to buffer, minimum 1, default 25.
1508                 string rescale - a rescale method, see the Filters/rescale.
1509                                - Hint: "none" works very good with SDL output.
1510                 
1511             Mutable Properties
1512
1513                 double volume - audio level factor
1514                 int video_off - if 1, disable video output
1515                 int audio_off - if 1, disable audio output
1516                         int resize - TODO
1517                 int progressive - indicates whether to use progressive or field-
1518                                   based rendering, default 0 (off).
1519                 int audio_buffer - size of the sdl audio buffer (default: 1024)
1520                 
1521             Read Only Properties
1522
1523                 none
1524                 
1525             Dependencies
1526
1527                 libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
1528             
1529             Known Bugs
1530
1531                 none
1532
1533         westley
1534
1535             Description
1536
1537                 Serialise the service network to XML.
1538                 See docs/westley.txt for more information.
1539                 
1540             Constructor Argument
1541
1542                 resource - the name of a file in which to store the XML.
1543                           - stdout is default.
1544                 
1545             Initialisation Properties
1546
1547                 string resource - same as above.
1548                 
1549             Dependencies
1550             
1551                 libxml2
1552                 
1553             Known Bugs
1554
1555                 Untested arbitrary nesting of multitracks and playlists.
1556                 Property "id" is generated as service type followed by number if
1557                 no property named "id" exists, but it fails to guarantee uniqueness.