Constructor
new SimpleAbrManager()
Creates a new SimpleAbrManager.
- Implements:
- Source:
Members
-
(private, static, constant) BANDWIDTH_DOWNGRADE_TARGET_ :number
-
The largest fraction of the estimated bandwidth we should use. We should downgrade to avoid this.
Type:
- number
- Source:
-
(private, static, constant) BANDWIDTH_UPGRADE_TARGET_ :number
-
The fraction of the estimated bandwidth which we should try to use when upgrading.
Type:
- number
- Source:
-
(static, constant) STARTUP_INTERVAL_MS :number
-
The minimum amount of time that must pass before the first switch, in milliseconds. This gives the bandwidth estimator time to get some real data before changing anything.
Type:
- number
- Source:
-
(static, constant) SWITCH_INTERVAL_MS :number
-
The minimum amount of time that must pass between switches, in milliseconds. This keeps us from changing too often and annoying the user.
Type:
- number
- Source:
-
(private, static, constant) UPGRADE_LEAVE_IN_BUFFER_ :number
-
The number of seconds of content to leave in buffer ahead of the playhead when upgrading video. This makes video upgrades visible sooner.
Type:
- number
- Source:
-
(private) bandwidthEstimator_ :shaka.abr.EwmaBandwidthEstimator
-
Type:
- Source:
-
(private) enabled_ :boolean
-
Type:
- boolean
- Source:
-
(private, nullable) lastTimeChosenMs_ :number
-
The last wall-clock time, in milliseconds, when Streams were chosen via chooseStreams() or switch_().
Type:
- number
- Source:
-
(private) startupComplete_ :boolean
-
Type:
- boolean
- Source:
-
(private) streamsByType_ :Object.<string, shakaExtern.Stream>
-
The last Streams chosen.
Type:
- Object.<string, shakaExtern.Stream>
- Source:
-
(private) streamSetsByType_ :Object.<string, shakaExtern.StreamSet>
-
The last StreamSets given to us via chooseStreams().
Type:
- Object.<string, shakaExtern.StreamSet>
- Source:
-
(private, nullable) switch_ :shakaExtern.AbrManager.SwitchCallback
-
Type:
- shakaExtern.AbrManager.SwitchCallback
- Source:
Methods
-
(private, static) sortStreamsByBandwidth_(streamSetnon-null) → (non-null) {Array.<shakaExtern.Stream>}
-
Parameters:
Name Type Description streamSet
shakaExtern.StreamSet - Source:
Returns:
|streamSet|'s Streams sorted in ascending order of bandwidth.- Type
- Array.<shakaExtern.Stream>
-
(private) chooseAudioStream_() → (nullable) {shakaExtern.Stream}
-
Chooses which audio Stream to switch to.
- Source:
Returns:
- Type
- shakaExtern.Stream
-
chooseStreams(streamSetsByTypenon-null) → (non-null) {Object.<string, shakaExtern.Stream>}
-
Chooses one Stream from each StreamSet to switch to. All StreamSets must be from the same Period. Some StreamSets may be absent in the case of language changes.
Parameters:
Name Type Description streamSetsByType
Object.<string, !shakaExtern.StreamSet> - Implements:
- Source:
Returns:
- Type
- Object.<string, shakaExtern.Stream>
-
(private) chooseStreams_() → (non-null) {Object.<string, !shakaExtern.Stream>}
-
Chooses which Streams to switch to.
- Source:
Returns:
- Type
- Object.<string, !shakaExtern.Stream>
-
(private) chooseVideoStream_() → (nullable) {shakaExtern.Stream}
-
Chooses which video Stream to switch to.
- Source:
Returns:
- Type
- shakaExtern.Stream
-
disable()
-
Disables automatic Stream suggestions. After this, the AbrManager may not call switchCallback().
- Implements:
- Source:
-
enable()
-
Enables automatic Stream choices from the last StreamSets passed to chooseStreams(). After this, the AbrManager may call switchCallback() at any time.
- Implements:
- Source:
-
getBandwidthEstimate() → {number}
-
Gets an estimate of the current bandwidth in bit/sec. This is used by the Player to generate stats.
- Implements:
- Source:
Returns:
- Type
- number
-
init(switchCallback)
-
Initializes the AbrManager.
Parameters:
Name Type Description switchCallback
shakaExtern.AbrManager.SwitchCallback - Implements:
- Source:
-
segmentDownloaded(startTimeMs, endTimeMs, numBytes)
-
Notifies the AbrManager that a segment has been downloaded (includes MP4 SIDX data, WebM Cues data, initialization segments, and media segments).
Parameters:
Name Type Description startTimeMs
number The wall-clock time, in milliseconds, when the request began (before any outbound request filters). endTimeMs
number The wall-clock time, in milliseconds, when the response ended (after all retries and inbound response filters). numBytes
number The total number of bytes transferred. - Implements:
- Source:
-
setDefaultEstimate(estimate)
-
Sets the default bandwidth estimate to use if there is not enough data.
Parameters:
Name Type Description estimate
number The default bandwidth estimate, in bit/sec. - Implements:
- Source:
-
stop()
-
Stops any background timers and frees any objects held by this instance. This will only be called after a call to init.
- Implements:
- Source:
-
(private) suggestStreams_()
-
Calls switch_() with which Streams to switch to.
- Source: