HTML5 Tracker

Diff (omit for latest revision)
Filter

Short URL: http://html5.org/r/5077

SVNBugCommentTime (UTC)
5077[Gecko] [Internet Explorer] [Opera] [Webkit] Captions - Stage 7: track.track.2010-05-05 05:49
Index: source
===================================================================
--- source	(revision 5076)
+++ source	(revision 5077)
@@ -25188,14 +25188,14 @@
            attribute DOMString <span title="dom-track-src">src</span>;
            attribute DOMString <span title="dom-track-srclang">srclang</span>;
 
-  readonly attribute <span>MediaTrack</span> <span title="dom-track-track">track</span>;
+  readonly attribute <span>TimedTrack</span> <span title="dom-track-track">track</span>;
 };</pre>
    </dd>
   </dl>
 
   <p>The <code>track</code> element allows authors to specify explicit
-  external timed tracks for <span title="media element">media
-  elements</span>. It does not <span
+  external <span title="timed track">timed tracks</span> for <span
+  title="media element">media elements</span>. It does not <span
   title="represents">represent</span> anything on its own.</p>
 
   <p>The <dfn title="attr-track-kind"><code>kind</code></dfn>
@@ -25259,12 +25259,29 @@
   language, and whose <code title="attr-track-label">label</code>
   attributes are again both missing or both have the same value.</p>
 
-  <p class="XXX">domintro for track.track</p>
+  <dl class="domintro">
 
+   <dt><var title="">track</var> . <code title="dom-track-track">track</code></dt>
+
+   <dd>
+
+    <p>Returns the <code>TimedTrack</code> object corresponding to the <span>timed track</span> of the <code>track</code> element.</p>
+
+   </dd>
+
+  </dl>
+
   <div class="impl">
 
-  <p class="XXX">track.track</p>
+  <p>When a <code>track</code> element is created, it must be
+  associated with a new <span>timed track</span> and its corresponding
+  new <code>TimedTrack</code> object.</p>
 
+  <p>The <dfn title="dom-track-track"><code>track</code></dfn> IDL
+  attribute must, on getting, return the <code>track</code> element's
+  <span>timed track</span>'s corresponding <code>TimedTrack</code>
+  object.</p>
+
   <p>The IDL attributes <dfn
   title="dom-track-kind"><code>kind</code></dfn>, <dfn
   title="dom-track-label"><code>label</code></dfn>, <dfn
@@ -25332,8 +25349,8 @@
            attribute boolean <span title="dom-media-muted">muted</span>;
 
   // timed tracks
-  readonly attribute <span>MediaTrack</span>[] <span title="dom-media-tracks">tracks</span>;
-  <span>MutableMediaTrack</span> <span title="dom-media-addTrack">addTrack</span>(in DOMString label, in DOMString kind, in DOMString language);
+  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);
 };</pre>
 
   <p>The <dfn>media element attributes</dfn>, <code
@@ -27458,7 +27475,7 @@
       title="dom-media-HAVE_CURRENT_DATA">HAVE_CURRENT_DATA</code>,
       <span>queue a task</span> to <span>fire a simple event</span>
       named <code title="event-media-waiting">waiting</code> at the
-      element.</p></li>
+      element.</p>
 
       <p>Otherwise, the <span>media element</span>'s <code
       title="dom-media-readyState">readyState</code> attribute has the
@@ -27878,11 +27895,11 @@
     kind is represented by a string. The possible strings are:</p>
 
     <ul class="brief">
-     <li><dfn title="dom-MediaTrack-kind-subtitles"><code>subtitles</code></dfn>
-     <li><dfn title="dom-MediaTrack-kind-captions"><code>captions</code></dfn>
-     <li><dfn title="dom-MediaTrack-kind-descriptions"><code>descriptions</code></dfn>
-     <li><dfn title="dom-MediaTrack-kind-chapters"><code>chapters</code></dfn>
-     <li><dfn title="dom-MediaTrack-kind-metadata"><code>metadata</code></dfn>
+     <li><dfn title="dom-TimedTrack-kind-subtitles"><code>subtitles</code></dfn>
+     <li><dfn title="dom-TimedTrack-kind-captions"><code>captions</code></dfn>
+     <li><dfn title="dom-TimedTrack-kind-descriptions"><code>descriptions</code></dfn>
+     <li><dfn title="dom-TimedTrack-kind-chapters"><code>chapters</code></dfn>
+     <li><dfn title="dom-TimedTrack-kind-metadata"><code>metadata</code></dfn>
     </ul>
 
     <p>The <span title="timed track kind">kind of track</span> can
@@ -28062,6 +28079,9 @@
 
   </dl>
 
+  <p>Each <span>timed track</span> has a corresponding
+  <code>TimedTrack</code> object.</p>
+
   <p>A <dfn>timed track cue</dfn> is the unit of time-sensitive data
   in a <span>timed track</span>, corresponding for instance for
   subtitles and captions to the text that appears at a particular time
@@ -28173,79 +28193,102 @@
 
   <p>A <span>timed track cue</span> is immutable.</p>
 
+  <p>Each <span>timed track cue</span> has a corresponding
+  <code>TimedTrackCue</code> object, and can be associated with a
+  particular <span>timed track</span>. Once a <span>timed track
+  cue</span> is associated with a particular <span>timed track</span>,
+  the association is permanent.</p>
 
+
   <h6>Sourcing in-band timed tracks</h6>
 
   <p class="XXX">...
 
 
-  <h6>Sourcing WebSRT timed tracks</h6>
+  <h6>Sourcing out-of-band timed tracks</h6>
 
-  <p class="XXX">...fetching timed tracks
+  <p class="XXX">...
 
+  <!--
 
+   - when <track> inserted into media element:
+      - add the timed track to the list of timed tracks
+
+   - when <track> removed from media element:
+      - remove the track from the list of timed tracks
+
+   - 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
+
+  -->
+
+
   <h6>Timed track API</h6>
 
 <!--
   // timed tracks
-  readonly attribute <span>MediaTrack</span>[] <span title="dom-media-tracks">tracks</span>;
-  <span>MutableMediaTrack</span> <span title="dom-media-addTrack">addTrack</span>(in DOMString label, in DOMString kind, in DOMString language);
+  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);
 -->
 
-  <pre class="idl">interface <dfn>MediaTrack</dfn> {
-  readonly attribute DOMString <span title="dom-MediaTrack-kind">kind</span>;
-  readonly attribute DOMString <span title="dom-MediaTrack-label">label</span>;
-  readonly attribute DOMString <span title="dom-MediaTrack-language">language</span>;
+  <pre class="idl">interface <dfn>TimedTrack</dfn> {
+  readonly attribute DOMString <span title="dom-TimedTrack-kind">kind</span>;
+  readonly attribute DOMString <span title="dom-TimedTrack-label">label</span>;
+  readonly attribute DOMString <span title="dom-TimedTrack-language">language</span>;
 
-  const unsigned short <span title="dom-MediaTrack-NONE">NONE</span> = 0;
-  const unsigned short <span title="dom-MediaTrack-LOADING">LOADING</span> = 1;
-  const unsigned short <span title="dom-MediaTrack-LOADED">LOADED</span> = 2;
-  const unsigned short <span title="dom-MediaTrack-ERROR">ERROR</span> = 3;
-  readonly attribute unsigned short <span title="dom-MediaTrack-readyState">readyState</span>;
-  readonly attribute <span>Function</span> <span title="dom-MediaTrack-onload">onload</span>;
-  readonly attribute <span>Function</span> <span title="dom-MediaTrack-onerror">onerror</span>;
+  const unsigned short <span title="dom-TimedTrack-NONE">NONE</span> = 0;
+  const unsigned short <span title="dom-TimedTrack-LOADING">LOADING</span> = 1;
+  const unsigned short <span title="dom-TimedTrack-LOADED">LOADED</span> = 2;
+  const unsigned short <span title="dom-TimedTrack-ERROR">ERROR</span> = 3;
+  readonly attribute unsigned short <span title="dom-TimedTrack-readyState">readyState</span>;
+  readonly attribute <span>Function</span> <span title="dom-TimedTrack-onload">onload</span>;
+  readonly attribute <span>Function</span> <span title="dom-TimedTrack-onerror">onerror</span>;
 
-  const unsigned short <span title="dom-MediaTrack-OFF">OFF</span> = 0;
-  const unsigned short <span title="dom-MediaTrack-HIDDEN">HIDDEN</span> = 1;
-  const unsigned short <span title="dom-MediaTrack-SHOWING">SHOWING</span> = 2;
-           attribute unsigned short <span title="dom-MediaTrack-mode">mode</span>;
+  const unsigned short <span title="dom-TimedTrack-OFF">OFF</span> = 0;
+  const unsigned short <span title="dom-TimedTrack-HIDDEN">HIDDEN</span> = 1;
+  const unsigned short <span title="dom-TimedTrack-SHOWING">SHOWING</span> = 2;
+           attribute unsigned short <span title="dom-TimedTrack-mode">mode</span>;
 
-  readonly attribute <span>MediaCueList</span> <span title="dom-MediaTrack-cues">cues</span>;
-  readonly attribute <Span>MediaCueList</span> <span title="dom-MediaTrack-activeCues">activeCues</span>;
-  readonly attribute <span>Function</span> <span title="dom-MediaTrack-onentercue">onentercue</span>;
-  readonly attribute <span>Function</span> <span title="dom-MediaTrack-onexitcue">onexitcue</span>;
+  readonly attribute <span>TimedTrackCueList</span> <span title="dom-TimedTrack-cues">cues</span>;
+  readonly attribute <Span>TimedTrackCueList</span> <span title="dom-TimedTrack-activeCues">activeCues</span>;
+  readonly attribute <span>Function</span> <span title="dom-TimedTrack-onentercue">onentercue</span>;
+  readonly attribute <span>Function</span> <span title="dom-TimedTrack-onexitcue">onexitcue</span>;
 };
 
-interface <dfn>MutableMediaTrack</dfn> : <span>MediaTrack</span> {
- void <span title="dom-MutableMediaTrack-addCue">addCue</span>(in <span>MediaCue</span> cue);
- void <span title="dom-MutableMediaTrack-removeCue">removeCue</span>(in <span>MediaCue</span> cue);
+interface <dfn>MutableTimedTrack</dfn> : <span>TimedTrack</span> {
+ void <span title="dom-MutableTimedTrack-addCue">addCue</span>(in <span>TimedTrackCue</span> cue);
+ void <span title="dom-MutableTimedTrack-removeCue">removeCue</span>(in <span>TimedTrackCue</span> cue);
 };
 
-interface <dfn>MediaCueList</dfn> {
-  readonly attribute unsigned long <span title="dom-MediaCueList-length">length</span>;
-  getter <span>MediaCue</span> (in unsigned long index);
-  <span>MediaCue</span> getCueById(in DOMString id);
+interface <dfn>TimedTrackCueList</dfn> {
+  readonly attribute unsigned long <span title="dom-TimedTrackCueList-length">length</span>;
+  getter <span>TimedTrackCue</span> (in unsigned long index);
+  <span>TimedTrackCue</span> getCueById(in DOMString id);
 };
 
 [Constructor(in DOMString id, in float startTime, in float endTime, in DOMString settings, in DOMString text, in optional boolean pauseOnExit)]
-interface <dfn>MediaCue</dfn> {
-  readonly attribute <span>MediaTrack</span> <span title="dom-MediaCue-track">track</span>;
-  readonly attribute DOMString <span title="dom-MediaCue-id">id</span>;
+interface <dfn>TimedTrackCue</dfn> {
+  readonly attribute <span>TimedTrack</span> <span title="dom-TimedTrackCue-track">track</span>;
+  readonly attribute DOMString <span title="dom-TimedTrackCue-id">id</span>;
 
-  readonly attribute float <span title="dom-MediaCue-startTime">startTime</span>;
-  readonly attribute float <span title="dom-MediaCue-endTime">endTime</span>;
-  readonly attribute boolean <span title="dom-MediaCue-pauseOnExit">pauseOnExit</span>;
+  readonly attribute float <span title="dom-TimedTrackCue-startTime">startTime</span>;
+  readonly attribute float <span title="dom-TimedTrackCue-endTime">endTime</span>;
+  readonly attribute boolean <span title="dom-TimedTrackCue-pauseOnExit">pauseOnExit</span>;
 
-  readonly attribute DOMString <span title="dom-MediaCue-direction">direction</span>;
-  readonly attribute boolean <span title="dom-MediaCue-snapToLines">snapToLines</span>;
-  readonly attribute long <span title="dom-MediaCue-linePosition">linePosition</span>;
-  readonly attribute long <span title="dom-MediaCue-textPosition">textPosition</span>;
-  readonly attribute long <span title="dom-MediaCue-size">size</span>;
-  readonly attribute DOMString <span title="dom-MediaCue-alignment">alignment</span>;
+  readonly attribute DOMString <span title="dom-TimedTrackCue-direction">direction</span>;
+  readonly attribute boolean <span title="dom-TimedTrackCue-snapToLines">snapToLines</span>;
+  readonly attribute long <span title="dom-TimedTrackCue-linePosition">linePosition</span>;
+  readonly attribute long <span title="dom-TimedTrackCue-textPosition">textPosition</span>;
+  readonly attribute long <span title="dom-TimedTrackCue-size">size</span>;
+  readonly attribute DOMString <span title="dom-TimedTrackCue-alignment">alignment</span>;
 
-  readonly attribute DOMString <span title="dom-MediaCue-voice">voice</span>;
-  DOMString <span title="dom-MediaCue-getCueAsSource()">getCueAsSource</span>();
-  <span>DocumentFragment</span> <span title="dom-MediaCue-getCueAsHTML()">getCueAsHTML</span>();
+  readonly attribute DOMString <span title="dom-TimedTrackCue-voice">voice</span>;
+  DOMString <span title="dom-TimedTrackCue-getCueAsSource()">getCueAsSource</span>();
+  <span>DocumentFragment</span> <span title="dom-TimedTrackCue-getCueAsHTML()">getCueAsHTML</span>();
 };</pre>
 
   <p class="XXX">domintro
@@ -28263,7 +28306,7 @@
 
 <!-- XXX
 CueEvent
- readonly attribute MediaCue cue;
+ readonly attribute TimedTrackCue cue;
 -->
 
 

|