CVS 2011/webrtc/editor

Update of /sources/public/2011/webrtc/editor
In directory roscoe:/tmp/cvs-serv14100

Modified Files:
	getusermedia.html 
Log Message:
Added 20131225 archived version.

--- /sources/public/2011/webrtc/editor/getusermedia.html	2013/11/05 18:10:44	1.25
+++ /sources/public/2011/webrtc/editor/getusermedia.html	2013/12/26 03:19:20	1.26
@@ -466,11 +466,11 @@
   </p>
   <h1 class="title p-name" id="title" property="dcterms:title">Media Capture and Streams</h1>
   
-  <h2 id="w3c-editor-s-draft-05-november-2013" property="dcterms:issued" datatype="xsd:dateTime" content="2013-11-05T16:09:50.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2013-11-05">05 November 2013</time></h2>
+  <h2 id="w3c-editor-s-draft-25-december-2013" property="dcterms:issued" datatype="xsd:dateTime" content="2013-12-26T01:13:15.000Z"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft <time class="dt-published" datetime="2013-12-25">25 December 2013</time></h2>
   <dl>
     
       <dt>This version:</dt>
-      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20131105/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20131105/getusermedia.html</a></dd>
+      <dd><a class="u-url" href="http://dev.w3.org/2011/webrtc/editor/archives/20131225/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20131225/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>
     
@@ -483,7 +483,7 @@
     
       
         <dt>Previous editor's draft:</dt>
-        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20131017/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20131017/getusermedia.html</a></dd>
+        <dd><a href="http://dev.w3.org/2011/webrtc/editor/archives/20131105/getusermedia.html">http://dev.w3.org/2011/webrtc/editor/archives/20131105/getusermedia.html</a></dd>
       
     
     
@@ -579,7 +579,7 @@
       
     
   
-</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><li class="tocline"><a class="tocxref" href="#video-and-audio-tracks"><span class="secno">4.5 </span>Video and Audio Tracks</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#videostreamtrack-interface"><span class="scno">4.5.1 </span>VideoStreamTrack interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">4.5.1.1 </span>Constructors</a></li></ul></li><li class="tocline"><a class="tocxref" href="#audiostreamtrack"><span class="secno">4.5.2 </span>AudioStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-3"><span class="secno">4.5.2.1 </span>Constructors</a></li></ul></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="#event-summary"><span class="secno">7. </span>Event summary</a></li><li class="tocline"><a class="tocxref" href="#enumerating-devices"><span class="secno">8. </span>Enumerating Local Media Devices</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia"><span class="secno">8.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-2"><span class="secno">8.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxrf" href="#device-info"><span class="secno">8.2 </span>Device Info</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-mediadeviceinfocallback-parameters"><span class="secno">8.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">8.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">9. </span>Obtaining local multimedia content</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#navigatorusermedia-1"><span class="secno">9.1 </span>NavigatorUserMedia</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#methods-3"><span class="secno">9.1.1 </span>Methods</a></li></ul></li><li class="tocline"><a class="tocxref" href="#mediastreamconstraints"><span class="secno">9.2 <span>MediaStreamConstraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-mediastreamconstraints-members"><span class="secno">9.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">9.3 </span>NavigatorUserMediaSuccessCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#callback-navigatorusermediasuccesscallback-parameters"><span class="secno">9.3.1 </span>Callback <span class="formerLink"><code>NavigatorUserMediaSuccessCallback</code></span> Parameters</a></li></ul></li><li class="tocline"><a class="tocxref" href="#navigatorusermediaerror-and-navigatorusermediaerrorcallback"><span class="secno">9.4 </span>NavigatorUserMediaError and NavigatorUserMediaErrorCallback</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-4"><span class="secno">9.4.1 </span>Attributes</a></li><liclass="tocline"><a class="tocxref" href="#callback-navigatorusermediaerrorcallback-parameters"><span class="secno">9.4.2 </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">9.5 </span>Implementation Suggestions</a></li></ul></li><li class="tocline"><a class="tocxref" href="#constrainable-interface"><span class="secno">10. </span>Constrainable Interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#interface-definition-1"><span class="secno">10.1 </span>Interface Definition</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#attributes-5"><span class="secno">10.1.1 </span>Attributes</a></li><li class="tocline"><a class="tocxref" href="#methods-4"><span class="secno">10.1.2 </span>Methods</a></li><li class="tocline"><a class="tocxref" href="#applyconstraints-failure-callback"><span class="secno">10.1.3 </span>applyCostraints Failure Callback</a><ul class="toc"></ul></li><li class="tocline"><a class="tocxref" href="#capabilities-constraints-and-settings"><span class="secno">10.1.4 </span>Capabilities, Constraints, and Settings</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#registry"><span class="secno">10.1.4.1 </span>The Property Registry</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#propertyvaluerange"><span class="secno">10.1.4.1.1 </span>PropertyValueRange</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-propertyvaluerange-members"><span class="secno">10.1.4.1.1.1 </span>Dictionary <span class="formerLink"><code>PropertyValueRange</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#capabilities"><span class="secno">10.1.4.2 </span>Capabilities</a></li><li class="tocline"><a class="tocxref" href="#settings"><span class="secno">10.1.4.3 </span>Settings</a></li><li class="tocline"><a class="tocxref" href="#constrints"><span class="secno">10.1.4.4 </span>Constraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraints-members"><span class="secno">10.1.4.4.1 </span>Dictionary <span class="formerLink"><code>Constraints</code></span> Members</a></li><li class="tocline"><a class="tocxref" href="#constraintset"><span class="secno">10.1.4.4.2 </span>ConstraintSet</a></li><li class="tocline"><a class="tocxref" href="#constraint"><span class="secno">10.1.4.4.3 </span>Constraint</a></li></ul></li></ul></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#examples"><span class="secno">11. </span>Examples</a></li><li class="tocline"><a class="tocxref" href="#iana-registrations"><span class="secno">12. </span>IANA Registrations</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#track-property-registrations"><span class="secno">12.1 </span>Track Property Registrations</a></li></ul></li><li class="tocline"><a class="tocxref" href="#change-log"><span class="secno">1. </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="#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></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="#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><li class="tocline"><a class="tocxref" href="#video-and-audio-tracks"><span class="secno">4.5 </span>Video and Audio Tracks</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#videostreamtrack-interface"><span class="scno">4.5.1 </span>VideoStreamTrack interface</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-2"><span class="secno">4.5.1.1 </span>Constructors</a></li></ul></li><li class="tocline"><a class="tocxref" href="#audiostreamtrack"><span class="secno">4.5.2 </span>AudioStreamTrack</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#constructors-3"><span class="secno">4.5.2.1 </span>Constructors</a></li></ul></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>Attributes</a></li><li class="tocline"><a class="tocxref" href="#constructors-4"><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"><pan 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="#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.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>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="#navigatorusermediauccesscallback"><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>Constrinable 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><li class="tocline"><a class="tocxref" href="#capabilities-constraints-and-settings"><span class="secno">11.1.4 </span>Capabilities, Constraints, and Settings</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#registry"><span class="secno">11.1.4.1 </span>The Property Registry</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#propertyvaluerange"><span class="secno">11.1.4.1.1 </span>PropertyValueRange</a><ul class"toc"><li class="tocline"><a class="tocxref" href="#dictionary-propertyvaluerange-members"><span class="secno">11.1.4.1.1.1 </span>Dictionary <span class="formerLink"><code>PropertyValueRange</code></span> Members</a></li></ul></li></ul></li><li class="tocline"><a class="tocxref" href="#capabilities"><span class="secno">11.1.4.2 </span>Capabilities</a></li><li class="tocline"><a class="tocxref" href="#settings"><span class="secno">11.1.4.3 </span>Settings</a></li><li class="tocline"><a class="tocxref" href="#constraints"><span class="secno">11.1.4.4 </span>Constraints</a><ul class="toc"><li class="tocline"><a class="tocxref" href="#dictionary-constraints-members"><span class="secno">11.1.4.4.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.1.4.4.2 </span>ConstraintSet</a></li><li class="tocline"><a class="tocxref" href="#constraint"><span class="secno">11.1.4.4.3 </span>Constraint<a></li></ul></li></ul></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="#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></l></ul></li></ul></section>
 
   
 
@@ -929,8 +929,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-inactive">inactive</a></code> attribute to
-          <code>true</code>, otherwise set it to <code>false</code>.</p>
+          empty, 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>
 
         <li>
@@ -973,11 +973,11 @@
 
       <p>When a <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> goes from being active to
       inactive, the user agent <em title="MUST" class="rfc2119">MUST</em> queue a task that sets the object's
-      <code><a href="#dom-mediastream-inactive">inactive</a></code> attribute
-      to <code>true</code> and fire a simple event named <code><a href="#event-mediastream-inactive">inactive</a></code> at the object. When a
+      <code><a href="#dom-mediastream-active">active</a></code> attribute
+      to <code>false</code> and fire a simple event named <code><a href="#event-mediastream-inactive">inactive</a></code> at the object. When a
       <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> goes from being inactive to active, the
-      user agent <em title="MUST" class="rfc2119">MUST</em> queue a task that sets the object's <code><a href="#dom-mediastream-inactive">inactive</a></code> attribute to
-      <code>false</code> and fire a simple event named <code><a href="#event-mediastream-active">active</a></code> at the object.</p>
+      user agent <em title="MUST" class="rfc2119">MUST</em> queue a task that sets the object's <code><a href="#dom-mediastream-active">active</a></code> attribute to
+      <code>true</code> and fire a simple event named <code><a href="#event-mediastream-active">active</a></code> at the object.</p>
 
       <p>If the stream's activity status changed due to a user request, the task
       source for this <span title="concept-task">task</span> is the user
@@ -994,12 +994,23 @@
 <span class="idlMethod">    <span class="idlMethType">void</span>                       <span class="idlMethName"><a href="#widl-MediaStream-addTrack-void-MediaStreamTrack-track">addTrack</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> <span class="idlParamName">track</span></span>);</span>
 <span class="idlMethod">    <span class="idlMethType">void</span>                       <span class="idlMethName"><a href="#widl-MediaStream-removeTrack-void-MediaStreamTrack-track">removeTrack</a></span> (<span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> <span class="idlParamName">track</span></span>);</span>
 <span class="idlMethod">    <span class="idlMethType"><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></span>                <span class="idlMethName"><a href="#widl-MediaStream-clone-MediaStream">clone</a></span> ();</span>
-<span class="idlAttribute">    readonly    attribute <span class="idlAttrType">boolean</span>      <span class="idlAttrName"><a href="#widl-MediaStream-inactive">inactive</a></span>;</span>
+<span class="idlAttribute">    readonly    attribute <span class="idlAttrType">boolean</span>      <span class="idlAttrName"><a href="#widl-MediaStream-active">active</a></span>;</span>
 <span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span> <span class="idlAttrName"><a href="#widl-MediaStream-onactive">onactive</a></span>;</span>
 <span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span> <span class="idlAttrName"><a href="#widl-MediaStream-oninactive">oninactive</a></span>;</span>
 <span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span> <span class="idlAttrName"><a href="#widl-MediaStream-onaddtrack">onaddtrack</a></span>;</span>
 <span class="idlAttribute">                attribute <span class="idlAttrType">EventHandler</span> <span class="idlAttrName"><a href="#widl-MediaStream-onremovetrack">onremovetrack</a></span>;</span>
-};</span></pre><section id="constructors"><h4 id="h4_constructors" role="heading" aria-level="3"><span class="secno">4.2.1 </span>Constructors</h4><dl class="constructors"><dt id="widl-ctor-MediaStream"><code>MediaStream</code></dt><dd>See the <a href="#mediastream-constructor">MediaStream constructor algorithm</a><div><em>No parameters.</em></div></dd><dt id="widl-ctor-MediaStream--MediaStream-stream"><code>MediaStream</code></dt><dd>See the <a href="#mediastream-constructor">MediaStream constructor algorithm</a><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">stream</td><td class="prmType"><code></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"></td></tr></tbody></table></dd><dt id="widl-ctor-MediaStream--sequence-MediaStreamTrack--tracks"><code>MediaStream</code></dt><dd>Se the <a href="#mediastream-constructor">MediaStream constructor algorithm</a><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">tracks</td><td class="prmType"><code></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"></td></tr></tbody></table></dd></dl></section><section id="attributes"><h4 id="h4_attributes" role="heading" aria-level="3"><span class="secno">4.2.2 </span>Attributes</h4><dl class="attributes"><dt id="widl-MediaStream-id"><code>id</code> of type <span class="idlAttrType">DOMString</span>, readonly   </dt><dd>
+};</span></pre><section id="constructors"><h4 id="h4_constructors" role="heading" aria-level="3"><span class="secno">4.2.1 </span>Constructors</h4><dl class="constructors"><dt id="widl-ctor-MediaStream"><code>MediaStream</code></dt><dd>See the <a href="#mediastream-constructor">MediaStream constructor algorithm</a><div><em>No parameters.</em></div></dd><dt id="widl-ctor-MediaStream--MediaStream-stream"><code>MediaStream</code></dt><dd>See the <a href="#mediastream-constructor">MediaStream constructor algorithm</a><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">stream</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</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"></td></tr></tbody></table></dd><dt id="widl-ctor-MediaSteam--sequence-MediaStreamTrack--tracks"><code>MediaStream</code></dt><dd>See the <a href="#mediastream-constructor">MediaStream constructor algorithm</a><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">tracks</td><td class="prmType"><code>sequence&lt;<a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a>&gt;</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"></td></tr></tbody></table></dd></dl></section><section id="attributes"><h4 id="h4_attributes" role="heading" aria-level="3"><span class="secno">4.2.2 </span>Attributes</h4><dl class="attributes"><dt id="widl-MediaStream-active"><code>active</code> of type <span class="idlAttrType">boolean</span>, readonly   </dt><dd>
+          <p>The <dfn id="dom-mediastream-active"><code>MediaStream.active</code></dfn>
+          attribute returns true if the <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> is
+          active (see <a href="#stream-inactive">inactive</a>), and false
+          otherwise.</p>
+
+          <p>When a <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> object is created, its
+          <code><a href="#dom-mediastream-active">active</a></code>
+          attribute <em title="MUST" class="rfc2119">MUST</em> be set to true, unless stated otherwise (for example
+          by the <code><a href="#dom-mediastream">MediaStream()</a></code>
+          constructor algorithm).</p>
+        </dd><dt id="widl-MediaStream-id"><code>id</code> of type <span class="idlAttrType">DOMString</span>, readonly   </dt><dd>
           <p>When a <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> object is created, the
           user agent <em title="MUST" class="rfc2119">MUST</em> generate a globally unique identifier string, and
           <em title="MUST" class="rfc2119">MUST</em> initialize the object's <code><a href="#dom-mediastream-id">id</a></code> attribute to that string.
@@ -1014,16 +1025,6 @@
           <p>The <dfn id="dom-mediastream-id"><code>id</code></dfn>
           attribute <em title="MUST" class="rfc2119">MUST</em> return the value to which it was initialized when the
           object was created.</p>
-        </dd><dt id="widl-MediaStream-inactive"><code>inactive</code> of type <span class="idlAttrType">boolean</span>, readonly   </dt><dd>
-          <p>The <dfn id="dom-mediastream-inactive"><code>MediaStream.inactive</code></dfn>
-          attribute returns true if the <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> is
-          <a href="#stream-inactive">inactive</a>, and false otherwise.</p>
-
-          <p>When a <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> object is created, its
-          <code><a href="#dom-mediastream-inactive">inactive</a></code>
-          attribute <em title="MUST" class="rfc2119">MUST</em> be set to false, unless stated otherwise (for example
-          by the <code><a href="#dom-mediastream">MediaStream()</a></code>
-          constructor algorithm).</p>
         </dd><dt id="widl-MediaStream-onactive"><code>onactive</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>This event handler, of type <code><a href="#event-mediastream-active">active</a></code>, <em title="MUST" class="rfc2119">MUST</em> be supported by
         all objects implementing the <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code>
         interface.</dd><dt id="widl-MediaStream-onaddtrack"><code>onaddtrack</code> of type <span class="idlAttrType">EventHandler</span>,            </dt><dd>This event handler, of type <code><a href="#event-mediastream-addtrack">addtrack</a></code>, <em title="MUST" class="rfc2119">MUST</em> be supported by
@@ -1060,7 +1061,7 @@
               <p>Add <var>track</var> to <var>stream</var>'s <a href="#track-set">track set</a>.</p>
             </li>
           </ol>
-        <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">track</td><td class="prmType"><code></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"></td></tr></tbody></table><div><em>Return type: </em><code></code></div></dd><dt id="widl-MediaStream-clone-MediaStream"><code>clone</code></dt><dd>
+        <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">track</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</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"></td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd><dt id="widl-MediaStream-clone-MediaStream"><code>clone</code></dt><dd>
           <p>Clones the given <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code> and all its
             tracks.</p>
 
@@ -1090,7 +1091,7 @@
                 <a href="#track-set">track set</a>.</p>
               </li>
             </ol>
-        <div><em>No parameters.</em></div><div><em>Return type: </em><code></code></div></dd><dt id="widl-MediaStream-getAudioTracks-sequence-MediaStreamTrack"><code>getAudioTracks</code></dt><dd>
+        <div><em>No parameters.</em></div><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code></div></dd><dt id="widl-MediaStream-getAudioTracks-sequence-MediaStreamTrack"><code>getAudioTracks</code></dt><dd>
           <p>Returns a sequence of <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> objects
           representing the audio tracks in this stream.</p>
 
@@ -1101,14 +1102,14 @@
           <a href="#dom-mediastreamtrack-kind">kind</a></code> is equal to
           "<code>audio</code>". The conversion from the <a href="#track-set">track set</a> to the sequence is user agent defined and
           the order does not have to stable between calls.</p>
-        <div><em>No parameters.</em></div><div><em>Return type: </em><code></code></div></dd><dt id="widl-MediaStream-getTrackById-MediaStreamTrack-DOMString-trackId"><code>getTrackById</code></dt><dd>
+        <div><em>No parameters.</em></div><div><em>Return type: </em><code>sequence&lt;<a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a>&gt;</code></div></dd><dt id="widl-MediaStream-getTrackById-MediaStreamTrack-DOMString-trackId"><code>getTrackById</code></dt><dd>
           <p>The <dfn id="dom-mediastream-gettrackbyid"><code>getTrackById()</code></dfn>
           method <em title="MUST" class="rfc2119">MUST</em> return the first <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>
           object in this stream's <a href="#track-set">track set</a> whose
           <code><a href="#dom-mediastreamtrack-id">id</a></code> is equal to
           <var>trackId</var>. The method <em title="MUST" class="rfc2119">MUST</em> return null if no track matches
           the <var>trackId</var> argument.</p>
-        <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">trackId</td><td class="prmType"><code></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"></td></tr></tbody></table><div><em>Return type: </em><code></code>, nullable</div></dd><dt id="widl-MediaStream-getVideoTracks-sequence-MediaStreamTrack"><code>getVideoTracks</code></dt><dd>
+        <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">trackId</td><td class="prmType"><code>DOMString</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"></td></tr></tbody></table><div><em>Return type: </em><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code>, nullable</div></dd><dt id="widl-MediaStream-getVideoTracks-sequence-MediaStreamTrack"><code>getVideoTracks</code></dt><dd>
           <p>Returns a sequence of <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> objects
           representing the video tracks in this stream.</p>
 
@@ -1119,7 +1120,7 @@
           <a href="#dom-mediastreamtrack-kind">kind</a></code> is equal to
           "<code>video</code>". The conversion from the <a href="#track-set">track set</a> to the sequence is user agent defined and
           the order does not have to stable between calls.</p>
-        <div><em>No parameters.</em></div><div><em>Return type: </em><code></code></div></dd><dt id="widl-MediaStream-removeTrack-void-MediaStreamTrack-track"><code>removeTrack</code></dt><dd>
+        <div><em>No parameters.</em></div><div><em>Return type: </em><code>sequence&lt;<a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a>&gt;</code></div></dd><dt id="widl-MediaStream-removeTrack-void-MediaStreamTrack-track"><code>removeTrack</code></dt><dd>
           <p>Removes the given <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> from this
           <code><a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a></code>.</p>
 
@@ -1143,7 +1144,7 @@
               <a href="#track-set">track set</a>, remove it.</p>
             </li>
           </ol>
-        <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">track</td><td class="prmType"><code></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"></td></tr></tbody></table><div><em>Return type: </em><code></code></div></dd></dl></section>
+        <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">track</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</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"></td></tr></tbody></table><div><em>Return type: </em><code>void</code></div></dd></dl></section>
     </section>
 
     <section id="mediastreamtrack">
