- From: Mercurial notifier <cvsmail@w3.org>
- Date: Wed, 19 Dec 2012 16:30:15 +0000
- To: public-dap-commits@w3.org
changeset: 314:662a2f218aff tag: tip user: Jim Barnett <Jim.Barnett@genesyslab.com> date: Wed Dec 19 11:30:21 2012 -0500 files: media-stream-capture/RecordingProposal.html description: updating recording proposal diff -r 90cc8153db70 -r 662a2f218aff media-stream-capture/RecordingProposal.html --- a/media-stream-capture/RecordingProposal.html Wed Dec 12 02:30:30 2012 -0800 +++ b/media-stream-capture/RecordingProposal.html Wed Dec 19 11:30:21 2012 -0500 @@ -361,7 +361,7 @@ <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p> <h1>Media Recording API</h1> - <h2>November 28, 2012</h2> + <h2>December 19, 2012</h2> <dt>This version:</dt> <dd><a href="@@@">@@@</a></dd> @@ -458,33 +458,41 @@ [<span class="extAttr">Constructor (MediaStream stream)</span>] interface <span class="idlInterfaceID">MediaRecorder</span> : <span class="idlSuperclass"><a>EventTarget </a></span> { -<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a class="idlType" href="widl-mediaStream"><code>MediaStream</code></a></span> <span class="idlAttrName"><a href="#widl-mediaStream">mediaStream</a></span>;</span> -<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a class="idlType" href="widl-recording"><code>Boolean</code></a></span> <span class="idlAttrName"><a href="#widl-recording">recording</a></span>;</span> -<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onrecording">onrecording</a></span>;</span> -<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onstoprecording">onstoprecording</a></span>;</span> -<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-ondataavailable">ondataavailable</a></span>;</span> -<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onrecordingerror">onrecordingerror</a></span>;</span> -<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onrecordingwarning">onrecordingwarning</a></span>;</span> -<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-record">record</a></span> (<span class="idlParam">optional <span class="idlParamType">long</span> <span class="idlParamName">timeSlice</span></span>);</span> -<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-stoprecording">stopRecording</a></span> ();</span> -<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-requestData">requestData</a></span>();</span> -<span class="idlMethod"> <span class="idlMethType"><a href="#widl-dictionary-availablerecordingformats">AvailableRecordingFormats</a></span> <span class="idlMethName"><a href="#widl-getrecordingoptions">getRecordingOptions</a></span> ();</span> -<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-setrecordingoptions">setRecordingOptions</a></span> (<span class="idlParam"><span class="idlParamType"><a class=idlType href="#widl-dictionaryrecordingformat">RecordingFormat</a></span> <span class="idlParamName">RequestedFormats</span>);</span> +<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a class="idlType" href="widl-mediaStream"><code>MediaStream</code></a></span> <span class="idlAttrName"><a href="#widl-mediaStream">mediaStream</a></span>;</span> +<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-RecordingState"><code>RecordingState</code></a></span> <span class="idlAttrName"><a href="#widl-recordingstate">state</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onrecording">onrecording</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onstoprecording">onstoprecording</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-ondataavailable">ondataavailable</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onpause">onpause</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onresume">onresume</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onmutetrack">onmutetrack</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onunmutetrack">onunmutetrack</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onrecordingerror">onrecordingerror</a></span>;</span> +<span class="idlAttribute"> attribute <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span> <span class="idlAttrName"><a href="#widl-onrecordingwarning">onrecordingwarning</a></span>;</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-record">record</a></span> (<span class="idlParam">optional <span class="idlParamType">long</span> <span class="idlParamName">timeSlice</span></span>);</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-stoprecording">stopRecording</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-pause">pause</a></span>();</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-resume">resume</a></span>();</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-mutetrack">muteTrack</a></span>();</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-unmuteTrack">unmuteTrack</a></span>();</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-requestData">requestData</a></span>();</span> +<span class="idlMethod"> <span class="idlMethType"><a href="#widl-dictionary-availablerecordingformats">AvailableRecordingFormats</a></span> <span class="idlMethName"><a href="#widl-getrecordingoptions">getRecordingOptions</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-setrecordingoptions">setRecordingOptions</a></span> (<span class="idlParam"><span class="idlParamType"><a class=idlType href="#widl-dictionaryrecordingformat">RecordingFormat</a></span> <span class="idlParamName">RequestedFormats</span>);</span> };</span></pre> <p>The <dfn id="dom-mediarecorder"> <code>MediaRecorder()</code></dfn> constructor takes one argument which <em title="must" class="rfc2119">must</em> be of type <code>MediaStream</code></code> (see <a href="#bib-mediacapture" class="bibref">Media-Capture)</a>. When the constructor is invoked, the UA <em title="must" class="rfc2119">must</em> construct a new <a class="idlType" href="#idl-def-MediaRecorder"><code>MediaRecorder</code></a></code> object, - set its <a href="#widl-mediastream">mediaStream</a> attribute to be the provided MediaStream, set its <a href="#widl-recording">recording</a> attribute to 'false' + set its <a href="#widl-mediastream">mediaStream</a> attribute to be the provided MediaStream, set its <a href="#widl-recordingstate">state</a> attribute to 'inactive' and return the object.</p> <section id="attributes-1"><h3><span class="secno">2.1 </span>Attributes</h3> <dl class="attributes"><dt id="widl-mediaStream"><code>mediaStream</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>MediaStream</code></a></span>, readonly</dt><dd> <p>The MediaStream passed in to the constructor. </p> </dd></dl> - <dl class="attributes"><dt id="widl-recording"><code>recording</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>Boolean</code></a></span>, readonly</dt><dd> - <p>True if 'record()' has been called and not stopped. Otherwise False. </p> + <dl class="attributes"><dt id="widl-recordingstate"><code>state</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-RecordingState"><code>Recordingstate</code></a></span>, readonly</dt><dd> + <p>The current state of the MediaRecorder object. </p> </dd></dl> <dl class="attributes"><dt id="widl-onrecording"><code>onrecording</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> <p>Called to handle the recording event.</p> @@ -492,10 +500,27 @@ <dl class="attributes"><dt id="widl-onstoprecording"><code>onstoprecording</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> <p>Called to handle the stoprecording event.</p> </dd></dl> - <dl class="attributes"><dt id="widl-ondataavailable"><code>ondataavailable</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> + +<dl class="attributes"><dt id="widl-ondataavailable"><code>ondataavailable</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> <p>Called to handle the dataavailable event. Note that the Blob (see <cite><a href="#bib-FILE-API" class="bibref">FILEAPI</a></cite>) of recorded data is contained in this event and can be accessed via the 'detail' attribute.</p> </dd></dl> + +<dl class="attributes"><dt id="widl-onpause"><code>onpause</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> + <p>Called to handle the pause event. </p> + </dd></dl> +<dl class="attributes"><dt id="widl-onresume"><code>onresume</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> + <p>Called to handle the resume event. </p> + </dd></dl> +<dl class="attributes"><dt id="widl-onmutetrack"><code>onmutetrack</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> + <p>Called to handle the mutetrack event. Note that the Blob (see <cite><a href="#bib-FILE-API" class="bibref">FILEAPI</a></cite>) of recorded data is contained in this event and can + be accessed via the 'detail' attribute.</p> + </dd></dl> + +<dl class="attributes"><dt id="widl-onunmutetrack"><code>onunmutetrack</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> + <p>Called to handle the unmutetrack event. Note that the Blob (see <cite><a href="#bib-FILE-API" class="bibref">FILEAPI</a></cite>) of recorded data is contained in this event and can + be accessed via the 'detail' attribute.</p> + </dd></dl> <dl class="attributes"><dt id="widl-onrecordingerror"><code>onrecordingerror</code> of type <span class="idlAttrType"><a class="idlType" href=""><code>EventHandler</code></a></span></dt><dd> <p>Called to handle the recordingerror event. </p> </dd></dl> @@ -508,7 +533,7 @@ <section id="methods-1"><h3><span class="secno">2.2 </span>Methods</h3> <dl class="methods"><dt id="widl-record"><code>record</code></dt><dd> <p><p>When a <code><a class="idlType" href="#idl-def-MediaRecorder"><code>MediaRecorder</code></a></code> object’s <code>record()</code> method is invoked, - the user agent <em title="must" class="rfc2119">must</em> queue a task that runs the following steps:</p> + the user agent <em title="must" class="rfc2119">must</em> queue a task, using the DOM manipulation task source, that runs the following steps:</p> <ol> <li>If <a href="#widl-recording">recording</a> is 'true', raise a <code>recordingwarning</code> event and abort these steps.</li> @@ -530,7 +555,7 @@ <br> <p>The UA <em title="must" class="rfc2119">must</em> record the MediaStream in such a way that the original Tracks can be retrieved at playback time. If any Track within the - MediaStream is muted, the UA + MediaStream is muted at any time (i.e., if its <code>readyState</code> is set to <code>muted</code>), the UA <em title="must" class="rfc2119">must</em> insert black frames or silence until the Track is unmuted. If the UA is unable to start recording or at any point is unable to contine recording, it <em title="must" class="rfc2119">must</em> raise a <code>recordingerror</code> event, follwowed by a <code>dataavailable</code> event containing @@ -540,7 +565,7 @@ </dd></dl> <dl class="methods"><dt id="widl-stoprecording"><code>stopRecording</code></dt><dd> <p><p>When a <code><a class="idlType" href="#idl-def-MediaRecorder"><code>MediaRecorder</code></a></code> object’s <code>stopRecording</code> method is invoked, - the user agent <em title="must" class="rfc2119">must</em> queue a task that runs the following steps:</p> + the user agent <em title="must" class="rfc2119">must</em> queue a task, using the DOM manipulation task source, that runs the following steps:</p> <ol> <li>If <a href="#widl-recording">recording</a> is 'false', raise a <code>recordingwarning</code> event and abort these steps.</li> @@ -553,7 +578,7 @@ <dl class="methods"><dt id="widl-requestData"><code>requestData</code></dt><dd> <p>When a <code><a class="idlType" href="#idl-def-MediaRecorder"><code>MediaRecorder</code></a></code> object’s <code>requestData()</code></dfn> method is invoked, - the user agent <em title="must" class="rfc2119">must</em> queue a task that runs the following steps:</p> + the user agent <em title="must" class="rfc2119">must</em> queue a task, using the DOM manipulation task source, that runs the following steps:</p> <ol> <li>If <a href="#widl-recording">recording</a> is 'false', raise a <code>recordingwarning</code> event and abort these steps.</li> @@ -561,7 +586,16 @@ <li>Creat a new Blob and gather subsequent data into it.</li> </ol> </dd></dl> - + +<dl class="methods"><dt id="widl-pause"><code>pause</code></dt><dd> + </dd></dl> +<dl class="methods"><dt id="widl-resume"><code>resume</code></dt><dd> + </dd></dl> +<dl class="methods"><dt id="widl-mutetrack"><code>muteTrack</code></dt><dd> + </dd></dl> +<dl class="methods"><dt id="widl-unmutetrack"><code>unmuteTrack</code></dt><dd> + </dd></dl> + <dl class="methods"><dt id="widl-getrecordingoptions"><code>getRecordingOptions</code></dt><dd> <p><p>When a <code><a class="idlType" href="#idl-def-MediaRecorder"><code>MediaRecorder</code></a></code> object’s <code>getRecordingOptions()</code></dfn> method is invoked, the user agent <em title="must" class="rfc2119">must </em>return a @@ -587,8 +621,20 @@ </section> + <section id="recordingstate-enum"> + <h2><span class="secno">3.0 </span>RecordingState Enum</h2> -<section id="widl-dictionary-availablerecordingformats"><h2><span class="secno">3.0 </span>Dictionary <code>AvailableRecordingFormats</code></h2> + <pre class="idl"><span class="idlEnum" id="idl-def-RecordingState">enum <span class="idlEnumID">RecordingState</span> { + "<span class="idlEnumItem">inactive</span>", + "<span class="idlEnumItem">recording</span>", + "<span class="idlEnumItem">paused</span>", +};</span></pre> + +<table class="simple"><tr><th colspan="2">Enumeration description</th></tr><tr><td><code>inactive</code></td><td>Recording is not occuring. (Either it has not been started or it has been stopped.)</td></tr> + <tr><td><code>recording</code></td><td>Recording has been started and he UA is capturing data.</td></tr> + <tr><td><code>paused</code></td><td>Recording has been started, then paused, and not yet stopped or resumed.</td></tr> + </table> +<section id="widl-dictionary-availablerecordingformats"><h2><span class="secno">3.1 </span>Dictionary <code>AvailableRecordingFormats</code></h2> <pre class="idl"><span class="idlDictionary" id="">dictionary <span class="idlDictionaryID">AvailableRecordingFormats</span> { <span class="idlMember"> <span class="idlMemberType"><a>sequence<DOMString></a></span> <span class="idlMemberName"><a href="">containerEncodingFormats</a></span>;</span> <span class="idlMember"> <span class="idlMemberType"><a>sequence<DOMString></a></span> <span class="idlMemberName"><a href="">audioEncodingFormats</a></span>;</span> @@ -609,7 +655,7 @@ capable of holding at least two video Tracks and two audio Tracks. </p> </section> -<section id="widl-dictionary-recordingformat"><h3><span class="secno">3.1 </span>Dictionary <a href="#idl-def-DataChannelInit" class="idlType"><code>RecordingFormat</code></a></h3> +<section id="widl-dictionary-recordingformat"><h3><span class="secno">3.2 </span>Dictionary <a href="#idl-def-DataChannelInit" class="idlType"><code>RecordingFormat</code></a></h3> <pre class="idl"><span class="idlDictionary" id="">dictionary <span class="idlDictionaryID">RecordingFormat</span> { <span class="idlMember"> <span class="idlMemberType"><DOMString></span> <span class="idlMemberName"><a href="">containerEncodingFormat</a></span>;</span> <span class="idlMember"> <span class="idlMemberType"><DOMString></span> <span class="idlMemberName"><a href="">audioEncodingFormat</a></span>;</span> @@ -627,16 +673,109 @@ </section> -<section id="ErrorHandling" class="normmative"> - <h2><span class="secno">4.0 </span>Error Handling</h2> - <p>If a fatal error occurs while recording is occuring, the UA <em title="must" class="rfc2119">must</em> - raise a recordingerror, followed by a dataavailable event, containing any data that it has gathered, + <section id="error-handling"> + <h2><span class="secno">4.0 </span>Error Handling</h2> + + <section id="general-principles"> + <h3><span class="secno">4.1 </span>General Principles</h3> + + <p>Errors are indicated in two ways: exceptions and objects passed to + error callbacks. Both forms of error reporting <em title="must" class="rfc2119">must</em> provide an object + of type <code>RTCError</code>. An exception <em title="must" class="rfc2119">must</em> be thrown in the + following cases:</p> + + <ul> + <li>The type of any argument passed to a function did not match what + was expected. An appropriate string from the + <code>RTCExceptionName</code> enum <em title="must" class="rfc2119">must</em> be used as the error + name.</li> + + <li>A function call was made when the RTCPeerConnection is in an + invalid state, or a state in which that particular function is not + allowed to be executed. In this case, the string + <code>INVALID_STATE</code> <em title="must" class="rfc2119">must</em> be used as the error name.</li> + </ul> + + <p>In all other cases, an error object <em title="must" class="rfc2119">must</em> be provided to the failure + callback. The error name in the object provided <em title="must" class="rfc2119">must</em> be picked from + either the <code>RTCExceptionName</code> or <code>RTCErrorName</code> + enums. After raising the error, the UA <em title="must" class="rfc2119">must</em> + raise a dataavailable event, containing any data that it has gathered, and then a recordingdone event. The UA <em title="may" class="rfc2119">may</em> set platform-specific limits, such those for the minimum and maximum Blob size that it will support, or the number of Tracks it will record at once. It <em title="must" class="rfc2119">must</em> signal a fatal error if these limits are exceeded. If a non-fatal error occurs during recording, the UA <em title="should" class="rfc2119">should</em> raise a recordingwarning event, with data indicating - the nature of the problem, and continue recording. </p> + the nature of the problem, and continue recording.</p> + </section> + + <section id="rtcerror"> + <h3><span class="secno">4.2 </span>RTCError</h3> + + <pre class="idl"><span class="idlInterface" id="idl-def-RTCError">interface <span class="idlInterfaceID">RTCError</span> { +<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-RTCError-name">name</a></span>;</span> +<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a>DOMString</a>?</span> <span class="idlAttrName"><a href="#widl-RTCError-message">message</a></span>;</span> +};</span></pre><section id="attributes-1"><h4><span class="secno">4.2.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-RTCError-message"><code>message</code> of type <span class="idlAttrType"><a>DOMString</a></span>, readonly, nullable</dt><dd>A human readable description of the error. This string may vary + between different user agents.</dd><dt id="widl-RTCError-name"><code>name</code> of type <span class="idlAttrType"><a>DOMString</a></span>, readonly</dt><dd>A string representing the type of error. This string must be one + of those defined by the <code>RTCExceptionName</code> or + <code>RTCErrorName</code> enums for the error object to be + valid.</dd></dl></section> + </section> + + <section id="rtcsdperror"> + <h3><span class="secno">4.3 </span>RTCSdpError</h3> + + <pre class="idl"><span class="idlInterface" id="idl-def-RTCSdpError">interface <span class="idlInterfaceID">RTCSdpError</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-RTCError"><code>RTCError</code></a></span> { +<span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a>long</a></span> <span class="idlAttrName"><a href="#widl-RTCSdpError-sdpLineNumber">sdpLineNumber</a></span>;</span> +};</span></pre><section id="attributes-2"><h4><span class="secno">4.3.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-RTCSdpError-sdpLineNumber"><code>sdpLineNumber</code> of type <span class="idlAttrType"><a>long</a></span>, readonly</dt><dd> + The line number of an <a class="idlType" href="#idl-def-RTCSessionDescription"><code>RTCSessionDescription</code></a> at which the + error was encountered. + </dd></dl></section> + </section> + + <section id="rtcexceptionname"> + <h3><span class="secno">4.4 </span>RTCExceptionName</h3> + + <pre class="idl"><span class="idlEnum" id="idl-def-RTCExceptionName">enum <span class="idlEnumID">RTCExceptionName</span> { + "<span class="idlEnumItem">INVALID_SUCCESS_CALLBACK</span>", + "<span class="idlEnumItem">INVALID_FAILURE_CALLBACK</span>", + "<span class="idlEnumItem">INVALID_CONSTRAINTS_TYPE</span>", + "<span class="idlEnumItem">INVALID_SESSION_DESCRIPTION_TYPE</span>", + "<span class="idlEnumItem">INVALID_CONFIGURATION_TYPE</span>", + "<span class="idlEnumItem">INVALID_CANDIDATE_TYPE</span>", + "<span class="idlEnumItem">INVALID_MEDIASTREAM</span>", + "<span class="idlEnumItem">INVALID_MEDIASTREAM_TRACK</span>", + "<span class="idlEnumItem">INVALID_STATE</span>" +};</span></pre><table class="simple"><tr><th colspan="2">Enumeration description</th></tr><tr><td><code>INVALID_SUCCESS_CALLBACK</code></td><td>The provided successCallback is not a function.</td></tr><tr><td><code>INVALID_FAILURE_CALLBACK</code></td><td>The provided failureCallback is not a function.</td></tr><tr><td><code>INVALID_CONSTRAINTS_TYPE</code></td><td>The provided constraints object is not a dictionary with either + the <code>mandatory</code> or <code>optional</code> keys.</td></tr><tr><td><code>INVALID_SESSION_DESCRIPTION_TYPE</code></td><td>The provided session description is not an object of type + <code>RTCSessionDescription</code>.</td></tr><tr><td><code>INVALID_CONFIGURATION_TYPE</code></td><td>The provided configuration is not an object of type + <code>RTCConfiguration</code>.</td></tr><tr><td><code>INVALID_CANDIDATE_TYPE</code></td><td>The provided candidate is not an object of type + <code>RTCIceCandidate</code>.</td></tr><tr><td><code>INVALID_MEDIASTREAM</code></td><td>The provided media stream is not an object of type + <code>MediaStream</code>.</td></tr><tr><td><code>INVALID_MEDIASTREAM_TRACK</code></td><td>The provided track is not an object of type + <code>MediaStreamTrack</code>.</td></tr><tr><td><code>INVALID_STATE</code></td><td>The function was called on a <code>RTCPeerConnection</code> that + is an invalid state, or a state in which the function is not allowed + to be executed.</td></tr></table> + </section> + + <section id="rtcerrorname"> + <h3><span class="secno">4.5 </span>RTCErrorName</h3> + + <pre class="idl"><span class="idlEnum" id="idl-def-RTCErrorName">enum <span class="idlEnumID">RTCErrorName</span> { + "<span class="idlEnumItem">INVALID_SESSION_DESCRIPTION</span>", + "<span class="idlEnumItem">INCOMPATIBLE_CONSTRAINTS</span>" +};</span></pre><table class="simple"><tr><th colspan="2">Enumeration description</th></tr><tr><td><code>INVALID_SESSION_DESCRIPTION</code></td><td>The provided <code>RTCSessionDescription</code> either contained + invalid SDP, or SDP that could not be correctly applied to the + <code>RTCPeerConnection</code> due to its current state. User agents + <em title="should" class="rfc2119">should</em> provide as much additional information in the error message as + possible, including the <code>sdpLineNumber</code>, if + appropriate.</td></tr><tr><td><code>INCOMPATIBLE_CONSTRAINTS</code></td><td>The provided <code>MediaConstraints</code> could not be correctly + applied to the <code>RTCPeerConnection</code> due to its current + state. User agents <em title="should" class="rfc2119">should</em> provide as much additional information in + the error message as possible.</td></tr></table> + </section> + </section> + + <section id="event-summary" class="informative"> <h2><span class="secno">5.0 </span>Event summary</h2> @@ -660,7 +799,7 @@ <td><code>Event</code></td> - <td>The UA has started recording data on the Track.</td> + <td>The UA has started recording data on the MediaStream.</td> </tr> <tr> @@ -668,7 +807,23 @@ <td><code>Event</code></td> - <td>The UA has stopped recording data on the Track.</td> + <td>The UA has stopped recording data on the MediaStream.</td> + </tr> + + <tr> + <td><dfn id="event-mediarecorder-pause"><code>pause</code></dfn></td> + + <td><code>Event</code></td> + + <td>The UA has paused recording data on the MediaStream.</td> + </tr> + + <tr> + <td><dfn id="event-mediarecorder-resume"><code>resume</code></dfn></td> + + <td><code>Event</code></td> + + <td>The UA has resumed recording data on the MediaStream.</td> </tr> @@ -711,8 +866,6 @@ <li>Do we need a "setSyncPoint()" operator and a "syncpoint" signal, so that the client can tell the recorder to insert a point at which a recording can be broken up (typically a new I-frame)? </li> - <li>Does it make sense to set audiorecordingformat and videorecordingformat separately? - Would it be simpler to specify a container format with options for codecs?</li> </ol> </section>
Received on Wednesday, 19 December 2012 16:30:21 UTC