Constructor
new StreamUtils()
A set of utility functions for dealing with Streams and Manifests.
- Source:
Members
DecodingAttributes :string
Type:
- string
Properties:
Name | Value | Type | Description |
---|---|---|---|
SMOOTH |
smooth | string | |
POWER |
powerEfficient | string |
- Source:
decodingConfigCache_ :Object.<(!string), (!MediaCapabilitiesDecodingInfo)>
A cache of results from mediaCapabilities.decodingInfo, indexed by the
(stringified) decodingConfig.
Type:
- Object.<(!string), (!MediaCapabilitiesDecodingInfo)>
- Source:
minImage_ :Map.<string, string>
Type:
- Map.<string, string>
- Source:
supportedImageMimeTypes_ :Map.<string, boolean>
Type:
- Map.<string, boolean>
- Source:
Methods
applyRestrictions(variantsnon-null, restrictions, maxHwRes) → {boolean}
Parameters:
Name | Type | Description |
---|---|---|
variants |
Array.<shaka.extern.Variant> | |
restrictions |
shaka.extern.Restrictions | |
maxHwRes |
shaka.extern.Resolution |
- 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
checkEachDecodingConfigCombination_(decodingConfignon-null) → {Promise.<?Array.<!MediaCapabilitiesDecodingInfo>>}
Parameters:
Name | Type | Description |
---|---|---|
decodingConfig |
MediaDecodingConfiguration |
- Source:
Returns:
- Type
- Promise.<?Array.<!MediaCapabilitiesDecodingInfo>>
checkVariantSupported_(variantnon-null, keySystemnullable, keySystemsMappingnon-null) → {boolean}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
variant |
shaka.extern.Variant | ||
keySystem |
string |
<nullable> |
|
keySystemsMapping |
Object.<string, string> |
- Source:
Returns:
- Type
- boolean
chooseCodecsAndFilterManifest(manifestnon-null, preferredVideoCodecsnon-null, preferredAudioCodecsnon-null, preferredDecodingAttributesnon-null, preferredTextFormatsnon-null)
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 | |
preferredVideoCodecs |
Array.<string> | |
preferredAudioCodecs |
Array.<string> | |
preferredDecodingAttributes |
Array.<string> | |
preferredTextFormats |
Array.<string> |
- Source:
choosePreferredCodecs(variantsnon-null, preferredVideoCodecsnon-null, preferredAudioCodecsnon-null) → {Array.<shaka.extern.Variant>}
Choose the codecs by configured preferred audio and video codecs.
Parameters:
Name | Type | Description |
---|---|---|
variants |
Array.<shaka.extern.Variant> | |
preferredVideoCodecs |
Array.<string> | |
preferredAudioCodecs |
Array.<string> |
- Source:
Returns:
- Type
- Array.<shaka.extern.Variant>
clearDecodingConfigCache()
Clears underlying decoding config cache.
- Source:
filterByRestrictions(manifestnon-null, restrictions, maxHwResolution)
Filter the variants in |manifest| to only include the variants that meet
the given restrictions.
Parameters:
Name | Type | Description |
---|---|---|
manifest |
shaka.extern.Manifest | |
restrictions |
shaka.extern.Restrictions | |
maxHwResolution |
shaka.extern.Resolution |
- Source:
filterImageStreams_(manifest)
Alters the given Manifest to filter out any unsupported image streams.
Parameters:
Name | Type | Description |
---|---|---|
manifest |
shaka.extern.Manifest |
- Source:
filterManifest(drmEngine, manifest, preferredKeySystemsopt, non-null, keySystemsMappingopt, non-null)
Alters the given Manifest to filter out any unplayable streams.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
drmEngine |
shaka.media.DrmEngine | ||
manifest |
shaka.extern.Manifest | ||
preferredKeySystems |
Array.<string> |
<optional> |
|
keySystemsMapping |
Object.<string, string> |
<optional> |
- Source:
filterManifestByCurrentVariant(currentVariantnullable, manifest)
Alters the given Manifest to filter out any streams uncompatible with the
current variant.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
currentVariant |
shaka.extern.Variant |
<nullable> |
|
manifest |
shaka.extern.Manifest |
- Source:
filterManifestByMediaCapabilities(drmEngine, manifest, usePersistentLicenses, preferredKeySystemsnon-null, keySystemsMappingnon-null)
Alters the given Manifest to filter out any streams unsupported by the
platform via MediaCapabilities.decodingInfo() API.
Parameters:
Name | Type | Description |
---|---|---|
drmEngine |
shaka.media.DrmEngine | |
manifest |
shaka.extern.Manifest | |
usePersistentLicenses |
boolean | |
preferredKeySystems |
Array.<string> | |
keySystemsMapping |
Object.<string, string> |
- Source:
filterStreamsByLanguageAndRole(streams, preferredLanguage, preferredRole, preferredForced) → {!Array.<!shaka.extern.Stream>|!Array.<!shaka.extern.Track>}
Chooses streams according to the given config.
Works both for Stream and Track types due to their similarities.
Parameters:
Name | Type | Description |
---|---|---|
streams |
!Array.<!shaka.extern.Stream> | !Array.<!shaka.extern.Track> | |
preferredLanguage |
string | |
preferredRole |
string | |
preferredForced |
boolean |
- Source:
Returns:
- Type
- !Array.<!shaka.extern.Stream> | !Array.<!shaka.extern.Track>
filterStreamsByRole_(streams, preferredRole) → {!Array.<!shaka.extern.Stream>|!Array.<!shaka.extern.Track>}
Filter Streams by role.
Works both for Stream and Track types due to their similarities.
Parameters:
Name | Type | Description |
---|---|---|
streams |
!Array.<!shaka.extern.Stream> | !Array.<!shaka.extern.Track> | |
preferredRole |
string |
- Source:
Returns:
- Type
- !Array.<!shaka.extern.Stream> | !Array.<!shaka.extern.Track>
filterTextStreams_(manifest)
Alters the given Manifest to filter out any unsupported text streams.
Parameters:
Name | Type | Description |
---|---|---|
manifest |
shaka.extern.Manifest |
- Source:
getCorrectAudioCodecs(codecs, mimeType) → {string}
Generates the correct audio codec for MediaDecodingConfiguration and
for MediaSource.isTypeSupported.
Parameters:
Name | Type | Description |
---|---|---|
codecs |
string | |
mimeType |
string |
- Source:
Returns:
- Type
- string
getCorrectVideoCodecs(codec) → {string}
Generates the correct video codec for MediaDecodingConfiguration and
for MediaSource.isTypeSupported.
Parameters:
Name | Type | Description |
---|---|---|
codec |
string |
- Source:
Returns:
- Type
- string
getDecodingConfigs_(variantnon-null, usePersistentLicenses, srcEquals) → {Array.<!Array.<!MediaDecodingConfiguration>>}
Generate a batch of MediaDecodingConfiguration objects to get the
decodingInfo results for each variant.
Each batch shares the same DRM information, and represents the various
fullMimeType combinations of the streams.
Parameters:
Name | Type | Description |
---|---|---|
variant |
shaka.extern.Variant | |
usePersistentLicenses |
boolean | |
srcEquals |
boolean |
- Source:
Returns:
- Type
- Array.<!Array.<!MediaDecodingConfiguration>>
getDecodingInfosForVariant_(variantnon-null, decodingConfigsnon-null)
Queries mediaCapabilities for the decoding info for that decoding config,
and assigns it to the given variant.
If that query has been done before, instead return a cached result.
Parameters:
Name | Type | Description |
---|---|---|
variant |
shaka.extern.Variant | |
decodingConfigs |
Array.<!MediaDecodingConfiguration> |
- Source:
getDecodingInfosForVariants(variantsnon-null, usePersistentLicenses, srcEquals, preferredKeySystemsnon-null)
Get the decodingInfo results of the variants via MediaCapabilities.
This should be called after the DrmEngine is created and configured, and
before DrmEngine sets the mediaKeys.
Parameters:
Name | Type | Description |
---|---|---|
variants |
Array.<shaka.extern.Variant> | |
usePersistentLicenses |
boolean | |
srcEquals |
boolean | |
preferredKeySystems |
Array.<string> |
- Source:
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}
Returns a string of an audio or video stream for log printing.
Parameters:
Name | Type | Description |
---|---|---|
stream |
shaka.extern.Stream |
- Source:
Returns:
- Type
- string
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>
getVariantSummaryString_(variant) → {string}
Returns a string of a variant, with the attribute values of its audio
and/or video streams for log printing.
Parameters:
Name | Type | Description |
---|---|---|
variant |
shaka.extern.Variant |
- Source:
Returns:
- Type
- string
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
imageStreamToTrack(stream) → {shaka.extern.Track}
Parameters:
Name | Type | Description |
---|---|---|
stream |
shaka.extern.Stream |
- 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
isFastSwitching(variant) → {boolean}
Indicates if some of the variant's streams are fastSwitching.
Parameters:
Name | Type | Description |
---|---|---|
variant |
shaka.extern.Variant |
- Source:
Returns:
- Type
- boolean
isImageSupported_(minImage) → {Promise.<boolean>}
Parameters:
Name | Type | Description |
---|---|---|
minImage |
string |
- Source:
Returns:
- Type
- Promise.<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 |
shaka.extern.Resolution | 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
overrideDolbyVisionCodecs(variantsnon-null)
Maps Dolby Vision codecs to H.264 and H.265 equivalents as a workaround
to make Dolby Vision playback work on some platforms.
Mapping is done according to the relevant Dolby documentation found here:
https://professionalsupport.dolby.com/s/article/How-to-signal-Dolby-Vision-in-MPEG-DASH?language=en_US
Parameters:
Name | Type | Description |
---|---|---|
variants |
Array.<!shaka.extern.Variant> |
- Source:
setBetterIFrameStream(streamnon-null, iFrameStreamsnon-null)
Set the best iframe stream to the original stream.
Parameters:
Name | Type | Description |
---|---|---|
stream |
shaka.extern.Stream | |
iFrameStreams |
Array.<!shaka.extern.Stream> |
- Source:
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