1 /*
2  *  Copyright 2015 The WebRTC Project Authors. All rights reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #import <Foundation/Foundation.h>
12 
13 /** Class used to estimate bitrate based on byte count. It is expected that
14  *  byte count is monotonocially increasing. This class tracks the times that
15  *  byte count is updated, and measures the bitrate based on the byte difference
16  *  over the interval between updates.
17  */
18 @interface ARDBitrateTracker : NSObject
19 
20 /** The bitrate in bits per second. */
21 @property(nonatomic, readonly) double bitrate;
22 /** The bitrate as a formatted string in bps, Kbps or Mbps. */
23 @property(nonatomic, readonly) NSString *bitrateString;
24 
25 /** Converts the bitrate to a readable format in bps, Kbps or Mbps. */
26 + (NSString *)bitrateStringForBitrate:(double)bitrate;
27 /** Updates the tracked bitrate with the new byte count. */
28 - (void)updateBitrateWithCurrentByteCount:(NSInteger)byteCount;
29 
30 @end
31