Index: webrtc/examples/objc/AppRTCDemo/ARDStatsBuilder.m |
diff --git a/webrtc/examples/objc/AppRTCDemo/ARDStatsBuilder.m b/webrtc/examples/objc/AppRTCDemo/ARDStatsBuilder.m |
index fd0b16b5d2a29280acc22958d7b3db1498e4d98d..60cf5516488e6d0456fcbc7a8c4e5f06258c918e 100644 |
--- a/webrtc/examples/objc/AppRTCDemo/ARDStatsBuilder.m |
+++ b/webrtc/examples/objc/AppRTCDemo/ARDStatsBuilder.m |
@@ -10,8 +10,7 @@ |
#import "ARDStatsBuilder.h" |
-#import "RTCPair.h" |
-#import "RTCStatsReport.h" |
+#import "webrtc/api/objc/RTCStatsReport.h" |
#import "ARDBitrateTracker.h" |
#import "ARDUtilities.h" |
@@ -150,9 +149,8 @@ |
#pragma mark - Private |
- (void)parseBweStatsReport:(RTCStatsReport *)statsReport { |
- for (RTCPair *pair in statsReport.values) { |
- NSString *key = pair.key; |
- NSString *value = pair.value; |
+ [statsReport.values enumerateKeysAndObjectsUsingBlock:^( |
+ NSString *key, NSString *value, BOOL *stop) { |
if ([key isEqualToString:@"googAvailableSendBandwidth"]) { |
_availableSendBw = |
[ARDBitrateTracker bitrateStringForBitrate:value.doubleValue]; |
@@ -166,18 +164,16 @@ |
_targetEncBitrate = |
[ARDBitrateTracker bitrateStringForBitrate:value.doubleValue]; |
} |
- } |
+ }]; |
} |
- (void)parseConnectionStatsReport:(RTCStatsReport *)statsReport { |
- NSDictionary *values = [self dictionaryForReport:statsReport]; |
- NSString *activeConnection = [values[@"googActiveConnection"] firstObject]; |
+ NSString *activeConnection = statsReport.values[@"googActiveConnection"]; |
if (![activeConnection isEqualToString:@"true"]) { |
return; |
} |
- for (RTCPair *pair in statsReport.values) { |
- NSString *key = pair.key; |
- NSString *value = pair.value; |
+ [statsReport.values enumerateKeysAndObjectsUsingBlock:^( |
+ NSString *key, NSString *value, BOOL *stop) { |
if ([key isEqualToString:@"googRtt"]) { |
_connRtt = value; |
} else if ([key isEqualToString:@"googLocalCandidateType"]) { |
@@ -195,12 +191,12 @@ |
[_connSendBitrateTracker updateBitrateWithCurrentByteCount:byteCount]; |
_connSendBitrate = _connSendBitrateTracker.bitrateString; |
} |
- } |
+ }]; |
} |
- (void)parseSendSsrcStatsReport:(RTCStatsReport *)statsReport { |
- NSDictionary *values = [self dictionaryForReport:statsReport]; |
- NSString *trackId = [values[@"googTrackId"] firstObject]; |
+ NSDictionary *values = statsReport.values; |
+ NSString *trackId = values[@"googTrackId"]; |
if (trackId.length && [trackId hasPrefix:@"ARDAMSv0"]) { |
// Video track. |
[self parseVideoSendStatsReport:statsReport]; |
@@ -211,9 +207,8 @@ |
} |
- (void)parseAudioSendStatsReport:(RTCStatsReport *)statsReport { |
- for (RTCPair *pair in statsReport.values) { |
- NSString *key = pair.key; |
- NSString *value = pair.value; |
+ [statsReport.values enumerateKeysAndObjectsUsingBlock:^( |
+ NSString *key, NSString *value, BOOL *stop) { |
if ([key isEqualToString:@"googCodecName"]) { |
_audioSendCodec = value; |
} else if ([key isEqualToString:@"bytesSent"]) { |
@@ -221,13 +216,12 @@ |
[_audioSendBitrateTracker updateBitrateWithCurrentByteCount:byteCount]; |
_audioSendBitrate = _audioSendBitrateTracker.bitrateString; |
} |
- } |
+ }]; |
} |
- (void)parseVideoSendStatsReport:(RTCStatsReport *)statsReport { |
- for (RTCPair *pair in statsReport.values) { |
- NSString *key = pair.key; |
- NSString *value = pair.value; |
+ [statsReport.values enumerateKeysAndObjectsUsingBlock:^( |
+ NSString *key, NSString *value, BOOL *stop) { |
if ([key isEqualToString:@"googCodecName"]) { |
_videoSendCodec = value; |
} else if ([key isEqualToString:@"googFrameHeightInput"]) { |
@@ -249,13 +243,12 @@ |
[_videoSendBitrateTracker updateBitrateWithCurrentByteCount:byteCount]; |
_videoSendBitrate = _videoSendBitrateTracker.bitrateString; |
} |
- } |
+ }]; |
} |
- (void)parseRecvSsrcStatsReport:(RTCStatsReport *)statsReport { |
- NSDictionary *values = [self dictionaryForReport:statsReport]; |
- NSString *transportId = [values[@"transportId"] firstObject]; |
- if ([values[@"googFrameWidthReceived"] firstObject]) { |
+ NSDictionary *values = statsReport.values; |
+ if (values[@"googFrameWidthReceived"]) { |
[self parseVideoRecvStatsReport:statsReport]; |
} else { |
[self parseAudioRecvStatsReport:statsReport]; |
@@ -263,9 +256,8 @@ |
} |
- (void)parseAudioRecvStatsReport:(RTCStatsReport *)statsReport { |
- for (RTCPair *pair in statsReport.values) { |
- NSString *key = pair.key; |
- NSString *value = pair.value; |
+ [statsReport.values enumerateKeysAndObjectsUsingBlock:^( |
+ NSString *key, NSString *value, BOOL *stop) { |
if ([key isEqualToString:@"googCodecName"]) { |
_audioRecvCodec = value; |
} else if ([key isEqualToString:@"bytesReceived"]) { |
@@ -277,13 +269,12 @@ |
} else if ([key isEqualToString:@"googCurrentDelayMs"]) { |
_audioCurrentDelay = value; |
} |
- } |
+ }]; |
} |
- (void)parseVideoRecvStatsReport:(RTCStatsReport *)statsReport { |
- for (RTCPair *pair in statsReport.values) { |
- NSString *key = pair.key; |
- NSString *value = pair.value; |
+ [statsReport.values enumerateKeysAndObjectsUsingBlock:^( |
+ NSString *key, NSString *value, BOOL *stop) { |
if ([key isEqualToString:@"googFrameHeightReceived"]) { |
_videoRecvHeight = value; |
} else if ([key isEqualToString:@"googFrameWidthReceived"]) { |
@@ -301,20 +292,7 @@ |
[_videoRecvBitrateTracker updateBitrateWithCurrentByteCount:byteCount]; |
_videoRecvBitrate = _videoRecvBitrateTracker.bitrateString; |
} |
- } |
-} |
- |
-- (NSDictionary *)dictionaryForReport:(RTCStatsReport *)statsReport { |
- NSMutableDictionary *dict = [NSMutableDictionary dictionary]; |
- for (RTCPair *pair in statsReport.values) { |
- NSMutableArray *values = dict[pair.key]; |
- if (!values) { |
- values = [NSMutableArray arrayWithCapacity:1]; |
- dict[pair.key] = values; |
- } |
- [values addObject:pair.value]; |
- } |
- return dict; |
+ }]; |
} |
@end |