@@ -1156,8 +1157,16 @@
       <code><a href="#dom-navigator-getusermedia">getUserMedia()</a></code>
       .</p>
 
-      <p>Note that a web application can revoke all given permissions
-      with <code><a href="#dom-mediastreamtrack-stop">MediaStreamTrack.stop()</a></code>.</p>
+      <p>A script can indicate that a track no longer needs its source with the
+      <code><a href="#dom-mediastreamtrack-stop">MediaStreamTrack.stop()</a></code> method.
+      When all tracks using a source have been stopped, the given permission
+      for that source is revoked and the source is <dfn id="source-stopped">stopped</dfn>. If the data is being generated from a
+      live source (e.g., a microphone or camera), then the user agent <em title="SHOULD" class="rfc2119">SHOULD</em>
+      remove any active "on-air" indicator for that source. If the data is being
+      generated from a prerecorded source (e.g. a video file), any remaining
+      content in the file is ignored. An implementation may use a per source
+      reference count to keep track of source usage, but the specifics are out
+      of scope for this specification.</p>
 
       <section id="life-cycle-and-media-flow">
         <h4 id="h4_life-cycle-and-media-flow" role="heading" aria-level="3"><span class="secno">4.3.1 </span>Life-cycle and Media Flow</h4>
@@ -1215,9 +1224,8 @@
         (e.g., because the user rescinds the permission for the page to use the
         local camera, or because the data comes from a finite file and the file's
         end has been reached and the user has not requested that it be looped, or
-        because the UA has instructed the track to end for any reason, or because
-        the reference count of the track's underlying media source has reached
-        zero), it is said to be <dfn id="track-ended">ended</dfn>. When track instance
+        because the UA has instructed the track to end for any reason, it is
+        said to be <dfn id="track-ended">ended</dfn>. When track instance
         <var>track</var> ends for any reason other than the <code><a href="#dom-mediastreamtrack-stop">stop()</a></code> method being invoked on the
         <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object that represents
         <var>track</var>, the user agent <em title="MUST" class="rfc2119">MUST</em> queue a task that runs the
@@ -1399,7 +1407,7 @@
                 <p>Return <var>trackClone</var>.</p>
               </li>
             </ol>
-          <div><em>No parameters.</em></div><div><em>Return type: </em><code></code></div></dd><dt id="widl-MediaStreamTrack-stop-void"><code>stop</code></dt><dd>
+          <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-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>
@@ -1423,24 +1431,17 @@
               </li>
 
               <li>
-                <p>Permanently stop the generation of data for <var>track</var>'s
-                source. If the data is being generated from a live source (e.g.,
-                a microphone or camera), then the user agent <em title="SHOULD" class="rfc2119">SHOULD</em> remove any
-                active "on-air" indicator for that source. If the data is being
-                generated from a prerecorded source (e.g. a video file), any
-                remaining content in the file is ignored.</p>
-
-                <div class="note"><div id="h_note_4" role="heading" aria-level="5" class="note-title"><span>Note</span></div><p class="">This will effectively
-                <a href="#track-ended">end</a> all other
-                <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> objects sharing the same
-                source as <var>track</var>.</p></div>
+                <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>
             </ol>
 
             <p>The task source for the <span title="concept-task">tasks</span>
             queued for the <code><a href="#dom-mediastreamtrack-stop">stop()</a></code> method is the DOM
             manipulation task source.</p>
-          <div><em>No parameters.</em></div><div><em>Return type: </em><code></code></div></dd></dl></section>
+          <div><em>No parameters.</em></div><div><em>Return type: </em><code>void</code></div></dd></dl></section>
         
  
 
@@ -1515,7 +1516,7 @@
           may be added to any PeerConnection.
         </p>
 
-        <div class="note"><div id="h_note_5" role="heading" aria-level="4" class="note-title"><span>Note</span></div><p class=""> Open Issue: The editors worry that the above paragraph
+        <div class="note"><div id="h_note_4" role="heading" aria-level="4" class="note-title"><span>Note</span></div><p class=""> Open Issue: The editors worry that the above paragraph
         is just wrong. If the track can be added to a PeerConnection that
         is connect to another PeerConenction in the same application, the
         application could get access to the data. We sugest this should be changed
