3 Authors: Charles Yates <charles.yates@pandora.be>
4 Dan Dennedy <dan@dennedy.org>
11 Services marked as "(Proprietary)" are not distributed with the LGPL
21 ffmpeg libavformat based producer for video and audio.
25 'file' - a filename specification or URL in the form:
26 [{protocol}|{format}]:{resource}[?{format-parameter}[&{format-parameter}...]]
27 For example, video4linux:/dev/video1?width:320&height:240
28 Note: on the bash command line, & must be escaped as '\&'.
29 Also, note the use of ':' instead of '=' for parameters.
30 Use 'ffmpeg -formats' to see a list of supported protocols
35 Format parameters only appear to be useful with 'video4linux' or
36 'audio_device' formats. For 'video4linux' the parameters are
37 width, height, frame_rate, frame_rate_base, and standard (ntsc|pal).
38 For 'audio_device' the parameters are channels and sample_rate.
40 Initialisation Properties
42 int video_index - index of video stream to use (-1 is off)
43 int audio_index - index of audio stream to use (-1 is off)
49 string resource - file location
50 double fps - this is fixed at 25 for PAL currently
51 double source_fps - the framerate of the resource
52 double aspect_ratio - sample aspect ratio of the resource
53 - this is determined on every frame read
57 ffmpeg must be configured as --enable-shared and installed prior
58 to compilation of mlt.
62 Audio sync discrepancy with some content.
63 Not all libavformat supported formats are seekable.
64 Ogg Vorbis is currently broken.
65 MPEG seeking is inaccurate - doesn't seek to i-frames so you may
66 get junk for a few frames.
67 RAW DV seeking not supported.
68 Fails to play beyond first frame of video of sources with PTS not
69 starting at 0 (video4linux).
75 A friendly giant that likes to rhyme and throw rocks
79 'file' - a filename specification:
80 [{mlt-service}:]{resource} | {mlt-service}
81 - can also be the name of a producer service that can
82 accept the resource specified post construction.
84 Initialisation Properties
88 + all producer initialising properties
92 string resource - file location
93 + all producer read only properties
97 This producer has two roles:
99 1. it handles the mappings of all file names to the other
101 2. it attaches normalising filters (rescale, resize and resample)
102 to the producers (when necessary).
104 This producer simplifies many aspects of use. Essentially, it
105 ensures that a consumer will receive images and audio precisely as
121 A simple colour generator.
125 colour - A colour value is a hexadecimal representation of RGB plus
126 alpha channel as 0xrrggbbaa.
127 - Also colours can be the words: white, black, red, green,
129 - The default colour is black.
131 Initialisation Properties
152 libdv based decoder for video and audio.
156 'file' - produce a/v from file
158 Initialisation Properties
165 string resource - file location
166 double fps - output frames per second
167 int length - duration of resource (in frames)
171 string quality - one of "best," "fast" or anything else chooses
180 DVCPRO is incorrectly identified as 16:9 aspect ratio. You must use
181 libdv from CVS or a post 0.101 release.
187 MainConcept based dv decoder for video and audio.
191 'file' - produce a/v from file
193 Initialisation Properties
200 string resource - file location
201 double fps - output frames per second
202 int length - duration of resource (in frames)
206 MainConcept DV or DVCPRO SDK, libdv.
207 "dv_sdk" installed parallel to mlt.
217 MainConcept based mpeg decoder for video and audio.
221 'file' - produce a/v from file
223 Initialisation Properties
230 string resource - file location
231 double fps - output frames per second
232 double aspect_ratio - sample aspect ratio of video
233 int length - duration of resource (in frames)
237 MainConcept MPEG SDK.
238 "mpeg_sdk_release" installed parallel to mlt.
254 Initialisation Properties
261 string resource - file location
262 double fps - output frames per second
263 double aspect_ratio - sample aspect ratio of video
264 int length - duration of resource (in frames)
278 A title generator that uses the Pango international text layout
279 and Freetype2 font renderer.
283 string file - a text file containing Pango markup, see:
284 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
285 - requires xml-like encoding special chars from:
286 <, >, & -to- <, >, &
290 Supplying a filename with extension ".txt" causes the Fezzik
291 producer to load with pango. If the filename begins with "+" the
292 pango producer interprets the filename as pango text. This is a
293 shortcut to embed titles in inigo commands. For westley, it is
294 recommended that you embed the title text in the property value.
296 Pango has builtin scaling. It will rescale the originally rendered
297 title to whatever the consumer requests. Therefore, it will lose
298 its aspect ratio if so requested, and it is up to the consumer to
299 request a proper width and height that maintains the image aspect.
301 Initialisation Properties
308 string markup - a string containing Pango markup see:
309 http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
310 - requires xml-like encoding special chars from:
311 <, >, & -to- <, >, &
312 string fgcolour - an RGBA colour specification of the text
314 string bgcolour - an RGBA colour of the background rectangle
315 string align - paragraph alignment: left, centre, right
316 - also, numbers 0, 1 and 2 can be used respectively.
317 int pad - the number of pixels to pad the background rectangle
318 beyond edges of text. default 0.
319 string markup - see constructor argument
320 string text - non-markup string in UTF-8 encoding (can contain
321 markup chars un-encoded)
322 string font - the default typeface to use when not using markup.
323 default "Sans 48". FreeType2 renders at 72 dpi.
324 string encoding - the text encoding type of the input if not UTF-8.
325 - see 'iconv --list' for a list of possible inputs.
326 int weight - the weight of the font (default is 400)
330 string resource - the text/markup file or "pango" if no file.
331 int real_width - the original, unscaled width of the rendered title.
332 int real_height - the original, unscaled height of the title.
333 int width - the last requested scaled image width.
334 int height - the last requested scaled image height.
338 libpango-1.0, libpangoft2-1.0, libfreetype, libgdk_pixbuf-2.0,
339 libglib-2.0, libgobject-2.0, libgmodule-2.0, libfontconfig.
343 The foreground and background Pango markup span attributes are not
345 Word wrapping is not supported.
351 A still graphics to video generator using gdk-pixbuf
355 'file' - The name of a graphics file loadable by
356 a gdk-pixbuf loader. see /usr/lib/gdk-pixbuf/loaders
357 definitely png, jpeg, tiff, pnm, and xpm
358 - If "%" in filename, the filename is used with sprintf
359 generate a filename from a counter for multi-file/flipbook
360 animation. The file sequence ends when numeric
362 - If filename contains "/.all.", suffix with an extension to
363 load all pictures with matching extension from a directory.
364 - If filename contains the string "<svg", then pixbuf tries
365 to load the filename as inline SVG XML, which is convenient
370 Pixbuf has builtin scaling. It will rescale the originally rendered
371 title to whatever the consumer requests. Therefore, it will lose
372 its aspect ratio if so requested, and it is up to the consumer to
373 request a proper width and height that maintains the image aspect.
375 Initialisation Properties
379 int begin - when using an image sequence, this sets the starting
384 int ttl - how long (in frames) to repeat each picture in file
385 sequences. default is 25.
389 string resource - file location. See Constructor Argument above.
390 int real_width - the original, unscaled width of the rendered title.
391 int real_height - the original, unscaled height of the title.
392 int width - the last requested scaled image width.
393 int height - the last requested scaled image height.
397 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
401 XXX: in/out settings are incorrectly handled.
407 Reads a stream of contiguous PPM images.
411 command - a shell command to run something that produces ppm
414 Initialisation Properties
420 string resource - the command
428 Since it uses pipes, it is not compatible with bluefish.
434 Construct a service network from an XML description.
435 See docs/westley.txt.
439 URL - an XML text file containing westley XML (schema/DTD pending)
440 - Since westley files can be parameterised, the URL syntax is:
441 {file-name}[?{param-name}{'='|':'}{param-value}[&{param-name}{'='|':'}{param-value}...]]
442 A colon is allowed instead of an equal sign to pacify inigo,
443 who tokenises anything with an equal sign as a property
444 setting. Also, when running inigo from the shell, beware of
445 the '?' and shell filename expansion. You can surround the URL
446 with single quotations to prevent expansion. Finally, fezzik
447 will fail to match the filename when you use parameters, so
448 preface the url with 'westley:' to force fezzik to load with
453 string resource - file location
461 Non-referenced producers and playlists are not destroyed until the
462 network is destroyed.
463 A referenced producer or playlist must appear before the reference.
464 A filter that occurs before a producer has been defined causes a
471 OGG Vorbis file reader.
475 'file' - file to use (only .ogg supported at the moment)
477 Initialisation Properties
484 double fps - this is fixed at 25 for PAL currently
492 Fixed frame size (PAL audio chunks).
493 Doesn't cover ogg files with multiple, differing sections.
502 Shift the luma component using a constant value.
506 start - the constant floating point numeric value to apply.
509 Initialisation Properties
513 double start - see Constructor Argument above.
514 double end - the ending adjustment value. the filter interpolates
515 between the start and end adjustments over the
516 duration of the effect.
528 Does not go completely to black or white.
535 Copy audio from one channel to another channel.
539 to - the 0-indexed channel to copy into, default is 1.
544 int from - the channel from which to copy, default is 0.
560 Deinterlace a frame consisting of two fields using bob, weave,
561 greedy, one-field, and linear blend methods. This code is
562 appropriated from the Xine XV video output plugin.
566 method - a string containing the deinterlace method: bob, weave,
567 greedy, onefield, or linearblend. The default is
570 Initialisation Properties
585 If the frame properties "progressive" or "consumer_progressive"
586 are non-zero, then the filter is not applied. Also, if applied,
587 this sets the frame property "progressive" to 1.
595 Not a bug, but it only provides fair quality.
602 Adjust image luma using a non-linear power-law curve
606 gamma - a floating point value. The default is 1.0, or none.
608 Initialisation Properties
615 double gamma - the exponential factor of the power-law curve
630 Convert colour image to greyscale
636 Initialisation Properties
657 Scale the producer video frame size to match the consumer.
658 This filter is designed for use as a Fezzik normaliser.
662 interpolation - the rescaling method, one of:
663 nearest (lowest quality, fastest),
665 bilinear (default; good quality, moderate speed),
666 hyper (best quality, slowest).
668 Initialisation Properties
675 string interpolation - see constructor argument above
677 If a property "consumer_aspect_ratio" exists on the frame, then
678 rescaler normalises the producer's aspect ratio and maximises the
679 size of the frame, but may not produce the consumer's requested
680 dimension. Therefore, this option works best in conjunction with the
681 resize filter. This behavior can be disabled by another service by
682 either removing the property, setting it to zero, or setting
683 frame property "distort" to 1.
687 libgdk_pixbuf-2.0, libglib-2.0, libgobject-2.0, libgmodule-2.0
697 Creates Jack ports and runs a JackRack project to process audio
698 through a stack of LADSPA filters.
702 src - a JackRack file
706 If you are using a consumer that uses ALSA, then you should start
707 jackd with the dummy driver: jackd -d dummy.
708 I also recommend using a period size of 2048: -p 2048.
710 jackd -ddummy -r48000 -p2048
712 Initialisation Properties
717 The following can be used without a rack file in order to connect
718 filter_jackrack to a running instance of JackRack:
719 string out_1 - Jack port to connect MLT's output port (JackRack's input)
720 string out_2 - Jack port to connect MLT's output port (JackRack's input)
721 string in_1 - Jack port to connect MLT's input port (JackRack's output)
722 string in_2 - Jack port to connect MLT's input port (JackRack's output)
734 Jack, LADSPA, glib-2.0, libxml2
738 Currently, due to timing and synchronisation issues, the audio
739 is distorted with repeated samples and latency clicks.
740 no encapsulated resampling and jack runs at a fixed frequency
746 Runs a JackRack project to process audio through a stack of
747 LADSPA filters without using Jack.
751 src - a JackRack file
755 Due to audio integrity issues with the jackrack filter, this
756 filter is better for runtime, while jackrack is more suitable
757 for prototyping a rack file using the Jack Rack GUI.
759 Initialisation Properties
774 Jack, LADSPA, glib-2.0, libxml2
775 Jack is still required because this coexists with the jackrack
780 no encapsulated resampling and jack runs at a fixed frequency
786 Applies a luma transition between the current and next frames.
787 Useful for transitions from a slideshow created using producer
794 Initialisation Properties
805 int period - how long to wait between success iterations of the
806 transition. For best results set this to a multiple
807 of ttl used in pixbuf. The default is 24.
809 luma. - all properties beginning with "luma." are passed to the
810 encapsulated luma transition. For example, luma.out controls
811 the duration of the wipe.
815 transition_luma and its dependencies
825 Scale the producer video frame size to match the consumer.
826 This filter is designed for use as a Fezzik normaliser.
830 interpolation - the rescaling method, one of:
831 nearest (lowest quality, fastest),
832 bilinear (default; good quality, moderate speed),
833 hyper (best quality, slowest).
835 Initialisation Properties
842 string interpolation - see constructor argument above
844 If a property "consumer_aspect_ratio" exists on the frame, then
845 rescaler normalises the producer's aspect ratio and maximises the
846 size of the frame, but may not produce the consumer's requested
847 dimension. Therefore, this option works best in conjunction with the
848 resize filter. This behavior can be disabled by another service by
849 either removing the property, setting it to zero, or setting
850 frame property "distort" to 1.
854 the mainconcept rescaling sdk.
864 Provides various mirror and image reversing effects.
868 mirror - horizontal, vertical, diagonal, flip, flop
870 Initialisation Properties
872 int reverse - being 0 or 1
897 Mix all channels of audio into a mono signal and output it as
902 channels - the number of output channels (default 2)
904 Initialisation Properties
935 Initialisation Properties
937 string start - in the format X,Y:WxH[:PWxPY]
938 - PWxPY is the size of the averaging region in pixels.
939 string end - in the format X,Y:WxH[:PWxPY]
959 Apply one or more filters to a region of the video image. The region
960 can be shaped as well using the alpha channel of another producer.
964 resource - A file whose alpha channel will "shape" the region.
965 - The string "circle" is a shortcut but it requires pixbuf with
966 the librsvg loader. The circle is automatically stretched
967 to the region to create an ellipse.
969 Initialisation Properties
973 plus and region transition properties
977 see the region transition
985 "circle" is unpredictable in the absence of the librsvg pixbuf loader.
992 Adjust an audio stream's sampling rate, and duplicate channels if
993 producer provides less than consumer requested.
995 This filter is automatically invoked by Fezzik for the sake of
996 normalisation over inputs and with the consumer.
1000 frequency - a numeric value for the new sample rate
1002 Initialisation Properties
1009 int frequency - the target sample rate
1017 Assumes 2 channels during libsamplerate initialisation. Untested
1024 Scale the producer video frame size to match the consumer.
1025 This filter is designed for use as a Fezzik normaliser.
1027 Constructor Argument
1031 Initialisation Properties
1038 If a property "consumer_aspect_ratio" exists on the frame, then
1039 rescaler normalises the producer's aspect ratio and maximises the
1040 size of the frame, but may not produce the consumer's requested
1041 dimension. Therefore, this option works best in conjunction with the
1042 resize filter. This behavior can be disabled by another service by
1043 either removing the property, setting it to zero, or setting
1044 frame property "distort" to 1.
1052 none but... it only implements a nearest neighbour scaling - it is
1053 used as the base class for the gtkrescale and mcrescale filters.
1059 Image scaling and padding and field order adjustment.
1063 Normally resize is used to pad the producer's
1064 output to what the consumer has requested after an upstream rescale
1065 filter first scales the image to maximise usage of the image area.
1066 This filter also adjusts the field order to lower field first
1067 if the frame property "top_field_first" has been set to 1.
1068 Therefore, when done, it sets the top_field_first to 0.
1069 This filter is automatically invoked by Fezzik as part of image
1070 sample aspect ratio normalisation.
1072 Constructor Argument
1074 scale - "affine" to use affine transform scaling, otherwise
1077 Initialisation Properties
1082 Read Only Properties
1092 Assumes lower field first output.
1098 Adjust an audio stream's volume level
1099 - based on the 'normalize' utility
1101 Constructor Argument
1103 gain - a string containing one of:
1104 - a floating point value of the gain adjustment
1105 - a numeric value with the suffix "dB" to adjust in terms of decibels
1106 - "normalise" to normalise the volume to the target amplitude -12dBFS
1108 Initialisation Properties
1112 int window - the number of video frames over which to smooth normalisation.
1117 string gain - same as constructor argument above
1119 string normalise - normalise the volume to the amplitude:
1120 - a numeric value with the suffix "dB" to set amplitude in decibels
1121 - a floating point value of the relative volume
1122 - an unspecified value uses the default -12dBFS
1124 string limiter - limit all samples above:
1125 - a numeric value with the suffix "dB"
1126 - a floating point value ( dB = 20 * log10(x) )
1127 - an unspecified value uses the default -6dBFS
1129 double max_gain - a floating point or decibel value of the maximum gain that
1130 can be applied during normalisation.
1131 - an unspecified value uses the default 20dB
1133 string end - a gain value just like the gain property above.
1134 This causes the gain to be interpolated from 'gain' to 'end'
1137 int window - the size of the normalising smoothing buffer in video frame units.
1138 - the smoothing buffer prevents erratic gain changes.
1139 - the default value is 75 video frames.
1141 gain can be applied as a factor to the normalise amplitude!
1155 Add a watermark to the frames.
1157 Constructor Argument
1159 resource - the producer to use (ie: a .png)
1161 Initialisation Properties
1163 string resource - the producer to use
1164 string factory - producer required for the resource ('fezzik')
1165 string geometry - composite geometry
1166 string distort - control scaling
1176 mlt core modules and optionally, fezzik
1189 A key-framable alpha-channel compositor for two frames.
1193 Performs dissolves and luma wipes in addition to alpha compositing.
1195 By default, the aspect ratio of the B frame is respected and the
1196 size portion of the geometry specification simply defines a
1199 This performs field-based rendering unless the A frame property
1200 "progressive" or "consumer_progressive" or the transition property
1201 "progressive" is set to 1.
1203 Constructor Argument
1207 Initialisation Properties
1211 string factory - The name of a factory service used as a non-PGM
1212 producer loader. The default is fezzik.
1214 Read Only Properties
1221 string geometry - key frame specification
1222 - this is a ; delimited form of the deprecated start,
1223 key[n], end properties
1224 int progressive - set to 1 to disable field-based rendering.
1225 string distort - when set, causes the B frame image to fill the WxH
1226 completely with no regard to B's aspect ratio.
1227 string halign - when not distorting, set the horizontal alignment
1228 of B within the geometry rectangle.
1229 - one of: left (0), centre (1), or right (2).
1230 - the default is left.
1231 string valign - when not distorting, set the vertical alignment of
1232 B within the geometry rectangle.
1233 - one of: top (0), middle (1), or bottom (2).
1234 - the default is top.
1235 string luma - the luma map file name. If not supplied, a dissolve.
1236 double softness - only when using a luma map, how soft to make the
1237 edges between A and B. 0.0 = no softness. 1.0 =
1239 Any property starting with "luma." is passed to the non-PGM luma
1242 Deprecated Properties
1244 string start - a geometry specification as X,Y:WxH[!][:mix]
1245 - X, Y, W, H are assumed to pixel units unless they
1247 - '!' is a shortcut to specify distort, see below.
1248 - mix is always a 2 digit percentage, defaults to 100.
1249 - default is "85%,5%:10%x10%"
1250 string end - the ending size and position.
1251 string key[F] - X,Y:WxH[:mix] - set a key frame for geometry between
1252 the in and out. F is a frame number and can be
1253 negative to make it relative to the out point.
1261 Assumes lower field first during field rendering.
1267 A generic dissolve and wipe transition processor.
1272 from how it uses a grayscale "map" file. As the luma value varies
1273 over time, a threshold filter is applied to the map to determine
1274 what parts of frame A vs. frame B to show. It reads PGM files
1275 up to 16 bits! Alternatively, it can use the first frame from any
1276 producer that outputs yuv, but it will be limited to the luma
1277 gamut of 220 values.
1278 This performs field-based rendering unless the A frame property
1279 "progressive" or "consumer_progressive" or the transition property
1280 "progressive" is set to 1.
1282 Constructor Argument
1284 string resource - the luma map file name - either PGM or any other
1286 - If not supplied, a dissolve.
1288 Initialisation Properties
1292 string factory - The name of a factory service used as a non-PGM
1293 producer loader. The default is Fezzik.
1297 string resource - same as above
1298 double softness - only when using a luma map, how soft to make the
1299 edges between A and B. 0.0 = no softness. 1.0 =
1301 int reverse - reverse the direction of the transition.
1302 Any property starting with "producer." is passed to the non-PGM luma
1305 Read Only Properties
1315 Assumes lower field first output.
1321 An two stream audio mixer.
1323 Constructor Argument
1327 Initalisation Properties
1334 double start - the mix level to apply to the second frame.
1335 - any negative value causes an automatic crossfade from 0 to 1.
1336 double end - the ending value of the mix level. mix level will be interpolated
1337 from start to end over the in-out range.
1338 int reverse - set to 1 to reverse the direction of the mix.
1340 Read Only Properties
1350 Samples from the longer of the two frames are discarded.
1357 Apply zero or more filters to B frame as it is composited onto
1358 a region of the A frame. The "shape" of the region can be defined
1359 by the alpha channel of a third producer.
1361 Constructor Argument
1363 resource - a shape producer
1365 Initialisation Properties
1367 string resource - nothing is rectangle, "circle" is a pixbuf-
1368 generated SVG circle, anything else is loaded by the factory.
1369 string factory - the service that creates the shape producer.
1370 - the default is fezzik.
1371 string filter[N] - one or more filters to apply. All filter
1372 properties are passed using the same filter "key"
1373 Any property starting with "composite." is passed to the
1374 encapsulated composite transition.
1376 Read Only Properties
1382 transition_composite
1396 Multiformat transcoding consumer.
1398 Constructor Argument
1400 string target - the filename to write to, e.g. test.mpeg.
1402 Initialisation Properties
1404 int buffer - the number of frames to buffer, minimum 1, default 25.
1405 string rescale - a rescale method, see the Filters/rescale.
1406 int progressive - indicates whether to use progressive or field-
1407 based rendering, default 0 (off).
1409 Read Only Properties
1421 bluefish (Proprietary)
1425 BlueFish444 audio and video output module.
1427 Constructor Argument
1429 card - a numeric card id starting at 1, default is 1.
1431 Initialisation Properties
1433 string standard - "PAL" (default) or "NTSC"
1434 - default is based upon MLT_NORMALISATION
1435 environment variable, which defaults to PAL.
1436 int frames - the number of DMA video frames. default is 8.
1437 minimum is 2. maximum on my system is 11.
1438 int buffer - the number of frames to buffer within MLT, minimum 1,
1440 string rescale - a rescale method, see the Filters/rescale.
1442 Read Only Properties
1448 BlueVelvet SDK installed parallel to mlt in "bluefish."
1452 Does not work with any service that uses pipes!
1454 If mlt crashes, you might need to reload the BlueDriver kernel
1455 module due to unreleased DMA buffers.
1457 Only supports 2 channel audio at the moment.
1465 Constructor Argument
1467 string target - the filename to write to, e.g. /dev/dv1394.
1469 Initialisation Properties
1471 int buffer - the number of frames to buffer, minimum 1, default 25.
1472 string rescale - a rescale method, see the Filters/rescale.
1476 int progressive - indicates whether to use progressive or field-
1477 based rendering, default 0 (off).
1479 Read Only Properties
1495 Mainconcept MPEG encoder.
1497 Constructor Argument
1499 string target - the filename to write to.
1501 Initialisation Properties
1503 int buffer - the number of frames to buffer, minimum 1, default 25.
1504 string rescale - a rescale method, see the Filters/rescale.
1505 string format - vcd [default], svcd or dvd provide base settings
1506 int motion_search_type - 0 to 16 - reduces quality/cpu usage
1507 int gop - group of picture size (default: format dependent)
1511 int progressive - indicates whether to use progressive or field-
1512 based rendering, default 0 (off).
1514 Read Only Properties
1520 Mainconcept MPEG SDK
1530 Simple DirectMedia Layer audio and video output module.
1532 Constructor Argument
1534 string video_standard - "PAL" (default), "NTSC", or "WxH"
1536 Initialisation Properties
1538 int buffer - the number of frames to buffer, minimum 1, default 25.
1539 string rescale - a rescale method, see the Filters/rescale.
1540 - Hint: "none" works very good with SDL output.
1544 double volume - audio level factor
1545 int video_off - if 1, disable video output
1546 int audio_off - if 1, disable audio output
1548 int progressive - indicates whether to use progressive or field-
1549 based rendering, default 0 (off).
1550 int audio_buffer - size of the sdl audio buffer (default: 1024)
1552 Read Only Properties
1558 libSDL-1.2, libasound, libaudio, libXt, libX11, libXext, libSM, libICE
1568 Serialise the service network to XML.
1569 See docs/westley.txt for more information.
1571 Constructor Argument
1573 resource - the name of a file in which to store the XML.
1574 - stdout is default.
1576 Initialisation Properties
1578 string resource - same as above.
1586 Untested arbitrary nesting of multitracks and playlists.
1587 Property "id" is generated as service type followed by number if
1588 no property named "id" exists, but it fails to guarantee uniqueness.