1/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2/* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 4 * You can obtain one at http://mozilla.org/MPL/2.0/. 5 * 6 * The origins of this IDL file are 7 * http://dev.w3.org/2011/webrtc/editor/getusermedia.html 8 * 9 * Copyright � 2012 W3C� (MIT, ERCIM, Keio), All Rights Reserved. W3C 10 * liability, trademark and document use rules apply. 11 */ 12 13// These dictionaries need to be in a separate file from their 14// MediaTrackConstraints* counterparts due to a webidl compiler limitation. 15 16dictionary MediaStreamConstraints { 17 (boolean or MediaTrackConstraints) audio = false; 18 (boolean or MediaTrackConstraints) video = false; 19 boolean picture = false; // Mozilla legacy 20 boolean fake; // For testing purpose. Generates frames of solid 21 // colors if video is enabled, and sound of 1Khz sine 22 // wave if audio is enabled. 23 DOMString? peerIdentity = null; 24}; 25 26dictionary DisplayMediaStreamConstraints { 27 (boolean or MediaTrackConstraints) video = true; 28 (boolean or MediaTrackConstraints) audio = false; 29}; 30 31[Exposed=Window] 32interface MediaStream : EventTarget { 33 [Throws] 34 constructor(); 35 [Throws] 36 constructor(MediaStream stream); 37 [Throws] 38 constructor(sequence<MediaStreamTrack> tracks); 39 40 readonly attribute DOMString id; 41 sequence<MediaStreamTrack> getAudioTracks (); 42 sequence<MediaStreamTrack> getVideoTracks (); 43 sequence<MediaStreamTrack> getTracks (); 44 MediaStreamTrack? getTrackById (DOMString trackId); 45 void addTrack (MediaStreamTrack track); 46 void removeTrack (MediaStreamTrack track); 47 MediaStream clone (); 48 readonly attribute boolean active; 49 attribute EventHandler onaddtrack; 50 attribute EventHandler onremovetrack; 51 52 [ChromeOnly, Throws] 53 static Promise<long> countUnderlyingStreams(); 54 55 // Webrtc allows the remote side to name a stream whatever it wants, and we 56 // need to surface this to content. 57 [ChromeOnly] 58 void assignId(DOMString id); 59}; 60