| Index: webrtc/tools/rtcbot/rtcBotReportVisualizer/main.js
|
| diff --git a/webrtc/tools/rtcbot/rtcBotReportVisualizer/main.js b/webrtc/tools/rtcbot/rtcBotReportVisualizer/main.js
|
| deleted file mode 100644
|
| index 91b0eec1431d1bc9094b0f44e193dc790c60daa4..0000000000000000000000000000000000000000
|
| --- a/webrtc/tools/rtcbot/rtcBotReportVisualizer/main.js
|
| +++ /dev/null
|
| @@ -1,191 +0,0 @@
|
| -// Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
| -//
|
| -// Use of this source code is governed by a BSD-style license
|
| -// that can be found in the LICENSE file in the root of the source
|
| -// tree. An additional intellectual property rights grant can be found
|
| -// in the file PATENTS. All contributing project authors may
|
| -// be found in the AUTHORS file in the root of the source tree.
|
| -//
|
| -google.load("visualization", "1", {packages:["corechart"]});
|
| -
|
| -function openFiles(event) {
|
| - var files = event.target.files;
|
| - readAndAnalyzeFiles(files)
|
| -}
|
| -
|
| -function readAndAnalyzeFiles(files) {
|
| - if(!files) {
|
| - alert("No files have been selected!");
|
| - return;
|
| - }
|
| -
|
| - var reports = [];
|
| - var filesNames = [];
|
| - missingFiles = files.length;
|
| -
|
| - for(var i = 0; i < files.length; i++) {
|
| - var reader = new FileReader();
|
| - reader.onload = onReaderLoad.bind(reader, files[i].name);
|
| - reader.readAsText(files[i]);
|
| - }
|
| -
|
| - function onReaderLoad(fileName) {
|
| - reports.push(JSON.parse(this.result));
|
| - filesNames.push(fileName);
|
| -
|
| - missingFiles--;
|
| - if(missingFiles == 0) {
|
| - analyzeReports_(reports, filesNames);
|
| - }
|
| - }
|
| -}
|
| -
|
| -// TODO(houssainy) take the input stats from the select list or
|
| -// drop down menu in html.
|
| -function analyzeReports_(reports, filesNames) {
|
| - filesNames.unshift(""); // ned
|
| -
|
| - // Rtt
|
| - analyzeRttData(reports, filesNames, "bot1");
|
| - analyzeRttData(reports, filesNames, "bot2");
|
| -
|
| - // Send Packets Lost
|
| - analyzePacketsLostData(reports, filesNames, "bot1");
|
| - analyzePacketsLostData(reports, filesNames, "bot2");
|
| -
|
| - // Send bandwidth
|
| - analyzeData(reports, filesNames, "Available Send Bandwidth-bot1", "bot1",
|
| - "bweforvideo", "googAvailableSendBandwidth");
|
| - analyzeData(reports, filesNames, "Available Send Bandwidth-bot2", "bot2",
|
| - "bweforvideo", "googAvailableSendBandwidth");
|
| -
|
| - // Receive bandwidth
|
| - analyzeData(reports, filesNames, "Available Receive Bandwidth-bot1", "bot1",
|
| - "bweforvideo", "googAvailableReceiveBandwidth");
|
| - analyzeData(reports, filesNames, "Available Receive Bandwidth-bot2", "bot2",
|
| - "bweforvideo", "googAvailableReceiveBandwidth");
|
| -
|
| - drawSeparatorLine();
|
| -}
|
| -
|
| -function analyzeRttData(reports, filesNames, botName) {
|
| - var outPut = [];
|
| - outPut.push(filesNames);
|
| -
|
| - var avergaData = ['Average Rtt x10'];
|
| - var maxData = ['Max Rtt'];
|
| -
|
| - var average;
|
| - var max;
|
| - for(var index in reports) {
|
| - average = getStateAverage(reports[index], botName, "Conn-audio-1-0",
|
| - "googRtt");
|
| - avergaData.push(average*10);
|
| -
|
| - max = getStateMax(reports[index], botName, "Conn-audio-1-0",
|
| - "googRtt");
|
| - maxData.push(max);
|
| - }
|
| - outPut.push(avergaData);
|
| - outPut.push(maxData);
|
| -
|
| - drawChart("Rtt-" + botName, outPut);
|
| -}
|
| -
|
| -function analyzePacketsLostData(reports, filesNames, botName) {
|
| - var outPut = [];
|
| - outPut.push(filesNames);
|
| -
|
| - var maxData = ['Max Send PacketsLost'];
|
| - var max;
|
| - for(var index in reports) {
|
| - max = getStateMax(reports[index], botName, "ssrc_[0-9]+_send",
|
| - "packetsLost");
|
| - maxData.push(max);
|
| - }
|
| - outPut.push(maxData);
|
| -
|
| - drawChart("Send PacketsLost-" + botName, outPut);
|
| -}
|
| -
|
| -function analyzeData(reports, filesNames, chartName, botName, reportId,
|
| - statName) {
|
| - var outPut = [];
|
| - outPut.push(filesNames);
|
| -
|
| - var avergaData = ['Average ' + statName];
|
| - var maxData = ['Max ' + statName];
|
| -
|
| - var average;
|
| - var max;
|
| - for(var index in reports) {
|
| - average = getStateAverage(reports[index], botName, reportId, statName);
|
| - avergaData.push(average);
|
| -
|
| - max = getStateMax(reports[index], botName, reportId, statName);
|
| - maxData.push(max);
|
| - }
|
| - outPut.push(avergaData);
|
| - outPut.push(maxData);
|
| -
|
| - drawChart(chartName, outPut);
|
| -}
|
| -
|
| -function getStateAverage(reports, botName, reportId, statName) {
|
| - var sum = 0;
|
| - var count = 0;
|
| -
|
| - for (var index in reports) {
|
| - var data = reports[index].data;
|
| - if(index == 0 || !data.hasOwnProperty(botName))
|
| - continue;
|
| -
|
| - var stats = data[botName];
|
| - for (var key in stats) {
|
| - if(key.search(reportId) != -1) {
|
| - var value = parseInt(stats[key][statName]);
|
| - sum += value;
|
| - count++;
|
| - }
|
| - }
|
| - }
|
| - return Math.round(sum/count);
|
| -}
|
| -
|
| -function getStateMax(reports, botName, reportId, statName) {
|
| - var max = -1;
|
| -
|
| - for (var index in reports) {
|
| - var data = reports[index].data;
|
| - if(index == 0 || !data.hasOwnProperty(botName))
|
| - continue;
|
| -
|
| - var stats = data[botName];
|
| - for (var key in stats) {
|
| - if(key.search(reportId) != -1) {
|
| - var value = parseInt(stats[key][statName]);
|
| - max = Math.max(value, max);
|
| - }
|
| - }
|
| - }
|
| - return max;
|
| -}
|
| -
|
| -function drawChart(title, data) {
|
| - var dataTable = google.visualization.arrayToDataTable(data);
|
| -
|
| - var options = {
|
| - title: title,
|
| - };
|
| -
|
| - var div = document.createElement('div');
|
| - document.body.appendChild(div);
|
| -
|
| - var chart = new google.visualization.ColumnChart(div);
|
| - chart.draw(dataTable, options);
|
| -}
|
| -
|
| -function drawSeparatorLine() {
|
| - var hr = document.createElement('hr');
|
| - document.body.appendChild(hr);
|
| -}
|
|
|