Extensions to A/V Control object for DRM rights errors

Support in HbbTV

Available since: HbbTV 1.0 (ETSI TS 102 796 V1.1.1, OIPF DAE V1.1)

Mandatory if the DRM feature is supported or if the terminal supports CI Plus.

onDRMRightsError shall not cause a state transition of the A/V control object. It is the application’s responsibility to stop the A/V Control object if that is the appropriate behaviour under the circumstances. If an error is generated because a suitable DRM system is not available then the DRMSystemID argument shall be undefined.

This section SHALL apply to OITF and/or server devices which have indicated support for DRM protection by providing one or more <drm> elements as specified in section 9.3.10:

For notifying JavaScript about DRM licensing errors during playback of DRM protected A/V content through the CEA-2014 A/V Control object (as defined by as defined in section 5.7.1 of CEA-2014-A) an OITF SHALL support the following intrinsic event property and corresponding DOM event, for the CEA-2014 A/V Control object.

function onDRMRightsError( Integer errorState, String contentID, String DRMSystemID,
String rightsIssuerURL )
The function that is called:
· Whenever a rights error occurs for the A/V content (no license, license invalid), which has led to blocking consumption of the content.
· Whenever a rights change occurs for the A/V content (license valid), which leads to unblocking the consumption of the content.

This may occur during playback, recording or timeshifting of DRM protected AV content.

The specified function is called with four arguments errorState, contentID, DRMSystemID and rightsIssuerURL which are defined as follows:
· Integer errorState – error code detailing the type of error:
0: no license, consumption of the content is blocked
1: invalid license, consumption of the content is blocked
2: valid license, consumption of the content is unblocked
· String contentID – the unique identifier of the protected content in the scope of the DRM system that raises the error (i.e. in the case of Marlin BB it is the Marlin contentID, in the case of CSPG-CI+ the value of this field is null).
· String DRMSystemID – DRMSystemID as defined by element DRMSystemID in Table 9 of section 3.3.2 of [OIPF_META2]. For example, for Marlin, the DRMSystemID value is “urn:dvb:casystemid:19188”.
· String rightsIssuerURL – optional element indicating the value of the rightsIssuerURL that can be used to non-silently obtain the rights for the content item currently being played for which this DRM error is generated, in cases whereby the rightsIssuerURL is known. Cases whereby the rightsIssuerURL is known include cases whereby the rightsIssuerURL has been extracted from the MPEG2_TS of the protected content, retrieved from the SD&S discovery record or from the associated BCG metadata. The corresponding rightsIssuerURL fields are defined in section of [OIPF_CSP2] and in section 3.3.2 of [OIPF_META2] respectively. If different URLs are retrieved from the stream and the metadata, then the conflict resolution is implementation-dependent.

For the intrinsic events listed in the table below, a corresponding DOM event SHALL be generated in the following manner:

Intrinsic eventCorresponding DOM eventDOM Event properties
onDRMRightsErrorDRMRightsErrorBubbles: No Cancellable: No Context Info: errorState, contentID, DRMSystemID, rightsIssuerURL

Note: the above DOM event is directly dispatched to the event target, and will not bubble nor capture. Applications SHOULD NOT rely on receiving a DRMRightsError event during the bubbling or the capturing phase. Applications that use DOM event handlers SHALL call the addEventListener() method on the CEA-2014 A/V Control object. The third parameter of addEventListener, i.e. “useCapture”, will be ignored.