- From: CVS User dburnett <cvsmail@w3.org>
- Date: Thu, 08 May 2014 02:05:53 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2011/webrtc/editor In directory roscoe:/tmp/cvs-serv11542 Modified Files: getusermedia.html Log Message: Added 20140507 archived version. --- /sources/public/2011/webrtc/editor/getusermedia.html 2014/03/21 13:01:10 1.30 +++ /sources/public/2011/webrtc/editor/getusermedia.html 2014/05/08 02:05:53 1.31 @@ -467,11 +467,11 @@ </p> <h1 class="title p-name" id="title" property="dcterms:title">Media Capture and Streams</h1> - <h2 id="w3c-editor-s-draft-21-march-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-03-21T12:30:59.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-03-21">21 March 2014</time></h2> + <h2 id="w3c-editor-s-draft-07-may-2014" property="dcterms:issued" datatype="xsd:dateTime" content="2014-05-08T01:01:25.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2014-05-07">07 May 2014</time></h2> <dl> <dt>This version:</dt> - <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140321/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/getusermedia.html</a></dd> + <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20140507/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140507/getusermedia.html</a></dd> <dt>Latest published version:</dt> <dd><a href="http://www.w3.org/TR/mediacapture-streams/">http://www.w3.org/TR/mediacapture-streams/</a></dd> @@ -485,7 +485,7 @@ <dt>Previous editor's draft:</dt> - <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140218/getusermedia.html</a></dd> + <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20140321/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20140321/getusermedia.html</a></dd> @@ -513,10 +513,10 @@ <hr> </div> - <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" datatype="" property="dcterms:abstract" class="introductory" id="abstract"><h2 id="h2_abstract" role="heading" aria-level="1">Abstract</h2> + <section rel="bibo:Chapter" resource="#abstract" typeof="bibo:Chapter" datatype="" property="dcterms:abstract" class="introductory" id="abstract"><h2 id="h2_abstract" role="heading" aria-level="1">Abstract</h2> <p>This document defines a set of JavaScript APIs that allow local media, including audio and video, to be requested from a platform.</p> - </section><section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" id="sotd" class="introductory"><h2 id="h2_sotd" role="heading" aria-level="1">Status of This Document</h2> + </section><section rel="bibo:Chapter" resource="#sotd" typeof="bibo:Chapter" id="sotd" class="introductory"><h2 id="h2_sotd" role="heading" aria-level="1">Status of This Document</h2> @@ -583,16 +583,15 @@ -</section><section id="toc"><h2 id="h2_toc" role="heading" aria-level="1" class="introductory">Table of Contents</h2><ul id="respecContents" role="directory" class="toc"><li class="tocline"><a class="tocxref" href="#intro"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#terminology"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a class="tocxref" href="#stream-api"><span class="secno">4. </span>MediaStream API</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#mediastream"><span class="secno">4.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors"><span class="secno">4.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes"><pan class="secno">4.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods"><span class="secno">4.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrack"><span class="secno">4.3 </span>MediaStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#life-cycle-and-media-flow"><span class="secno">4.3.1 </span>Life-cycle and Media Flow</a></li><li class="tocline"><a class="tocxref" href="#tracks-and-constraints"><span class="secno">4.3.2 </span>Tracks and Constraints</a></li><li class="tocline"><a class="tocxref" href="#interface-definition"><span class="secno">4.3.3 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-1"><span class="secno">4.3.3.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-1"><span class="secno">4.3.3.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#track-source-types"><span class="scno">4.3.4 </span>Track Source Types</a></li><li class="tocline"><a class="tocxref" href="#isolated-media-streams"><span class="secno">4.3.5 </span>Isolated Media Streams</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrackevent"><span class="secno">4.4 </span>MediaStreamTrackEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-1"><span class="secno">4.4.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-2"><span class="secno">4.4.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamtrackeventinit-members"><span class="secno">4.4.3 </span>Dictionary <span class="formerLink"><code>MediaStreamTrackEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#the-model-sources-sinks-constraints-and-states"><span class="secno">5. </span>The model: sources, sinks, constraints, and states</a></li><li class="tocline"><a class="tocxref"href="#mediastreams-as-media-elements"><span class="secno">6. </span>MediaStreams as Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#direct-assignment-to-media-elements"><span class="secno">6.1 </span>Direct Assignment to Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-3"><span class="secno">6.1.1 </span>Attributes</a></li></ul></li><li class="tocline"><a class="tocxref" href="#loading-and-playing-a-mediastream-in-a-media-element"><span class="secno">6.2 </span>Loading and Playing a MediaStream in a Media Element</a></li><li class="tocline"><a class="tocxref" href="#media-element-attributes-when-playing-a-mediastream"><span class="secno">6.3 </span>Media Element Attributes when Playing a MediaStream</a></li></ul></li><li class="tocline"><a class="tocxref" href="#error-handling"><span class="secno">7. </span>Error Handling</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-4"><span class="secno">7.1 </span>Attibutes</a></li><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">7.2 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">7.3 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediaerroreventinit-members"><span class="secno">7.4 </span>Dictionary <span class="formerLink"><code>MediaErrorEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#event-summary"><span class="secno">8. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#enumerating-devices"><span class="secno">9. </span>Enumerating Local Media Devices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia"><span class="secno">9.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">9.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#deviceinfo"><span class="secno">9.2 </span>Device Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class="secno">9.2.1 </span>Callback <span class="formerLink"><code>MediaDeviceInfoCallback</code></span> Parameters</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediadeviceinfo-members"><span class="secno">9.2.2 </span>Dictionary <span class="formerLink"><code>MediaDeviceInfo</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#local-content"><span class="secno">10. </span>Obtaining local multimedia content</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia-1"><span class="secno">10.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">10.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamconstraints"><span class="secno">10.2 </span>MediaSteamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">10.2.1 </span>Dictionary <span class="formerLink"><code>MediaStreamConstraints</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediasuccesscallback"><span class="secno">10.3 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">10.3.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaSuccessCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediaerrorcallback"><span class="secno">10.4 </span>NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">10.4.1 </span>Callback <span class="formerLink"><code>NavigatrUserMediaErrorCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#implementation-suggestions"><span class="secno">10.5 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">11. </span>Constrainable Interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#interface-definition-1"><span class="secno">11.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">11.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno">11.1.2 </span>Methods</a></li><li class="tocline"><a class="tocxref" href="#applyconstraints-failure-callback"><span class="secno">11.1.3 </span>applyConstraints Failure Callback</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#registry"><span class="secno">11.2 </span>The Property Registry/a><ul class="toc"><li class="tocline"><a class="tocxref" href="#PropertyValueSet"><span class="secno">11.2.1 </span><span>PropertyValueSet</span> - </a></li><li class="tocline"><a class="tocxref" href="#PropertyValueDoubleRange"><span class="secno">11.2.2 </span>PropertyValueDoubleRange</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-propertyvaluedoublerange-members"><span class="secno">11.2.2.1 </span>Dictionary <span class="formerLink"><code>PropertyValueDoubleRange</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#PropertyValueLongRange"><span class="secno">11.2.3 </span>PropertyValueLongRange</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-propertyvaluelongrange-members"><span class="secno">11.2.3.1 </span>Dictionary <span class="formerLink"><code>PropertyValueLongRange</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#capabilities"><span class="secno">11.3 </span>Capabilities</a></li><li class="tocline"><a class="tocxref" href="#settings"><span class="secno">11.4 </span><span>Settings</span> - </a></li><li class="tocline"><a class="tocxref" href="#constraints"><span class="secno">11.5 </span><span>Constraints</span> - </a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraints-members"><span class="secno">11.5.1 </span>Dictionary <span class="formerLink"><code>Constraints</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#constraintset"><span class="secno">11.5.2 </span>ConstraintSet</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">12. </span>Examples</a></li><li class="tocline"><a class="tocxref" href="#error-names"><span class="secno">13. </span>Error Names</a></li><li class="tocline"><a class="tocxref" href="#iana-registrations"><span class="secno">14. </span>IANA Registrations</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#track-property-registrations"><span class="secno">14.1 </span>Track Property Registrations</a></li></ul></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">15. </span>Change Log</a></li><li class="tocline"><a class="tocxref" href="#acknwledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#references"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></section> +</section><section id="toc"><h2 id="h2_toc" role="heading" aria-level="1" class="introductory">Table of Contents</h2><ul id="respecContents" role="directory" class="toc"><li class="tocline"><a class="tocxref" href="#intro"><span class="secno">1. </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#conformance"><span class="secno">2. </span>Conformance</a></li><li class="tocline"><a class="tocxref" href="#terminology"><span class="secno">3. </span>Terminology</a></li><li class="tocline"><a class="tocxref" href="#stream-api"><span class="secno">4. </span>MediaStream API</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#introduction"><span class="secno">4.1 </span>Introduction</a></li><li class="tocline"><a class="tocxref" href="#mediastream"><span class="secno">4.2 </span>MediaStream</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors"><span class="secno">4.2.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes"><pan class="secno">4.2.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods"><span class="secno">4.2.3 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrack"><span class="secno">4.3 </span>MediaStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#life-cycle-and-media-flow"><span class="secno">4.3.1 </span>Life-cycle and Media Flow</a></li><li class="tocline"><a class="tocxref" href="#tracks-and-constraints"><span class="secno">4.3.2 </span>Tracks and Constraints</a></li><li class="tocline"><a class="tocxref" href="#media-stream-track-interface-definition"><span class="secno">4.3.3 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-1"><span class="secno">4.3.3.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-1"><span class="secno">4.3.3.2 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#track-source-tyes"><span class="secno">4.3.4 </span>Track Source Types</a></li><li class="tocline"><a class="tocxref" href="#media-track-constraints"><span class="secno">4.3.5 </span>MediaTrackConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediatrackconstraints-members"><span class="secno">4.3.5.1 </span>Dictionary <span class="formerLink"><code>MediaTrackConstraints</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediatrackconstraintset-members"><span class="secno">4.3.5.2 </span>Dictionary <span class="formerLink"><code>MediaTrackConstraintSet</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#isolated-media-streams"><span class="secno">4.3.6 </span>Isolated Media Streams</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamtrackevent"><span class="secno">4.4 </span>MediaStreamTrackEvent</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-1"><span class="secno>4.4.1 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-2"><span class="secno">4.4.2 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamtrackeventinit-members"><span class="secno">4.4.3 </span>Dictionary <span class="formerLink"><code>MediaStreamTrackEventInit</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#the-model-sources-sinks-constraints-and-settings"><span class="secno">5. </span>The model: sources, sinks, constraints, and settings</a></li><li class="tocline"><a class="tocxref" href="#mediastreams-as-media-elements"><span class="secno">6. </span>MediaStreams as Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#direct-assignment-to-media-elements"><span class="secno">6.1 </span>Direct Assignment to Media Elements</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-3"><span class="secno">6.1.1 </span>Attributes</a></li></ul><li><li class="tocline"><a class="tocxref" href="#loading-and-playing-a-mediastream-in-a-media-element"><span class="secno">6.2 </span>Loading and Playing a MediaStream in a Media Element</a></li><li class="tocline"><a class="tocxref" href="#media-element-attributes-when-playing-a-mediastream"><span class="secno">6.3 </span>Media Element Attributes when Playing a MediaStream</a></li></ul></li><li class="tocline"><a class="tocxref" href="#error-handling"><span class="secno">7. </span>Error Handling</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-4"><span class="secno">7.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">7.2 </span>Constructors</a></li><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">7.3 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamerroreventinit-members"><span class="secno">7.4 </span>Dictionary <span class="formerLink"><code>MeiaStreamErrorEventInit</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#event-summary"><span class="secno">8. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#enumerating-devices"><span class="secno">9. </span>Enumerating Local Media Devices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia"><span class="secno">9.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">9.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#device-info"><span class="secno">9.2 </span>Device Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class="secno">9.2.1 </span>Callback <span class="formerLink"><code>MediaDeviceInfoCallback</code></span> Parameters</a></li><li class="tocline"><a class="tocxref" href="#dictionary-mediadeviceinfo-members"><span class="secno">9.22 </span>Dictionary <span class="formerLink"><code>MediaDeviceInfo</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#local-content"><span class="secno">10. </span>Obtaining local multimedia content</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia-interface-extensions"><span class="secno">10.1 </span>NavigatorUserMedia Interface Extensions</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">10.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamconstraints"><span class="secno">10.2 </span>MediaStreamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">10.2.1 </span>Dictionary <span class="formerLink"><code>MediaStreamConstraints</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediasuccesscallback"><span class"secno">10.3 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">10.3.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaSuccessCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediaerrorcallback"><span class="secno">10.4 </span>NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">10.4.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaErrorCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#implementation-suggestions"><span class="secno">10.5 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">11. </span>Constrainable Pattern</a><ul class"toc"><li class="tocline"><a class="tocxref" href="#interface-definition"><span class="secno">11.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-6"><span class="secno">11.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno">11.1.2 </span>Methods</a></li><li class="tocline"><a class="tocxref" href="#applyconstraints-failure-callback"><span class="secno">11.1.3 </span>applyConstraints Failure Callback</a><ul class="toc"></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#registry"><span class="secno">11.2 </span>The Property Registry</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraindoublerange-members"><span class="secno">11.2.1 </span>Dictionary <span class="formerLink"><code>ConstrainDoubleRange</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#dictionary-constrainlongrange-members"><span class="secno">11.2.2 </span>Dictioary <span class="formerLink"><code>ConstrainLongRange</code></span> Members</a></li></ul></li><li class="tocline"><a class="tocxref" href="#capabilities"><span class="secno">11.3 </span>Capabilities</a></li><li class="tocline"><a class="tocxref" href="#settings"><span class="secno">11.4 </span><span>Settings</span> + </a></li><li class="tocline"><a class="tocxref" href="#constraints"><span class="secno">11.5 </span><span>Constraints and ConstraintSet</span> + </a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraints-members"><span class="secno">11.5.1 </span>Dictionary <span class="formerLink"><code>Constraints</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">12. </span>Examples</a></li><li class="tocline"><a class="tocxref" href="#error-names"><span class="secno">13. </span>Error Names</a></li><li class="tocline"><a class="tocxref" href="#iana-registrations"><span class="secno">14. </span>IANA Registrations</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#track-property-registrations"><span class="secno">14.1 </span>Track Property Registrations</a></li></ul></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">15. </span>Change Log</a></li><li class="tocline"><a class="tocxref" href="#acknowledgements"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a class="tocxref" href="#reerences"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#normative-references"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a class="tocxref" href="#informative-references"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></section> - <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" class="informative" id="intro"> + <section rel="bibo:Chapter" resource="#intro" typeof="bibo:Chapter" class="informative" id="intro"> <!--OddPage--><h2 id="h2_intro" role="heading" aria-level="1"><span class="secno">1. </span>Introduction</h2><p><em>This section is non-normative.</em></p> @@ -608,7 +607,7 @@ </section> - <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" id="conformance"><!--OddPage--><h2 id="h2_conformance" role="heading" aria-level="1"><span class="secno">2. </span>Conformance</h2> + <section rel="bibo:Chapter" resource="#conformance" typeof="bibo:Chapter" id="conformance"><!--OddPage--><h2 id="h2_conformance" role="heading" aria-level="1"><span class="secno">2. </span>Conformance</h2> <p> As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is @@ -734,7 +733,7 @@ <p>Although settings are a property of the source, they are only exposed to the application through the tracks attached to - the source. The <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a> interface provides this + the source. The Constrainable interface provides this exposure.</p> @@ -779,7 +778,7 @@ corresponding capability that describes whether it is supported by the source and if so, what the range of supported values are. As with settings, capabilities are exposed to the - application via the <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a> interface.</p> + application via the Constrainable interface.</p> <p>The values of the supported capabilities must be normalized to the @@ -812,7 +811,7 @@ <p>Constraints are exposed on tracks via - the <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a> interface, which includes an API for + the Constrainable interface, which includes an API for dynamically changing constraints. Note that <a class="internalDFN" href="#dom-navigator-getusermedia">getUserMedia()</a> also permits an initial set of constraints to be applied when the track is first @@ -820,7 +819,7 @@ <p>It is possible for two tracks that share a unique source to - apply contradictory constraints. The <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a> + apply contradictory constraints. The Constrainable interface supports the calling of an error handler when the conflicting constraint is requested. After successful application of constraints on a track (and its associated @@ -848,7 +847,7 @@ </section> - <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" id="stream-api"> + <section rel="bibo:Chapter" resource="#stream-api" typeof="bibo:Chapter" id="stream-api"> <!--OddPage--><h2 id="h2_stream-api" role="heading" aria-level="1"><span class="secno">4. </span>MediaStream API</h2> @@ -872,6 +871,15 @@ not need to be synchronized.</p> + <div class="note"><div id="h_note_1" role="heading" aria-level="3" class="note-title"><span>Note</span></div><p class="">While the intent is to synchronize tracks, it could be + better in some circumstances to permit tracks to lose synchronization.In + particular, when tracks are remotely sourced and real-time [<cite><a href="#bib-WEBRTC10" class="bibref">WEBRTC10</a></cite>], + it can be better to allow loss of synchronization than to accumulate + delays or risk glitches and other artifacts. Implementations are expected + to understand the implications of choices regarding synchronization of + playback and the effect that these have on user perception.</p></div> + + <p>Each track in a MediaStream object has a corresponding <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object.</p> @@ -990,13 +998,6 @@ <li> - <p>If <var>track</var> has <a href="#track-ended">ended</a>, - then abort these steps and continue with the next track (if - any).</p> - </li> - - - <li> <p>Add <var>track</var> to <var>stream</var>'s <a href="#track-set">track set</a>.</p> </li> </ol> @@ -1017,7 +1018,8 @@ <li> <p>If <var>stream</var>'s <a href="#track-set">track set</a> is - empty, set <var>stream</var>'s <code><a href="#dom-mediastream-active">active</a></code> attribute to + empty or only contains ended tracks, set <var>stream</var>'s + <code><a href="#dom-mediastream-active">active</a></code> attribute to <code>false</code>, otherwise set it to <code>true</code>.</p> </li> @@ -1053,7 +1055,7 @@ <code>ImageCapture</code> [<cite><a href="#bib-mediastream-imagecap" class="bibref">mediastream-imagecap</a></cite>].</p> - <div class="note"><div id="h_note_1" role="heading" aria-level="3" class="note-title"><span>Note</span></div><p class=""><code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> consumers must be able to + <div class="note"><div id="h_note_2" role="heading" aria-level="3" class="note-title"><span>Note</span></div><p class=""><code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> consumers must be able to handle tracks being added and removed. This behavior is specified per consumer.</p></div> @@ -1303,11 +1305,7 @@ action is outside the control of the application. This could be as a result of the user hitting a hardware switch, or toggling a control in the operating system or browser chrome. A track can also be muted by - the user agent. For example, a track that is a member of a - <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code>, received via a - <code><a class="internalDFN" href="#dfn-rtcpeerconnection">RTCPeerConnection</a></code> [<cite><a href="#bib-WEBRTC10" class="bibref">WEBRTC10</a></cite>], is muted if the - application on the other side disables the corresponding track in the - <code>MediaStream</code> being sent.</p> + the user agent.</p> <p>Applications are able to <dfn id="track-enabled">enable</dfn> or @@ -1356,6 +1354,13 @@ to <code>ended</code>.</p> </li> + <li> + <p>Detach <var>track's</var> source.</p> + + + <p>If no other <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> is using + the same source, the source will be <a href="#source-stopped">stopped</a>.</p> + </li> <li> <p>Fire a simple event named <code><a href="#event-mediastreamtrack-ended">ended</a></code> at the object.</p> @@ -1378,7 +1383,7 @@ <p>Whether <code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></code> were provided at track initialization time or need to be established later at runtime, the - APIs defined in the <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a> Interface allow the retrieval + APIs defined in the Constrainable Interface allow the retrieval and manipulation of the constraints currently established on a track.</p> @@ -1388,7 +1393,7 @@ constraints (no duplicates), and an optional ordered list of individual constraint objects (may contain duplicates). The internal stored constraint structure is exposed to the application by the - <code><a class="internalDFN" href="#dfn-constraints">constraints</a></code> attribute, and may be modified by the + <code>constraints</code> attribute, and may be modified by the <code><a class="internalDFN" href="#dfn-applyconstraints">applyConstraints()</a></code> method.</p> @@ -1400,19 +1405,18 @@ re-evaluate the constraints of each track affected by that source change.</p> - <p>If the <code><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></code> event named + <p>If the <code><a class="idlType" href="#idl-def-MediaStreamError"><code>MediaStreamError</code></a></code> event named 'overconstrained' is thrown, the track <em title="MUST" class="rfc2119">MUST</em> be muted until either new satisfiable constraints are applied or the existing constraints become satisfiable.</p> </section> - <section id="interface-definition"> - <h4 id="h4_interface-definition" role="heading" aria-level="3"><span class="secno">4.3.3 </span>Interface Definition</h4> + <section rel="bibo:Chapter" resource="#media-stream-track-interface-definition" typeof="bibo:Chapter" id="media-stream-track-interface-definition"> + <h4 id="h4_media-stream-track-interface-definition" role="heading" aria-level="3"><span class="secno">4.3.3 </span>Interface Definition</h4> + - <pre class="idl"><span class="idlImplements"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a> implements <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a>;</span></pre><div class="idlImplementsDesc"> - </div> <pre class="idl"><span class="idlInterface" id="idl-def-MediaStreamTrack">interface <span class="idlInterfaceID">MediaStreamTrack</span> : <span class="idlSuperclass">EventTarget</span> { @@ -1428,9 +1432,13 @@ <span class="idlAttribute"> readonly attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaStreamTrackState"><code>MediaStreamTrackState</code></a></span> <span class="idlAttrName"><a href="#widl-MediaStreamTrack-readyState">readyState</a></span>;</span> <span class="idlAttribute"> attribute <span class="idlAttrType">EventHandler</span> <span class="idlAttrName"><a href="#widl-MediaStreamTrack-onstarted">onstarted</a></span>;</span> <span class="idlAttribute"> attribute <span class="idlAttrType">EventHandler</span> <span class="idlAttrName"><a href="#widl-MediaStreamTrack-onended">onended</a></span>;</span> -<span class="idlMethod"> <span class="idlMethType"><a class="internalDFN" href="#dfn-settings">Settings</a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-getNativeSettings-Settings">getNativeSettings</a></span> ();</span> -<span class="idlMethod"> <span class="idlMethType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-clone-MediaStreamTrack">clone</a></span> ();</span> -<span class="idlMethod"> <span class="idlMethType">void</span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-stop-void">stop</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a class="internalDFN" href="#dfn-settings">Settings</a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-getNativeSettings-Settings">getNativeSettings</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-clone-MediaStreamTrack">clone</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType">void</span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-stop-void">stop</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a class="internalDFN" href="#dfn-capabilities">Capabilities</a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-getCapabilities-Capabilities">getCapabilities</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-getConstraints-MediaTrackConstraints">getConstraints</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType"><a class="internalDFN" href="#dfn-settings">Settings</a></span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-getSettings-Settings">getSettings</a></span> ();</span> +<span class="idlMethod"> <span class="idlMethType">void</span> <span class="idlMethName"><a href="#widl-MediaStreamTrack-applyConstraints-void-MediaTrackConstraints-constraints-VoidFunction-successCallback-ConstraintErrorCallback-errorCallback">applyConstraints</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></span> <span class="idlParamName">constraints</span></span>, <span class="idlParam"><span class="idlParamType">VoidFunction</span> <span class="idlParamName">successCallback</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-ConstraintErrorCallback"><code>ConstraintErrorCallback</code></a></span> <span class="idlParamName">errorCallback</span></span>);</span> };</span></pre><section id="attributes-1"><h5 id="h5_attributes-1" role="heading" aria-level="4"><span class="secno">4.3.3.1 </span>Attributes</h5><dl class="attributes"><dt id="widl-MediaStreamTrack-enabled"><code>enabled</code> of type <span class="idlAttrType">boolean</span>, </dt><dd> <p>The <dfn id="dom-mediastreamtrack-enabled"><code>MediaStreamTrack.enabled</code></dfn> attribute, on getting, <em title="MUST" class="rfc2119">MUST</em> return the last value to which it was @@ -1440,7 +1448,7 @@ disable it otherwise.</p> - <div class="note"><div id="h_note_2" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">Thus, after a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> + <div class="note"><div id="h_note_3" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">Thus, after a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> is disassociated from its track, its <code><a href="#dom-mediastreamtrack-enabled">enabled</a></code> attribute still changes value when set; it just doesn't do anything with that new value.</p></div> @@ -1475,7 +1483,7 @@ attribute <em title="MUST" class="rfc2119">MUST</em> instead return the empty string.</p> - <div class="note"><div id="h_note_3" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">Thus the <code><a href="#dom-mediastreamtrack-kind">kind</a></code> and <code title="dom-MediaStreamTrack-label"><a href="#dom-mediastreamtrack-label">label</a></code> attributes do not + <div class="note"><div id="h_note_4" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">Thus the <code><a href="#dom-mediastreamtrack-kind">kind</a></code> and <code title="dom-MediaStreamTrack-label"><a href="#dom-mediastreamtrack-label">label</a></code> attributes do not change value, even if the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object is disassociated from its corresponding track.</p></div> </dd><dt id="widl-MediaStreamTrack-muted"><code>muted</code> of type <span class="idlAttrType">boolean</span>, readonly </dt><dd> @@ -1492,7 +1500,7 @@ interface.</dd><dt id="widl-MediaStreamTrack-_readonly"><code>readonly</code> of type <span class="idlAttrType">boolean</span>, readonly </dt><dd>If the track (audio or video) is backed by a read-only source such as a file, or the track source is a local microphone or camera, but is shared so that constraints applied to the track cannot modify - the source's state, the <dfn id="dom-mediastreamtrack-readonly"><code>readonly</code></dfn> attribute + the source's settings, the <dfn id="dom-mediastreamtrack-readonly"><code>readonly</code></dfn> attribute <em title="MUST" class="rfc2119">MUST</em> return the value <code>true</code>. Otherwise, it must return the value <code>false</code>.</dd><dt id="widl-MediaStreamTrack-readyState"><code>readyState</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaStreamTrackState"><code>MediaStreamTrackState</code></a></span>, readonly </dt><dd> <p>The <dfn id="dom-mediastreamtrack-readystate"><code>readyState</code></dfn> @@ -1501,7 +1509,10 @@ </dd><dt id="widl-MediaStreamTrack-remote"><code>remote</code> of type <span class="idlAttrType">boolean</span>, readonly </dt><dd>If the track is sourced by an <code>RTCPeerConnection</code>, the <dfn id="dom-mediastreamtrack-remote"><code>remote</code></dfn> attribute <em title="MUST" class="rfc2119">MUST</em> return the value <code>true</code>. Otherwise, it must - return the value <code>false</code>.</dd></dl></section><section id="methods-1"><h5 id="h5_methods-1" role="heading" aria-level="4"><span class="secno">4.3.3.2 </span>Methods</h5><dl class="methods"><dt id="widl-MediaStreamTrack-clone-MediaStreamTrack"><code>clone</code></dt><dd> + return the value <code>false</code>.</dd></dl></section><section id="methods-1"><h5 id="h5_methods-1" role="heading" aria-level="4"><span class="secno">4.3.3.2 </span>Methods</h5><dl class="methods"><dt id="widl-MediaStreamTrack-applyConstraints-void-MediaTrackConstraints-constraints-VoidFunction-successCallback-ConstraintErrorCallback-errorCallback"><code>applyConstraints</code></dt><dd> + + See <a href="#constraintable-interface">Constrainable Interface</a> + for the definition of this method.<table class="parameters"><tbody><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">constraints</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc">A new constraint structure to apply to this object.</td></tr><tr><td class="prmName">successCallback</td><td class="prmType"><code>VoidFunction</code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc">Called if the required constraints can be satisfied.</td></tr><tr><td class="prmName">errorCallback</td><td class="prmType"><code><a class="idlType" href="#idl-def-ConstraintErrorallback"><code>ConstraintErrorCallback</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptFalse"><span role="img" aria-label="False">✘</span></td><td class="prmDesc">Called if the required constraints cannot be satisfied.</td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-MediaStreamTrack-clone-MediaStreamTrack"><code>clone</code></dt><dd> <p>Clones the given <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>.</p> @@ -1524,7 +1535,7 @@ <li> <p>Let <var>trackClone</var> inherit this track's underlying - source, <code><a href="#dom-mediastreamtrack-kind">kind</a></code>, <code><a href="#dom-mediastreamtrack-label">label</a></code> and + source, <code><a href="#dom-mediastreamtrack-kind">kind</a></code>, <code><a href="#dom-mediastreamtrack-label">label</a></code>, <code><a href="#dom-mediastreamtrack-readystate">readyState</a></code>, and <code><a href="#dom-mediastreamtrack-enabled">enabled</a></code> attributes, as well as its currently active constraints.</p> </li> @@ -1534,7 +1545,12 @@ <p>Return <var>trackClone</var>.</p> </li> </ol> - <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code></div></dd><dt id="widl-MediaStreamTrack-getNativeSettings-Settings"><code>getNativeSettings</code></dt><dd>The <dfn id="dfn-getnativesettings">getNativeSettings()</dfn> method returns the + <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code></div></dd><dt id="widl-MediaStreamTrack-getCapabilities-Capabilities"><code>getCapabilities</code></dt><dd> + <p>See <a href="#constraintable-interface">Constrainable Interface</a> + for the definition of this method.</p> + <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-capabilities">Capabilities</a></code></div></dd><dt id="widl-MediaStreamTrack-getConstraints-MediaTrackConstraints"><code>getConstraints</code></dt><dd>See <a href="#constraintable-interface">Constrainable Interface</a> + for the definition of this method. + <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaTrackConstraints"><code>MediaTrackConstraints</code></a></code></div></dd><dt id="widl-MediaStreamTrack-getNativeSettings-Settings"><code>getNativeSettings</code></dt><dd>The <dfn id="dfn-getnativesettings">getNativeSettings()</dfn> method returns the native settings of all the properties of the object. Note that the actual setting of a property <em title="must" class="rfc2119">must</em> be a single value. Unlike the return value from the <code><a class="internalDFN" href="#dfn-getsettings">getSettings()</a></code> @@ -1545,7 +1561,9 @@ associated with this source, only to the extent necessary to reflect the native settings of the source device, and c) <em title="MUST" class="rfc2119">MUST</em> be the same for all tracks associated with this same - source.<div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-settings">Settings</a></code></div></dd><dt id="widl-MediaStreamTrack-stop-void"><code>stop</code></dt><dd> + source.<div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-settings">Settings</a></code></div></dd><dt id="widl-MediaStreamTrack-getSettings-Settings"><code>getSettings</code></dt><dd>See <a href="#constraintable-interface">Constrainable Interface</a> + for the definition of this method. +<div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="internalDFN" href="#dfn-settings">Settings</a></code></div></dd><dt id="widl-MediaStreamTrack-stop-void"><code>stop</code></dt><dd> <p>When a <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object's <dfn id="dom-mediastreamtrack-stop"><code>stop()</code></dfn> method is invoked, the user agent <em title="MUST" class="rfc2119">MUST</em> run following steps:</p> @@ -1630,10 +1648,31 @@ <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>s. The source is a local audio-producing microphone source.</td></tr></tbody></table> </section> - +<section rel="bibo:Chapter" resource="#media-track-constraints" typeof="bibo:Chapter" id="media-track-constraints"> + <h4 id="h4_media-track-constraints" role="heading" aria-level="3"><span class="secno">4.3.5 </span>MediaTrackConstraints</h4> + <pre class="idl"><span class="idlDictionary" id="idl-def-MediaTrackConstraints">dictionary <span class="idlDictionaryID">MediaTrackConstraints</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MediaTrackConstraintSet"><code>MediaTrackConstraintSet</code></a></span> { +<span class="idlMember"> <span class="idlMemberType">sequence<<a class="idlType" href="#idl-def-MediaTrackConstraintSet"><code>MediaTrackConstraintSet</code></a>></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraints-advanced">advanced</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType">sequence<DOMString></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraints-require">require</a></span>;</span> +};</span></pre><section id="dictionary-mediatrackconstraints-members"><h5 id="h5_dictionary-mediatrackconstraints-members" role="heading" aria-level="4"><span class="secno">4.3.5.1 </span>Dictionary <a href="#idl-def-MediaTrackConstraints" class="idlType"><code>MediaTrackConstraints</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-MediaTrackConstraints-advanced"><code>advanced</code> of type <span class="idlMemberType">sequence<<a class="idlType" href="#idl-def-MediaTrackConstraintSet"><code>MediaTrackConstraintSet</code></a>></span></dt><dd>See <a href="#constraints">Constraints and ConstraintSet</a> for + the definition of this element.</dd><dt id="widl-MediaTrackConstraints-require"><code>require</code> of type <span class="idlMemberType">sequence<DOMString></span></dt><dd>See <a href="#constraints">Constraints and ConstraintSet</a> for + the definition of this element.</dd></dl></section> + + <pre class="idl"><span class="idlDictionary" id="idl-def-MediaTrackConstraintSet">dictionary <span class="idlDictionaryID">MediaTrackConstraintSet</span> { +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-width">width</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-height">height</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-aspectRatio">aspectRatio</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-frameRate">frameRate</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType">ConstrainVideoFacingMode</span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-facingMode">facingMode</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-volume">volume</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sampleRate">sampleRate</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sampleSize">sampleSize</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType">boolean</span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-echoCancelation">echoCancelation</a></span>;</span> +<span class="idlMember"> <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDOMString"><code>ConstrainDOMString</code></a></span> <span class="idlMemberName"><a href="#widl-MediaTrackConstraintSet-sourceId">sourceId</a></span>;</span> +};</span></pre><section id="dictionary-mediatrackconstraintset-members"><h5 id="h5_dictionary-mediatrackconstraintset-members" role="heading" aria-level="4"><span class="secno">4.3.5.2 </span>Dictionary <a href="#idl-def-MediaTrackConstraintSet" class="idlType"><code>MediaTrackConstraintSet</code></a> Members</h5><dl class="dictionary-members"><dt id="widl-MediaTrackConstraintSet-aspectRatio"><code>aspectRatio</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-echoCancelation"><code>echoCancelation</code> of type <span class="idlMemberType">boolean</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-facingMode"><code>facingMode</code> of type <span class="idlMemberType">ConstrainVideoFacingMode</span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-frameRate"><code>frameRate</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDouble><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-height"><code>height</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sampleRate"><code>sampleRate</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sampleSize"><code>sampleSize</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-sourceId"><code>sourceId</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainDOMString"><code>ConstrainDOMString</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-volume"><code>volume</code> of type <span class="idlMemberType"><a class="idlType" href="#id-def-ConstrainDouble"><code>ConstrainDouble</code></a></span></dt><dd> </dd><dt id="widl-MediaTrackConstraintSet-width"><code>width</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-ConstrainLong"><code>ConstrainLong</code></a></span></dt><dd> </dd></dl></section> + </section> <section id="isolated-media-streams"> - <h4 id="h4_isolated-media-streams" role="heading" aria-level="3"><span class="secno">4.3.5 </span>Isolated Media Streams</h4> + <h4 id="h4_isolated-media-streams" role="heading" aria-level="3"><span class="secno">4.3.6 </span>Isolated Media Streams</h4> <p>When the <code><dfn id="dfn-peeridentity">peerIdentity</dfn></code> option is supplied to @@ -1719,8 +1758,8 @@ </section> </section> - <section id="the-model-sources-sinks-constraints-and-states"> - <!--OddPage--><h2 id="h2_the-model-sources-sinks-constraints-and-states" role="heading" aria-level="1"><span class="secno">5. </span>The model: sources, sinks, constraints, and states</h2> + <section id="the-model-sources-sinks-constraints-and-settings"> + <!--OddPage--><h2 id="h2_the-model-sources-sinks-constraints-and-settings" role="heading" aria-level="1"><span class="secno">5. </span>The model: sources, sinks, constraints, and settings</h2> <p>Browsers provide a media pipeline from sources to sinks. In a browser, @@ -1745,7 +1784,7 @@ pipeline and have the source produce content more suitable for display.</p> - <div class="note"><div id="h_note_4" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class=""> + <div class="note"><div id="h_note_5" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class=""> <p><strong>Note:</strong> This sort of feedback loop is obviously just enabling an "optimization", but it's a non-trivial gain. This optimization can save battery, allow for less network congestion, @@ -1776,7 +1815,7 @@ acts simultaneously as both a sink <strong>and</strong> a source for over-the-network streams. As a sink, it has source transformational capabilities (e.g., lowering bit-rates, scaling-up or down resolutions, - adjusting frame-rates), and as a source it could have its own states + adjusting frame-rates), and as a source it could have its own settings changed by a track source (though in this specification sources with the <code><a class="internalDFN" href="#dom-mediastreamtrack-remote">remote</a></code> attribute set to true do not consider the current constraints applied to a track).</p> @@ -1807,7 +1846,7 @@ sink Z is not applying any scaling.</p> - <p>Using the <a class="idlType" href="#idl-def-Constrainable"><code>Constrainable</code></a> interface, one of the tracks + <p>Using the Constrainable interface, one of the tracks requests a higher resolution (1920 by 1200 pixels) from the home client's video source.</p> <img alt="Changing media stream source effects: after the requested change" src="images/change_states_after.png"> @@ -1871,7 +1910,7 @@ peer connections and other sinks.</p> - <p>It is possible that <a class="internalDFN" href="#dfn-constraints">constraints</a> can be applied to a + <p>It is possible that constraints can be applied to a track which a source is unable to satisfy, either because the [1286 lines skipped]
Received on Thursday, 8 May 2014 02:05:56 UTC