@@ -1558,7 +1559,7 @@
 };</span><br><br>[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-MediaStreamTrackEvent--DOMString-type-MediaStreamTrackEventInit-eventInitDict">Constructor</a></span> (<span class="idlParam"><span class="idlParamType">DOMString</span> <span class="idlParamName">type</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaStreamTrackEventInit"><code>MediaStreamTrackEventInit</code></a></span> <span class="idlParamName">eventInitDict</span></span>)</span>]
 interface <span class="idlInterfaceID">MediaStreamTrackEvent</span> : <span class="idlSuperclass">Event</span> {
 <span class="idlAttribute">    readonly    attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> <span class="idlAttrName"><a href="#widl-MediaStreamTrackEvent-track">track</a></span>;</span>
-};</span></pre><section id="constructors-1"><h4 id="h4_constructors-1" role="heading" aria-level="3"><span class="secno">4.4.1 </span>Constructors</h4><dl class="constructors"><dt id="widl-ctor-MediaStreamTrackEvent--DOMString-type-MediaStreamTrackEventInit-eventInitDict"><code>MediaStreamTrackEvent</code></dt><dd><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">type</td><td class="prmType"><code></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"></td></tr><tr><td class="prmName">eventInitDict</td><td class="prmType"><code></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"></td></tr></tbody></table></dd></dl></section><section id="attributes-2"><h id="h4_attributes-2" role="heading" aria-level="3"><span class="secno">4.4.2 </span>Attributes</h4><dl class="attributes"><dt id="widl-MediaStreamTrackEvent-track"><code>track</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span>, readonly   </dt><dd>
+};</span></pre><section id="constructors-1"><h4 id="h4_constructors-1" role="heading" aria-level="3"><span class="secno">4.4.1 </span>Constructors</h4><dl class="constructors"><dt id="widl-ctor-MediaStreamTrackEvent--DOMString-type-MediaStreamTrackEventInit-eventInitDict"><code>MediaStreamTrackEvent</code></dt><dd><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">type</td><td class="prmType"><code>DOMString</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"></td></tr><tr><td class="prmName">eventInitDict</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaStreamTrackEventInit"><code>MediaStreamTrackEventInit</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"></td></tr></tbody></table></dd></dl></section><section id="attributes-2"><h4 id="h4_attributes-2" role="heading" aria-level="3"><span class="secno">4.4.2 </span>Attributes</h4><dl class="attributes"><dt id="widl-MediaStreamTrackEvent-track"><code>track</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span>, readonly   </dt><dd>
           <p>The <dfn id="dom-mediastreamtrackevent-track"><code>track</code></dfn> attribute
           represents the <code><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></code> object associated
           with the event.</p>
@@ -1594,7 +1595,7 @@
         track as needed by the application, or created after-the-fact
         if the initial constraints are unknown to the application.</p>
 
-        <div class="note"><div id="h_note_6" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
+        <div class="note"><div id="h_note_5" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
           <p><strong>Example: </strong> <code><a class="idlType" href="#idl-def-VideoStreamTrack"><code>VideoStreamTrack</code></a></code>
           objects are instantiated in JavaScript using the new
           operator:</p>
@@ -1605,13 +1606,13 @@
 
         <pre class="idl"><span class="idlInterface" id="idl-def-VideoStreamTrack">[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-VideoStreamTrack--Constraints-videoConstraints">Constructor</a></span> (<span class="idlParam">optional <span class="idlParamType"><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></span> <span class="idlParamName">videoConstraints</span></span>)</span>]
 interface <span class="idlInterfaceID">VideoStreamTrack</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> {
-};</span></pre><section id="constructors-2"><h5 id="h5_constructors-2" role="heading" aria-level="4"><span class="secno">4.5.1.1 </span>Constructors</h5><dl class="constructors"><dt id="widl-ctor-VideoStreamTrack--Constraints-videoConstraints"><code>VideoStreamTrack</code></dt><dd><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">videoConstraints</td><td class="prmType"><code></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptTrue"><span role="img" aria-label="True">✔</span></td><td class="prmDesc"></td></tr></tbody></table></dd></dl></section>
+};</span></pre><section id="constructors-2"><h5 id="h5_constructors-2" role="heading" aria-level="4"><span class="secno">4.5.1.1 </span>Constructors</h5><dl class="constructors"><dt id="widl-ctor-VideoStreamTrack--Constraints-videoConstraints"><code>VideoStreamTrack</code></dt><dd><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">videoConstraints</td><td class="prmType"><code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptTrue"><span role="img" aria-label="True">✔</span></td><td class="prmDesc"></td></tr></tbody></table></dd></dl></section>
       </section>
                     
       <section id="audiostreamtrack">
         <h4 id="h4_audiostreamtrack" role="heading" aria-level="3"><span class="secno">4.5.2 </span>AudioStreamTrack</h4>
                 
-          <div class="note"><div id="h_note_7" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
+          <div class="note"><div id="h_note_6" role="heading" aria-level="4" class="note-title"><span>Note</span></div><div class="">
             <p><strong>Example: </strong><code><a class="idlType" href="#idl-def-AudioStreamTrack"><code>AudioStreamTrack</code></a></code> objects are instantiated in JavaScript using the new operator:</p>
               <pre><b>new</b> <code>AudioStreamTrack</code>();</pre>
               or
@@ -1620,7 +1621,7 @@
 
           <pre class="idl"><span class="idlInterface" id="idl-def-AudioStreamTrack">[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-AudioStreamTrack--Constraints-audioConstraints">Constructor</a></span> (<span class="idlParam">optional <span class="idlParamType"><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></span> <span class="idlParamName">audioConstraints</span></span>)</span>]
 interface <span class="idlInterfaceID">AudioStreamTrack</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MediaStreamTrack"><code>MediaStreamTrack</code></a></span> {
-};</span></pre><section id="constructors-3"><h5 id="h5_constructors-3" role="heading" aria-level="4"><span class="secno">4.5.2.1 </span>Constructors</h5><dl class="constructors"><dt id="widl-ctor-AudioStreamTrack--Constraints-audioConstraints"><code>AudioStreamTrack</code></dt><dd><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">audioConstraints</td><td class="prmType"><code></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptTrue"><span role="img" aria-label="True">✔</span></td><td class="prmDesc"></td></tr></tbody></table></dd></dl></section>
+};</span></pre><section id="constructors-3"><h5 id="h5_constructors-3" role="heading" aria-level="4"><span class="secno">4.5.2.1 </span>Constructors</h5><dl class="constructors"><dt id="widl-ctor-AudioStreamTrack--Constraints-audioConstraints"><code>AudioStreamTrack</code></dt><dd><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">audioConstraints</td><td class="prmType"><code><a class="idlType" href="#idl-def-Constraints"><code>Constraints</code></a></code></td><td class="prmNullFalse"><span role="img" aria-label="False">✘</span></td><td class="prmOptTrue"><span role="img" aria-label="True">✔</span></td><td class="prmDesc"></td></tr></tbody></table></dd></dl></section>
         </section>
       </section>
     </section>
