Class: shaka.dash.ContentProtection

A set of functions for parsing and interpreting ContentProtection elements.

Members

(private, static, constant) CencNamespaceUri_ :string

Type:
  • string
Source:

(private, static, constant, non-null) defaultKeySystems_ :Map.<string, string>

A map of scheme URI to key system name.
Type:
  • Map.<string, string>
Source:

(private, static, constant, non-null) licenseUrlParsers_ :Map.<string, function(shaka.dash.ContentProtection.Element)>

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

(private, static, constant) MP4Protection_ :string

Type:
  • string
Source:

(static) 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

(private, static) convertElements_(defaultInit, callback, elementsnon-null) → (non-null) {Array.<shaka.extern.DrmInfo>}

Creates DrmInfo objects from the given element.
Parameters:
Name Type Description
defaultInit Array.<shaka.extern.InitDataOverride>
callback shaka.extern.DashContentProtectionCallback
elements Array.<shaka.dash.ContentProtection.Element>
Source:
Returns:
Type
Array.<shaka.extern.DrmInfo>

(private, static) getLaurl_(xmlnon-null) → {string}

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

(static) 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

(static) getWidevineLicenseUrl(element) → {string}

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

(private, static) parseElement_(elemnon-null) → (nullable) {shaka.dash.ContentProtection.Element}

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

(private, static) parseElements_(elemsnon-null) → (non-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.<!Element>
Source:
Returns:
Type
Array.<shaka.dash.ContentProtection.Element>

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

Parses info from the ContentProtection elements at the AdaptationSet level.
Parameters:
Name Type Description
elems Array.<!Element>
callback shaka.extern.DashContentProtectionCallback
ignoreDrmInfo boolean
Source:
Returns:
Type
shaka.dash.ContentProtection.Context

(static) parseFromRepresentation(elemsnon-null, callback, context, ignoreDrmInfo) → (nullable) {string}

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

(private, static) parseMsPro_(datanon-null) → (non-null) {Array.<shaka.dash.ContentProtection.PlayReadyRecord>}

Parses an ArrayBuffer 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 ArrayBuffer
Source:
Returns:
Type
Array.<shaka.dash.ContentProtection.PlayReadyRecord>

(private, static) parseMsProRecords_(recordDatanon-null, byteOffset) → (non-null) {Array.<shaka.dash.ContentProtection.PlayReadyRecord>}

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

Type Definitions

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.
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 Element 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.
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: