/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * * The origins of this IDL file are * http://dev.w3.org/2011/webrtc/editor/getusermedia.html * * Copyright � 2012 W3C� (MIT, ERCIM, Keio), All Rights Reserved. W3C * liability, trademark and document use rules apply. */ // These dictionaries need to be in a separate file from their // MediaTrackConstraints* counterparts due to a webidl compiler limitation. dictionary MediaStreamConstraints { (boolean or MediaTrackConstraints) audio = false; (boolean or MediaTrackConstraints) video = false; boolean picture = false; // Mozilla legacy boolean fake; // For testing purpose. Generates frames of solid // colors if video is enabled, and sound of 1Khz sine // wave if audio is enabled. DOMString? peerIdentity = null; }; dictionary DisplayMediaStreamConstraints { (boolean or MediaTrackConstraints) video = true; (boolean or MediaTrackConstraints) audio = false; }; [Exposed=Window, Constructor, Constructor (MediaStream stream), Constructor (sequence tracks)] interface MediaStream : EventTarget { readonly attribute DOMString id; sequence getAudioTracks (); sequence getVideoTracks (); sequence getTracks (); MediaStreamTrack? getTrackById (DOMString trackId); undefined addTrack (MediaStreamTrack track); undefined removeTrack (MediaStreamTrack track); MediaStream clone (); readonly attribute boolean active; attribute EventHandler onaddtrack; attribute EventHandler onremovetrack; readonly attribute double currentTime; [ChromeOnly, Throws] static Promise countUnderlyingStreams(); // Webrtc allows the remote side to name a stream whatever it wants, and we // need to surface this to content. [ChromeOnly] undefined assignId(DOMString id); };