| 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
|
|
|