[html5] r7552 - [giow] (1) Try to be clearer about when the poster frame is shown. Better matche [...]

whatwg at whatwg.org whatwg at whatwg.org
Fri Nov 30 13:45:20 PST 2012


Author: ianh
Date: 2012-11-30 13:45:19 -0800 (Fri, 30 Nov 2012)
New Revision: 7552

Modified:
   complete.html
   index
   source
Log:
[giow] (1) Try to be clearer about when the poster frame is shown. Better matches implementations (see first part of #10 in the bug).
Fixing https://www.w3.org/Bugs/Public/show_bug.cgi?id=17979
Affected topics: HTML, Video and Audio

Modified: complete.html
===================================================================
--- complete.html	2012-11-29 01:32:53 UTC (rev 7551)
+++ complete.html	2012-11-30 21:45:19 UTC (rev 7552)
@@ -248,7 +248,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1 class=allcaps>HTML</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 29 November 2012</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 30 November 2012</h2>
    </hgroup><dl><dt><strong>Web developer edition:</strong></dt>
     <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
     <dt>Multiple-page version:</dt>
@@ -27714,12 +27714,10 @@
 
   <div class=impl>
 
-  <p>If the specified resource is to be used, then, when the element
-  is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>
-  attribute is set, changed, or removed, the user agent must run the
-  following steps to determine the element's <dfn id=poster-frame>poster
-  frame</dfn>:</p> <!-- thus it is unaffected by changes to the base
-  URL. -->
+  <p>If the specified resource is to be used, then, when the element is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute is set, changed, or removed, the user agent must
+  run the following steps to determine the element's <dfn id=poster-frame>poster frame</dfn> (regardless of the
+  value of the element's <a href=#show-poster-flag>show poster flag</a>):</p> <!-- thus it is unaffected by changes
+  to the base URL. -->
 
   <ol><li><p>If there is an existing instance of this algorithm running
    for this <code><a href=#the-video-element>video</a></code> element, abort that instance of this
@@ -27754,59 +27752,54 @@
 
   <div class=impl>
 
-  <hr><p>When no video data is available (the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is either
-  <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> but no video
-  data has yet been obtained at all, or the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is any
-  subsequent value but the <a href=#media-resource>media resource</a> does not have a
-  video channel), the <code><a href=#the-video-element>video</a></code> element
-  <a href=#represents>represents</a> the <a href=#poster-frame>poster frame</a>.</p>
+  <hr><p>A <code><a href=#the-video-element>video</a></code> element represents what is given for the first matching condition in the
+  list below:</p>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a> and the <a href=#current-playback-position title="current
-  playback position">current playback position</a> is the first
-  frame of video, the element <a href=#represents>represents</a> the <a href=#poster-frame>poster
-  frame</a>, unless a frame of video has already been shown, in
-  which case the element <a href=#represents>represents</a> the frame of video
-  corresponding to the <a href=#current-playback-position title="current playback position">current
-  playback position</a>.</p>
+  <dl class=switch><dt>When no video data is available (the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is either <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> but no video data has yet been obtained at
+   all, or the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is any
+   subsequent value but the <a href=#media-resource>media resource</a> does not have a video channel)</dt>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a> at any other position, and
-  the <a href=#media-resource>media resource</a> has a video channel, the element
-  <a href=#represents>represents</a> the frame of video corresponding to the
-  <a href=#current-playback-position title="current playback position">current playback
-  position</a>, or, if that is not yet available (e.g. because the
-  video is seeking or buffering), the last frame of the video to have
-  been rendered.</p>
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a>, the <a href=#current-playback-position title="current playback position">current playback position</a> is the first frame of video,
+   and the element's <a href=#show-poster-flag>show poster flag</a> is set</dt>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element whose <a href=#media-resource>media
-  resource</a> has a video channel is <a href=#potentially-playing>potentially
-  playing</a>, it <a href=#represents>represents</a> the frame of video at the
-  continuously increasing <a href=#current-playback-position title="current playback
-  position">"current" position</a>. When the <a href=#current-playback-position>current playback
-  position</a> changes such that the last frame rendered is no
-  longer the frame corresponding to the <a href=#current-playback-position>current playback
-  position</a> in the video, the new frame must be rendered.
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> its <a href=#poster-frame>poster frame</a>.</dd>
 
-  Similarly, any audio associated with the <a href=#media-resource>media resource</a>
-  must, if played, be played synchronized with the <a href=#current-playback-position>current
-  playback position</a>, at the element's <a href=#effective-media-volume>effective media
-  volume</a>.</p>
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a>, and the
+   frame of video corresponding to the <a href=#current-playback-position title="current playback position">current playback
+   position</a> is not available (e.g. because the video is seeking or buffering)</dt>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element whose <a href=#media-resource>media
-  resource</a> has a video channel is neither <a href=#potentially-playing>potentially
-  playing</a> nor <a href=#dom-media-paused title=dom-media-paused>paused</a>
-  (e.g. when seeking or stalled), the element <a href=#represents>represents</a>
-  the last frame of the video to have been rendered.</p>
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is neither <a href=#potentially-playing>potentially playing</a> nor <a href=#dom-media-paused title=dom-media-paused>paused</a> (e.g. when seeking or stalled)</dt>
 
-  <p class=note>Which frame in a video stream corresponds to a
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> the last frame of the video to have
+   been rendered.</dd>
+
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a></dt>
+
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> the frame of video corresponding to
+   the <a href=#current-playback-position title="current playback position">current playback position</a>.</dd>
+
+   <dt>Otherwise (the <code><a href=#the-video-element>video</a></code> element has a video channel and is <a href=#potentially-playing>potentially
+   playing</a>)</dt>
+
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> the frame of video at the continuously
+   increasing <a href=#current-playback-position title="current playback position">"current" position</a>. When the
+   <a href=#current-playback-position>current playback position</a> changes such that the last frame rendered is no longer the
+   frame corresponding to the <a href=#current-playback-position>current playback position</a> in the video, the new frame
+   must be rendered.</dd>
+
+  </dl><p class=note>Which frame in a video stream corresponds to a
   particular playback position is defined by the video stream's
   format.</p>
 
-  <p>The <code><a href=#the-video-element>video</a></code> element also <a href=#represents>represents</a> any
-  <a href=#text-track-cue title="text track cue">text track cues</a> whose <a href=#text-track-cue-active-flag>text
-  track cue active flag</a> is set and whose <a href=#text-track>text
-  track</a> is in the <a href=#text-track-showing title="text track
-  showing">showing</a> mode.</p>
+  <p>The <code><a href=#the-video-element>video</a></code> element also <a href=#represents>represents</a> any <a href=#text-track-cue title="text track
+  cue">text track cues</a> whose <a href=#text-track-cue-active-flag>text track cue active flag</a> is set and whose
+  <a href=#text-track>text track</a> is in the <a href=#text-track-showing title="text track showing">showing</a> mode, and any
+  audio from the <a href=#media-resource>media resource</a>, at the <a href=#current-playback-position>current playback position</a>.</p>
 
+  <p>Any audio associated with the <a href=#media-resource>media resource</a> must, if played, be played
+  synchronized with the <a href=#current-playback-position>current playback position</a>, at the element's <a href=#effective-media-volume>effective
+  media volume</a>.</p>
+
   <p>In addition to the above, the user agent may provide messages to
   the user (such as "buffering", "no video loaded", "error", or more
   detailed information) by overlaying text or icons on the video or
@@ -28976,7 +28969,12 @@
      <li><p>If a fetching process is in progress for the <a href=#media-element>media
      element</a>, the user agent should stop it.</li>
 
-     <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>
+     <!--(no point doing this, since we always call the resource selection algorithm synchronously
+     at the end of this algorithm, and that switches it to NETWORK_NO_SOURCE and sets the flag)
+     <li><p>Set the <code title="dom-media-networkState">networkState</code> attribute to <code
+     title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>.</p></li>
+     <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+     -->
 
      <li><p><a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's media-resource-specific text tracks</a>.</li>
 
@@ -29039,8 +29037,12 @@
   section">synchronous sections</a> (which are triggered as part of the <a href=#event-loop>event loop</a>
   algorithm). Steps in such sections are marked with ⌛.</p>
 
-  <ol><!-- precondition: networkState == NETWORK_EMPTY at this point --><li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code>.</li>
+  <ol><!-- precondition: networkState == NETWORK_EMPTY or we're coming straight from the algorithm above
+                      (where setting it to empty is commented out) --><li><p>Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+   the <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> value.</li>
 
+   <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
    <li><p>Asynchronously <a href=#await-a-stable-state>await a stable state</a>, allowing the <a href=#concept-task title=concept-task>task</a> that invoked this algorithm to continue. The <a href=#synchronous-section>synchronous
    section</a> consists of all the remaining steps of this algorithm until the algorithm says the
    <a href=#synchronous-section>synchronous section</a> has ended. (Steps in <a href=#synchronous-section title="synchronous
@@ -29063,7 +29065,8 @@
     be the first such <code><a href=#the-source-element>source</a></code> element child in <a href=#tree-order>tree order</a>.</p>
 
     <p>⌛ Otherwise the <a href=#media-element>media element</a> has neither a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute nor a <code><a href=#the-source-element>source</a></code> element child: set the
-    <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, and abort these steps; the
+    <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code><!-- no need to set the <span>show poster
+    flag</span> to true since we set it up there already -->, and abort these steps; the
     <a href=#synchronous-section>synchronous section</a> ends.</p>
 
    </li>
@@ -29110,8 +29113,10 @@
        <li><p><a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's media-resource-specific text 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>
+       to the <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> value.</li>
 
+       <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</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> at the <a href=#media-element>media element</a>, using the <a href=#dom-manipulation-task-source>DOM
@@ -29217,8 +29222,10 @@
      <li><p>⌛ If <var title="">candidate</var> is null, jump back to the <i title="">search
      loop</i> step. Otherwise, jump back to the <i title="">process candidate</i> step.</li>
 
-     <li><p>⌛ <i title="">Waiting</i>: 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>
+     <li><p>⌛ <i title="">Waiting</i>: Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to the <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> value.</li>
 
+     <li><p>⌛ Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
      <li><p>⌛ Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to false. This
      stops <a href=#delay-the-load-event title="delay the load event">delaying the load event</a>.</li>
 
@@ -29585,6 +29592,8 @@
 
        <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load event">delaying the load event</a>.</li>
 
+       <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
        <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
        algorithm</a>.</li>
 
@@ -29616,6 +29625,8 @@
 
        <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load event">delaying the load event</a>.</li>
 
+       <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
        <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
        algorithm</a>.</li>
 
@@ -29898,6 +29909,11 @@
   position</dfn>, which must initially be set to zero seconds. This time is used to allow the
   element to be seeked even before the media is loaded.</p>
 
+  <p>Each <a href=#media-element>media element</a> has a <dfn id=show-poster-flag>show poster flag</dfn>. When a <a href=#media-element>media
+  element</a> is created, this flag must be set to true. This flag is used to control when the
+  user agent is to show a poster frame for a <code><a href=#the-video-element>video</a></code> element instead of showing the video
+  contents.</p>
+
   <p>The <dfn id=dom-media-currenttime title=dom-media-currentTime><code>currentTime</code></dfn> attribute must, on
   getting, return the <a href=#media-element>media element</a>'s <a href=#default-playback-start-position>default playback start position</a>,
   unless that is zero, in which case it must return the element's <a href=#official-playback-position>official playback
@@ -29963,8 +29979,7 @@
   user agent must <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-durationchange><a href=#event-media-durationchange>durationchange</a></code> at the <a href=#media-element>media element</a>. (The
   event is not fired when the duration is reset as part of loading a new media resource.) If the
   duration is changed such that the <a href=#current-playback-position>current playback position</a> ends up being greater
-  than the time of the end of the <a href=#media-resource>media resource</a>, then the user agent must also <a href=#dom-media-seek title=dom-media-seek>seek</a> the to the time of the end of the <a href=#media-resource>media
-  resource</a>.</p>
+  than the time of the end of the <a href=#media-resource>media resource</a>, then the user agent must also <a href=#dom-media-seek title=dom-media-seek>seek</a> to the time of the end of the <a href=#media-resource>media resource</a>.</p>
 
   <p class=example>If an "infinite" stream ends for some reason, then the duration would change
   from positive Infinity to the time of the last frame or sample in the stream, and the <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> event would be fired. Similarly, if the
@@ -30559,6 +30574,10 @@
   rate, so that (except for the period between when the rate is changed and when the server updates
   the stream's playback rate) the client doesn't actually have to drop or interpolate any
   frames.</p>
+ 
+  <p>Any time a <a href=#media-element>media element</a>'s <a href=#current-playback-position>current playback position</a> changes due to
+  the monotonic increase required above, the element's <a href=#show-poster-flag>show poster flag</a> must be set to
+  false.</p>
 
   <p>Any time the user agent <a href=#provide-a-stable-state title="provide a stable state">provides a stable state</a>,
   the <a href=#official-playback-position>official playback position</a> must be set to the <a href=#current-playback-position>current playback
@@ -30808,7 +30827,9 @@
   a <a href=#synchronous-section>synchronous section</a> (which is triggered as part of the <a href=#event-loop>event loop</a>
   algorithm). Steps in that section are marked with ⌛.</p>
 
-  <ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code>
+  <ol><li><p>Set the <a href=#media-element>media element</a>'s <a href=#show-poster-flag>show poster flag</a> to false.</li>
+
+   <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code>
    is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, abort these steps.</li>
 
    <li><p>If the element's <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute is true,

Modified: index
===================================================================
--- index	2012-11-29 01:32:53 UTC (rev 7551)
+++ index	2012-11-30 21:45:19 UTC (rev 7552)
@@ -248,7 +248,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1 class=allcaps>HTML</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 29 November 2012</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 30 November 2012</h2>
    </hgroup><dl><dt><strong>Web developer edition:</strong></dt>
     <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
     <dt>Multiple-page version:</dt>
@@ -27714,12 +27714,10 @@
 
   <div class=impl>
 
-  <p>If the specified resource is to be used, then, when the element
-  is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code>
-  attribute is set, changed, or removed, the user agent must run the
-  following steps to determine the element's <dfn id=poster-frame>poster
-  frame</dfn>:</p> <!-- thus it is unaffected by changes to the base
-  URL. -->
+  <p>If the specified resource is to be used, then, when the element is created or when the <code title=attr-video-poster><a href=#attr-video-poster>poster</a></code> attribute is set, changed, or removed, the user agent must
+  run the following steps to determine the element's <dfn id=poster-frame>poster frame</dfn> (regardless of the
+  value of the element's <a href=#show-poster-flag>show poster flag</a>):</p> <!-- thus it is unaffected by changes
+  to the base URL. -->
 
   <ol><li><p>If there is an existing instance of this algorithm running
    for this <code><a href=#the-video-element>video</a></code> element, abort that instance of this
@@ -27754,59 +27752,54 @@
 
   <div class=impl>
 
-  <hr><p>When no video data is available (the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is either
-  <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> but no video
-  data has yet been obtained at all, or the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is any
-  subsequent value but the <a href=#media-resource>media resource</a> does not have a
-  video channel), the <code><a href=#the-video-element>video</a></code> element
-  <a href=#represents>represents</a> the <a href=#poster-frame>poster frame</a>.</p>
+  <hr><p>A <code><a href=#the-video-element>video</a></code> element represents what is given for the first matching condition in the
+  list below:</p>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a> and the <a href=#current-playback-position title="current
-  playback position">current playback position</a> is the first
-  frame of video, the element <a href=#represents>represents</a> the <a href=#poster-frame>poster
-  frame</a>, unless a frame of video has already been shown, in
-  which case the element <a href=#represents>represents</a> the frame of video
-  corresponding to the <a href=#current-playback-position title="current playback position">current
-  playback position</a>.</p>
+  <dl class=switch><dt>When no video data is available (the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is either <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, or <code title=dom-media-HAVE_METADATA><a href=#dom-media-have_metadata>HAVE_METADATA</a></code> but no video data has yet been obtained at
+   all, or the element's <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> attribute is any
+   subsequent value but the <a href=#media-resource>media resource</a> does not have a video channel)</dt>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a> at any other position, and
-  the <a href=#media-resource>media resource</a> has a video channel, the element
-  <a href=#represents>represents</a> the frame of video corresponding to the
-  <a href=#current-playback-position title="current playback position">current playback
-  position</a>, or, if that is not yet available (e.g. because the
-  video is seeking or buffering), the last frame of the video to have
-  been rendered.</p>
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a>, the <a href=#current-playback-position title="current playback position">current playback position</a> is the first frame of video,
+   and the element's <a href=#show-poster-flag>show poster flag</a> is set</dt>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element whose <a href=#media-resource>media
-  resource</a> has a video channel is <a href=#potentially-playing>potentially
-  playing</a>, it <a href=#represents>represents</a> the frame of video at the
-  continuously increasing <a href=#current-playback-position title="current playback
-  position">"current" position</a>. When the <a href=#current-playback-position>current playback
-  position</a> changes such that the last frame rendered is no
-  longer the frame corresponding to the <a href=#current-playback-position>current playback
-  position</a> in the video, the new frame must be rendered.
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> its <a href=#poster-frame>poster frame</a>.</dd>
 
-  Similarly, any audio associated with the <a href=#media-resource>media resource</a>
-  must, if played, be played synchronized with the <a href=#current-playback-position>current
-  playback position</a>, at the element's <a href=#effective-media-volume>effective media
-  volume</a>.</p>
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a>, and the
+   frame of video corresponding to the <a href=#current-playback-position title="current playback position">current playback
+   position</a> is not available (e.g. because the video is seeking or buffering)</dt>
 
-  <p>When a <code><a href=#the-video-element>video</a></code> element whose <a href=#media-resource>media
-  resource</a> has a video channel is neither <a href=#potentially-playing>potentially
-  playing</a> nor <a href=#dom-media-paused title=dom-media-paused>paused</a>
-  (e.g. when seeking or stalled), the element <a href=#represents>represents</a>
-  the last frame of the video to have been rendered.</p>
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is neither <a href=#potentially-playing>potentially playing</a> nor <a href=#dom-media-paused title=dom-media-paused>paused</a> (e.g. when seeking or stalled)</dt>
 
-  <p class=note>Which frame in a video stream corresponds to a
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> the last frame of the video to have
+   been rendered.</dd>
+
+   <dt>When the <code><a href=#the-video-element>video</a></code> element is <a href=#dom-media-paused title=dom-media-paused>paused</a></dt>
+
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> the frame of video corresponding to
+   the <a href=#current-playback-position title="current playback position">current playback position</a>.</dd>
+
+   <dt>Otherwise (the <code><a href=#the-video-element>video</a></code> element has a video channel and is <a href=#potentially-playing>potentially
+   playing</a>)</dt>
+
+   <dd>The <code><a href=#the-video-element>video</a></code> element <a href=#represents>represents</a> the frame of video at the continuously
+   increasing <a href=#current-playback-position title="current playback position">"current" position</a>. When the
+   <a href=#current-playback-position>current playback position</a> changes such that the last frame rendered is no longer the
+   frame corresponding to the <a href=#current-playback-position>current playback position</a> in the video, the new frame
+   must be rendered.</dd>
+
+  </dl><p class=note>Which frame in a video stream corresponds to a
   particular playback position is defined by the video stream's
   format.</p>
 
-  <p>The <code><a href=#the-video-element>video</a></code> element also <a href=#represents>represents</a> any
-  <a href=#text-track-cue title="text track cue">text track cues</a> whose <a href=#text-track-cue-active-flag>text
-  track cue active flag</a> is set and whose <a href=#text-track>text
-  track</a> is in the <a href=#text-track-showing title="text track
-  showing">showing</a> mode.</p>
+  <p>The <code><a href=#the-video-element>video</a></code> element also <a href=#represents>represents</a> any <a href=#text-track-cue title="text track
+  cue">text track cues</a> whose <a href=#text-track-cue-active-flag>text track cue active flag</a> is set and whose
+  <a href=#text-track>text track</a> is in the <a href=#text-track-showing title="text track showing">showing</a> mode, and any
+  audio from the <a href=#media-resource>media resource</a>, at the <a href=#current-playback-position>current playback position</a>.</p>
 
+  <p>Any audio associated with the <a href=#media-resource>media resource</a> must, if played, be played
+  synchronized with the <a href=#current-playback-position>current playback position</a>, at the element's <a href=#effective-media-volume>effective
+  media volume</a>.</p>
+
   <p>In addition to the above, the user agent may provide messages to
   the user (such as "buffering", "no video loaded", "error", or more
   detailed information) by overlaying text or icons on the video or
@@ -28976,7 +28969,12 @@
      <li><p>If a fetching process is in progress for the <a href=#media-element>media
      element</a>, the user agent should stop it.</li>
 
-     <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>
+     <!--(no point doing this, since we always call the resource selection algorithm synchronously
+     at the end of this algorithm, and that switches it to NETWORK_NO_SOURCE and sets the flag)
+     <li><p>Set the <code title="dom-media-networkState">networkState</code> attribute to <code
+     title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>.</p></li>
+     <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+     -->
 
      <li><p><a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's media-resource-specific text tracks</a>.</li>
 
@@ -29039,8 +29037,12 @@
   section">synchronous sections</a> (which are triggered as part of the <a href=#event-loop>event loop</a>
   algorithm). Steps in such sections are marked with ⌛.</p>
 
-  <ol><!-- precondition: networkState == NETWORK_EMPTY at this point --><li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code>.</li>
+  <ol><!-- precondition: networkState == NETWORK_EMPTY or we're coming straight from the algorithm above
+                      (where setting it to empty is commented out) --><li><p>Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to
+   the <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> value.</li>
 
+   <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
    <li><p>Asynchronously <a href=#await-a-stable-state>await a stable state</a>, allowing the <a href=#concept-task title=concept-task>task</a> that invoked this algorithm to continue. The <a href=#synchronous-section>synchronous
    section</a> consists of all the remaining steps of this algorithm until the algorithm says the
    <a href=#synchronous-section>synchronous section</a> has ended. (Steps in <a href=#synchronous-section title="synchronous
@@ -29063,7 +29065,8 @@
     be the first such <code><a href=#the-source-element>source</a></code> element child in <a href=#tree-order>tree order</a>.</p>
 
     <p>⌛ Otherwise the <a href=#media-element>media element</a> has neither a <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute nor a <code><a href=#the-source-element>source</a></code> element child: set the
-    <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, and abort these steps; the
+    <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code><!-- no need to set the <span>show poster
+    flag</span> to true since we set it up there already -->, and abort these steps; the
     <a href=#synchronous-section>synchronous section</a> ends.</p>
 
    </li>
@@ -29110,8 +29113,10 @@
        <li><p><a href="#forget-the-media-element's-media-resource-specific-text-tracks">Forget the media element's media-resource-specific text 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>
+       to the <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> value.</li>
 
+       <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</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> at the <a href=#media-element>media element</a>, using the <a href=#dom-manipulation-task-source>DOM
@@ -29217,8 +29222,10 @@
      <li><p>⌛ If <var title="">candidate</var> is null, jump back to the <i title="">search
      loop</i> step. Otherwise, jump back to the <i title="">process candidate</i> step.</li>
 
-     <li><p>⌛ <i title="">Waiting</i>: 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>
+     <li><p>⌛ <i title="">Waiting</i>: Set the element's <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute to the <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> value.</li>
 
+     <li><p>⌛ Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
      <li><p>⌛ Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to false. This
      stops <a href=#delay-the-load-event title="delay the load event">delaying the load event</a>.</li>
 
@@ -29585,6 +29592,8 @@
 
        <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load event">delaying the load event</a>.</li>
 
+       <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
        <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
        algorithm</a>.</li>
 
@@ -29616,6 +29625,8 @@
 
        <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to false. This stops <a href=#delay-the-load-event title="delay the load event">delaying the load event</a>.</li>
 
+       <li><p>Set the element's <a href=#show-poster-flag>show poster flag</a> to true.</li>
+
        <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection
        algorithm</a>.</li>
 
@@ -29898,6 +29909,11 @@
   position</dfn>, which must initially be set to zero seconds. This time is used to allow the
   element to be seeked even before the media is loaded.</p>
 
+  <p>Each <a href=#media-element>media element</a> has a <dfn id=show-poster-flag>show poster flag</dfn>. When a <a href=#media-element>media
+  element</a> is created, this flag must be set to true. This flag is used to control when the
+  user agent is to show a poster frame for a <code><a href=#the-video-element>video</a></code> element instead of showing the video
+  contents.</p>
+
   <p>The <dfn id=dom-media-currenttime title=dom-media-currentTime><code>currentTime</code></dfn> attribute must, on
   getting, return the <a href=#media-element>media element</a>'s <a href=#default-playback-start-position>default playback start position</a>,
   unless that is zero, in which case it must return the element's <a href=#official-playback-position>official playback
@@ -29963,8 +29979,7 @@
   user agent must <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-durationchange><a href=#event-media-durationchange>durationchange</a></code> at the <a href=#media-element>media element</a>. (The
   event is not fired when the duration is reset as part of loading a new media resource.) If the
   duration is changed such that the <a href=#current-playback-position>current playback position</a> ends up being greater
-  than the time of the end of the <a href=#media-resource>media resource</a>, then the user agent must also <a href=#dom-media-seek title=dom-media-seek>seek</a> the to the time of the end of the <a href=#media-resource>media
-  resource</a>.</p>
+  than the time of the end of the <a href=#media-resource>media resource</a>, then the user agent must also <a href=#dom-media-seek title=dom-media-seek>seek</a> to the time of the end of the <a href=#media-resource>media resource</a>.</p>
 
   <p class=example>If an "infinite" stream ends for some reason, then the duration would change
   from positive Infinity to the time of the last frame or sample in the stream, and the <code title=event-media-durationchange><a href=#event-media-durationchange>durationchange</a></code> event would be fired. Similarly, if the
@@ -30559,6 +30574,10 @@
   rate, so that (except for the period between when the rate is changed and when the server updates
   the stream's playback rate) the client doesn't actually have to drop or interpolate any
   frames.</p>
+ 
+  <p>Any time a <a href=#media-element>media element</a>'s <a href=#current-playback-position>current playback position</a> changes due to
+  the monotonic increase required above, the element's <a href=#show-poster-flag>show poster flag</a> must be set to
+  false.</p>
 
   <p>Any time the user agent <a href=#provide-a-stable-state title="provide a stable state">provides a stable state</a>,
   the <a href=#official-playback-position>official playback position</a> must be set to the <a href=#current-playback-position>current playback
@@ -30808,7 +30827,9 @@
   a <a href=#synchronous-section>synchronous section</a> (which is triggered as part of the <a href=#event-loop>event loop</a>
   algorithm). Steps in that section are marked with ⌛.</p>
 
-  <ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code>
+  <ol><li><p>Set the <a href=#media-element>media element</a>'s <a href=#show-poster-flag>show poster flag</a> to false.</li>
+
+   <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code>
    is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, abort these steps.</li>
 
    <li><p>If the element's <code title=dom-media-seeking><a href=#dom-media-seeking>seeking</a></code> IDL attribute is true,

Modified: source
===================================================================
--- source	2012-11-29 01:32:53 UTC (rev 7551)
+++ source	2012-11-30 21:45:19 UTC (rev 7552)
@@ -29708,12 +29708,11 @@
 
   <div class="impl">
 
-  <p>If the specified resource is to be used, then, when the element
-  is created or when the <code title="attr-video-poster">poster</code>
-  attribute is set, changed, or removed, the user agent must run the
-  following steps to determine the element's <dfn>poster
-  frame</dfn>:</p> <!-- thus it is unaffected by changes to the base
-  URL. -->
+  <p>If the specified resource is to be used, then, when the element is created or when the <code
+  title="attr-video-poster">poster</code> attribute is set, changed, or removed, the user agent must
+  run the following steps to determine the element's <dfn>poster frame</dfn> (regardless of the
+  value of the element's <span>show poster flag</span>):</p> <!-- thus it is unaffected by changes
+  to the base URL. -->
 
   <ol>
 
@@ -29756,64 +29755,63 @@
 
   <hr>
 
-  <p>When no video data is available (the element's <code
-  title="dom-media-readyState">readyState</code> attribute is either
-  <code title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, or <code
-  title="dom-media-HAVE_METADATA">HAVE_METADATA</code> but no video
-  data has yet been obtained at all, or the element's <code
-  title="dom-media-readyState">readyState</code> attribute is any
-  subsequent value but the <span>media resource</span> does not have a
-  video channel), the <code>video</code> element
-  <span>represents</span> the <span>poster frame</span>.</p>
+  <p>A <code>video</code> element represents what is given for the first matching condition in the
+  list below:</p>
 
-  <p>When a <code>video</code> element is <span
-  title="dom-media-paused">paused</span> and the <span title="current
-  playback position">current playback position</span> is the first
-  frame of video, the element <span>represents</span> the <span>poster
-  frame</span>, unless a frame of video has already been shown, in
-  which case the element <span>represents</span> the frame of video
-  corresponding to the <span title="current playback position">current
-  playback position</span>.</p>
+  <dl class="switch">
 
-  <p>When a <code>video</code> element is <span
-  title="dom-media-paused">paused</span> at any other position, and
-  the <span>media resource</span> has a video channel, the element
-  <span>represents</span> the frame of video corresponding to the
-  <span title="current playback position">current playback
-  position</span>, or, if that is not yet available (e.g. because the
-  video is seeking or buffering), the last frame of the video to have
-  been rendered.</p>
+   <dt>When no video data is available (the element's <code
+   title="dom-media-readyState">readyState</code> attribute is either <code
+   title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, or <code
+   title="dom-media-HAVE_METADATA">HAVE_METADATA</code> but no video data has yet been obtained at
+   all, or the element's <code title="dom-media-readyState">readyState</code> attribute is any
+   subsequent value but the <span>media resource</span> does not have a video channel)</dt>
 
-  <p>When a <code>video</code> element whose <span>media
-  resource</span> has a video channel is <span>potentially
-  playing</span>, it <span>represents</span> the frame of video at the
-  continuously increasing <span title="current playback
-  position">"current" position</span>. When the <span>current playback
-  position</span> changes such that the last frame rendered is no
-  longer the frame corresponding to the <span>current playback
-  position</span> in the video, the new frame must be rendered.
+   <dt>When the <code>video</code> element is <span title="dom-media-paused">paused</span>, the <span
+   title="current playback position">current playback position</span> is the first frame of video,
+   and the element's <span>show poster flag</span> is set</dt>
 
-  Similarly, any audio associated with the <span>media resource</span>
-  must, if played, be played synchronized with the <span>current
-  playback position</span>, at the element's <span>effective media
-  volume</span>.</p>
+   <dd>The <code>video</code> element <span>represents</span> its <span>poster frame</span>.</dd>
 
-  <p>When a <code>video</code> element whose <span>media
-  resource</span> has a video channel is neither <span>potentially
-  playing</span> nor <span title="dom-media-paused">paused</span>
-  (e.g. when seeking or stalled), the element <span>represents</span>
-  the last frame of the video to have been rendered.</p>
+   <dt>When the <code>video</code> element is <span title="dom-media-paused">paused</span>, and the
+   frame of video corresponding to the <span title="current playback position">current playback
+   position</span> is not available (e.g. because the video is seeking or buffering)</dt>
 
+   <dt>When the <code>video</code> element is neither <span>potentially playing</span> nor <span
+   title="dom-media-paused">paused</span> (e.g. when seeking or stalled)</dt>
+
+   <dd>The <code>video</code> element <span>represents</span> the last frame of the video to have
+   been rendered.</dd>
+
+   <dt>When the <code>video</code> element is <span title="dom-media-paused">paused</span></dt>
+
+   <dd>The <code>video</code> element <span>represents</span> the frame of video corresponding to
+   the <span title="current playback position">current playback position</span>.</dd>
+
+   <dt>Otherwise (the <code>video</code> element has a video channel and is <span>potentially
+   playing</span>)</dt>
+
+   <dd>The <code>video</code> element <span>represents</span> the frame of video at the continuously
+   increasing <span title="current playback position">"current" position</span>. When the
+   <span>current playback position</span> changes such that the last frame rendered is no longer the
+   frame corresponding to the <span>current playback position</span> in the video, the new frame
+   must be rendered.</dd>
+
+  </dl>
+
   <p class="note">Which frame in a video stream corresponds to a
   particular playback position is defined by the video stream's
   format.</p>
 
-  <p>The <code>video</code> element also <span>represents</span> any
-  <span title="text track cue">text track cues</span> whose <span>text
-  track cue active flag</span> is set and whose <span>text
-  track</span> is in the <span title="text track
-  showing">showing</span> mode.</p>
+  <p>The <code>video</code> element also <span>represents</span> any <span title="text track
+  cue">text track cues</span> whose <span>text track cue active flag</span> is set and whose
+  <span>text track</span> is in the <span title="text track showing">showing</span> mode, and any
+  audio from the <span>media resource</span>, at the <span>current playback position</span>.</p>
 
+  <p>Any audio associated with the <span>media resource</span> must, if played, be played
+  synchronized with the <span>current playback position</span>, at the element's <span>effective
+  media volume</span>.</p>
+
   <p>In addition to the above, the user agent may provide messages to
   the user (such as "buffering", "no video loaded", "error", or more
   detailed information) by overlaying text or icons on the video or
@@ -31149,8 +31147,12 @@
      <li><p>If a fetching process is in progress for the <span>media
      element</span>, the user agent should stop it.</p></li>
 
+     <!--(no point doing this, since we always call the resource selection algorithm synchronously
+     at the end of this algorithm, and that switches it to NETWORK_NO_SOURCE and sets the flag)
      <li><p>Set the <code title="dom-media-networkState">networkState</code> attribute to <code
      title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>.</p></li>
+     <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+     -->
 
      <li><p><span>Forget the media element's media-resource-specific text tracks</span>.</p></li>
 
@@ -31224,11 +31226,14 @@
 
   <ol>
 
-   <!-- precondition: networkState == NETWORK_EMPTY at this point -->
+   <!-- precondition: networkState == NETWORK_EMPTY or we're coming straight from the algorithm above
+                      (where setting it to empty is commented out) -->
 
-   <li><p>Set the <code title="dom-media-networkState">networkState</code> to <code
-   title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</code>.</p></li>
+   <li><p>Set the element's <code title="dom-media-networkState">networkState</code> attribute to
+   the <code title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</code> value.</p></li>
 
+   <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+
    <li><p>Asynchronously <span>await a stable state</span>, allowing the <span
    title="concept-task">task</span> that invoked this algorithm to continue. The <span>synchronous
    section</span> consists of all the remaining steps of this algorithm until the algorithm says the
@@ -31255,7 +31260,8 @@
     <p>&#x231B; Otherwise the <span>media element</span> has neither a <code
     title="attr-media-src">src</code> attribute nor a <code>source</code> element child: set the
     <code title="dom-media-networkState">networkState</code> to <code
-    title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>, and abort these steps; the
+    title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code><!-- no need to set the <span>show poster
+    flag</span> to true since we set it up there already -->, and abort these steps; the
     <span>synchronous section</span> ends.</p>
 
    </li>
@@ -31312,8 +31318,10 @@
        <li><p><span>Forget the media element's media-resource-specific text tracks</span>.</p></li>
 
        <li><p>Set the element's <code title="dom-media-networkState">networkState</code> attribute
-       to the <span title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</span> value.</p></li>
+       to the <code title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</code> value.</p></li>
 
+       <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+
       </ol>
 
      </li>
@@ -31448,9 +31456,11 @@
      loop</i> step. Otherwise, jump back to the <i title="">process candidate</i> step.</p></li>
 
      <li><p>&#x231B; <i title="">Waiting</i>: Set the element's <code
-     title="dom-media-networkState">networkState</code> attribute to the <span
-     title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</span> value.</p></li>
+     title="dom-media-networkState">networkState</code> attribute to the <code
+     title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</code> value.</p></li>
 
+     <li><p>&#x231B; Set the element's <span>show poster flag</span> to true.</p></li>
+
      <li><p>&#x231B; Set the element's <span>delaying-the-load-event flag</span> to false. This
      stops <span title="delay the load event">delaying the load event</span>.</p></li>
 
@@ -31896,6 +31906,8 @@
        <li><p>Set the element's <span>delaying-the-load-event flag</span> to false. This stops <span
        title="delay the load event">delaying the load event</span>.</p></li>
 
+       <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+
        <li><p>Abort the overall <span title="concept-media-load-algorithm">resource selection
        algorithm</span>.</p></li>
 
@@ -31936,6 +31948,8 @@
        <li><p>Set the element's <span>delaying-the-load-event flag</span> to false. This stops <span
        title="delay the load event">delaying the load event</span>.</p></li>
 
+       <li><p>Set the element's <span>show poster flag</span> to true.</p></li>
+
        <li><p>Abort the overall <span title="concept-media-load-algorithm">resource selection
        algorithm</span>.</p></li>
 
@@ -32257,6 +32271,11 @@
   position</dfn>, which must initially be set to zero seconds. This time is used to allow the
   element to be seeked even before the media is loaded.</p>
 
+  <p>Each <span>media element</span> has a <dfn>show poster flag</dfn>. When a <span>media
+  element</span> is created, this flag must be set to true. This flag is used to control when the
+  user agent is to show a poster frame for a <code>video</code> element instead of showing the video
+  contents.</p>
+
   <p>The <dfn title="dom-media-currentTime"><code>currentTime</code></dfn> attribute must, on
   getting, return the <span>media element</span>'s <span>default playback start position</span>,
   unless that is zero, in which case it must return the element's <span>official playback
@@ -32338,8 +32357,7 @@
   event is not fired when the duration is reset as part of loading a new media resource.) If the
   duration is changed such that the <span>current playback position</span> ends up being greater
   than the time of the end of the <span>media resource</span>, then the user agent must also <span
-  title="dom-media-seek">seek</span> the to the time of the end of the <span>media
-  resource</span>.</p>
+  title="dom-media-seek">seek</span> to the time of the end of the <span>media resource</span>.</p>
 
   <p class="example">If an "infinite" stream ends for some reason, then the duration would change
   from positive Infinity to the time of the last frame or sample in the stream, and the <code
@@ -33081,6 +33099,10 @@
   rate, so that (except for the period between when the rate is changed and when the server updates
   the stream's playback rate) the client doesn't actually have to drop or interpolate any
   frames.</p>
+ 
+  <p>Any time a <span>media element</span>'s <span>current playback position</span> changes due to
+  the monotonic increase required above, the element's <span>show poster flag</span> must be set to
+  false.</p>
 
   <p>Any time the user agent <span title="provide a stable state">provides a stable state</span>,
   the <span>official playback position</span> must be set to the <span>current playback
@@ -33371,6 +33393,8 @@
 
   <ol>
 
+   <li><p>Set the <span>media element</span>'s <span>show poster flag</span> to false.</p></li>
+
    <li><p>If the <span>media element</span>'s <code title="dom-media-readyState">readyState</code>
    is <code title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, abort these steps.</p></li>
 




More information about the Commit-Watchers mailing list