[ttml2] add ttp:mediaDuration and ttp:mediOffset parameter attributes (issues 270, 335, 346)
authorGlenn Adams <glenn@skynav.com>
Sun, 21 Sep 2014 06:37:21 -0600
changeset 708 3cbc109b90bd
parent 707 e7c059b3b0f1
child 709 de8b1226492a
[ttml2] add ttp:mediaDuration and ttp:mediOffset parameter attributes (issues 270, 335, 346)
ttml2/spec/rnc/schema.zip
ttml2/spec/rnc/ttml2-datatypes.rnc
ttml2/spec/rnc/ttml2-parameter-attribs.rnc
ttml2/spec/ttml2-changes.html
ttml2/spec/ttml2.xml
ttml2/spec/xsd/schema.zip
ttml2/spec/xsd/ttml2-datatypes.xsd
ttml2/spec/xsd/ttml2-parameter-attribs.xsd
Binary file ttml2/spec/rnc/schema.zip has changed
--- a/ttml2/spec/rnc/ttml2-datatypes.rnc	Sun Sep 21 04:41:25 2014 -0600
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc	Sun Sep 21 06:37:21 2014 -0600
@@ -132,6 +132,13 @@
   "continuous" |
   "discontinuous"
 
+TTAF.MediaDuration.datatype =
+  TTAF.TimeDuration.datatype |
+  "indefinite"
+
+TTAF.MediaOffset.datatype =
+  string
+
 TTAF.MetadataAgentType.datatype =
   "person" |
   "character" |
--- a/ttml2/spec/rnc/ttml2-parameter-attribs.rnc	Sun Sep 21 04:41:25 2014 -0600
+++ b/ttml2/spec/rnc/ttml2-parameter-attribs.rnc	Sun Sep 21 06:37:21 2014 -0600
@@ -26,6 +26,10 @@
   = attribute ttp:inferProcessorProfileSource { TTAF.InferProcessorProfileSource.datatype }?
 TTAF.markerMode.attrib
   = attribute ttp:markerMode { TTAF.MarkerMode.datatype }?
+TTAF.mediaDuration.attrib
+  = attribute ttp:mediaDuration { TTAF.MediaDuration.datatype }?
+TTAF.mediaOffset.attrib
+  = attribute ttp:mediaOffset { TTAF.MediaOffset.datatype }?
 TTAF.permitFeatureNarrowing.attrib
   = attribute ttp:permitFeatureNarrowing { TTAF.PermitFeatureNarrowingOrWidening.datatype }?
 TTAF.permitFeatureWidening.attrib
--- a/ttml2/spec/ttml2-changes.html	Sun Sep 21 04:41:25 2014 -0600
+++ b/ttml2/spec/ttml2-changes.html	Sun Sep 21 06:37:21 2014 -0600
@@ -42,15 +42,41 @@
   for a presentation processor, then use a presentation profile as a default
   not a transformation profile.
 
-* In 5.3.1, add new animation vocabulary, 'animation' and 'animate', to Table 5-3.
-
-* In 5.3.1, add new animation vocabulary, 'animate', to Animation.class in Table 5-4.
+* In 5.3.1, add new animation vocabulary, 'animation' and 'animate', to
+  Table 5-3.
 
-* In 5.3.1, add new attribute vocabulary, 'tts:border' and 'tts:textOrientation',
+* In 5.3.1, add new parameter attribute vocabulary
+'ttp:contentProfiles',
+'ttp:contentProfileCombination',
+'ttp:inferProcessorProfileMethod',
+'ttp:inferProcessorProfileSource',
+'ttp:mediaDuration,
+'ttp:mediaOffset',
+'ttp:permitFeatureNarrowing',
+'ttp:permitFeatureWidening',
+'ttp:processorProfiles',
+'ttp:processorProfileCombination',
+'ttp:validation',
+'ttp:validationAction',
+and
+'ttp:version'
+to Table 5-5.
+
+* In 5.3.1, add new animation vocabulary, 'animate', to Animation.class in
+  Table 5-4.
+
+* In 5.3.1, add new styling attribute vocabulary
+'tts:border',
+'tts:ruby',
+'tts:rubyAlign',
+'tts:rubyPosition',
+and
+'tts:textOrientation'
+to Table 5-5.
+
+* In 5.3.1, add new animation binding attribute vocabulary, 'animate',
   to Table 5-5.
 
-* In 5.3.1, add new attribute vocabulary, 'animate', to Table 5-5.
-
 * In 6.1.1, add support for nesting profiles by changing content model of
   ttp:profile to permit either (1) a list of features/extensions or (2)
   a list of nested profiles.
@@ -95,6 +121,10 @@
 
 * In 6.2, add 'ttp:inferProcessorProfileSource' parameter attribute.
 
+* In 6.2, add 'ttp:mediaDuration' parameter attribute.
+
+* In 6.2, add 'ttp:mediaOffset' parameter attribute.
+
 * In 6.2, add 'ttp:permitFeatureNarrowing' parameter attribute.
 
 * In 6.2, add 'ttp:permitFeatureWidening' parameter attribute.
@@ -259,6 +289,15 @@
 * In Appendix F, add #border, #textOrientation, and #version feature
   designators in standard profiles.
 
+* In Appendix G, add (normative) reference to RFC2396 (URI).
+
+* In Appendix G, add (normative) reference to Ruby Annotations REC.
+
+* In Appendix G, add (normative) reference to CSS Ruby Draft.
+
+* In Appendix G, move SVG1.1 reference from Appendix H and update to Second
+  Edition.
+
 * In Appendix O, change appendix designation to normative, effectively
   changing the informative concrete encoding recommendation to a normative
   recommendation.
@@ -293,6 +332,9 @@
 
 * In 5.*, renumber tables to use M-N format.
 
+* In 5.1, extend note under Table 5-1 to clarify meaning of unqualified
+  attribute names.
+
 * In 6.*, renumber tables to use M-N format.
 
 * In 6.1.3, segregate the semantics of the 'value' attribute according to
@@ -312,12 +354,13 @@
 * In 9.3, insert "Inline Regions" as sub-section 9.3.2, renumbering following
   sub-sections.
 
-* In Appendix G, add (normative) reference to RFC2396 (URI).
+* In Appendix H, add (non-normative) reference to CSS Writing Modes Level 3.
 
-* In Appendix G, move SVG1.1 reference from Appendix H and update to Second
-  Edition.
+* In Appendix H, add (non-normative) reference to Japanese Language Requirements
+  (JLREQ).
 
-* In Appendix H, add (non-normative) reference to CSS Writing Modes Level 3.
+* In Appendix H, add (non-normative) reference to original Namespaces in XML
+  REC (NSOriginal).
 
 * In Appendix H, add (non-normative) reference to SDP US.
 
--- a/ttml2/spec/ttml2.xml	Sun Sep 21 04:41:25 2014 -0600
+++ b/ttml2/spec/ttml2.xml	Sun Sep 21 06:37:21 2014 -0600
@@ -2408,6 +2408,8 @@
 <loc href="#parameter-attribute-inferProcessorProfileMethod">ttp:inferProcessorProfileMethod</loc>,
 <loc href="#parameter-attribute-inferProcessorProfileSource">ttp:inferProcessorProfileSource</loc>,
 <loc href="#parameter-attribute-markerMode">ttp:markerMode</loc>,
+<loc href="#parameter-attribute-mediaDuration">ttp:mediaDuration</loc>,
+<loc href="#parameter-attribute-mediaOffset">ttp:mediaOffset</loc>,
 <loc href="#parameter-attribute-permitFeatureNarrowing">ttp:permitFeatureNarrowing</loc>,
 <loc href="#parameter-attribute-permitFeatureWidening">ttp:permitFeatureWidening</loc>,
 <loc href="#parameter-attribute-pixelAspectRatio">ttp:pixelAspectRatio</loc>,
@@ -3145,6 +3147,8 @@
 <item><p><specref ref="parameter-attribute-inferProcessorProfileMethod"/></p></item>
 <item><p><specref ref="parameter-attribute-inferProcessorProfileSource"/></p></item>
 <item><p><specref ref="parameter-attribute-markerMode"/></p></item>
+<item><p><specref ref="parameter-attribute-mediaDuration"/></p></item>
+<item><p><specref ref="parameter-attribute-mediaOffset"/></p></item>
 <item><p><specref ref="parameter-attribute-permitFeatureNarrowing"/></p></item>
 <item><p><specref ref="parameter-attribute-permitFeatureWidening"/></p></item>
 <item><p><specref ref="parameter-attribute-pixelAspectRatio"/></p></item>
