[cvs-annodex] commit (/annodex):
standards/draft-pfeiffer-cmml-current.xml
silvia
nobody at lists.annodex.net
Tue Feb 15 09:54:37 EST 2005
Update of /annodex (new revision 904)
Modified files:
standards/draft-pfeiffer-cmml-current.xml
Log Message:
Updated the CMML extraction section.
Modified: standards/draft-pfeiffer-cmml-current.xml
===================================================================
--- standards/draft-pfeiffer-cmml-current.xml 2005-02-14 22:38:23 UTC (rev 903)
+++ standards/draft-pfeiffer-cmml-current.xml 2005-02-14 22:54:36 UTC (rev 904)
@@ -1809,36 +1809,66 @@
the decoding steps are outlined in order here.
</t>
- <t>The core of a CMML file can be created from the "head" tag taken
- from the secondary header packet of the annotation bitstream, and
- from the sequence of "clip" tags extracted from the content of
- the annotation bitstream. A decoder MUST take care to reinsert
- the start time of each "clip" element into the "start" attribute of
- the respective CMML "clip" tag. The start time will be calculated
- from the Granule rate in the annotation fisbone packet and the
- Granule pos given in the respective "clip" Ogg packet.
+ <section title="Extracting the preamble, 'head' and 'clip' tags">
+
+ <t>The data encoded in the CMML logical bitstream conists of the
+ xml preamble, the "cmml" tag, the "head" tag, and the "clip" tags.
+ These are fairly straightforward to extract.
</t>
- <t>If the Annodex bitstream has a non-zero basetime or a non-null
- utc time in the skeleton ident header, a "stream" tag MUST be
- created with these attribute values. That "stream" tag is empty
- by default. A ripping application MAY however extract all the data
- bitstreams out of the Annodex bitstream into files, and then reference
- these files in the "src" attribute of "import" tags.
+ <t>xml preamble and "cmml" tag: The xml preamble is constructed
+ from the second header packet of the CMML logical bitstream. It contains
+ the full xml preamble. It also contains the "cmml" processing
+ instruction, which MUST be transformed back to a normal element
+ and an end "cmml" tag be added at the end of the created CMML document.
</t>
+ <t>"head" tag: The "head" tag is constructed from the third header packet
+ of the CMML logical bitstream, which contains the complete content
+ of the "head" element.
+ </t>
+
+ <t>"clip" tags: The "clip" tags are constructed from the content
+ of the CMML logical bitstream. Each packet contains a "clip" tag
+ with all of the information except for the timing information.
+ A decoder MUST take care to add the start time of each "clip"
+ element into the "start" attribute of the respective CMML "clip" tag.
+ The start time will be calculated from the granulerate in the
+ CMML fisbone packet and the granulepos given in the respective
+ "clip" Ogg packet. Empty "clip" tags should also be converted to
+ end time attributes of the previous "clip" tag on the same track.
+ </t>
+
+ </section>
+
+ <section title="Creating a 'stream' tag">
+
+ <t>The creation of a "stream" tag is not necessary to extract the
+ content of the CMML logical bitstream and thus a textual representation
+ of the interleaved bitstream. However, if the Annodex bitstream has
+ a non-zero "basetime" or a non-null "utc" time in the skeleton
+ ident header, a "stream" tag will allow accurate time information
+ in the CMML file and SHOULD be created with these attribute values.
+ </t>
+
+ <t>If a "stream" tag is created with the "basetime" and "utc" attributes,
+ it is empty by default. A ripping application MAY however extract all
+ the data bitstreams out of the Annodex bitstream into files, and then
+ reference these files in the "src" attribute of "import" tags.
+ </t>
+
<t>Other attributes of the "import" tags MAY also be filled in from
the logical bitstreams:
<list style="symbols">
<t>the "contenttype" attribute from the "Content-type" Message
- header field of the respecitve skeleton secondary header packet,</t>
+ header field of the respective skeleton secondary header packet,</t>
<t>the "granulerate" attribute from the Granulerate fields of
the respecitive skeleton secondary header packet,</t>
<t>the "id" attribute from a Message header field called "ID"
if available,</t>
<t>and "param" elements from all the remaining Message header fields
of the respective skeleton secondary header packet, where the field
- name gets stored in the "name" attribute and the value in the
+ name is stored in the "name" attribute and the value in the
"value" attribute.</t>
</list>
</t>
@@ -1847,38 +1877,20 @@
<figure>
<artwork><![CDATA[
<stream basetime="[Basetime]" utc="[UTC]">
- <import id="[ID]" granulerate="[Granulerate]" contenttype="[Content-type]"
- src="[stream1.mpg]" start="0"/>
+ <import id="[ID]"
+ granulerate="[Granulerate numerator/Granulerate denominator]"
+ contenttype="[Content-type message header value]"
+ src="[stream1.ogg]"
+ start="0">
+ <param name="[message header name]" value="[message header value]"/>
+ </import>
</stream>
]]></artwork>
</figure>
</t>
- <t>If the annotation bitstream has Message header fields called
- "ID", "Content-Language", or "Content-Dir", the "cmml" tag of the
- decoded CMML file MUST use these field values in its "id", "lang",
- and "dir" attributes. This ensures that the default language setting
- of the annotation bitstream gets preserved:
-<figure>
-<artwork><![CDATA[
-<cmml id="[ID]" lang="[Content-Language]" dir="[Content-Dir]">
-]]></artwork>
-</figure>
- </t>
+ </section>
- <t>To restore the correct XML preamble for the CMML file, the
- charset part of the "Content-type" Message header field of the
- annotation bitstream MUST be extracted and used as value of
- the "encoding" attribute of the XML processing instruction. All
- the other fields of the XML preamble are fixed:
-<figure>
-<artwork><![CDATA[
-<?xml version="1.0" encoding="[Content-type]" standalone="yes"?>
-<!DOCTYPE cmml SYSTEM "cmml.dtd">
-]]></artwork>
-</figure>
- </t>
-
</section>
--
silvia
More information about the cvs-annodex
mailing list