]> git.sesse.net Git - mlt/blob - src/framework/metaschema.yaml
A little debugging.
[mlt] / src / framework / metaschema.yaml
1 --- # A metadata schema in Kwalify: http://www.kuwata-lab.com/kwalify/
2 # Version: 0.2
3 type: map
4 mapping:
5   "schema_version": # This should match the version comment above
6     type: float
7     required: yes
8   "LC_NUMERIC": # If not provided LC_NUMERIC=C is used, not the system's locale.
9     type: str
10     required: no
11   "type": # A service type
12     type: str
13     required: yes
14     enum: [consumer, filter, producer, transition]
15   "identifier": # The same value used to register and create the service
16     type: str
17     required: yes
18     unique: yes
19   "title": # The UI can use this for a field label
20     type: str
21   "copyright": # Who owns the rights to the module and/or service?
22     type: str
23   "version": # The version of the service implementation
24     type: text
25   "license": # The software license for the service implementation
26     type: str
27   "language": # A 2 character ISO 639-1 language code
28     type: str
29     required: yes
30   "url": # A hyperlink to a related website
31     type: str
32   "creator": # The name and/or e-mail address of the original author
33     type: str
34   "contributor": # The name and/or e-mail of all source code contributors
35     type: seq
36     sequence:
37       - type: str
38   "tags": # A set of categories, this might become an enum
39     type: seq
40     sequence:
41       - type: str
42   "description": # A slightly longer description than title
43     type: str
44   "icon": # A graphical representation of the effect
45     type: map
46     mapping:
47       "filename":
48         type: str
49       "content-type":
50         type: str
51       "content-encoding":
52         type: str
53       "content":
54         type: str
55   "notes": # Details about the usage and/or implementation - can be long
56     type: str
57   "bugs": # A list of known problems that users can try to avoid
58     type: seq
59     sequence:
60       - type: str # Can be a sentence or paragraph, preferably not a hyperlink
61   "parameters": # A list of all of the options for the service
62     type: seq
63     sequence:
64       - type: map
65         mapping:
66           "identifier": # The key that must be used to set the mlt_property
67             type: str
68             required: yes
69           "type": # An mlt_property_type
70             type: str
71             enum:
72               - boolean # 0 or 1; not 'true', 'false', 'yes', or 'no' strings at this time
73               - float
74               - geometry
75               - integer
76               - properties # for passing options to encapsulated services
77               - string
78               - time # time string values (clock, SMPTE) can be acccepted in addition to frames
79           "service-name": # for type: properties, a reference to another service
80             type: str     # format: type.service, e.g. transition.composite
81           "title": # A UI can use this for a field label
82             type: str
83           "description": # A UI can use this for a tool tip or what's-this
84             type: str
85           "argument": # If this is also the service constructor argument.
86             type: bool
87             default: no
88           "readonly": # If you set this property, it will be ignored
89             type: bool
90             default: no
91           "required": # Is this property required?
92             type: bool
93             default: no
94           "mutable": # The service will change behavior if this is set after
95                      # processing the first frame
96             type: bool
97             default: no
98           "widget": # A hint to the UI about how to let the user set this
99             type: str
100             enum:
101               - checkbox
102               - color
103               - combo
104               - curve
105               - directory
106               - fileopen
107               - filesave
108               - font
109               - knob
110               - listbox
111               - dropdown # aka HTML select or GtkOptionMenu
112               - radio
113               - rectangle # for use with type: geometry
114               - slider
115               - spinner
116               - text
117               - textbox # multi-line
118               - timecode
119           "minimum": # For numeric types, the minimal value
120             type: number
121           "maximum": # For numeric types, the maximal value 
122             type: number
123           "default":     # The default value to be used in a UI
124             type: scalar # If not specified, the UI might be able to display
125                          # this as blank
126           "unit": # A UI can display this as a label after the widget (e.g. %)
127             type: str
128           "scale": # the number of digits after decimal point when type: float
129             type: int
130           "format": # A hint about a custom string encoding, possibly scanf
131           "values": # A list of acceptable string values
132             type: seq # A UI can allow something outside the list with
133                       # widget: combo or if "other" is in this sequence
134             sequence:
135               - type: scalar
136