Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(674)

Side by Side Diff: webrtc/tools/rtcbot/bot/browser/bot.js

Issue 2965593002: Move webrtc/{tools => rtc_tools} (Closed)
Patch Set: Adding back root changes Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/tools/rtcbot/bot/api.js ('k') | webrtc/tools/rtcbot/bot/browser/index.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
2 //
3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the LICENSE file in the root of the source
5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS. All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree.
8 //
9 var localStreams = [];
10 var remoteStreams = [];
11
12 function ping(callback) {
13 callback("pong");
14 }
15
16 function getUserMedia(constraints, onSuccessCallback, onFailCallback){
17 console.log("Getting user media.");
18 navigator.webkitGetUserMedia(constraints,
19 onSuccessCallbackWraper, onFailCallback);
20
21 function onSuccessCallbackWraper(stream) {
22 console.log("GetUserMedia success.");
23 localStreams[stream.id] = stream;
24 onSuccessCallback(stream);
25 }
26 }
27
28 function createPeerConnection(config, doneCallback, failCallback) {
29 console.log("Creating peer connection");
30 var obj = {};
31 var pc = new webkitRTCPeerConnection(config);
32
33 expose(obj, pc, "close");
34 expose(obj, pc, "createOffer");
35 expose(obj, pc, "createAnswer");
36 expose(obj, pc, "addEventListener");
37 expose(obj, pc, "addIceCandidate", { 0: RTCIceCandidate});
38 expose(obj, pc, "setRemoteDescription", { 0: RTCSessionDescription });
39 expose(obj, pc, "setLocalDescription", { 0: RTCSessionDescription });
40
41 obj.addStream = function(stream) {
42 console.log("Adding local stream.");
43 var tempStream = localStreams[stream.id];
44 if (!tempStream) {
45 console.log("Undefined stream!");
46 return;
47 }
48 pc.addStream(tempStream);
49 };
50
51 // Return an array of Objects, each Object is a copy of RTCStateReport
52 // and has the following attributes (id, type, names, and stats).
53 // names: array originaly returned by calling RTCStateReport.names().
54 // stats: dictionary of stat name as key and stat value as dictionary
55 // value.
56 obj.getStats = function(callback, mediaTrack) {
57 pc.getStats(onStatsReady, mediaTrack);
58
59 function onStatsReady(stateResponse) {
60 var outputReports = [];
61 var reports = stateResponse.result();
62 for (index in reports) {
63 var report = {};
64 report.id = reports[index].id;
65 report.type = reports[index].type;
66 report.names = reports[index].names();
67 report.stats = [];
68 populateStats(reports[index], report.stats);
69
70 outputReports.push(report);
71 }
72
73 callback(outputReports);
74 }
75
76 function populateStats(report, stats) {
77 var names = report.names();
78 for (index in names) {
79 stats.push({
80 name: names[index],
81 stat: report.stat(names[index]),
82 });
83 }
84
85 }
86 };
87
88 pc.addEventListener('addstream', function(event) {
89 remoteStreams[event.stream.id] = event.stream;
90 });
91
92 doneCallback(obj);
93 };
94
95 function showStream(streamId, autoplay, muted) {
96 var stream = getStreamFromIdentifier_(streamId);
97 var video = document.createElement('video');
98 video.autoplay = autoplay;
99 video.muted = muted;
100 document.body.appendChild(video);
101 video.src = URL.createObjectURL(stream);
102 console.log("Stream " + stream.id + " attached to video element");
103 };
104
105 function getStreamFromIdentifier_(id) {
106 var tempStream = localStreams[id];
107 if (tempStream)
108 return tempStream;
109 tempStream = remoteStreams[id];
110 if (tempStream)
111 return tempStream;
112 console.log(id + " is not id for stream.");
113 return null;
114 };
115
116 function downloadFile(path, onSuccess, onError) {
117 var xhr = new XMLHttpRequest();
118 function onResult() {
119 if (xhr.readyState != 4)
120 return;
121
122 if (xhr.status != 200) {
123 onError("Download request failed!");
124 return;
125 }
126 onSuccess(xhr.responseText);
127 }
128
129 xhr.onreadystatechange = onResult;
130 xhr.open('GET', path, true);
131 xhr.send();
132 };
133
134 connectToServer({
135 ping: ping,
136 getUserMedia: getUserMedia,
137 createPeerConnection: createPeerConnection,
138 showStream: showStream,
139 downloadFile: downloadFile,
140 });
OLDNEW
« no previous file with comments | « webrtc/tools/rtcbot/bot/api.js ('k') | webrtc/tools/rtcbot/bot/browser/index.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698