Class: shaka.dash.ContentProtection

A set of functions for parsing and interpreting ContentProtection elements.

Constructor

new ContentProtection()

A set of functions for parsing and interpreting ContentProtection elements.

Source:

Members

Aes128Protection_ :string

Type:
  • string
Source:

CencNamespaceUri_ :string

Type:
  • string
Source:

ClearKeyNamespaceUri_ :string

Type:
  • string
Source:

ClearKeySchemeUri_ :string

Type:
  • string
Source:

DashIfNamespaceUri_ :string

Type:
  • string
Source:

licenseUrlParsers_ :Map.<string, function(shaka.dash.ContentProtection.Element)>

A map of key system name to license server url parser.
Type:
Source:

MP4Protection_ :string

Type:
  • string
Source:

PLAYREADY_RECORD_TYPES :number

Enum for PlayReady record types.
Type:
  • number
Properties:
Name Value Type Description
RIGHTS_MANAGEMENT 1 number
RESERVED 2 number
EMBEDDED_LICENSE 3 number
Source:

Methods

convertElements_(defaultInit, encryptionScheme, elementsnon-null, keySystemsByURInon-null, keyIdsnon-null) → {Array.<shaka.extern.DrmInfo>}

Creates DrmInfo objects from the given element.
Parameters:
Name Type Description
defaultInit Array.<shaka.extern.InitDataOverride>
encryptionScheme string
elements Array.<shaka.dash.ContentProtection.Element>
keySystemsByURI Object.<string, string>
keyIds Set.<string>
Source:
Returns:
Type
Array.<shaka.extern.DrmInfo>

getClearKeyLicenseUrl(element) → {string}

Gets a ClearKey license URL from a content protection element containing a custom `clearkey::Laurl` or 'dashif:Laurl' elements
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
Source:
Returns:
Type
string

getFairPlayLicenseUrl(element) → {string}

Gets a FairPlay license URL from a content protection element containing a 'dashif:Laurl' element
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
Source:
Returns:
Type
string

getInitDataClearKey_(element, keyIdsnon-null) → {Array.<shaka.extern.InitDataOverride>}

Creates ClearKey initData from Default_KID value retrieved from previously parsed ContentProtection tag.
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
keyIds Set.<string>
Source:
Returns:
Type
Array.<shaka.extern.InitDataOverride>

getInitDataFromPro_(element) → {Array.<shaka.extern.InitDataOverride>}

Gets a PlayReady initData from a content protection element containing a PlayReady Pro Object
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
Source:
Returns:
Type
Array.<shaka.extern.InitDataOverride>

getLaurl_(xmlnon-null) → {string}

PlayReady Header format: https://goo.gl/dBzxNA
Parameters:
Name Type Description
xml shaka.extern.xml.Node
Source:
Returns:
Type
string

getPlayReadyLicenseUrl(element) → {string}

Gets a PlayReady license URL from a content protection element containing a PlayReady Header Object
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
Source:
Returns:
Type
string

getWidevineLicenseUrl(element) → {string}

Gets a Widevine license URL from a content protection element containing a custom `ms:laurl` or 'dashif:Laurl' elements
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
Source:
Returns:
Type
string

parseAes128_(element) → {shaka.dash.ContentProtection.Aes128Info}

Parses the given AES-128 ContentProtection element.
Parameters:
Name Type Description
element shaka.dash.ContentProtection.Element
Source:
Returns:
Type
shaka.dash.ContentProtection.Aes128Info

parseElement_(elemnon-null) → {shaka.dash.ContentProtection.Element}

Parses the given ContentProtection element.
Parameters:
Name Type Description
elem shaka.extern.xml.Node
Source:
Returns:
Type
shaka.dash.ContentProtection.Element

parseElements_(elemsnon-null) → {Array.<shaka.dash.ContentProtection.Element>}

