Constructor
new SimpleAbrManager()
This defines the default ABR manager for the Player. An instance of this class is used when no ABR manager is given.
The behavior of this class is to take throughput samples using segmentDownloaded to estimate the current network bandwidth. Then it will use that to choose the streams that best fit the current bandwidth. It will always pick the highest bandwidth variant it thinks can be played.
After initial choices are made, this class will call switchCallback() when there is a better choice. switchCallback() will not be called more than once per (shaka.abr.SimpleAbrManager.SWITCH_INTERVAL_MS).
- Implements:
- Source:
Members
-
(private) bandwidthEstimator_ :shaka.abr.EwmaBandwidthEstimator
-
Type:
- Source:
-
(private, nullable) config_ :shakaExtern.AbrConfiguration
-
Type:
- Source:
-
(private) enabled_ :boolean
-
Type:
- boolean
- Source:
-
(private, nullable) lastTimeChosenMs_ :number
-
The last wall-clock time, in milliseconds, when streams were chosen.
Type:
- number
- Source:
-
(private) startupComplete_ :boolean
-
Type:
- boolean
- Source:
-
(private, nullable) switch_ :shakaExtern.AbrManager.SwitchCallback
-
Type:
- Source:
-
(private, non-null) variants_ :Array.<!shakaExtern.Variant>
-
A filtered list of Variants to choose from.
Type:
- Array.<!shakaExtern.Variant>
- Source:
Methods
-
(private, static) filterAndSortVariants_(restrictions, variantsnon-null) → (non-null) {Array.<shakaExtern.Variant>}
-
Parameters:
Name Type Description restrictions
shakaExtern.Restrictions variants
Array.<shakaExtern.Variant> - Source:
Returns:
variants filtered according to |restrictions| and sorted in ascending order of bandwidth.- Type
- Array.<shakaExtern.Variant>
-
chooseVariant() → {shakaExtern.Variant}
-
Chooses one variant to switch to. Called by the Player.
- Implements:
- Source:
Returns:
- Type
- shakaExtern.Variant
-
configure(config)
-
Sets the abr configurations.
Parameters:
Name Type Description config
shakaExtern.AbrConfiguration - Implements:
- Source:
-
disable()
-
Disables automatic Stream suggestions. After this, the AbrManager may not call switchCallback().
- Implements:
- Source:
-
enable()
-
Enables automatic Variant choices from the last ones passed to setVariants. 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(deltaTimeMs, 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 deltaTimeMs
number The duration, in milliseconds, that the request took to complete. numBytes
number The total number of bytes transferred. - Implements:
- Source:
-
setVariants(variantsnon-null)
-
Updates manager's variants collection.
Parameters:
Name Type Description variants
Array.<!shakaExtern.Variant> - 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: