Constructor
new SegmentPrefetch(prefetchLimit, stream, fetchDispatcher, reverse)
This class manages segment prefetch operations. Called by StreamingEngine to prefetch next N segments ahead of playhead, to reduce the chances of rebuffering.
Parameters:
Name | Type | Description |
---|---|---|
prefetchLimit |
number | |
stream |
shaka.extern.Stream | |
fetchDispatcher |
shaka.media.SegmentPrefetch.FetchDispatcher | |
reverse |
boolean |
- Source:
Members
initSegmentPrefetchMap_ :Map.<!(shaka.media.InitSegmentReference), !shaka.media.SegmentPrefetchOperation>
Type:
- Source:
segmentPrefetchMap_ :Map.<!(shaka.media.SegmentReference), !shaka.media.SegmentPrefetchOperation>
Type:
- Source:
Methods
logPrefix_() → {string}
The prefix of the logs that are created in this class.
- Source:
Returns:
- Type
- string
abortPrefetchedSegment_(referencenon-null)
Remove a segment from prefetch map and abort it.
Parameters:
Name | Type | Description |
---|---|---|
reference |
shaka.media.SegmentReference | shaka.media.InitSegmentReference |
- Source:
clearInitSegments_()
Remove all init segments that don't have associated segments in
the segment prefetch map.
By default, with delete on get, the init segments should get removed as
they are used. With deleteOnGet set to false, we need to clear them
every so often once the segments that are associated with each init segment
is no longer prefetched.
- Source:
evict(time, clearInitSegmentsopt)
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
time |
number | |||
clearInitSegments |
boolean |
<optional> |
false |
- Source:
getPrefetchedSegment(referencenon-null, streamDataCallbacknullable) → {shaka.net.NetworkingEngine.PendingRequest}
Get the result of prefetched segment if already exists.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
reference |
shaka.media.SegmentReference | shaka.media.InitSegmentReference | ||
streamDataCallback |
?function(BufferSource):!Promise= |
<nullable> |
- Source:
Returns:
op
getStream() → {shaka.extern.Stream}
Get the current stream.
- Source:
Returns:
- Type
- shaka.extern.Stream
prefetchInitSegment(initSegmentReferencenon-null) → {Promise}
Fetch init segment.
Parameters:
Name | Type | Description |
---|---|---|
initSegmentReference |
shaka.media.InitSegmentReference |
- Source:
Returns:
- Type
- Promise
prefetchSegmentsByTime(currTime, skipFirstopt) → {Promise}
Fetch next segments ahead of current time.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
currTime |
number | |||
skipFirst |
boolean |
<optional> |
false |
- Source:
Returns:
- Type
- Promise
removeReference(referencenon-null)
Remove a reference of prefetched segment if already exists.
Parameters:
Name | Type | Description |
---|---|---|
reference |
shaka.media.SegmentReference |
- Source:
replaceFetchDispatcher(fetchDispatcher)
Parameters:
Name | Type | Description |
---|---|---|
fetchDispatcher |
shaka.media.SegmentPrefetch.FetchDispatcher |
- Source:
resetLimit(newPrefetchLimit)
Reset the prefetchLimit and clear all internal states.
Called by StreamingEngine when configure() was called.
Parameters:
Name | Type | Description |
---|---|---|
newPrefetchLimit |
number |
- Source:
resetPosition()
- Source:
setReverse(reverse)
Parameters:
Name | Type | Description |
---|---|---|
reverse |
boolean |
- Source:
switchStream(stream)
Called by Streaming Engine when switching variant.
Parameters:
Name | Type | Description |
---|---|---|
stream |
shaka.extern.Stream |
- Source:
Type Definitions
FetchDispatcher
A callback function that fetches a segment.
Type:
- function(!(shaka.media.InitSegmentReference|shaka.media.SegmentReference), shaka.extern.Stream, ?function(BufferSource): !Promise=): !shaka.net.NetworkingEngine.PendingRequest
- Source: