Constructor
new EwmaBandwidthEstimator()
This class tracks bandwidth samples and estimates available bandwidth. Based on the minimum of two exponentially-weighted moving averages with different half-lives.
Members
bytesSampled_ :number
    Number of bytes sampled.
    Type:
- number
 
fast_ :shaka.abr.Ewma
    A fast-moving average.
Half of the estimate is based on the last 2 seconds of sample history.
    Type:
minBytes_ :number
    Minimum number of bytes, under which samples are discarded.  Our models
do not include latency information, so connection startup time (time to
first byte) is considered part of the download time.  Because of this, we
should ignore very small downloads which would cause our estimate to be
too low.
This specific value is based on experimentation.
    Type:
- number
 
minTotalBytes_ :number
    Minimum number of bytes sampled before we trust the estimate.  If we have
not sampled much data, our estimate may not be accurate enough to trust.
If bytesSampled_ is less than minTotalBytes_, we use defaultEstimate_.
This specific value is based on experimentation.
    Type:
- number
 
slow_ :shaka.abr.Ewma
    A slow-moving average.
Half of the estimate is based on the last 5 seconds of sample history.
    Type:
Methods
getBandwidthEstimate(defaultEstimate) → {number}
    Gets the current bandwidth estimate.
    Parameters:
| Name | Type | Description | 
|---|---|---|
defaultEstimate | 
            
            number | 
Returns:
    The bandwidth estimate in bits per second.
- Type
 - number
 
hasGoodEstimate() → {boolean}
Returns:
    True if there is enough data to produce a meaningful
  estimate.
- Type
 - boolean
 
sample(durationMs, numBytes)
    Takes a bandwidth sample.
    Parameters:
| Name | Type | Description | 
|---|---|---|
durationMs | 
            
            number | The amount of time, in milliseconds, for a particular request. | 
numBytes | 
            
            number | The total number of bytes transferred in that request. |