@@ -1650,7 +1651,7 @@
       feed back information along the media pipeline and have the
       source produce content more suitable for display.</p>
 
-      <div class="note"><div id="h_note_8" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">
+      <div class="note"><div id="h_note_7" 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
@@ -1790,7 +1791,7 @@
 
       <p>It is possible that <a class="internalDFN" href="#dfn-constraints">constraints</a> can be applied to a track
       which a source is unable to satisfy. When this happens, the user
-      agent is required to fire an <a class="internalDFN" href="#event-mediastreamtrack-overconstrained">overconstrained</a> event to the
+      agent is required to fire an <a class="internalDFN" href="#event-mediastreamtrack-overconstrained">overconstrained</a> MediaErrorEvent to the
       track informing it of this condition, and the track becomes
       muted. There is no mandatory side-effect on the source itself as
       a result of this condition.</p>
@@ -1801,7 +1802,7 @@
       there is only a single thread of control, it is always possible
       for the browser to determine which track created the
       overconstrained condition.  In this situation, the user agent
-      <em title="MUST" class="rfc2119">MUST</em> send the <a class="internalDFN" href="#event-mediastreamtrack-overconstrained">overconstrained</a> event only to the track that
+      <em title="MUST" class="rfc2119">MUST</em> send the <a class="internalDFN" href="#event-mediastreamtrack-overconstrained">overconstrained</a> MediaErrorEvent only to the track that
       created the condition and <em title="MUST" class="rfc2119">MUST</em> not apply any of the constraints
       newly requested for that track.  Here is an example of this
       behavior.</p>
@@ -2235,9 +2236,53 @@
       </table>
       	</section>
     </section>
+<section id="error-handling">
+	<!--OddPage--><h2 id="h2_error-handling" role="heading" aria-level="1"><span class="secno">7. </span>Error Handling</h2>
+	<p>All errors defined in this specification implement the following
+		interface:</p>
+		
+		   <pre class="idl"><span class="idlInterface" id="idl-def-MediaError">[<span class="extAttr">NoInterfaceObject</span>]
+interface <span class="idlInterfaceID">MediaError</span> {
+<span class="idlAttribute">    readonly    attribute <span class="idlAttrType">DOMString</span>  <span class="idlAttrName"><a href="#widl-MediaError-name">name</a></span>;</span>
+<span class="idlAttribute">    readonly    attribute <span class="idlAttrType">DOMString?</span> <span class="idlAttrName"><a href="#widl-MediaError-message">message</a></span>;</span>
+<span class="idlAttribute">    readonly    attribute <span class="idlAttrType">DOMString?</span> <span class="idlAttrName"><a href="#widl-MediaError-constraintName">constraintName</a></span>;</span>
+};</span></pre><section id="attributes-4"><h3 id="h3_attributes-4" role="heading" aria-level="2"><span class="secno">7.1 </span>Attributes</h3><dl class="attributes"><dt id="widl-MediaError-constraintName"><code>constraintName</code> of type <span class="idlAttrType">DOMString</span>, readonly   , nullable</dt><dd>
+            <p>This attribute is only used for some types of errors. For <code>
+            <a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></code> with a name of
+            <code>ConstraintNotSatisfiedError</code>, this attribute <em title="MUST" class="rfc2119">MUST</em> be set
+            to the name of the constraint that caused the error.</p>
+        </dd><dt id="widl-MediaError-message"><code>message</code> of type <span class="idlAttrType">DOMString</span>, readonly   , nullable</dt><dd>A UA-dependent string offering extra human-readable information about
+      	the error.</dd><dt id="widl-MediaError-name"><code>name</code> of type <span class="idlAttrType">DOMString</span>, readonly   </dt><dd><p>The name of the error</p></dd></dl></section>
+<div class="note"><div id="h_note_8" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">Open Issue: We may make MediaError inherit from DOMError
+	once the definition of DOMError is stable.</div></div>	
+	
+	<div class="note"><div id="h_note_9" role="heading" aria-level="2" class="note-title"><span>Note</span></div><div class="">Open Issue: Do we want to allow the constraintName attribute to
+		contain multiple constraint names?  In many cases the error is raised as soon
+		as a single unsatisfied mandatory constraint is found, but in others it may
+		be possible to determine that multiple constraints are not satisfied.</div></div>			
+	
+<p>	The following interface is defined for cases when a MediaError is raised
+as an event:</p>
 