Parses the given ContentProtection elements. If there is an error, it removes those elements.
Parameters:
Name Type Description
elems Array.<!shaka.extern.xml.Node>
Source:
Returns:
Type
Array.<shaka.dash.ContentProtection.Element>

parseFromAdaptationSet(elemsnon-null, ignoreDrmInfo, keySystemsByURInon-null) → {shaka.dash.ContentProtection.Context}

Parses info from the ContentProtection elements at the AdaptationSet level.
Parameters:
Name Type Description
elems Array.<!shaka.extern.xml.Node>
ignoreDrmInfo boolean
keySystemsByURI Object.<string, string>
Source:
Returns:
Type
shaka.dash.ContentProtection.Context

parseFromRepresentation(elemsnon-null, context, ignoreDrmInfo, keySystemsByURInon-null) → {string}

Parses the given ContentProtection elements found at the Representation level. This may update the |context|.
Parameters:
Name Type Description
elems Array.<!shaka.extern.xml.Node>
context shaka.dash.ContentProtection.Context
ignoreDrmInfo boolean
keySystemsByURI Object.<string, string>
Source:
Returns:
The parsed key ID
Type
string

parseMsPro_(data) → {Array.<shaka.dash.ContentProtection.PlayReadyRecord>}

Parses a buffer for PlayReady Objects. The data should contain a 32-bit integer indicating the length of the PRO in bytes. Following that, a 16-bit integer for the number of PlayReady Object Records in the PRO. Lastly, a byte array of the PRO Records themselves. PlayReady Object format: https://goo.gl/W8yAN4
Parameters:
Name Type Description
data BufferSource
Source:
Returns:
Type
Array.<shaka.dash.ContentProtection.PlayReadyRecord>

parseMsProRecords_(viewnon-null, byteOffset) → {Array.<shaka.dash.ContentProtection.PlayReadyRecord>}

Parses an Array buffer starting at byteOffset for PlayReady Object Records. Each PRO Record is preceded by its PlayReady Record type and length in bytes. PlayReady Object Record format: https://goo.gl/FTcu46
Parameters:
Name Type Description
view DataView
byteOffset number
Source:
Returns:
Type
Array.<shaka.dash.ContentProtection.PlayReadyRecord>

Type Definitions

Aes128Info

Contains information about the AES-128 keyUri and IV found at the AdaptationSet level.
Type:
  • {keyUri: string, iv: !Uint8Array}
Properties:
Name Type Description
method string The keyUri in the manifest.
iv Uint8Array The IV in the manifest.
Source:

Context

Contains information about the ContentProtection elements found at the AdaptationSet level.
Type:
Properties:
Name Type Attributes Description
defaultKeyId string <nullable>
The default key ID to use. This is used by parseKeyIds as a default. This can be null to indicate that there is no default.
defaultInit Array.<shaka.extern.InitDataOverride> The default init data override. This can be null to indicate that there is no default.
drmInfos Array.<shaka.extern.DrmInfo> The DrmInfo objects.
aes128Info shaka.dash.ContentProtection.Aes128Info <nullable>
The AES-128 key info.
firstRepresentation boolean True when first parsed; changed to false after the first call to parseKeyIds. This is used to determine if a dummy key-system should be overwritten; namely that the first representation can replace the dummy from the AdaptationSet.
Source:

Element

The parsed result of a single ContentProtection element.
Type:
Properties:
Name Type Attributes Description
node shaka.extern.xml.Node The ContentProtection XML element.
schemeUri string The scheme URI.
keyId string <nullable>
The default key ID, if present.
init Array.<shaka.extern.InitDataOverride> The init data, if present. If there is no init data, it will be null. If this is non-null, there is at least one element.
encryptionScheme string <nullable>
The encryption scheme, if present.
Source:

PlayReadyRecord

The parsed result of a PlayReady object record.
Type:
  • {type: number, value: !Uint8Array}
Properties:
Name Type Description
type number Type of data stored in the record.
value Uint8Array Record content.
Source: