Class: shaka.util.StreamUtils

A set of utility functions for dealing with Streams and Manifests.

Constructor

new StreamUtils()

A set of utility functions for dealing with Streams and Manifests.

Source:

Members

nextTrackId_ :number

Type:
  • number
Source:

Methods

applyRestrictions(variantsnon-null, restrictions, maxHwRes) → {boolean}

Parameters:
Name Type Description
variants Array.<shaka.extern.Variant>
restrictions shaka.extern.Restrictions
maxHwRes {width: number, height: number}
Source:
Returns:
Whether the tracks changed.
Type
boolean

areStreamsCompatible_(s0, s1) → {boolean}

Parameters:
Name Type Description
s0 shaka.extern.Stream
s1 shaka.extern.Stream
Source:
Returns:
Type
boolean

chooseCodecsAndFilterManifest(manifestnon-null, preferredAudioChannelCount)

In case of multiple usable codecs, choose one based on lowest average bandwidth and filter out the rest. Also filters out variants that have too many audio channels.
Parameters:
Name Type Description
manifest shaka.extern.Manifest
preferredAudioChannelCount number
Source:

filterManifest(drmEngine, currentVariantnullable, manifest)

Alters the given Manifest to filter out any unplayable streams.
Parameters:
Name Type Attributes Description
drmEngine shaka.media.DrmEngine
currentVariant shaka.extern.Variant <nullable>
manifest shaka.extern.Manifest
Source:

filterStreamsByLanguageAndRole(streamsnon-null, preferredLanguage, preferredRole) → {Array.<!shaka.extern.Stream>}

Chooses streams according to the given config.
Parameters:
Name Type Description
streams Array.<shaka.extern.Stream>
preferredLanguage string
preferredRole string
Source:
Returns:
Type
Array.<!shaka.extern.Stream>

filterTextStreamsByRole_(textStreamsnon-null, preferredRole) → {Array.<shaka.extern.Stream>}

Filter text Streams by role.
Parameters:
Name Type Description
textStreams Array.<shaka.extern.Stream>
preferredRole string
Source:
Returns:
Type
Array.<shaka.extern.Stream>

filterVariantsByAudioChannelCount(variantsnon-null, preferredAudioChannelCount) → {Array.<!shaka.extern.Variant>}

Filters variants according to the given audio channel count config.
Parameters:
Name Type Description
variants Array.<shaka.extern.Variant>
preferredAudioChannelCount number
Source:
Returns:
Type
Array.<!shaka.extern.Variant>

filterVariantsByDensity_(variantsByCodecsnon-null) → {shaka.util.MultiMap.<shaka.extern.Variant>}

Filters variants by density.
Parameters:
Name Type Description
variantsByCodecs shaka.util.MultiMap.<shaka.extern.Variant>
Source:
Returns:
Type
shaka.util.MultiMap.<shaka.extern.Variant>

findBestCodecs_(variantsByCodecsnon-null) → {string}

Find the lowest-bandwidth (best) codecs. Compute the average bandwidth for each group of variants.
Parameters:
Name Type Description
variantsByCodecs shaka.util.MultiMap.<shaka.extern.Variant>
Source:
Returns:
Type
string

getGroupVariantCodecs_(variantnon-null) → {string}

Get a string representing all codecs used in a variant.
Parameters:
Name Type Description
variant shaka.extern.Variant
Source:
Returns:
Type
string

getPlayableVariants(variantsnon-null) → {Array.<!shaka.extern.Variant>}

Filters out unplayable variants.
Parameters:
Name Type Description
variants Array.<!shaka.extern.Variant>
Source:
Returns:
Type
Array.<!shaka.extern.Variant>

getStreamSummaryString_(stream) → {string}

Parameters:
Name Type Description
stream shaka.extern.Stream
Source:
Returns:
Type
string

getVariantsByCodecs_(variantsnon-null) → {shaka.util.MultiMap.<shaka.extern.Variant>}

Get variants by codecs.
Parameters:
Name Type Description
variants Array.<shaka.extern.Variant>
Source:
Returns:
Type
shaka.util.MultiMap.<shaka.extern.Variant>

getVariantStreams(variant) → {Array.<shaka.extern.Stream>}

Get all non-null streams in the variant as an array.
Parameters:
Name Type Description
variant shaka.extern.Variant
Source:
Returns:
Type
Array.<shaka.extern.Stream>

html5AudioTrackToTrack(audioTrack) → {shaka.extern.Track}

Parameters:
Name Type Description
audioTrack AudioTrack
Source:
Returns:
Type
shaka.extern.Track

html5TextTrackToTrack(textTrack) → {shaka.extern.Track}

Parameters:
Name Type Description
textTrack TextTrack
Source:
Returns:
Type
shaka.extern.Track

html5TrackId(html5Track) → {number}

Generate and return an ID for this track, since the ID field is optional.
Parameters:
Name Type Description
html5Track TextTrack | AudioTrack
Source:
Returns:
The generated ID.
Type
number

html5TrackToGenericShakaTrack_(html5Track) → {shaka.extern.Track}

Creates a Track object with non-type specific fields filled out. The caller is responsible for completing the Track object with any type-specific information (audio or text).
Parameters:
Name Type Description
html5Track TextTrack | AudioTrack
Source:
Returns:
Type
shaka.extern.Track

isAudio(stream) → {boolean}

Checks if the given stream is an audio stream.
Parameters:
Name Type Description
stream shaka.extern.Stream
Source:
Returns:
Type
boolean

isPlayable(variantnon-null) → {boolean}

Determines if the given variant is playable.
Parameters:
Name Type Description
variant shaka.extern.Variant
Source:
Returns:
Type
boolean

isVideo(stream) → {boolean}

Checks if the given stream is a video stream.
Parameters:
Name Type Description
stream shaka.extern.Stream
Source:
Returns:
Type
boolean

meetsRestrictions(variant, restrictions, maxHwRes) → {boolean}

Parameters:
Name Type Description
variant shaka.extern.Variant
restrictions shaka.extern.Restrictions Configured restrictions from the user.
maxHwRes {width: number, height: number} The maximum resolution the hardware can handle. This is applied separately from user restrictions because the setting should not be easily replaced by the user's configuration.
Source:
Returns:
Type
boolean

textStreamToTrack(stream) → {shaka.extern.Track}

Parameters:
Name Type Description
stream shaka.extern.Stream
Source:
Returns:
Type
shaka.extern.Track

variantToTrack(variant) → {shaka.extern.Track}

Parameters:
Name Type Description
variant shaka.extern.Variant
Source:
Returns:
Type
shaka.extern.Track