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

Side by Side Diff: tools/perf/page_sets/webrtc_cases/peerconnection_canvas_capture_files/main.js

Issue 2761163003: Use local pages for webrtc telemetry tests. (Closed)
Patch Set: Created 3 years, 9 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 /*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree.
7 */
8
9 'use strict';
10
11 const DEFAULT_FRAME_RATE = 30;
12
13 var canvas = document.getElementById('canvas');
14 var context = canvas.getContext('2d');
15
16 var remoteVideo = document.getElementById('remoteVideo');
17 var startButton = document.getElementById('startButton');
18 startButton.onclick = start;
19
20 var pc1;
21 var pc2;
22 var stream;
23
24 function logError(err) {
25 console.error(err);
26 }
27
28 // This function draws a red rectangle on the canvas using
29 // requestAnimationFrame().
30 function draw() {
31 window.requestAnimationFrame(draw);
32 context.rect(0, 0, canvas.clientWidth, canvas.clientHeight);
33 var randomNumber = Math.random();
34 var hue;
35 if (randomNumber < 0.33)
36 hue = 'red';
37 else if (randomNumber < 0.66)
38 hue = 'green';
39 else
40 hue = 'blue';
41 context.fillStyle = hue;
42 context.fill();
43 }
44
45 function start() {
46 startButton.onclick = hangup;
47 startButton.className = 'red';
48 startButton.innerHTML = 'Stop test';
49 draw();
50 stream = canvas.captureStream(DEFAULT_FRAME_RATE);
51 call();
52 }
53
54 function call() {
55 var servers = null;
56 pc1 = new RTCPeerConnection(servers);
57 pc1.onicecandidate = (event) => {
58 if (event.candidate) {
59 pc2.addIceCandidate(event.candidate);
60 }
61 };
62
63 pc2 = new RTCPeerConnection(servers);
64 pc2.onicecandidate = (event) => {
65 if (event.candidate) {
66 pc1.addIceCandidate(event.candidate);
67 }
68 };
69 pc2.onaddstream = (event) => {
70 remoteVideo.srcObject = event.stream;
71 };
72
73 pc1.addStream(stream);
74 pc1.createOffer({
75 offerToReceiveAudio: 1,
76 offerToReceiveVideo: 1
77 }).then(onCreateOfferSuccess, logError);
78 }
79
80 function onCreateOfferSuccess(desc) {
81 pc1.setLocalDescription(desc);
82 pc2.setRemoteDescription(desc);
83 pc2.createAnswer().then(onCreateAnswerSuccess, logError);
84 }
85
86 function onCreateAnswerSuccess(desc) {
87 pc2.setLocalDescription(desc);
88 pc1.setRemoteDescription(desc);
89 }
90
91 function hangup() {
92 pc1.close();
93 pc2.close();
94 pc1 = null;
95 pc2 = null;
96 startButton.onclick = start;
97 startButton.className = 'green';
98 startButton.innerHTML = 'Start test';
99 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698