- From: CVS User cjenning <cvsmail@w3.org>
- Date: Fri, 22 Mar 2013 20:25:07 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2011/webrtc/editor In directory roscoe:/tmp/cvs-serv7790 Modified Files: webrtc.html Log Message: updated --- /sources/public/2011/webrtc/editor/webrtc.html 2013/02/22 13:37:09 1.32 +++ /sources/public/2011/webrtc/editor/webrtc.html 2013/03/22 20:25:07 1.33 @@ -230,7 +230,7 @@ <li> <p>Set <var>connection</var>'s <a href= "#dom-peerconnection-ice-connection-state"><code>RTCPeerConnection</code> - ice connection state</a> to <code>starting</code>.</p> + ice connection state</a> to <code>new</code>.</p> </li> <li> @@ -273,7 +273,7 @@ </li> <li> - <p>When the ascynchronous operation completes (either successfully + <p>When the asynchronous operation completes (either successfully or with an error), remove the corresponding object from the <code>operations</code> array. After removal, if the array is non-empty, execute the first object queued asynchronously and @@ -294,8 +294,8 @@ <ol> <li> - <p>If <var>iceConnectionState</var> is "starting" and the IceTransports constraint - is not set to "none", it MUST queue a task to start gathering ICE + <p>If <var>iceConnectionState</var> is <code>new</code> and the IceTransports constraint + is not set to <code>none</code>, it MUST queue a task to start gathering ICE addresses and set the <var>iceConnectionState</var> to "gathering".</p> </li> @@ -330,6 +330,55 @@ </li> </ol> + <p>When the ICE Agent needs to notify the script about the candidate + gathering progress, the user agent must queue a task to run the + following steps:</p> + + <ol> + <li> + <p>Let <var>connection</var> be the + <code><a>RTCPeerConnection</a></code> object associated with this + ICE Agent.</p> + </li> + + <li> + <p>If <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state"><code>RTCPeerConnection</code> + signalingState</a> is <code>closed</code>, abort these + steps.</p> + </li> + + <li> + <p>If the intent of the ICE Agent is to notify the script that:</p> + + <ul> + <li> + <p>A new candidate is available.</p> + + <p>Add the candidate to <var>connection</var>'s <code> + <a>localDescription</a></code> and create a <code> + <a>RTCIceCandidate</a></code> object to represent the + candidate. Let <var>newCandidate</var> be that object.</p> + </li> + + <li> + <p>The gathering process is done.</p> + + <p>Set <var>connection</var>'s + <a href="#dom-peerconnection-ice-gathering-state">ice gathering + state</a> to <code>completed</code> and let + <var>newCandidate</var> be null.</p> + </li> + </ul> + </li> + + <li> + <p>Fire a icecandidate event named <code><a href= + "#event-icecandidate">icecandidate</a></code> with + <var>newCandidate</var> at <var>connection</var>.</p> + </li> + </ol> + <p>User agents negotiate the codec resolution, bitrate, and other media parameters. It is RECOMMENDED that user agents initially negotiate for the maximum resolution of a video stream. For streams that are then @@ -536,7 +585,7 @@ <p>Session descriptions generated by createOffer MUST be immediately usable by setLocalDescription without causing an error - as long as setLocalDiscription is called within the successCallback + as long as setLocalDescription is called within the successCallback function. If a system has limited resources (e.g. a finite number of decoders), createOffer needs to return an offer that reflects the current state of the system, so that setLocalDescription will @@ -661,21 +710,156 @@ <p>To Do: specify what parts of the SDP can be changed between the createOffer and setLocalDescription</p> - <p>Changes to the state of media transmission will occur when a - final answer is successfully applied. - <code><a>localDescription</a></code> MUST return the previous - description until the new description is successfully applied.</p> - - <p>The <code>failureCallback</code> will be called if the - <code><a>RTCSessionDescription</a></code> is a valid description - but cannot be applied at the media layer, e.g., if there are - insufficient resources to apply the SDP. The user agent MUST roll - back as necessary if the new description was partially applied when - the failure occurred.</p> - - <p>An <code>RTCError</code> object of type - <code>INVALID_SESSION_DESCRIPTION</code> is provided to the failure - callback if the SDP content is invalid.</p> + <p>When the method is invoked, the user agent must follow the + <dfn id="set-description-model">processing model</dfn> described + by the following list:</p> + + <ul> + <li> + <p>If this <code><a>RTCPeerConnection</a></code> object's + <a href="#dom-peerconnection-signaling-state">signaling state</a> is + <code>closed</code>, the user agent MUST throw an exception with + an <code>RTCError</code> object of type <code>INVALID_STATE</code> + and abort this operation.</p> + </li> + + <li> + <p>If a local description contains a different set of ICE + credentials, then the ICE Agent MUST trigger an ICE restart. + </p> + </li> + + <li> + <p>If the process to apply the <code> + <a>RTCSessionDescription</a></code> argument fails for any + reason, then user agent must queue a task runs the following + steps:</p> + + <ol> + <li> + <p>Let <var>connection</var> be the + <code><a>RTCPeerConnection</a></code> object on with this + method was invoked.</p> + </li> + + <li> + <p>If <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state">signaling state</a> + is <code>closed</code>, then abort these steps.</p> + </li> + + <li> + <p>If the reason for the failure is:</p> + + <ul> + <li> + <p>The content of the <code> + <a>RTCSessionDescription</a></code> argument is invalid + or the <code><a href= + "#widl-RTCSessionDescription-type">type</a></code> is + wrong for the current <a href= + "#dom-peerconnection-signaling-state">signaling state</a> + of <var>connection</var>. + </p> + + <p>Let <var>errorType</var> be + <code>INVALID_SESSION_DESCRIPTION</code>.</p> + </li> + + <li> + <p>The <code><a>RTCSessionDescription</a></code> is + a valid description but cannot be applied at the media + layer.</p> + + <p>This can happen, e.g., if there are + insufficient resources to apply the SDP. The user agent + MUST then roll back as necessary if the new description + was partially applied when the failure occurred.</p> + + <p>If rollback was not necessary or was completed + successfully, let <var>errorType</var> be + <code>INCOMPATIBLE_SESSION_DESCRIPTION</code>. If + rollback was not possible, let <var>errorType</var> be + <code>INTERNAL_ERROR</code> and set + <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state">signaling + state</a> to <code>closed</code>.</p> + </li> + </ul> + </li> + + <li> + <p>Invoke the <var>failureCallback</var> with an + <code>RTCError</code> object, of type + <var>errorType</var>, as its argument. + </li> + </ol> + </li> + + <li> + <p>If the <code><a>RTCSessionDescription</a></code> argument is + applied successfully, then user agent must queue a task runs the + following steps:</p> + + <ol> + <li> + <p>Let <var>connection</var> be the + <code><a>RTCPeerConnection</a></code> object on with this + metod was invoked.</p> + </li> + + <li> + <p>If <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state">signaling state</a> + is <code>closed</code>, then abort these steps.</p> + </li> + + <li> + <p>Set <var>connection</var>'s description attribute + (<code><a>localDescription</a></code> or <code> + <a>remoteDescription</a></code> depending on the setting + operation) to the <code><a>RTCSessionDescription</a></code> + argument.</p> + </li> + + <li> + <p>If the local description was set, + <var>connection</var>'s <a href= + "#dom-peerconnection-ice-gathering-state">ice gathering + state</a> is <code>new</code>, and the local description + contains media, then set <var>connection</var>'s <a href= + "#dom-peerconnection-ice-gathering-state">ice gathering + state</a> to <code>gathering</code>.</p> + </li> + + <li> + <p>If the local description was set with content that + caused an ICE restart, then set <var>connection</var>'s + <a href="#dom-peerconnection-ice-gathering-state">ice + gathering state</a> to <code>gathering</code>.</p> + </li> + + <li> + <p>Set <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state">signalingState</a> + accordingly.</p> + </li> + + <li> + <p>Fire a simple event named <code><a href= + "#event-signalingstatechange">signalingstatechange</a> + </code> at <var>connection</var>.</p> + </li> + + <li> + <p>Queue a new task that, if <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state">signalingState</a> + is not <code>closed</code>, invokes the + <var>successCallback</var>.</p> + </li> + </ol> + </li> + </ul> </dd> <dt>readonly attribute RTCSessionDescription localDescription</dt> @@ -708,21 +892,11 @@ verifies the identity following the procedures in [XREF sec.identity-proxy-assertion-request].</p> - <p>Changes to the state of media transmission will occur when a - final answer is successfully applied. - <code><a>remoteDescription</a></code> MUST return the previous - description until the new description is successfully applied.</p> - - <p>The <code>failureCallback</code> will be called if the - <code><a>RTCSessionDescription</a></code> is a valid description - but cannot be applied at the media layer, e.g., if there are - insufficient resources to apply the SDP. The user agent MUST roll - back as necessary if the new description was partially applied when - the failure occurred.</p> - - <p>An <code>RTCError</code> object of type - <code>INVALID_SESSION_DESCRIPTION</code> is provided to the failure - callback if the SDP content is invalid.</p> + <p>When the method is invoked, the user agent must follow the + <a href="#set-description-model">processing model</a> of + <code><a href= + "#dom-peerconnection-setlocaldescription">setLocalDescription()</a> + </code>.</p> </dd> <dt>readonly attribute RTCSessionDescription remoteDescription</dt> @@ -959,7 +1133,14 @@ <ol> <li> - <p>If the <code><a>RTCPeerConnection</a></code> object's + <p>Let <var>connection</var> be the <code> + <a>RTCPeerConnection</a></code> object on which the <code> + <a>MediaStream</a></code>, <var>stream</var>, + is to be added.</p> + </li> + + <li> + <p>If <var>connection</var>'s <a href= "#dom-peerconnection-signaling-state"><code>RTCPeerConnection</code> signalingState</a> is <code>closed</code>, abort these steps, @@ -968,15 +1149,13 @@ </li> <li> - <p>If <var>stream</var> is already in the - <code><a>RTCPeerConnection</a></code> object's <a href= + <p>If <var>stream</var> is already in <var>connection</var>'s <a href= "#local-streams-set">local streams set</a>, then abort these steps.</p> </li> <li> - <p>Add <var>stream</var> to the - <code><a>RTCPeerConnection</a></code> object's <a href= + <p>Add <var>stream</var> to <var>connection</var>'s <a href= "#local-streams-set">local streams set</a>.</p> </li> @@ -990,7 +1169,12 @@ </li> <li> - <p>Fire a negotiationneeded event.</p> + <p>If <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state"> + <code>RTCPeerConnection</code> signalingState</a> is + <code>stable</code>, then fire a <a href= + "#event-negotiation">negotiationneeded</a> event at + <var>connection</var>.</p> <p class="issue">ISSUE: Should this fire if the RTCPeerConnection is in "new"?</p> @@ -1001,9 +1185,8 @@ <dt>void removeStream (MediaStream stream)</dt> <dd> - <p>Removes the given stream from the localStream array in the - RTCPeerConnection and fires the <a href= - "#event-negotiation">negotiationneeded</a> event.</p> + <p>Removes the given stream from the <code> + <a>RTCPeerConnection</a></code>.</p> <p>When the other peer stops sending a stream in this manner, a <code title="event-MediaStream-removestream"><a href= @@ -1015,8 +1198,15 @@ MUST run the following steps:</p> <ol> + <li> + <p>Let <var>connection</var> be the <code> + <a>RTCPeerConnection</a></code> object on which the <code> + <a>MediaStream</a></code>, <var>stream</var>, + is to be removed.</p> + </li> + <li> - <p>If the <code><a>RTCPeerConnection</a></code> object's + <p>If <var>connection</var>'s <a href= "#dom-peerconnection-signaling-state"><code>RTCPeerConnection</code> signalingState</a> is <code>closed</code>, throw an @@ -1024,20 +1214,22 @@ </li> <li> - <p>If <var>stream</var> is not in the - <code><a>RTCPeerConnection</a></code> object's <a href= + <p>If <var>stream</var> is not in <var>connection</var>'s <a href= "#local-streams-set">local streams set</a>, then abort these steps.</p> </li> <li> - <p>Remove <var>stream</var> from the - <code><a>RTCPeerConnection</a></code> object's <a href= + <p>Remove <var>stream</var> from <var>connection</var>'s <a href= "#local-streams-set">local streams set</a>.</p> </li> <li> - <p>Fire a <a href="#event-negotiation">negotiationneeded</a> - event.</p> + <p>If <var>connection</var>'s <a href= + "#dom-peerconnection-signaling-state"> + <code>RTCPeerConnection</code> signalingState</a> is + <code>stable</code>, then fire a <a href= + "#event-negotiation">negotiationneeded</a> event at + <var>connection</var>.</p></p> </li> </ol> [411 lines skipped]
Received on Friday, 22 March 2013 20:25:08 UTC