Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(777)

Unified Diff: webrtc/examples/objc/AppRTCDemo/ARDBitrateTracker.m

Issue 1289623005: Add stats overlay to iOS AppRTCDemo. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/examples/objc/AppRTCDemo/ARDBitrateTracker.m
diff --git a/webrtc/examples/objc/AppRTCDemo/ARDBitrateTracker.m b/webrtc/examples/objc/AppRTCDemo/ARDBitrateTracker.m
new file mode 100644
index 0000000000000000000000000000000000000000..8a20e6cc6d02b609fa6c4e84598fcc890087c86b
--- /dev/null
+++ b/webrtc/examples/objc/AppRTCDemo/ARDBitrateTracker.m
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2015 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.
+ */
+
+#import "ARDBitrateTracker.h"
+
+#import <QuartzCore/QuartzCore.h>
+
+@implementation ARDBitrateTracker {
+ CFTimeInterval _prevTime;
+ NSInteger _prevByteCount;
+}
+
+@synthesize bitrate = _bitrate;
+
++ (NSString *)bitrateStringForBitrate:(double)bitrate {
+ if (bitrate > 1e6) {
+ return [NSString stringWithFormat:@"%.2fMbps", bitrate * 1e-6];
+ } else if (bitrate > 1e3) {
+ return [NSString stringWithFormat:@"%.0fKbps", bitrate * 1e-3];
+ } else {
+ return [NSString stringWithFormat:@"%.0fbps", bitrate];
+ }
+}
+
+- (NSString *)bitrateString {
+ return [[self class] bitrateStringForBitrate:_bitrate];
+}
+
+- (void)updateBitrateWithCurrentByteCount:(NSInteger)byteCount {
+ CFTimeInterval currentTime = CACurrentMediaTime();
+ if (_prevTime) {
+ // For some reason we sometimes get byte counts that are not monotonic
+ // increasing. Those are ignored from calculations.
+ if (byteCount > _prevByteCount) {
jiayl2 2015/08/13 22:21:50 I think we should update prev byte count and time
tkchin_webrtc 2015/08/13 23:55:31 Done. Needed to add the active connection check. I
+ _bitrate = (byteCount - _prevByteCount) * 8 / (currentTime - _prevTime);
+ _prevByteCount = byteCount;
+ _prevTime = currentTime;
+ }
+ } else {
+ _prevTime = currentTime;
+ }
+}
+
+@end

Powered by Google App Engine
This is Rietveld 408576698