hixie: Captions - Stage 10: Some work on handle in-band timed tracks and related changes. (whatwg r5087)

hixie: Captions - Stage 10: Some work on handle in-band timed tracks and
related changes. (whatwg r5087)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.4086&r2=1.4087&f=h
http://html5.org/tools/web-apps-tracker?from=5086&to=5087

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4086
retrieving revision 1.4087
diff -u -d -r1.4086 -r1.4087
--- Overview.html 6 May 2010 09:57:59 -0000 1.4086
+++ Overview.html 8 May 2010 06:36:46 -0000 1.4087
@@ -285,7 +285,7 @@
    <h1>HTML5</h1>
    <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2>
 
-   <h2 class="no-num no-toc" id="editor-s-draft-6-may-2010">Editor's Draft 6 May 2010</h2>
+   <h2 class="no-num no-toc" id="editor-s-draft-8-may-2010">Editor's Draft 8 May 2010</h2>
    <dl><dt>Latest Published Version:</dt>
     <dd><a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a></dd>
     <dt>Latest Editor's Draft:</dt>
@@ -392,7 +392,7 @@
   specification's progress along the W3C Recommendation
   track.
 
-  This specification is the 6 May 2010 Editor's Draft.
+  This specification is the 8 May 2010 Editor's Draft.
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>The contents of this specification are also part of <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">a
   specification</a> published by the <a href="http://www.whatwg.org/">WHATWG</a>, which is available under a
   license that permits reuse of the specification text.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- required patent boilerplate --><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
@@ -687,8 +687,10 @@
          <li><a href="#timed-track-model"><span class="secno">4.8.10.10.1 </span>Timed track model</a></li>
          <li><a href="#sourcing-in-band-timed-tracks"><span class="secno">4.8.10.10.2 </span>Sourcing in-band timed tracks</a></li>
          <li><a href="#sourcing-out-of-band-timed-tracks"><span class="secno">4.8.10.10.3 </span>Sourcing out-of-band timed tracks</a></li>
-         <li><a href="#timed-track-api"><span class="secno">4.8.10.10.4 </span>Timed track API</a></li>
-         <li><a href="#cue-events"><span class="secno">4.8.10.10.5 </span>Event definitions</a></ol></li>
+         <li><a href="#guidelines-for-exposing-cues-in-various-formats-as-timed-track-cues"><span class="secno">4.8.10.10.4 </span>Guidelines for exposing cues in various formats as
+  timed track cues</a></li>
+         <li><a href="#timed-track-api"><span class="secno">4.8.10.10.5 </span>Timed track API</a></li>
+         <li><a href="#cue-events"><span class="secno">4.8.10.10.6 </span>Event definitions</a></ol></li>
        <li><a href="#websrt"><span class="secno">4.8.10.11 </span>WebSRT</a>
         <ol>
          <li><a href="#syntax-0"><span class="secno">4.8.10.11.1 </span>Syntax</a></li>
@@ -20326,42 +20328,111 @@
   </dl><p>The <code><a href="#the-track-element">track</a></code> element allows authors to specify explicit
   external <a href="#timed-track" title="timed track">timed tracks</a> for <a href="#media-element" title="media element">media elements</a>. It does not <a href="#represents" title="represents">represent</a> anything on its own.<p>The <dfn id="attr-track-kind" title="attr-track-kind"><code>kind</code></dfn>
   attribute is an <a href="#enumerated-attribute">enumerated attribute</a>. The following
-  table lists the keywords defined for this attribute. The states
-  given in the first cell of the rows with keywords give the states to
-  which those keywords map.<table><thead><tr><th>State
-     <th>Keywords
+  table lists the keywords defined for this attribute. The keyword
+  given in the first cell of each row maps to the state given in the
+  second cell.<table><thead><tr><th>Keywords
+     <th>State
      <th>Brief description
