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

Side by Side Diff: webrtc/tools/rtcbot/test/two_way_video_streaming.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
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 // A two way video and audio flowing test between bot 1 and bot 2.
10 // The test succeeds after collecting stats for 10 seconds from both bots
11 // and then write these stats to a file.
12 //
13 // Note: the source of the video and audio stream is getUserMedia().
14 function testTwoWayVideoStreaming(test, bot1, bot2) {
15 var report = test.createStatisticsReport("two_way_video_streaming");
16 var statsCollector;
17
18 test.wait([
19 createPeerConnectionWithLocalStream.bind(bot1),
20 createPeerConnectionWithLocalStream.bind(bot2)],
21 onPeerConnectionCreated);
22
23 function createPeerConnectionWithLocalStream(done) {
24 this.getUserMedia({video:true, audio:true},
25 onUserMediaSuccess.bind(this), test.fail);
26
27 function onUserMediaSuccess(stream) {
28 test.log("User has granted access to local media.");
29 test.createTurnConfig(onTurnConfig.bind(this), test.fail);
30
31 function onTurnConfig(config) {
32 this.createPeerConnection(config, addAndShowStream.bind(this),
33 test.fail);
34 };
35
36 function addAndShowStream(pc) {
37 pc.addStream(stream);
38 this.showStream(stream.id, true, true);
39
40 done(pc);
41 }
42 }
43 }
44
45 function onPeerConnectionCreated(pc1, pc2) {
46 test.log("RTC Peers created.");
47 pc1.addEventListener('addstream', onAddStream.bind(bot1));
48 pc2.addEventListener('addstream', onAddStream.bind(bot2));
49 pc1.addEventListener('icecandidate', onIceCandidate.bind(pc2));
50 pc2.addEventListener('icecandidate', onIceCandidate.bind(pc1));
51
52 createOfferAndAnswer(pc1, pc2);
53 }
54
55 function onAddStream(event) {
56 test.log("On Add stream.");
57 this.showStream(event.stream.id, true, false);
58 }
59
60 function onIceCandidate(event) {
61 if(event.candidate) {
62 test.log(event.candidate.candidate);
63 this.addIceCandidate(event.candidate,
64 onAddIceCandidateSuccess, test.fail);
65 };
66
67 function onAddIceCandidateSuccess() {
68 test.log("Candidate added successfully");
69 };
70 }
71
72 function createOfferAndAnswer(pc1, pc2) {
73 test.log("Creating offer.");
74 pc1.createOffer(gotOffer, test.fail);
75
76 function gotOffer(offer) {
77 test.log("Got offer");
78 pc1.setLocalDescription(offer, onSetSessionDescriptionSuccess, test.fail);
79 pc2.setRemoteDescription(offer, onSetSessionDescriptionSuccess,
80 test.fail);
81 test.log("Creating answer");
82 pc2.createAnswer(gotAnswer, test.fail);
83 }
84
85 function gotAnswer(answer) {
86 test.log("Got answer");
87 pc2.setLocalDescription(answer, onSetSessionDescriptionSuccess,
88 test.fail);
89 pc1.setRemoteDescription(answer, onSetSessionDescriptionSuccess,
90 test.fail);
91 collectStats();
92 }
93
94 function onSetSessionDescriptionSuccess() {
95 test.log("Set session description success.");
96 }
97
98 function collectStats() {
99 report.collectStatsFromPeerConnection("bot1", pc1);
100 report.collectStatsFromPeerConnection("bot2", pc2);
101
102 setTimeout(function() {
103 report.finish(test.done);
104 }, 10000);
105 }
106 }
107 }
108
109 registerBotTest('testTwoWayVideo/android-android',
110 testTwoWayVideoStreaming, ['android-chrome', 'android-chrome']);
111 registerBotTest('testTwoWayVideo/chrome-chrome',
112 testTwoWayVideoStreaming, ['chrome', 'chrome']);
OLDNEW
« no previous file with comments | « webrtc/tools/rtcbot/test/three_bots_video_conference.js ('k') | webrtc/tools/rtcbot/test/webrtc_video_streaming.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698