@@ -3772,6 +3776,85 @@
 </p>
 </note>
 </div3>
+<div3 id="parameter-attribute-mediaDuration">
+<head>ttp:mediaDuration</head>
+<p>The <att>ttp:mediaDuration</att> attribute is used to specify the
+temporal extent (simple duration) of a <loc href="#terms-related-media-object">related media object</loc>.</p>
+<p>If the temporal extent (simple duration) of the <loc href="#terms-related-media-object">related media object</loc> is known at authoring time, then this
+attribute should be specified; otherwise, if no <loc href="#terms-related-media-object">related media object</loc> applies or its
+temporal extent is unknown, then this attribute should not be specified.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-mediaDuration-syntax" role="syntax">
+<caption>Syntax Representation &ndash; ttp:mediaDuration</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:mediaDuration
+  : <loc href="#timing-value-timeExpression">&lt;timeExpression&gt;</loc>                        // restricted to <emph>offset-time</emph> form
+  | "indefinite"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If specified, the value of this parameter must either (1) adhere to the <emph>offset-time</emph> form of
+a <loc href="#timing-value-timeExpression">&lt;timeExpression&gt;</loc> or (2) take the value <code>indefinite</code>.</p>
+<p>If the value <code>indefinite</code> is specified, then there is no <loc href="#terms-related-media-object">related media object</loc>,
+the temporal extent (simple duration) of the
+<loc href="#terms-related-media-object">related media object</loc> is not known at the time this attribute is
+encoded, or the <loc href="#terms-related-media-object">related media object</loc> has no temporal end point.</p>
+<p>If not specified, the value of this parameter must be considered
+to be <code>indefinite</code>.</p>
+<p>A <att>ttp:mediaDuration</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<note role="explanation">
+<p>See <specref ref="timing-time-value-expressions"/> for the
+specification of time expression syntax and semantics.</p>
+</note>
+</div3>
+<div3 id="parameter-attribute-mediaOffset">
+<head>ttp:mediaOffset</head>
+<p>The <att>ttp:mediaOffset</att> attribute is used to specify the
+temporal offset between the begin time of the <loc href="#terms-root-temporal-extent">root temporal extent</loc>
+and the begin time of a <loc href="#terms-related-media-object">related media object</loc> when operating in a
+<loc href="#time-expression-semantics-media">Media Time Base</loc>
+or a <loc href="#time-expression-semantics-smpte">SMPTE Time Base</loc>. It does not apply and
+must not be specified when operating in a <loc href="#time-expression-semantics-clock">Clock Time Base</loc>.</p>
+<p>If specified, the value of this attribute must adhere to the following syntax:</p>
+<table id="parameter-attribute-mediaOffset-syntax" role="syntax">
+<caption>Syntax Representation &ndash; ttp:mediaOffset</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+ttp:mediaOffset
+  : sign? <loc href="#timing-value-timeExpression">&lt;timeExpression&gt;</loc>                  // restricted to <emph>offset-time</emph> form
+
+sign
+  : "+" | "-"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+<p>If specified, the value of this parameter must adhere to the <emph>offset-time</emph> form of
+a <loc href="#timing-value-timeExpression">&lt;timeExpression&gt;</loc> optionally expressed with a sign.
+If not specified, the value of this parameter must be considered
+to be <code>0s</code>.</p>
+<p>If no sign is specified or it is specified as <code>+</code>, then the begin time of the
+<loc href="#terms-root-temporal-extent">root temporal extent</loc> follows the begin time of the
+<loc href="#terms-related-media-object">related media object</loc>; otherwise (sign is present and
+specified as <code>-</code>), the begin time of the
+<loc href="#terms-root-temporal-extent">root temporal extent</loc> precedes the begin time of the
+<loc href="#terms-related-media-object">related media object</loc>.</p>
+<p>A <att>ttp:mediaOffset</att> attribute is considered to be significant only
+when specified on the <el>tt</el> element.</p>
+<note role="explanation">
+<p>See <specref ref="timing-time-value-expressions"/> for the
+specification of time expression syntax and semantics.</p>
+</note>
+</div3>
 <div3 id="parameter-attribute-permitFeatureNarrowing">
 <head>ttp:permitFeatureNarrowing</head>
 <p>The <att>ttp:permitFeatureNarrowing</att> attribute is used to specify whether
@@ -16640,8 +16723,9 @@
 <p>If the computed <code>frameRateMultipler</code> ratio is not integral, then <code>effectiveFrameRate</code> will be a non-integral rational.</p>
 </note>
 <note role="clarification">
-<p>The above formalisms assumes that the <loc href="#terms-root-temporal-extent">root temporal extent</loc> corresponds with the beginning of a related media object. If
-this assumption doesn't hold, then an additional offset that accounts for the difference may be introduced when computing media time <code>M</code>.</p>
+<p>The begin time of the <loc href="#terms-root-temporal-extent">root temporal extent</loc> is related to the begin time of a
+<loc href="#terms-related-media-object">related media object</loc> in accordance with the computed value of the
+<loc href="#parameter-attribute-mediaOffset"><att>ttp:mediaOffset</att></loc> parameter property.</p>
 </note>
 </div2>
 <div2 id="time-expression-semantics-smpte">
@@ -16756,6 +16840,11 @@
 <p>Given the derived media time base as described above, then 
 media time base <phrase role="strong"><code>M</code></phrase> is related to the local real time <phrase role="strong"><code>R</code></phrase>
 as described in <specref ref="time-expression-semantics-media"/> above.</p>
+<note role="clarification">
+<p>The begin time of the <loc href="#terms-root-temporal-extent">root temporal extent</loc> is related to the begin time of a
+<loc href="#terms-related-media-object">related media object</loc> in accordance with the computed value of the
+<loc href="#parameter-attribute-mediaOffset"><att>ttp:mediaOffset</att></loc> parameter property.</p>
+</note>
 </div2>
 </div1>
 <inform-div1 id="common-styling">
Binary file ttml2/spec/xsd/schema.zip has changed
--- a/ttml2/spec/xsd/ttml2-datatypes.xsd	Sun Sep 21 04:41:25 2014 -0600
+++ b/ttml2/spec/xsd/ttml2-datatypes.xsd	Sun Sep 21 06:37:21 2014 -0600
@@ -247,6 +247,27 @@
       <xs:enumeration value="discontinuous"/>
     </xs:restriction>
   </xs:simpleType>
+  <xs:simpleType name="mediaDuration">
+    <xs:annotation>
+      <xs:documentation>timeExpression (offset-time form only) | indefinite</xs:documentation>
+    </xs:annotation>
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="ttd:timeDuration"/>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="indefinite"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  <xs:simpleType name="mediaOffset">
+    <xs:annotation>
+      <xs:documentation>sign? timeExpression (offset-time form only)</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
   <xs:simpleType name="metadataAgentType">
     <xs:restriction base="xs:token">
       <xs:enumeration value="person"/>
--- a/ttml2/spec/xsd/ttml2-parameter-attribs.xsd	Sun Sep 21 04:41:25 2014 -0600
+++ b/ttml2/spec/xsd/ttml2-parameter-attribs.xsd	Sun Sep 21 06:37:21 2014 -0600
@@ -15,6 +15,8 @@
   <xs:attribute name="inferProcessorProfileMethod" type="ttd:inferProcessorProfileMethod"/>
   <xs:attribute name="inferProcessorProfileSource" type="ttd:inferProcessorProfileSource"/>
   <xs:attribute name="markerMode" type="ttd:markerMode"/>
+  <xs:attribute name="mediaDuration" type="ttd:mediaDuration"/>
+  <xs:attribute name="mediaOffset" type="ttd:mediaOffset"/>
   <xs:attribute name="processorProfiles" type="ttd:profiles"/>
   <xs:attribute name="processorProfileCombination" type="ttd:profileCombination"/>
   <xs:attribute name="permitFeatureNarrowing" type="ttd:permitFeatureNarrowingOrWidening"/>
@@ -38,6 +40,8 @@
     <xs:attribute ref="ttp:inferProcessorProfileMethod"/>
     <xs:attribute ref="ttp:inferProcessorProfileSource"/>
     <xs:attribute ref="ttp:markerMode"/>
+    <xs:attribute ref="ttp:mediaDuration"/>
+    <xs:attribute ref="ttp:mediaOffset"/>
     <xs:attribute ref="ttp:permitFeatureNarrowing"/>
     <xs:attribute ref="ttp:permitFeatureWidening"/>
     <xs:attribute ref="ttp:processorProfiles"/>