]> git.sesse.net Git - mlt/blob - src/framework/metaschema.yaml
Fix crash purging closed queue.
[mlt] / src / framework / metaschema.yaml
1 --- # A metadata schema in Kwalify: http://www.kuwata-lab.com/kwalify/
2 # Version: 0.1 
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               - float
73               - geometry
74               - integer
75               - properties # for passing options to encapsulated services
76               - string
77               - time # currently, mlt_position (frame), soon to be a time value
78           "service-name": # for type: properties, a reference to another service
79             type: str     # format: type.service, e.g. transition.composite
80           "title": # A UI can use this for a field label
81             type: str
82           "description": # A UI can use this for a tool tip or what's-this
83             type: str
84           "readonly": # If you set this property, it will be ignored
85             type: bool
86             default: no
87           "required": # Is this property required?
88             type: bool
89             default: no
90           "mutable": # The service will change behavior if this is set after
91                      # processing the first frame
92             type: bool
93             default: no
94           "widget": # A hint to the UI about how to let the user set this
95             type: str
96             enum:
97               - checkbox
98               - color
99               - combo
100               - curve
101               - directory
102               - fileopen
103               - filesave
104               - font
105               - knob
106               - listbox
107               - dropdown # aka HTML select or GtkOptionMenu
108               - radio
109               - rectangle # for use with type: geometry
110               - slider
111               - spinner
112               - text
113               - textbox # multi-line
114               - timecode
115           "minimum": # For numeric types, the minimal value
116             type: number
117           "maximum": # For numeric types, the maximal value 
118             type: number
119           "default":     # The default value to be used in a UI
120             type: scalar # If not specified, the UI might be able to display
121                          # this as blank
122           "unit": # A UI can display this as a label after the widget (e.g. %)
123             type: str
124           "scale": # the number of digits after decimal point when type: float
125             type: int
126           "format": # A hint about a custom string encoding, possibly scanf
127           "values": # A list of acceptable string values
128             type: seq # A UI can allow something outside the list with
129                       # widget: combo or if "other" is in this sequence
130             sequence:
131               - type: scalar
132