Class: shaka.device.AbstractDevice

Constructor

new AbstractDevice()

Implements:
Source:

Members

Methods

adjustConfig(config) → {shaka.extern.PlayerConfiguration}

Adjusts player configuration with device specific tweaks. Changes are done in-place and the same object is returned.
Parameters:
Name Type Description
config shaka.extern.PlayerConfiguration
Implements:
Source:
Returns:
Type
shaka.extern.PlayerConfiguration

createMediaKeysWhenCheckingSupport() → {boolean}

Implements:
Source:
Returns:
Type
boolean

detectMaxHardwareResolution() → {Promise<shaka.extern.Resolution>}

Detect the maximum resolution that the platform's hardware can handle.
Implements:
Source:
Returns:
Type
Promise<shaka.extern.Resolution>

disableHEVCSupport() → {boolean}

Implements:
Source:
Returns:
Type
boolean

getChromeVersion_() → {number}

Return the chromium browser version
Source:
Returns:
Type
number

getHdrLevel(preferHLG) → {string}

Check the current HDR level supported by the screen.
Parameters:
Name Type Description
preferHLG boolean
Implements:
Source:
Returns:
Type
string

insertEncryptionDataBeforeClear() → {boolean}

Indicates should the encryption data be inserted before or after the clear data in the init segment.
Implements:
Source:
Returns:
Type
boolean

misreportAC3UsingDrm() → {boolean}

Implements:
Source:
Returns:
Type
boolean

misreportsSupportForPersistentLicenses() → {boolean}

Implements:
Source:
Returns:
Type
boolean

needWaitForEncryptedEvent(keySystem) → {boolean}

Returns true if the platform needs to wait for the encrypted event in order to initialize CDM correctly.
Parameters:
Name Type Description
keySystem string
Implements:
Source:
Returns:
Type
boolean

rejectCodecs() → {Array<string>}

Lists all codecs that should be rejected by MediaSource.
Implements:
Source:
Returns:
Type
Array<string>

requiresClearAndEncryptedInitSegments() → {boolean}

Returns true if the platform requires both clear & encryption information in clear init segments. For such platforms, MediaSourceEngine will attempt to work around a lack of such info by inserting fake information into initialization segments. It is called only when requiresEncryptionInfoInAllInitSegments() is also true and works as the extension of it.
Implements:
Source:
See:
Returns:
Type
boolean

requiresDvvcWorkaround(stream) → {boolean}

Returns true if the platform requires the dvvC box content workaround. Dolby box removal is needed on LG devices with HDR10 support that do not support dolby vision. LG has fixes starting with Webos23, which is Chrome version 94.
Parameters:
Name Type Description
stream shaka.extern.Stream
Implements:
Source:
Returns:
Type
boolean

requiresEC3InitSegments() → {boolean}

Returns true if the platform requires AC-3 signalling in init segments to be replaced with EC-3 signalling. For such platforms, MediaSourceEngine will attempt to work around it by inserting fake EC-3 signalling into initialization segments.
Implements:
Source:
Returns:
Type
boolean

requiresEncryptionInfoInAllInitSegments(keySystemnullable, contentTypenullable) → {boolean}

Returns true if the platform requires encryption information in all init segments. For such platforms, MediaSourceEngine will attempt to work around a lack of such info by inserting fake encryption information into initialization segments.
Parameters:
Name Type Attributes Description
keySystem string <nullable>
contentType string <nullable>
Implements:
Source:
See:
Returns:
Type
boolean

requiresTfhdFix(contentType) → {boolean}

Parameters:
Name Type Description
contentType string
Implements:
Source:
Returns:
Type
boolean

returnLittleEndianUsingPlayReady() → {boolean}

Implements:
Source:
Returns:
Type
boolean

seekDelay() → {number}

On some platforms, the act of seeking can take a significant amount of time, so we need to delay a seek.
Implements:
Source:
Returns:
Type
number

shouldAvoidUseTextDecoderEncoder() → {boolean}

Indicates whether or not to use window.TextDecoder and window.TextEncoder even if they are available
Implements:
Source:
Returns:
Type
boolean

shouldOverrideDolbyVisionCodecs() → {boolean}

Checks should Dolby Vision codecs be overridden to their H.264 and H.265 equivalents.
Implements:
Source:
Returns:
Type
boolean

supportsAirPlay() → {boolean}

Implements:
Source:
Returns:
Type
boolean

supportsCbcsWithoutEncryptionSchemeSupport() → {boolean}

Implements:
Source:
Returns:
Type
boolean

supportsContainerChangeType() → {boolean}

Implements:
Source:
Returns:
Type
boolean

supportsEncryptionSchemePolyfill() → {boolean}

Implements:
Source:
Returns:
Type
boolean

supportsMediaCapabilities() → {boolean}

Implements:
Source:
Returns:
Type
boolean

supportsMediaSource() → {boolean}

Check if the current platform supports media source. We assume that if the current platform supports media source, then we can use media source as per its design.
Implements:
Source:
Returns:
Type
boolean

supportsMediaType(mimeType) → {boolean}

Returns true if the media type is supported natively by the platform.
Parameters:
Name Type Description
mimeType string
Implements:
Source:
Returns:
Type
boolean

supportsOfflineStorage() → {boolean}

Checks does the platform supports offline storage by IDB.
Implements:
Source:
Returns:
Type
boolean

supportsSequenceMode() → {boolean}

Returns true if the platform supports SourceBuffer "sequence mode".
Implements:
Source:
Returns:
Type
boolean

supportsServerCertificate() → {boolean}

Implements:
Source:
Returns:
Type
boolean

supportsSmoothCodecSwitching() → {boolean}

Returns if codec switching SMOOTH is known reliable device support. Some devices are known not to support SourceBuffer.changeType well. These devices should use the reload strategy. If a device reports that it supports but supports it unreliably it should be disallowed in this method.
Implements:
Source:
Returns:
Type
boolean

supportStandardVP9Checking() → {boolean}

Implements:
Source:
Returns:
Type
boolean