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;
33 Constructor (MediaStream stream),
34 Constructor (sequence<MediaStreamTrack> tracks)]
35 interface MediaStream : EventTarget {
36 readonly attribute DOMString id;
37 sequence<MediaStreamTrack> getAudioTracks ();
38 sequence<MediaStreamTrack> getVideoTracks ();
39 sequence<MediaStreamTrack> getTracks ();
40 MediaStreamTrack? getTrackById (DOMString trackId);
41 void addTrack (MediaStreamTrack track);
42 void removeTrack (MediaStreamTrack track);
44 readonly attribute boolean active;
45 attribute EventHandler onaddtrack;
46 attribute EventHandler onremovetrack;
49 static Promise<long> countUnderlyingStreams();
51 // Webrtc allows the remote side to name a stream whatever it wants, and we
52 // need to surface this to content.
54 void assignId(DOMString id);