Class: shaka.media.PresentationTimeline

Constructor

new PresentationTimeline(presentationStartTimenullable, presentationDelay)

Creates a PresentationTimeline.
Parameters:
Name Type Attributes Description
presentationStartTime number <nullable>
The wall-clock time, in seconds, when the presentation started or will start. Only required for live.
presentationDelay number The delay to give the presentation, in seconds. Only required for live.
Source:
See:

Members

(private) clockOffset_ :number

Type:
  • number
Source:

(private) duration_ :number

Type:
  • number
Source:

(private, nullable) maxSegmentDuration_ :number

Type:
  • number
Source:

(private) presentationDelay_ :number

Type:
  • number
Source:

(private, nullable) presentationStartTime_ :number

Type:
  • number
Source:

(private) segmentAvailabilityDuration_ :number

Type:
  • number
Source:

(private) segmentAvailabilityStart_ :number

Type:
  • number
Source:

(private) static_ :boolean

Type:
  • boolean
Source:

Methods

assertIsValid()

Debug only: assert that the timeline parameters make sense for the type of presentation (VOD, IPR, live).
Source:

getDuration() → {number}

Source:
Returns:
The presentation's duration in seconds. Infinity indicates that the presentation continues indefinitely.
Type
number

(private) getLiveEdge_() → {number}

Source:
Returns:
The current presentation time in seconds.
Type
number

getPresentationStartTime() → (nullable) {number}

Source:
Returns:
The presentation's start time in seconds.
Type
number

getSafeAvailabilityStart(offset) → {number}

Gets the presentation's current segment availability start time, offset by the given amount. This is used to ensure that we don't "fall" back out of the availability window while we are buffering.
Parameters:
Name Type Description
offset number The offset to add to the start time.
Source:
Returns:
The current segment availability start time, in seconds, relative to the start of the presentation.
Type
number

getSeekRangeEnd() → {number}

Gets the seek range end.
Source:
Returns:
Type
number

getSegmentAvailabilityDuration() → {number}

Gets the presentation's segment availability duration, which is the amount of time, in seconds, that the start of a segment remains available after the live-edge moves past the end of that segment. Infinity indicates that segments remain available indefinitely. For example, if your live presentation has a 5 minute DVR window and your segments are 10 seconds long then the segment availability duration should be 4 minutes and 50 seconds.
Source:
Returns:
The presentation's segment availability duration.
Type
number

getSegmentAvailabilityEnd() → {number}

Gets the presentation's current segment availability end time. Segments starting after this time should be assumed to be unavailable.
Source:
Returns:
The current segment availability end time, in seconds, relative to the start of the presentation. Always returns the presentation's duration for video-on-demand.
Type
number

getSegmentAvailabilityStart() → {number}

Gets the presentation's current segment availability start time. Segments ending at or before this time should be assumed to be unavailable.
Source:
Returns:
The current segment availability start time, in seconds, relative to the start of the presentation.
Type
number

isInProgress() → {boolean}

Source:
Returns:
True if the presentation is in progress (meaning not live, but also not completely available); otherwise, return false.
Type
boolean

isLive() → {boolean}

Source:
Returns:
True if the presentation is live; otherwise, return false.
Type
boolean

notifyMaxSegmentDuration(maxSegmentDuration)

Gives PresentationTimeline a Stream's maximum segment duration so it can size and position the segment availability window. This function should be called once for each Stream (no more, no less), but does not have to be called if notifySegments() is called instead for a particular stream.
Parameters:
Name Type Description
maxSegmentDuration number The maximum segment duration for a particular stream.
Source:

notifySegments(periodStartTime, referencesnon-null)

Gives PresentationTimeline a Stream's segments so it can size and position the segment availability window, and account for missing segment information. This function should be called once for each Stream (no more, no less).
Parameters:
Name Type Description
periodStartTime number
references Array.<!shaka.media.SegmentReference>
Source:

setAvailabilityStart(time)

Sets the presentation's current segment availability start time.
Parameters:
Name Type Description
time number
Source:

setClockOffset(offset)

Sets the clock offset, which is the the difference between the client's clock and the server's clock, in milliseconds (i.e., serverTime = Date.now() + clockOffset).
Parameters:
Name Type Description
offset number The clock offset, in ms.
Source:

setDelay(delay)

Sets the presentation delay.
Parameters:
Name Type Description
delay number
Source:

setDuration(duration)

Sets the presentation's duration.
Parameters:
Name Type Description
duration number The presentation's duration in seconds. Infinity indicates that the presentation continues indefinitely.
Source:

setSegmentAvailabilityDuration(segmentAvailabilityDuration)

Sets the presentation's segment availability duration. The segment availability duration should only be set for live.
Parameters:
Name Type Description
segmentAvailabilityDuration number The presentation's new segment availability duration in seconds.
Source:

setStatic(isStatic)

Sets the presentation's static flag.
Parameters:
Name Type Description
isStatic boolean If true, the presentation is static, meaning all segments are available at once.
Source: