- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 26 Feb 2009 09:15:47 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec In directory hutz:/tmp/cvs-serv1537 Modified Files: Overview.html Log Message: video: Use better terminology; make all invokations of the resource selection algorithm async; fix the problem whereby you could get that algorithm running twice on one element; add a missing loop step. (credit: cp) (whatwg r2873) Index: Overview.html =================================================================== RCS file: /sources/public/html5/spec/Overview.html,v retrieving revision 1.2045 retrieving revision 1.2046 diff -u -d -r1.2045 -r1.2046 --- Overview.html 26 Feb 2009 08:50:23 -0000 1.2045 +++ Overview.html 26 Feb 2009 09:15:44 -0000 1.2046 @@ -14619,8 +14619,9 @@ these must return a new <code><a href=#htmlaudioelement>HTMLAudioElement</a></code> object (a new <code><a href=#audio>audio</a></code> element). If the <var title="">src</var> argument is present, the object created must have its <code title=dom-media-src><a href=#dom-media-src>src</a></code> content attribute set to the - provided value, and the user agent must invoke the object's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a> before - returning.<h5 id=audio-codecs-for-audio-elements><span class=secno>4.8.8.1 </span>Audio codecs for <code><a href=#audio>audio</a></code> elements</h5><p>User agents may support any audio codecs and container + provided value, and the user agent must asynchronously invoke the + object's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource + selection algorithm</a> before returning.<h5 id=audio-codecs-for-audio-elements><span class=secno>4.8.8.1 </span>Audio codecs for <code><a href=#audio>audio</a></code> elements</h5><p>User agents may support any audio codecs and container formats.<p>User agents must support the WAVE container format with audio encoded using the PCM format. <!-- XXX references? #refs --> </p><!-- XXX mention that this spec doesn't require native support or plugin support, either is fine --><h4 id=the-source-element><span class=secno>4.8.9 </span>The <dfn><code>source</code></dfn> element</h4><dl class=element><dt>Categories</dt> @@ -14851,11 +14852,10 @@ and its subsections is the <dfn id=media-element-event-task-source>media element event task source</dfn>.<h5 id=error-codes><span class=secno>4.8.10.1 </span>Error codes</h5><p>All <a href=#media-element title="media element">media elements</a> have an associated error status, which records the last error the element - encountered since its <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a> was last - invoked. The <dfn id=dom-media-error title=dom-media-error><code>error</code></dfn> - attribute, on getting, must return the <code><a href=#mediaerror>MediaError</a></code> - object created for this last error, or null if there has not been an - error.<pre class=idl>interface <dfn id=mediaerror>MediaError</dfn> { + encountered since its <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection + algorithm</a> was last invoked. The <dfn id=dom-media-error title=dom-media-error><code>error</code></dfn> attribute, on + getting, must return the <code><a href=#mediaerror>MediaError</a></code> object created for + this last error, or null if there has not been an error.<pre class=idl>interface <dfn id=mediaerror>MediaError</dfn> { const unsigned short <a href=#dom-mediaerror-media_err_aborted title=dom-MediaError-MEDIA_ERR_ABORTED>MEDIA_ERR_ABORTED</a> = 1; const unsigned short <a href=#dom-mediaerror-media_err_network title=dom-MediaError-MEDIA_ERR_NETWORK>MEDIA_ERR_NETWORK</a> = 2; const unsigned short <a href=#dom-mediaerror-media_err_decode title=dom-MediaError-MEDIA_ERR_DECODE>MEDIA_ERR_DECODE</a> = 3; @@ -14892,8 +14892,8 @@ <a href=#reflect>reflect</a> the respective content attribute of the same name.<p>The <dfn id=dom-media-currentsrc title=dom-media-currentSrc><code>currentSrc</code></dfn> DOM attribute is initially the empty string. Its value is changed by the - <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a> - defined below.<p class=note>There are two ways to specify a <a href=#media-resource>media + <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection + algorithm</a> defined below.<p class=note>There are two ways to specify a <a href=#media-resource>media resource</a>, the <code title=attr-media-src><a href=#attr-media-src>src</a></code> attribute, or <code><a href=#the-source-element>source</a></code> elements. The attribute overrides the elements.<h5 id=media-types><span class=secno>4.8.10.3 </span>Media types</h5><p>A <a href=#media-resource>media resource</a> can be described in terms of its @@ -14961,7 +14961,7 @@ <dt><dfn id=dom-media-network_idle title=dom-media-NETWORK_IDLE><code>NETWORK_IDLE</code></dfn> (numeric value 1)</dt> - <dd>The element's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + <dd>The element's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a> is active and has selected a resource, but it is not actually using the network at this time.</dd> @@ -14977,11 +14977,11 @@ <dt><dfn id=dom-media-network_no_source title=dom-media-NETWORK_NO_SOURCE><code>NETWORK_NO_SOURCE</code></dfn> (numeric value 4)</dt> - <dd>The element's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + <dd>The element's <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a> is active, but it has failed to find a resource to use.</dd> - </dl><p>The <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + </dl><p>The <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a> defined below describes exactly when the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute changes value and what events fire to indicate changes in this state.<p class=note>Some resources, e.g. streaming Web radio, can never reach the <code title=dom-media-NETWORK_LOADED><a href=#dom-media-network_loaded>NETWORK_LOADED</a></code> state.<h5 id=loading-the-media-resource><span class=secno>4.8.10.5 </span>Loading the media resource</h5><p>All <a href=#media-element title="media element">media elements</a> have an @@ -14996,8 +14996,8 @@ this element is already being invoked, then abort these steps.</li> - <li><p>Abort any already-running instance of the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a> for this - element.</li> + <li><p>Abort any already-running instance of the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection + algorithm</a> for this element.</li> <li> @@ -15066,7 +15066,8 @@ </ol></li> - <li><p>Asynchronously invoke the <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a>.</li> + <li><p>Asynchronously invoke the <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection + algorithm</a>.</li> <li> @@ -15075,12 +15076,21 @@ </li> - </ol><p>The <dfn id=concept-media-load-algorithm title=concept-media-load-algorithm>load + </ol><p>The <dfn id=concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</dfn> for a <a href=#media-element>media element</a> is as follows. This algorithm is always invoked asynchronously, meaning that it runs in - the background with scripts and other <a href=#concept-task title=concept-task>tasks</a> running in parallel.<ol><li><p>While 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 any - <code><a href=#the-source-element>source</a></code> element children, wait. (This steps might wait - forever.)</li> + the background with scripts and other <a href=#concept-task title=concept-task>tasks</a> running in parallel.<ol><li> + + <p>If 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 any + <code><a href=#the-source-element>source</a></code> element children, run these substeps:</p> + + <ol><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> + + <li><p>While 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 any + <code><a href=#the-source-element>source</a></code> element children, wait. (This steps might + wait forever.)</li> + + </ol></li> <li><p>Set the element's <a href=#delaying-the-load-event-flag>delaying-the-load-event flag</a> to true. This <a href=#delay-the-load-event title="delay the load event">delays the load @@ -15101,7 +15111,7 @@ <a href=#url>URL</a> given in that attribute, relative to the <a href=#media-element>media element</a>.</p> - <li><p>If that is successful, then run the <a href=#concept-media-load-resource title=concept-media-load-resource>resource-load + <li><p>If that is successful, then run the <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch algorithm</a> with the resulting <a href=#absolute-url>absolute URL</a>. If that algorithm returns without aborting <em>this</em> one, then the load failed.</li> @@ -15226,7 +15236,7 @@ in case it was set to <code title=dom-media-NETWORK_NO_SOURCE><a href=#dom-media-network_no_source>NETWORK_NO_SOURCE</a></code> above.</li> - <li><p>Run the <a href=#concept-media-load-resource title=concept-media-load-resource>resource-load + <li><p>Run the <a href=#concept-media-load-resource title=concept-media-load-resource>resource fetch algorithm</a> with the <a href=#absolute-url>absolute URL</a> that resulted from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a> given by the <var title="">candidate</var> @@ -15261,9 +15271,11 @@ event">delays the load event</a> again, in case it hasn't gone been fired yet.</li> + <li><p>Jump back to the step labeled <i>search loop</i>.</li> + </ol></li> - </ol><p>The <dfn id=concept-media-load-resource title=concept-media-load-resource>resource-load + </ol><p>The <dfn id=concept-media-load-resource title=concept-media-load-resource>resource fetch algorithm</dfn> for a <a href=#media-element>media element</a> and a given <a href=#absolute-url>absolute URL</a> is as follows:<ol><li><p>Let the <var title="">current media resource</var> be the resource given by the <a href=#absolute-url>absolute URL</a> passed to this @@ -15346,7 +15358,8 @@ <ol><li><p>The user agent should cancel the fetching process.</li> - <li><p>Abort this subalgorithm, returning to the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a>.</p> + <li><p>Abort this subalgorithm, returning to the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection + algorithm</a>.</p> </ol></dd> @@ -15448,7 +15461,7 @@ 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>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.</li> </ol></dd> @@ -15483,7 +15496,7 @@ 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>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.</li> </ol></dd> @@ -15525,7 +15538,7 @@ 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>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + <li><p>Abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.</li> </ol></dd> @@ -15561,13 +15574,14 @@ called <code title=event-load><a href=#event-load>load</a></code> at the element.</li> - <li><p>Then, abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + <li><p>Then, abort the overall <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.</li> </ol><p>If a <a href=#media-element>media element</a> whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> has the value <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> is <a href=#insert-an-element-into-a-document title="insert an element into a document">inserted into a document</a>, the user agent must asynchronously invoke the - <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a>.<p>The <dfn id=attr-media-autobuffer title=attr-media-autobuffer><code>autobuffer</code></dfn> + <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection + algorithm</a>.<p>The <dfn id=attr-media-autobuffer title=attr-media-autobuffer><code>autobuffer</code></dfn> attribute is a <a href=#boolean-attribute>boolean attribute</a>. Its presence hints to the user agent that the author believes that the <a href=#media-element>media element</a> will likely be used, even though the element does not @@ -15925,7 +15939,8 @@ method on a <a href=#media-element>media element</a> is invoked, the user agent must run the following steps.<ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute has the value <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, then the user - agent must invoke the <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + agent must asynchronously invoke the <a href=#media-element>media element</a>'s + <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.</li> <li> @@ -15979,7 +15994,8 @@ </ol><hr><p>When the <dfn id=dom-media-pause title=dom-media-pause><code>pause()</code></dfn> method is invoked, the user agent must run the following steps:<ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute has the value <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>, then the user - agent must invoke the <a href=#media-element>media element</a>'s <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load + agent must asynchronously invoke the <a href=#media-element>media element</a>'s + <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>.</li> <li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code> attribute is false, it must @@ -16268,7 +16284,7 @@ <tbody><tr><td><dfn id=event-loadstart title=event-loadstart><code>loadstart</code></dfn> <td><code>ProgressEvent</code> <a href=#references>[PROGRESS]</a> - <td>The user agent begins looking for <a href=#media-data>media data</a>, as part of the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a>. + <td>The user agent begins looking for <a href=#media-data>media data</a>, as part of the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a>. <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code> <tr><td><dfn id=event-progress title=event-progress><code>progress</code></dfn> <td><code>ProgressEvent</code> <a href=#references>[PROGRESS]</a> @@ -16294,7 +16310,7 @@ <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> equals either <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> or <code title=dom-media-NETWORK_LOADED><a href=#dom-media-network_loaded>NETWORK_LOADED</a></code>, depending on when the download was aborted. <tr><td><dfn id=event-emptied title=event-emptied><code>emptied</code></dfn> <td><code>Event</code> - <td>A <a href=#media-element>media element</a> whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> was previously not in the <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> state has just switched to that state (either because of a fatal error during load that's about to be reported, or because the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method was invoked while the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>load algorithm</a> was already running, in which case it is fired synchronously during the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method call). + <td>A <a href=#media-element>media element</a> whose <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> was previously not in the <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code> state has just switched to that state (either because of a fatal error during load that's about to be reported, or because the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method was invoked while the <a href=#concept-media-load-algorithm title=concept-media-load-algorithm>resource selection algorithm</a> was already running, in which case it is fired synchronously during the <code title=dom-media-load><a href=#dom-media-load>load()</a></code> method call). <td><code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> is <code title=dom-media-NETWORK_EMPTY><a href=#dom-media-network_empty>NETWORK_EMPTY</a></code>; all the DOM attributes are in their initial states. <tr><td><dfn id=event-stalled title=event-stalled><code>stalled</code></dfn> <td><code>ProgressEvent</code> @@ -49063,23 +49079,23 @@ Lawson, Bruce Miller, Cameron McCormack, Cao Yipeng, Carlos Perelló Marín, Chao Cai, 윤석찬 (Channy Yun), Charl van Niekerk, Charles Iliya Krempeaux, Charles - McCathieNevile, Christian Biesinger, Christian Johansen, Christian - Schmidt, Chriswa, Cole Robison, Colin Fine, Collin Jackson, Daniel - Barclay, Daniel Brumbaugh Keeney, Daniel Glazman, Daniel Peng, - Daniel Spång, Daniel Steinberg, Danny Sullivan, Darin Adler, - Darin Fisher, Dave Camp, Dave Singer, Dave Townsend<!-- Mossop on - moz irc -->, David Baron, David Bloom, David Carlisle, David - Flanagan, David Håsäther, David Hyatt, David Smith, David - Woolley, Dean Edridge, Debi Orton, Derek Featherstone, DeWitt - Clinton, Dimitri Glazkov, dolphinling, Doron Rosenberg, Doug Kramer, - Edward O'Connor, Edward Z. Yang, Eira Monstad, Elliotte Harold, Eric - Carlson, Eric Law, Erik Arvidsson, Evan Martin, Evan Prodromou, - fantasai, Felix Sasaki, Franck 'Shift' Quélain, Garrett - Smith, Geoffrey Garen, Geoffrey Sneddon, George Lund, Håkon - Wium Lie, Hans S. Tømmerhalt, Henri Sivonen, Henrik Lied, - Henry Mason, Hugh Winkler, Ignacio Javier, Ivo Emanuel - Gonçalves, J. King, Jacques Distler, James Craig, James - Graham, James Justin Harrell, James M Snell, James Perrett, + McCathieNevile, Chris Pearce, Christian Biesinger, Christian + Johansen, Christian Schmidt, Chriswa, Cole Robison, Colin Fine, + Collin Jackson, Daniel Barclay, Daniel Brumbaugh Keeney, Daniel + Glazman, Daniel Peng, Daniel Spång, Daniel Steinberg, Danny + Sullivan, Darin Adler, Darin Fisher, Dave Camp, Dave Singer, Dave + Townsend<!-- Mossop on moz irc -->, David Baron, David Bloom, David + Carlisle, David Flanagan, David Håsäther, David Hyatt, + David Smith, David Woolley, Dean Edridge, Debi Orton, Derek + Featherstone, DeWitt Clinton, Dimitri Glazkov, dolphinling, Doron + Rosenberg, Doug Kramer, Edward O'Connor, Edward Z. Yang, Eira + Monstad, Elliotte Harold, Eric Carlson, Eric Law, Erik Arvidsson, + Evan Martin, Evan Prodromou, fantasai, Felix Sasaki, Franck 'Shift' + Quélain, Garrett Smith, Geoffrey Garen, Geoffrey Sneddon, + George Lund, Håkon Wium Lie, Hans S. Tømmerhalt, Henri + Sivonen, Henrik Lied, Henry Mason, Hugh Winkler, Ignacio Javier, Ivo + Emanuel Gonçalves, J. King, Jacques Distler, James Craig, + James Graham, James Justin Harrell, James M Snell, James Perrett, Jan-Klaas Kollhof, Jason White, Jasper Bryant-Greene, Jed Hartman, Jeff Cutsinger, Jeff Schiller, Jeff Walden, Jens Bannmann, Jens Fendler, Jeroen van der Meer, Jim Jewett, Jim Meehan, Joe Clark,
Received on Thursday, 26 February 2009 09:15:56 UTC