1schema_version: 0.3
2type: consumer
3identifier: xml
4title: XML
5version: 1
6copyright: Meltytech, LLC
7creator: Dan Dennedy
8license: LGPLv2.1
9language: en
10tags:
11  - Audio
12  - Video
13description: >
14  Serialise the service network to XML.
15  See docs/mlt-xml.txt for more information.
16
17notes: >
18  If you set a data property beginning with (and longer than) "xml_retain" on
19  the service connected to this consumer where the data is a mlt_service
20  pointer, then the pointed at service will also be serialized before the
21  connected service. This can be useful, for example, to save a playlist as
22  a media bin along with a multitrack. You can serialize more than one of these
23  additional services by setting more than property, each with a unique key
24  beginning with "xml_retain".
25
26bugs:
27   - Untested arbitrary nesting of multitracks and playlists.
28   - >
29     Property "id" is generated as service type followed by number if no
30     property named "id" exists, but it fails to guarantee uniqueness.
31
32parameters:
33  - identifier: resource
34    argument: yes
35    title: File
36    type: string
37    description: >
38      The name of a file in which to store the XML.
39      If the value does not contain a period (to start an extension), then
40      the value is interpreted as the name of a property in which to store the
41      XML. This makes it easy for an application to use the consumer to
42      serialize a service network and retrieve the XML in-memory.
43    readonly: no
44    required: no
45    mutable: no
46    default: stdout
47    widget: fileopen
48
49  - identifier: all
50    title: Process all frames
51    type: boolean
52    description: >
53      Without this option, the XML consumer does not process any frames
54      and simply serializes the service network. However, some filters (.e.g,
55      vid.stab) require two passes where the first pass performs some
56      analysis and stores the result in a property. Therefore, set this
57      property to 1 (true) to cause the consumer to process all frames
58      before serializing to XML.
59    default: 0
60
61  - identifier: title
62    title: Title
63    type: string
64    description: >
65      You can give the composition a friendly name that some applications may use.
66
67  - identifier: root
68    title: Base path
69    type: string
70    description: >
71      If a file name in the XML is relative, but not relative to the current
72      XML file's directory, then you can set the directory to which it is
73      relative here.
74
75  - identifier: no_meta
76    title: Exclude meta properties
77    type: boolean
78    description: >
79      Set this to disable the output of properties with the prefix "meta."
80    default: 0
81    widget: checkbox
82
83  - identifier: no_root
84    title: No root attribute
85    type: boolean
86    description: >
87      Set this to disable the output of the root attribute on the root element.
88    default: 0
89    widget: checkbox
90
91  - identifier: time_format
92    title: Time format
93    type: string
94    description: Output time-based values as timecode or clock formats.
95    values:
96      - frames
97      - smpte_df # SMPTE drop-frame timecode
98      - smpte_ndf # SMPTE non-drop-frame timecode
99      - smpte # or SMPTE - same as smpte_df
100      - timecode # same as smpte_df
101      - clock # or CLOCK
102    default: frames
103    widget: dropdown
104
105  - identifier: store
106    title: Include property prefix
107    type: string
108    description: >
109      To save additional properties that MLT does not know about, supply an
110      application-specific property name prefix that you are using.
111
112  - identifier: no_profile
113    title: No profile element
114    type: boolean
115    description: Set this to disable the output of the profile element.
116    default: 0
117    widget: checkbox
118