]> git.sesse.net Git - mlt/commitdiff
framework/Makefile, metaschema.yaml: add a Kwalify schema for metadata
authorddennedy <ddennedy@d19143bc-622f-0410-bfdd-b5b2a6649095>
Thu, 28 Feb 2008 07:48:21 +0000 (07:48 +0000)
committerddennedy <ddennedy@d19143bc-622f-0410-bfdd-b5b2a6649095>
Thu, 28 Feb 2008 07:48:21 +0000 (07:48 +0000)
producer_avformat.yml: update to schema

git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@1085 d19143bc-622f-0410-bfdd-b5b2a6649095

src/framework/Makefile
src/framework/metaschema.yaml [new file with mode: 0644]
src/modules/avformat/producer_avformat.yml

index 8dcf6b4fedb292e2d5e5fafc9ee9cb0b6c994871..e42331996a5e8204d3f21a88e2ec5747df0677c9 100644 (file)
@@ -90,12 +90,15 @@ install:
        ln -sf $(TARGET) $(DESTDIR)$(libdir)/$(NAME)
        install -d "$(DESTDIR)$(prefix)/include/mlt/framework"
        install -m 644 $(INCS) "$(DESTDIR)$(prefix)/include/mlt/framework"
+       install -d "$(DESTDIR)$(prefix)/share/mlt"
+       install -m 644 metaschema.yaml "$(DESTDIR)$(prefix)/share/mlt/"
 
 uninstall:
        rm -f "$(DESTDIR)$(libdir)/$(TARGET)"
        rm -f "$(DESTDIR)$(libdir)/$(SONAME)"
        rm -f "$(DESTDIR)$(libdir)/$(NAME)"
        rm -rf "$(DESTDIR)$(prefix)/include/mlt/framework"
+       rm "$(DESTDIR)$(prefix)/share/mlt/metaschema.yaml"
 
 ifneq ($(wildcard .depend),)
 include .depend
diff --git a/src/framework/metaschema.yaml b/src/framework/metaschema.yaml
new file mode 100644 (file)
index 0000000..eccb1fd
--- /dev/null
@@ -0,0 +1,129 @@
+--- # A metadata schema in Kwalify: http://www.kuwata-lab.com/kwalify/
+# Version: 0.2 
+type: map
+mapping:
+  "schema_version": # This should match the version comment above
+    type: float
+    required: yes
+  "type": # A service type
+    type: str
+    required: yes
+    enum: [consumer, filter, producer, transition]
+  "identifier": # The same value used to register and create the service
+    type: str
+    required: yes
+    unique: yes
+  "title": # The UI can use this for a field label
+    type: str
+  "copyright": # Who owns the rights to the module and/or service?
+    type: str
+  "version": # The version of the service implementation
+    type: text
+  "license": # The software license for the service implementation
+    type: str
+  "language": # A 2 character ISO 639-1 language code
+    type: str
+    required: yes
+  "url": # A hyperlink to a related website
+    type: str
+  "creator": # The name and/or e-mail address of the original author
+    type: str
+  "contributor": # The name and/or e-mail of all source code contributors
+    type: seq
+    sequence:
+      - type: str
+  "tags": # A set of categories, this might become an enum
+    type: seq
+    sequence:
+      - type: str
+  "description": # A slightly longer description than title
+    type: str
+  "icon": # A graphical representation of the effect
+    type: map
+    mapping:
+      "filename":
+        type: str
+      "content-type":
+        type: str
+      "content-encoding":
+        type: str
+      "content":
+        type: str
+  "notes": # Details about the usage and/or implementation - can be long
+    type: str
+  "bugs": # A list of known problems that users can try to avoid
+    type: seq
+    sequence:
+      - type: str # Can be a sentence or paragraph, preferably not a hyperlink
+  "parameters": # A list of all of the options for the service
+    type: seq
+    sequence:
+      - type: map
+        mapping:
+          "identifier": # The key that must be used to set the mlt_property
+            type: str
+            required: yes
+          "type": # An mlt_property_type
+            type: str
+            enum:
+              - float
+              - geometry
+              - integer
+              - properties # for passing options to encapsulated services
+              - string
+              - time # currently, mlt_position (frame), soon to be a time value
+          "service-name": # for type: properties, a reference to another service
+            type: str     # format: type.service, e.g. transition.composite
+          "title": # A UI can use this for a field label
+            type: str
+          "description": # A UI can use this for a tool tip or what's-this
+            type: str
+          "readonly": # If you set this property, it will be ignored
+            type: bool
+            default: no
+          "required": # Is this property required?
+            type: bool
+            default: no
+          "mutable": # The service will change behavior if this is set after
+                     # processing the first frame
+            type: bool
+            default: no
+          "widget": # A hint to the UI about how to let the user set this
+            type: str
+            enum:
+              - checkbox
+              - color
+              - combo
+              - curve
+              - directory
+              - fileopen
+              - filesave
+              - font
+              - knob
+              - listbox
+              - dropdown # aka HTML select or GtkOptionMenu
+              - radio
+              - rectangle # for use with type: geometry
+              - slider
+              - spinner
+              - text
+              - textbox # multi-line
+              - timecode
+          "minimum": # For numeric types, the minimal value
+            type: number
+          "maximum": # For numeric types, the maximal value 
+            type: number
+          "default":     # The default value to be used in a UI
+            type: scalar # If not specified, the UI might be able to display
+                         # this as blank
+          "unit": # A UI can display this as a label after the widget (e.g. %)
+            type: str
+          "scale": # the number of digits after decimal point when type: float
+            type: int
+          "format": # A hint about a custom string encoding, possibly scanf
+          "values": # A list of acceptable string values
+            type: seq # A UI can allow something outside the list with
+                      # widget: combo or if "other" is in this sequence
+            sequence:
+              - type: scalar
index 958eeb6293e4c336f25ad2e495cac4968f75cf53..fae127468f0b315cee6588efe01d617f26279896 100644 (file)
@@ -1,4 +1,4 @@
-schema version: 0.1
+schema_version: 0.2
 type: producer # consumer, filter, producer, or transition
 identifier: avformat
 title: FFmpeg Reader