<?xml version="1.0"?>
-<!DOCTYPE westley [
+<!DOCTYPE westley SYSTEM "../src/modules/westley/westley.dtd" [
<!ENTITY name "Westley">
]>
<westley>
<transition in="25" out="49" a_track="0" b_track="1">
<property name="mlt_service">luma</property>
</transition>
- <transition in="75" out="99" a_track="0" b_track="1" reverse="1">
- <property name="mlt_service">luma</property>
+ <transition in="75" out="99" a_track="0" b_track="1" mlt_service="luma">
+ <property name="reverse" value="1"/>
</transition>
</entry>
<entry>
<multitrack>
<playlist>
- <producer id="foo" in="100" out="149">
- <property name="resource">clip2.mpeg</property>
- </producer>
+ <entry producer="foo" in="100" out="149"/>
<blank length="25"/>
<entry producer="foo" in="10" out="59"/>
</playlist>
<playlist>
<blank length="25"/>
- <producer id="bar" in="100" out="149">
- <property name="resource">clip3.mpeg</property>
- </producer>
+ <entry producer="bar" in="100" out="149"/>
<entry out="99" producer="bar"/>
</playlist>
</multitrack>
<transition in="25" out="49" a_track="0" b_track="1">
<property name="mlt_service">luma</property>
</transition>
- <transition in="75" out="99" a_track="0" b_track="1" reverse="1">
- <property name="mlt_service">luma</property>
+ <transition in="75" out="99" a_track="0" b_track="1" mlt_service="luma">
+ <property name="reverse">1</property>
</transition>
</entry>
Preamble:
Westley is the MLT projects XML serialisation/deserialisation format -
- as such, it closely mirrors the internal structure of the MLT API.
+ as such, it closely mirrors the internal structure of the MLT API.
+
+ If you just want to go straight to the DTD, then see
+ mlt/src/modules/westley.dtd, which gets installed at
+ $(prefix)/share/mlt/modules/westley.dtd. Currently, the westley parser is
+ non-validating.
Introduction:
install: all
install -m 755 $(TARGET) "$(prefix)/share/mlt/modules"
+ install -m 644 westley.dtd "$(prefix)/share/mlt/modules"
ifneq ($(wildcard .depend),)
include .depend
value[ len ] = 0;
strncpy( value, (const char*) ch, len );
-
+
if ( context->stack_node_size > 0 )
xmlNodeAddContent( context->stack_node[ context->stack_node_size - 1 ], ( xmlChar* )value );
--- /dev/null
+<?xml version='1.0' encoding='utf-8'?>
+
+<!-- MLT westley DTD v0.1.0 -->
+
+<!ELEMENT westley (producer | playlist | tractor | multitrack)+ >
+<!ELEMENT property ANY >
+<!ATTLIST property
+ name CDATA #REQUIRED
+ value CDATA #IMPLIED
+>
+<!ELEMENT producer (property)* >
+<!ATTLIST producer
+ id ID #IMPLIED
+ in CDATA #IMPLIED
+ out CDATA #IMPLIED
+ mlt_service CDATA #IMPLIED
+>
+<!ELEMENT filter (property)* >
+<!ATTLIST filter
+ id ID #IMPLIED
+ in CDATA #IMPLIED
+ out CDATA #IMPLIED
+ mlt_service CDATA #IMPLIED
+ track CDATA #IMPLIED
+>
+<!ELEMENT transition (property)* >
+<!ATTLIST transition
+ id ID #IMPLIED
+ in CDATA #IMPLIED
+ out CDATA #IMPLIED
+ mlt_service CDATA #IMPLIED
+ a_track CDATA #IMPLIED
+ b_track CDATA #IMPLIED
+>
+<!ELEMENT playlist (entry | blank | producer | playlist | tractor | multitrack)+ >
+<!ATTLIST playlist
+ id ID #IMPLIED
+ in CDATA #IMPLIED
+ out CDATA #IMPLIED
+>
+<!ELEMENT entry (producer | playlist | tractor | multitrack | filter | transition)* >
+<!ATTLIST entry
+ producer IDREF #IMPLIED
+ in CDATA #IMPLIED
+ out CDATA #IMPLIED
+>
+<!ELEMENT blank EMPTY >
+<!ATTLIST blank
+ length CDATA #REQUIRED
+>
+<!ELEMENT tractor (multitrack, (filter | transition)*) >
+<!ATTLIST tractor
+ id ID #IMPLIED
+ in CDATA #IMPLIED
+ out CDATA #IMPLIED
+>
+<!ELEMENT multitrack (track | producer | playlist | tractor | multitrack)+ >
+<!ATTLIST multitrack
+ id ID #IMPLIED
+>
+<!ELEMENT track (producer | playlist | tractor | multitrack | filter | transition)* >
+<!ATTLIST track
+ producer IDREF #IMPLIED
+>