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); |
-} |