+
+
+     <pre class="idl"><span class="idlInterface" id="idl-def-MediaErrorEvent"><span class="idlDictionary" id="idl-def-MediaErrorEventInit">dictionary <span class="idlDictionaryID">MediaErrorEventInit</span> : <span class="idlSuperclass">EventInit</span> {
+<span class="idlMember">    <span class="idlMemberType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span> <span class="idlMemberName"><a href="#widl-MediaErrorEventInit-error">error</a></span>;</span>
+};</span><br><br>[<span class="idlCtor"> <span class="idlCtorKeyword"></span><span class="idlCtorName"><a href="#widl-ctor-MediaErrorEvent--DOMString-type-MediaErrorEventInit-eventInitDict">Constructor</a></span> (<span class="idlParam"><span class="idlParamType">DOMString</span> <span class="idlParamName">type</span></span>, <span class="idlParam"><span class="idlParamType"><a class="idlType" href="#idl-def-MediaErrorEventInit"><code>MediaErrorEventInit</code></a></span> <span class="idlParamName">eventInitDict</span></span>)</span>]
+interface <span class="idlInterfaceID">MediaErrorEvent</span> : <span class="idlSuperclass">Event</span> {
+<span class="idlAttribute">    readonly    attribute <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span> <span class="idlAttrName"><a href="#widl-MediaErrorEvent-error">error</a></span>;</span>
+};</span></pre><section id="constructors-4"><h3 id="h3_constructors-4" role="heading" aria-level="2"><span class="secno">7.2 </span>Constructors</h3><dl class="constructors"><dt id="widl-ctor-MediaErrorEvent--DOMString-type-MediaErrorEventInit-eventInitDict"><code>MediaErrorEvent</code></dt><dd><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">type</td><td class="prmType"><code>DOMString</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"></td></tr><tr><td class="prmName">eventInitDict</td><td class="prmType"><code><a class="idlType" href="#idl-def-MediaErrorEventInit"><code>MediaErrorEventInit</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="prmDsc"></td></tr></tbody></table></dd></dl></section><section id="attributes-5"><h3 id="h3_attributes-5" role="heading" aria-level="2"><span class="secno">7.3 </span>Attributes</h3><dl class="attributes"><dt id="widl-MediaErrorEvent-error"><code>error</code> of type <span class="idlAttrType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span>, readonly   </dt><dd>
+ 
+        </dd></dl></section>
+
+      <section id="dictionary-mediaerroreventinit-members"><h3 id="h3_dictionary-mediaerroreventinit-members" role="heading" aria-level="2"><span class="secno">7.4 </span>Dictionary <a href="#idl-def-MediaErrorEventInit" class="idlType"><code>MediaErrorEventInit</code></a> Members</h3><dl class="dictionary-members"><dt id="widl-MediaErrorEventInit-error"><code>error</code> of type <span class="idlMemberType"><a class="idlType" href="#idl-def-MediaError"><code>MediaError</code></a></span></dt><dd>
+          <p>&nbsp;</p>
+        </dd></dl></section>
+	 
+
+	</section>
     <section id="event-summary" class="informative">
-      <!--OddPage--><h2 id="h2_event-summary" role="heading" aria-level="1"><span class="secno">7. </span>Event summary</h2><p><em>This section is non-normative.</em></p>
+      <!--OddPage--><h2 id="h2_event-summary" role="heading" aria-level="1"><span class="secno">8. </span>Event summary</h2><p><em>This section is non-normative.</em></p>
 
       <p>The following event fires on <code>
           <a class="idlType" href="#idl-def-MediaStream"><code>MediaStream</code></a>
@@ -2392,11 +2437,11 @@
             </td>
 
             <td>
-              <code>Event</code>
+              <code>MediaErrorEvent</code>
             </td>
 
             <td>
-              <p>This event fires asynchronously for each affected
+              <p>This error event fires asynchronously for each affected
               track (when multiple tracks share the same source) after
               the user agent has evaluated the current constraints
               against a given <code>sourceId</code> and is not
@@ -2409,11 +2454,7 @@
               the <code>"muted"</code> <a class="internalDFN" href="#dom-mediastreamtrack-readystate">readyState</a>) until the
               application adjusts the constraints to accommodate the
               source's capabilities.</p>
-              <p>The "overconstrained" event is a simple event of
-              type <code>Event</code>; it carries no information about
-              which constraints caused the source to be
-              over-constrained (the application has all the necessary
-              APIs to figure it out).</p>
+              
             </td>
           </tr>
 
@@ -2444,18 +2485,18 @@
   
 
   <section rel="bibo:Chapter" resource="#ref" typeof="bibo:Chapter" id="enumerating-devices">
-    <!--OddPage--><h2 id="h2_enumerating-devices" role="heading" aria-level="1"><span class="secno">8. </span>Enumerating Local Media Devices</h2>
+    <!--OddPage--><h2 id="h2_enumerating-devices" role="heading" aria-level="1"><span class="secno">9. </span>Enumerating Local Media Devices</h2>
 
     <p>This section describes an API that the script can use to query the user
     agent about connected media input and output devices.</p>
 
     <section id="navigatorusermedia">
-      <h3 id="h3_navigatorusermedia" role="heading" aria-level="2"><span class="secno">8.1 </span>NavigatorUserMedia</h3>

[483 lines skipped]

Received on Thursday, 26 December 2013 03:19:23 UTC