-   <tbody><tr><td><dfn id="attr-track-kind-subtitles" title="attr-track-kind-subtitles">Subtitles</dfn>
-     <td><dfn id="attr-track-kind-keyword-subtitles" title="attr-track-kind-keyword-subtitles"><code>subtitles</code></dfn>
+   <tbody><tr><td><dfn id="attr-track-kind-keyword-subtitles" title="attr-track-kind-keyword-subtitles"><code>subtitles</code></dfn>
+     <td><dfn id="attr-track-kind-subtitles" title="attr-track-kind-subtitles">Subtitles</dfn>
      <td>Translation of the dialogue, suitable for when the sound is available but not understood (e.g. because the user does not understand the language of the <a href="#media-resource">media resource</a>'s soundtrack).
-    <tr><td><dfn id="attr-track-kind-captions" title="attr-track-kind-captions">Captions</dfn>
-     <td><dfn id="attr-track-kind-keyword-captions" title="attr-track-kind-keyword-captions"><code>captions</code></dfn>
+    <tr><td><dfn id="attr-track-kind-keyword-captions" title="attr-track-kind-keyword-captions"><code>captions</code></dfn>
+     <td><dfn id="attr-track-kind-captions" title="attr-track-kind-captions">Captions</dfn>
      <td>Transcription of the dialogue, suitable for when the soundtrack is unavailable (e.g. because it is muted or because the user is deaf). 
-    <tr><td><dfn id="attr-track-kind-descriptions" title="attr-track-kind-descriptions">Descriptions</dfn>
-     <td><dfn id="attr-track-kind-keyword-descriptions" title="attr-track-kind-keyword-descriptions"><code>descriptions</code></dfn>
+    <tr><td><dfn id="attr-track-kind-keyword-descriptions" title="attr-track-kind-keyword-descriptions"><code>descriptions</code></dfn>
+     <td><dfn id="attr-track-kind-descriptions" title="attr-track-kind-descriptions">Descriptions</dfn>
      <td>Textual descriptions of the video component of the <a href="#media-resource">media resource</a>, intended for audio synthesis when the visual component is unavailable (e.g. because the user is interacting with the application without a screen while driving, or because the user is blind).
-    <tr><td><dfn id="attr-track-kind-chapters" title="attr-track-kind-chapters">Chapters</dfn>
-     <td><dfn id="attr-track-kind-keyword-chapters" title="attr-track-kind-keyword-chapters"><code>chapters</code></dfn>
+    <tr><td><dfn id="attr-track-kind-keyword-chapters" title="attr-track-kind-keyword-chapters"><code>chapters</code></dfn>
+     <td><dfn id="attr-track-kind-chapters" title="attr-track-kind-chapters">Chapters</dfn>
      <td>Chapter titles, intended to be used for navigating the <a href="#media-resource">media resource</a>.
-    <tr><td><dfn id="attr-track-kind-metadata" title="attr-track-kind-metadata">Metadata</dfn>
-     <td><dfn id="attr-track-kind-keyword-metadata" title="attr-track-kind-keyword-metadata"><code>metadata</code></dfn>
+    <tr><td><dfn id="attr-track-kind-keyword-metadata" title="attr-track-kind-keyword-metadata"><code>metadata</code></dfn>
+     <td><dfn id="attr-track-kind-metadata" title="attr-track-kind-metadata">Metadata</dfn>
      <td>Tracks intended for use from script.
   </table><p>The attribute may be omitted. The <i>missing value default</i> is
   the <a href="#attr-track-kind-captions" title="attr-track-kind-captions">captions</a> state.<p>The <dfn id="attr-track-src" title="attr-track-src"><code>src</code></dfn> attribute
   gives the address of the time track data. The value must be a
   <a href="#valid-non-empty-url-potentially-surrounded-by-spaces">valid non-empty URL potentially surrounded by
-  spaces</a>. This attribute must be present.<p>The <dfn id="attr-track-srclang" title="attr-track-srclang"><code>srclang</code></dfn>
+  spaces</a>. This attribute must be present.<div class="impl">
+
+  <p>If the element has a <code title="attr-track-src"><a href="#attr-track-src">src</a></code>
+  attribute whose value is not the empty string and whose value, when
+  the attribute was set, could be successfully <a href="#resolve-a-url" title="resolve a
+  url">resolved</a> relative to the element, then the element's
+  <dfn id="track-url">track URL</dfn> is the resulting <a href="#absolute-url">absolute
+  URL</a>. Otherwise, the element has no <a href="#track-url">track
+  URL</a>.</p>
+
+  </div><p>The <dfn id="attr-track-srclang" title="attr-track-srclang"><code>srclang</code></dfn>
   attribute gives the language of the time track data. The value must
   be a valid BCP 47 language tag. This attribute must be present if
   the element's <code title="attr-track-kind"><a href="#attr-track-kind">kind</a></code> attribute is
   in the <a href="#attr-track-kind-subtitles" title="attr-track-kind-subtitles">subtitles</a>
-  state. <a href="#refsBCP47">[BCP47]</a><p>The <dfn id="attr-track-label" title="attr-track-label"><code>label</code></dfn>
-  attribute gives a user-readable title for the track.<p>There must not be two <code><a href="#the-track-element">track</a></code> element children of the
-  same <a href="#media-element">media element</a> whose <code title="attr-track-kind"><a href="#attr-track-kind">kind</a></code> attributes are in the same
+  state. <a href="#refsBCP47">[BCP47]</a><div class="impl">
+
+  <p>If the element has a <code title="attr-track-srclang"><a href="#attr-track-srclang">srclang</a></code> attribute whose value is
+  not the empty string, then the element's <dfn id="track-language">track language</dfn>
+  is the value of the attribute. Otherwise, the element has no
+  <a href="#track-language">track language</a>.</p>
+
+  </div><p>The <dfn id="attr-track-label" title="attr-track-label"><code>label</code></dfn>
+  attribute gives a user-readable title for the track.<p>The value of the <code title="attr-track-label"><a href="#attr-track-label">label</a></code>
+  attribute, if the attribute is present, must not be the empty
+  string. Furthermore, there must not be two <code><a href="#the-track-element">track</a></code>
+  element children of the same <a href="#media-element">media element</a> whose <code title="attr-track-kind"><a href="#attr-track-kind">kind</a></code> attributes are in the same
   state, whose <code title="attr-track-srclang"><a href="#attr-track-srclang">srclang</a></code>
   attributes are both missing or have values that represent the same
   language, and whose <code title="attr-track-label"><a href="#attr-track-label">label</a></code>
-  attributes are again both missing or both have the same value.<dl class="domintro"><dt><var title="">track</var> . <code title="dom-track-track"><a href="#dom-track-track">track</a></code></dt>
+  attributes are again both missing or both have the same value.<div class="impl">
+
+  <p>If the element has a <code title="attr-track-label"><a href="#attr-track-label">label</a></code>
+  attribute whose value is not the empty string, then the element's
+  <dfn id="track-label">track label</dfn> is the value of the attribute. Otherwise, the
+  element's <a href="#track-label">track label</a> is a user-agent defined string
+  (e.g. the string "untitled" in the user's locale, or a value
+  automatically generated from the other attributes).</p>
+
+  </div><div class="impl">
+
+  <p>When a <code><a href="#the-track-element">track</a></code> element is created, it must be
+  associated with a new <a href="#timed-track">timed track</a> and its corresponding
+  new <code><a href="#timedtrack">TimedTrack</a></code> object.</p>
+
+  <p>The <a href="#timed-track-kind">timed track kind</a> is determined from the state of
+  the element's <code title="attr-track-kind"><a href="#attr-track-kind">kind</a></code> attribute
+  according to the following table; for a state given in a cell of the
+  first column, the <a href="#timed-track-kind" title="timed track kind">kind</a> is the
+  string given in the second column:</p>
+
+  <table><thead><tr><th>State
+     <th>String
+   <tbody><tr><td><a href="#attr-track-kind-subtitles" title="attr-track-kind-subtitles">Subtitles</a>
+     <td><code title="dom-track-kind-subtitles">subtitles</code>
+    <tr><td><a href="#attr-track-kind-captions" title="attr-track-kind-captions">Captions</a>
+     <td><code title="dom-track-kind-captions">captions</code>
+    <tr><td><a href="#attr-track-kind-descriptions" title="attr-track-kind-descriptions">Descriptions</a>
+     <td><code title="dom-track-kind-descriptions">descriptions</code>
+    <tr><td><a href="#attr-track-kind-chapters" title="attr-track-kind-chapters">Chapters</a>
+     <td><code title="dom-track-kind-chapters">chapters</code>
+    <tr><td><a href="#attr-track-kind-metadata" title="attr-track-kind-metadata">Metadata</a>
+     <td><code title="dom-track-kind-metadata">metadata</code>
+  </table><p>The <a href="#timed-track-label">timed track label</a> is the element's <a href="#track-label">track
+  label</a>.</p>
+
+  <p>The <a href="#timed-track-language">timed track language</a> is the element's
+  <a href="#track-language">track language</a>, if any, or the empty string
+  otherwise.</p>
+
+  <p>As the <code title="attr-track-kind"><a href="#attr-track-kind">kind</a></code>, <code title="attr-track-label"><a href="#attr-track-label">label</a></code>, and <code title="attr-track-srclang"><a href="#attr-track-srclang">srclang</a></code> attributes are added,
+  removed, or changed, the <a href="#timed-track">timed track</a> must update
+  accordingly, as per the definitions above.</p>
+
+  <p class="XXX">Handle the <a href="#track-url">track URL</a> and changes
+  thereto. (blocked on defining how the mode is updated and how it
+  affects track loading)</p>
+
+  <p class="XXX">...cues! state! mode!</p>
+
+  </div><dl class="domintro"><dt><var title="">track</var> . <code title="dom-track-track"><a href="#dom-track-track">track</a></code></dt>
 
    <dd>
 
@@ -20371,10 +20442,6 @@
 
   </dl><div class="impl">
 
-  <p>When a <code><a href="#the-track-element">track</a></code> element is created, it must be
-  associated with a new <a href="#timed-track">timed track</a> and its corresponding
-  new <code><a href="#timedtrack">TimedTrack</a></code> object.</p>
-
   <p>The <dfn id="dom-track-track" title="dom-track-track"><code>track</code></dfn> IDL
   attribute must, on getting, return the <code><a href="#the-track-element">track</a></code> element's
   <a href="#timed-track">timed track</a>'s corresponding <code><a href="#timedtrack">TimedTrack</a></code>
@@ -20756,7 +20823,8 @@
      <li><p>Set the <code title="dom-media-networkState"><a href="#dom-media-networkstate">networkState</a></code> attribute to
      <code title="dom-media-NETWORK_EMPTY"><a href="#dom-media-network_empty">NETWORK_EMPTY</a></code>.</li>
 
-     <li class="XXX"><p>remove all timed tracks</li>
+     <li><p><a href="#forget-the-media-element-s-media-resource-specific-timed-tracks">Forget the media element's media-resource-specific
+     timed tracks</a>.</li>
 
      <li><p>If <code title="dom-media-readyState"><a href="#dom-media-readystate">readyState</a></code> is
      not set to <code title="dom-media-HAVE_NOTHING"><a href="#dom-media-have_nothing">HAVE_NOTHING</a></code>, then set it
@@ -20870,14 +20938,25 @@
      algorithm returns without aborting <em>this</em> one, then the
      load failed.</li>
 
-     <li><p><i>Failed</i>: Reaching this step indicates that the media
-     resource failed to load or that the given <a href="#url">URL</a> could
-     not be <a href="#resolve-a-url" title="resolve a url">resolved</a>. Set the <code title="dom-media-error"><a href="#dom-media-error">error</a></code> attribute to a new
-     <code><a href="#mediaerror">MediaError</a></code> object whose <code title="dom-MediaError-code"><a href="#dom-mediaerror-code">code</a></code> attribute is set to <code title="dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED"><a href="#dom-mediaerror-media_err_src_not_supported">MEDIA_ERR_SRC_NOT_SUPPORTED</a></code>. <span class="XXX">remove all timed tracks</span></li>
+     <li>
 
-     <li><p>Set the element's <code title="dom-media-networkState"><a href="#dom-media-networkstate">networkState</a></code> attribute to
-     the <a href="#dom-media-network_no_source" title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</a>
-     value.</li>
+      <p><i>Failed</i>: Reaching this step indicates that the media
+      resource failed to load or that the given <a href="#url">URL</a> could
+      not be <a href="#resolve-a-url" title="resolve a url">resolved</a>. In one
+      atomic operation, run the following steps:</p>
+
+      <ol><li><p>Set the <code title="dom-media-error"><a href="#dom-media-error">error</a></code>
+       attribute to a new <code><a href="#mediaerror">MediaError</a></code> object whose <code title="dom-MediaError-code"><a href="#dom-mediaerror-code">code</a></code> attribute is set to
+       <code title="dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED"><a href="#dom-mediaerror-media_err_src_not_supported">MEDIA_ERR_SRC_NOT_SUPPORTED</a></code>.</li>
+
+       <li><p><a href="#forget-the-media-element-s-media-resource-specific-timed-tracks">Forget the media element's media-resource-specific
+       timed tracks</a>.</li>
+
+       <li><p>Set the element's <code title="dom-media-networkState"><a href="#dom-media-networkstate">networkState</a></code> attribute to
+       the <a href="#dom-media-network_no_source" title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</a>
+       value.</li>
+
+      </ol></li>
 
      <li><p><a href="#queue-a-task">Queue a task</a> to <a href="#fire-a-simple-event">fire a simple
      event</a> named <code title="event-media-error"><a href="#event-media-error">error</a></code>
@@ -20980,8 +21059,7 @@
      <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-error">error</code> at the <var title="">candidate</var> element, in the context of the <a href="#fetch" title="fetch">fetching process</a> that was used to try to
      obtain <var title="">candidate</var>'s corresponding <a href="#media-resource">media
      resource</a> in the <a href="#concept-media-load-resource" title="concept-media-load-resource">resource fetch
-     algorithm</a>. <span class="XXX">remove all timed
-     tracks</span></li>
+     algorithm</a>.</li>
 
      <li><p>Asynchronously <a href="#await-a-stable-state">await a stable state</a>. The
      <a href="#synchronous-section">synchronous section</a> consists of all the remaining
@@ -20989,6 +21067,9 @@
      <a href="#synchronous-section">synchronous section</a> has ended. (Steps in <a href="#synchronous-section" title="synchronous section">synchronous sections</a> are
      marked with &#8987;.)</li>
 
+     <li><p>&#8987; <a href="#forget-the-media-element-s-media-resource-specific-timed-tracks">Forget the media element's
+     media-resource-specific timed tracks</a>.</li>
+
      <li><p>&#8987; <i title="">Find next candidate</i>: Let <var title="">candidate</var> be null.</li>
 
      <li><p>&#8987; <i title="">Search loop</i>: If the node after
@@ -21148,15 +21229,13 @@
      <dt id="getting-media-metadata">Once enough of the <a href="#media-data">media
      data</a> has been fetched to determine the duration of the
      <a href="#media-resource">media resource</a>, its dimensions, and other
-     metadata</dt>
+     metadata, and once <a href="#the-timed-tracks-are-ready">the timed tracks are ready</a></dt>
 
      <dd>
 
       <p>This indicates that the resource is usable. The user agent
       must follow these substeps:</p>
 
-      <p class="XXX">this needs to wait until all active timed tracks have loaded also</p>
-
       <ol><li><p>Set the <a href="#current-playback-position">current playback position</a> to the
        <a href="#earliest-possible-position">earliest possible position</a>.</li>
 
@@ -21374,11 +21453,12 @@
      </dd>
 
 
-     <dt class="XXX">timed tracks are found</dt>
+     <dt id="found-a-media-resource-specific-timed-track">If the <a href="#media-resource">media resource</a> is found to declare a <a href="#media-resource-specific-timed-track">media-resource-specific timed track</a> that the user agent supports</dt>
 
      <dd>
 
-      <p class="XXX">...
+      <p>Run the <a href="#steps-to-expose-a-media-resource-specific-timed-track">steps to expose a media-resource-specific timed
+      track</a> with the relevant data.</p>
 
      </dd>
 
@@ -22400,9 +22480,10 @@
    the <code title="dom-media-addTrack">addTrack()</code> method, in
    the order they were added, oldest first.</li>
 
-   <li>Any <a href="#timed-track" title="timed track">timed tracks</a> corresponding
-   to data in the <a href="#media-resource">media resource</a>, in the order defined by
-   the <a href="#media-resource">media resource</a>'s format specification.</li>
+   <li>Any <a href="#media-resource-specific-timed-track" title="media-resource-specific timed
+   track">media-resource-specific timed tracks</a> (<a href="#timed-track" title="timed track">timed tracks</a> corresponding to data in
+   the <a href="#media-resource">media resource</a>), in the order defined by the
+   <a href="#media-resource">media resource</a>'s format specification.</li>
 
   </ol><p>A <a href="#timed-track">timed track</a> consists of:<dl><dt><dfn id="timed-track-kind" title="timed track kind">The kind of timed track</dfn>
 
@@ -22680,30 +22761,70 @@
   <code><a href="#timedtrackcue">TimedTrackCue</a></code> object, and can be associated with a
   particular <a href="#timed-track">timed track</a>. Once a <a href="#timed-track-cue">timed track
   cue</a> is associated with a particular <a href="#timed-track">timed track</a>,
-  the association is permanent.<h6 id="sourcing-in-band-timed-tracks"><span class="secno">4.8.10.10.2 </span>Sourcing in-band timed tracks</h6><p class="XXX">...
+  the association is permanent.<p class="XXX"><dfn id="the-timed-tracks-are-ready">the timed tracks are ready</dfn><h6 id="sourcing-in-band-timed-tracks"><span class="secno">4.8.10.10.2 </span>Sourcing in-band timed tracks</h6><p>A <dfn id="media-resource-specific-timed-track">media-resource-specific timed track</dfn> is a <a href="#timed-track">timed
+  track</a> that corresponds to data found in the <a href="#media-resource">media
+  resource</a>. Rules for processing and rendering such data are
+  defined by the relevant specifications, e.g. the specification of
+  the video format if the <a href="#media-resource">media resource</a> is a video.<p>When a <a href="#media-resource">media resource</a> contains data that the user
+  agent recognises and supports as being equivalent to a <a href="#timed-track">timed
+  track</a>, the user agent <a href="#found-a-media-resource-specific-timed-track">runs</a> the
+  <dfn id="steps-to-expose-a-media-resource-specific-timed-track">steps to expose a media-resource-specific timed track</dfn>
+  with the relevant data, as follows:<ol><li><p>Associate the relevant data with a new <a href="#timed-track">timed
+   track</a> and its corresponding new <code><a href="#timedtrack">TimedTrack</a></code>
+   object. The <a href="#timed-track">timed track</a> is a
+   <a href="#media-resource-specific-timed-track">media-resource-specific timed track</a>.</li>
 
+   <li><p>Set the new <a href="#timed-track">timed track</a>'s <a href="#timed-track-kind" title="timed track
+   kind">kind</a>, <a href="#timed-track-label" title="timed track label">label</a>,
+   and <a href="#timed-track-language" title="timed track language">language</a> based on the
+   semantics of the relevant data, as defined by the relevant
+   specification.</li>
 
-  <h6 id="sourcing-out-of-band-timed-tracks"><span class="secno">4.8.10.10.3 </span>Sourcing out-of-band timed tracks</h6><p class="XXX">...
+   <li><p>Populate the new <a href="#timed-track">timed track</a>'s <a href="#timed-track-list-of-cues" title="timed track list of cues">list of cues</a> with the cues
+   parsed so far, folllowing the <a href="#guidelines-for-exposing-cues-in-various-formats-as-timed-track-cues">guidelines for exposing
+   cues</a>, and begin updating it dynamically as
+   necessary.</li>
 
-  <!--
+   <li>
 
-   - when <track> inserted into media element:
-      - add the timed track to the list of timed tracks
+    <p>Set the new <a href="#timed-track">timed track</a>'s <a href="#timed-track-readiness-state" title="timed track
+    readiness state">readiness state</a> to the value that most
+    correctly describes the current state, and begin updating it
+    dynamically as necessary.</p>
 
-   - when <track> removed from media element:
-      - remove the track from the list of timed tracks
+    <p class="example">For example, if the relevant data in the
+    <a href="#media-resource">media resource</a> has been fully parsed and completely
+    describes the cues, then the <a href="#timed-track">timed track</a> would be
+    <a href="#timed-track-loaded" title="timed track loaded">loaded</a>. On the other hand,
+    if the data for the cues is interleaved with the <a href="#media-data">media
+    data</a>, and the <a href="#media-resource">media resource</a> as a whole is
+    still being downloaded, then the <a href="#timed-track-loading" title="timed track
+    loading">loading</a> state might be more accurate.</p>
 
-   - when <track> corresponding to a media element's timed track has a
-     content attribute changed:
-      - kind => timed track kind
-      - label => timed track label
-      - srclang => timed track language
-      - src => if it's changed, blow away all the cues, set readyState to NONE, then reprocess the mode
+   </li>
 
-  -->
+   <li><p>Set the new <a href="#timed-track">timed track</a>'s <a href="#timed-track-mode" title="timed
+   track mode">mode</a> to the mode consistent with the user's
+   preferences and the requirements of the relevant specification for
+   the data.</li>
 
+   <li><p>Add the new <a href="#timed-track">timed track</a> to the <a href="#media-element">media
+   element</a>'s <a href="#list-of-timed-tracks">list of timed tracks</a>.</li>
 
-  <h6 id="timed-track-api"><span class="secno">4.8.10.10.4 </span>Timed track API</h6><!--
+  </ol><p>When a <a href="#media-element">media element</a> is to <dfn id="forget-the-media-element-s-media-resource-specific-timed-tracks">forget the media
+  element's media-resource-specific timed tracks</dfn>, the user
+  agent must remove from the <a href="#media-element">media element</a>'s <a href="#list-of-timed-tracks">list
+  of timed tracks</a> all the <a href="#media-resource-specific-timed-track" title="media-resource-specific
+  timed track">media-resource-specific timed tracks</a>.<h6 id="sourcing-out-of-band-timed-tracks"><span class="secno">4.8.10.10.3 </span>Sourcing out-of-band timed tracks</h6><p>When a <code><a href="#the-track-element">track</a></code> element's parent element changes and
+  the new parent is a <a href="#media-element">media element</a>, then add the
+  <code><a href="#the-track-element">track</a></code> element's corresponding <a href="#timed-track">timed track</a>
+  to the <a href="#media-element">media element</a>'s <a href="#list-of-timed-tracks">list of timed
+  tracks</a>.<p>When a <code><a href="#the-track-element">track</a></code> element's parent element changes and
+  the old parent was a <a href="#media-element">media element</a>, then remove the
+  <code><a href="#the-track-element">track</a></code> element's corresponding <a href="#timed-track">timed track</a>
+  to the <a href="#media-element">media element</a>'s <a href="#list-of-timed-tracks">list of timed
+  tracks</a>.<p class="XXX">...<h6 id="guidelines-for-exposing-cues-in-various-formats-as-timed-track-cues"><span class="secno">4.8.10.10.4 </span><dfn>Guidelines for exposing cues</dfn> in various formats as
+  <a href="#timed-track-cue" title="timed track cue">timed track cues</a></h6><p class="XXX">...<h6 id="timed-track-api"><span class="secno">4.8.10.10.5 </span>Timed track API</h6><!--
   // timed tracks
   readonly attribute <span>TimedTrack</span>[] <span title="dom-media-tracks">tracks</span>;
   <span>MutableTimedTrack</span> <span title="dom-media-addTrack">addTrack</span>(in DOMString label, in DOMString kind, in DOMString language);
@@ -22773,7 +22894,7 @@
    the face of a dynamic track.src change.
   -->
 
-  </div><h6 id="cue-events"><span class="secno">4.8.10.10.5 </span>Event definitions</h6><p class="XXX">...
+  </div><h6 id="cue-events"><span class="secno">4.8.10.10.6 </span>Event definitions</h6><p class="XXX">...
 
 <!-- XXX
 CueEvent

Received on Saturday, 8 May 2010 06:37:52 UTC