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/.
6 * The origins of this IDL file are
7 * http://dev.w3.org/2011/webrtc/editor/getusermedia.html
9 * Copyright � 2012 W3C� (MIT, ERCIM, Keio), All Rights Reserved. W3C
10 * liability, trademark and document use rules apply.
13 // These dictionaries need to be in a separate file from their
14 // MediaTrackConstraints* counterparts due to a webidl compiler limitation.
16 dictionary 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;
26 dictionary DisplayMediaStreamConstraints {
27 (boolean or MediaTrackConstraints) video = true;
28 (boolean or MediaTrackConstraints) audio = false;
32 interface MediaStream : EventTarget {
36 constructor(MediaStream stream);
38 constructor(sequence<MediaStreamTrack> tracks);
40 readonly attribute DOMString id;
41 sequence<MediaStreamTrack> getAudioTracks ();
42 sequence<MediaStreamTrack> getVideoTracks ();
43 sequence<MediaStreamTrack> getTracks ();
44 MediaStreamTrack? getTrackById (DOMString trackId);
45 undefined addTrack (MediaStreamTrack track);
46 undefined removeTrack (MediaStreamTrack track);
48 readonly attribute boolean active;
49 attribute EventHandler onaddtrack;
50 attribute EventHandler onremovetrack;
52 [ChromeOnly, NewObject]
53 static Promise<long> countUnderlyingStreams();
55 // Webrtc allows the remote side to name a stream whatever it wants, and we
56 // need to surface this to content.
58 undefined assignId(DOMString id);