From d5b292e450d64e42973815e25b4f7aa14a36dd28 Mon Sep 17 00:00:00 2001 From: "houssainy@google.com" Date: Tue, 19 Aug 2014 11:43:32 +0000 Subject: [PATCH] Active connection stats [LocalAddress,RemoteAddress,LocalCandidateType...etc] is now printed in the head-up display in Android appRTC. This printing will be usefull in debugging switching ICE candidates. R=andresp@webrtc.org, glaznev@webrtc.org Review URL: https://webrtc-codereview.appspot.com/13189005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6927 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../appspot/apprtc/AppRTCDemoActivity.java | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/talk/examples/android/src/org/appspot/apprtc/AppRTCDemoActivity.java b/talk/examples/android/src/org/appspot/apprtc/AppRTCDemoActivity.java index ef97cda61..213da7bb8 100644 --- a/talk/examples/android/src/org/appspot/apprtc/AppRTCDemoActivity.java +++ b/talk/examples/android/src/org/appspot/apprtc/AppRTCDemoActivity.java @@ -200,19 +200,49 @@ public class AppRTCDemoActivity extends Activity private void updateHUD(StatsReport[] reports) { StringBuilder builder = new StringBuilder(); for (StatsReport report : reports) { - if (!report.id.equals("bweforvideo")) { + // bweforvideo to show statistics for video Bandwidth Estimation, + // which is global per-session. + if (report.id.equals("bweforvideo")) { + for (StatsReport.Value value : report.values) { + String name = value.name.replace("goog", "") + .replace("Available", "").replace("Bandwidth", "") + .replace("Bitrate", "").replace("Enc", ""); + + builder.append(name).append("=").append(value.value) + .append(" "); + } + builder.append("\n"); + } else if (report.type.equals("googCandidatePair")) { + String activeConnectionStats = getActiveConnectionStats(report); + if (activeConnectionStats == null) { + continue; + } + builder.append(activeConnectionStats); + } else { continue; } - for (StatsReport.Value value : report.values) { - String name = value.name.replace("goog", "").replace("Available", "") - .replace("Bandwidth", "").replace("Bitrate", "").replace("Enc", ""); - builder.append(name).append("=").append(value.value).append(" "); - } builder.append("\n"); } hudView.setText(builder.toString() + hudView.getText()); } + // Return the active connection stats else return null + private String getActiveConnectionStats(StatsReport report) { + StringBuilder activeConnectionbuilder = new StringBuilder(); + // googCandidatePair to show information about the active + // connection. + for (StatsReport.Value value : report.values) { + if (value.name.equals("googActiveConnection") + && value.value.equals("false")) { + return null; + } + String name = value.name.replace("goog", ""); + activeConnectionbuilder.append(name).append("=") + .append(value.value).append("\n"); + } + return activeConnectionbuilder.toString(); + } + @Override public void onPause() { super.onPause();