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_ :Map.<string, !MediaCapabilitiesDecodingInfo>
    A cache of results from mediaCapabilities.decodingInfo, indexed by the
(stringified) decodingConfig.
    Type:
- Map.<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:
 
createEmptyVariant(mimeTypesnon-null) → {shaka.extern.Variant}
Parameters:
| Name | Type | Description | 
|---|---|---|
mimeTypes | 
            
            Array.<string> | 
- Source:
 
Returns:
- Type
 - shaka.extern.Variant
 
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.drm.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 incompatible 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.drm.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:
 
shouldInitiallyShowText(audioStreamnullable, textStream, confignon-null) → {boolean}
    Check if we should show text on screen automatically.
    Parameters:
| Name | Type | Attributes | Description | 
|---|---|---|---|
audioStream | 
            
            shaka.extern.Stream | 
                
                
                    <nullable> | 
            
            
            |
textStream | 
            
            shaka.extern.Stream | ||
config | 
            
            shaka.extern.PlayerConfiguration | 
- 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