Class: shaka.media.SegmentPrefetch

This class manages segment prefetch operations. Called by StreamingEngine to prefetch next N segments ahead of playhead, to reduce the chances of rebuffering.

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

prefetchLimit_ :number

Type:
  • number
Source:

reverse_ :boolean

Type:
  • boolean
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:

clearAll()

Clear all segment data.
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:

clearMap_()

Clear All Helper
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
Type
shaka.net.NetworkingEngine.PendingRequest

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:
Source: