|
|
@@ -44,7 +44,8 @@ KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME] = {
|
|
44
|
44
|
'googFrameRateReceived': 'googFrameRateReceived',
|
|
45
|
45
|
'googFrameRateSent': 'googFrameRateSent',
|
|
46
|
46
|
'audioInputLevel': 'audioInputLevel',
|
|
47
|
|
- 'audioOutputLevel': 'audioOutputLevel'
|
|
|
47
|
+ 'audioOutputLevel': 'audioOutputLevel',
|
|
|
48
|
+ 'currentRoundTripTime': 'googRtt'
|
|
48
|
49
|
};
|
|
49
|
50
|
KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_OPERA]
|
|
50
|
51
|
= KEYS_BY_BROWSER_TYPE[RTCBrowserType.RTC_BROWSER_CHROME];
|
|
|
@@ -457,13 +458,14 @@ StatsCollector.prototype.processStatsReport = function() {
|
|
457
|
458
|
} catch (e) { /* not supported*/ }
|
|
458
|
459
|
|
|
459
|
460
|
if (now.type === 'googCandidatePair') {
|
|
460
|
|
- let active, ip, localip, type;
|
|
|
461
|
+ let active, ip, localip, rtt, type;
|
|
461
|
462
|
|
|
462
|
463
|
try {
|
|
463
|
464
|
ip = getStatValue(now, 'remoteAddress');
|
|
464
|
465
|
type = getStatValue(now, 'transportType');
|
|
465
|
466
|
localip = getStatValue(now, 'localAddress');
|
|
466
|
467
|
active = getStatValue(now, 'activeConnection');
|
|
|
468
|
+ rtt = getNonNegativeStat(now, 'currentRoundTripTime');
|
|
467
|
469
|
} catch (e) { /* not supported*/ }
|
|
468
|
470
|
if (!ip || !type || !localip || active !== 'true') {
|
|
469
|
471
|
continue;
|
|
|
@@ -481,7 +483,8 @@ StatsCollector.prototype.processStatsReport = function() {
|
|
481
|
483
|
ip,
|
|
482
|
484
|
type,
|
|
483
|
485
|
localip,
|
|
484
|
|
- p2p: this.peerconnection.isP2P
|
|
|
486
|
+ p2p: this.peerconnection.isP2P,
|
|
|
487
|
+ rtt
|
|
485
|
488
|
});
|
|
486
|
489
|
}
|
|
487
|
490
|
continue;
|