Extensions to A/V Control object for parental rating errors
Support in HbbTV
Available since: HbbTV 1.5 (ETSI TS 102 796 V1.2.1, OIPF DAE V1.2)
See clause 10.2.6.
Comment
10.2.6 Parental access control
10.2.6.1 Broadcast channel
Terminals shall support parental access control for the broadcast TV content and application as required for the markets in which the products are to be sold or deployed. The details of this are outside the scope of the present document. Typically the end user may have to enter the appropriate PIN in order to obtain access to TV content above the parental rating threshold. The following shall apply if access to broadcast TV content and/or application is blocked as a result:
- If access to broadcast TV content is blocked when changing to a channel, this shall be reported to any running HbbTV®application which survives the channel change and has registered a listener for a ChannelChangeError event as an error with error state 3 (“parental lock on channel”).
- If access to broadcast TV content becomes blocked while a channel is selected, this shall be reported to any running HbbTV®application which has registered a listener for a ParentalRatingChange
The following shall apply if access to broadcast applications is blocked as a result:
- If access to an application in the broadcast AIT is blocked and the launch of this application is due to the behaviour defined in clauses 6.2.2.2 and 6.2.2.3, then the rules defined in those clauses apply.
- If access to an application in the broadcast AIT is blocked and the launch of this application is being requested by another application, then this launch request shall fail and the application shall not be loaded or run.
In terminals where CI or CI Plus [12] is supported, the CICAM may also enforce parental access control for the broadcast channel.
10.2.6.2 Broadband delivered content
Applications offering access to streaming on-demand content shall obtain the parental rating system threshold set on the terminal and only stream appropriate content to the terminal.
In spite of the above, the present document requires the terminal to react to signalled parental rating information in some circumstances. Some combinations of system formats and media APIs permit parental rating information to be associated with broadband streamed content. Where the present document requires support for the location where that parental rating information may be carried and where parental rating information is provided in a parental rating scheme that the terminal supports then this shall be checked. Terminals shall not just ignore such information assuming that applications comply with the above requirement.
The content access descriptor has an optional <ParentalRating> element which can be used to carry parental rating information associated with the content that it references.
Particularly for live content, clause 9.1.2.3 of ETSI TS 103 285 [45] defines how parental rating information can be carried using the DASH event mechanism. In markets where the DVB-SI parental rating descriptor is used in the broadcast, terminals shall react to these DASH events in the same way as they react to the DVB-SI parental rating descriptor in the broadcast channel. In markets where the DVB-SI parental rating descriptor is not used in the broadcast, terminals may enforce the parental rating information carried in these DASH events.
NOTE: It is implementation dependent whether presentation of content is paused while any parental access authorization is obtained (in which case presentation would start or resume behind the live edge) or if content is discarded (so that presentation starts or resumes at the live edge).
In terminals where CI or CI Plus [12] is supported, the CICAM may also enforce parental access control for streamed content.
10.2.6.3 Downloaded content
Broadcasters and service providers offering content for download shall populate the otherwise optional <parentalRating> element in the content access descriptor with the correct value for each content item downloaded. When playing back a downloaded content item, terminals shall compare the value in the <parentalRating> element in the content access descriptor used to download the content item with the current parental rating system threshold and only play appropriate content. In markets where the DVB-SI parental rating descriptor is used in the broadcast, terminals shall support the use of that parental rating scheme for downloaded content. In markets where the DVB-SI parental rating descriptor is not used in the broadcast, terminals should support an appropriate parental rating scheme for downloaded content.
NOTE: The definition of what content is appropriate is outside the scope of the present document. Typically this could be any content under the threshold or content above the threshold where the end-user has entered a PIN.
If playback which was initiated by an HbbTV® application is blocked following such a comparison:
- If the playback was initiated using an A/V Control object then the object shall enter play state 6 (error) with the error property set to 7 (“content blocked due to parental control”) and an onParentalRatingChange event posted.
- If the playback was initiated using an HTML5 video element then the error property of the video element shall be set to a MediaError with the code set to MEDIA_ERR_DECODE and fire an error event at the media element.
In terminals where CI or CI Plus [12] is supported, the CICAM may also enforce parental access control for downloaded content.
10.2.6.4 PVR
Broadcasters and service providers whose applications create Programme objects and pass them to the record(Programme programme) method of the application/oipfRecordingScheduler object shall populate the parentalRating property of the Programme object. Terminals shall obtain the parental rating information from DVB‑SI (or an alternative source if one is supported and in use) at the time of recording and store this with the scheduled recording in the system and copy it to the in-progress recording once the recording process starts. This shall override any parental rating information provided earlier in the recording process. Where a recording is scheduled using the recordAt() method or started using the recordNow() method, the parental rating assigned to the recording shall be the most restrictive value encountered during the recording process.
Before playing back a recording, terminals shall compare the parental rating stored with the recording with the current parental rating system threshold and shall only play appropriate content.
NOTE: The definition of what content is appropriate is outside the scope of the present document. Typically this could be any content under the threshold or content above the threshold where the end-user has entered a PIN.
If playback which was initiated by an HbbTV® application is blocked following such a comparison:
- If the playback was initiated using an A/V Control object then the object shall enter play state 6 (error) with the error property set to 7 (“content blocked due to parental control”) and an onParentalRatingChange event posted.
- If the playback was initiated using an HTML5 video element then the error property of the video element shall be set to a MediaError with the code set to MEDIA_ERR_DECODE and fire an error event at the media element.
When playing back an in-progress recording, if the parental rating value of the recording changes, the terminal shall:
- Dispatch a ParentalRatingChange
- Compare the new parental rating value with the current parental rating threshold and, if the content has become inappropriate, the A/V Control object shall enter play state 6 (error) with the error property set to 7 (“content blocked due to parental control”).
In terminals where CI or CI Plus [12] is supported, the CICAM may also enforce parental access control for recorded content.
10.2.6.5 Synchronization and parental access control
If access to media content presented by a video/broadcast object, an HTML5 media element or an A/V Control object is blocked by the terminal due to parental access control then:
- If it represents master media (it was passed to a MediaSynchroniser via the initMediaSynchroniser() method) then this shall result in a permanent error of the MediaSynchroniser (see clause 13.3.8) with an error being triggered with error number 14.
- If it represents other media (it was added to a MediaSynchroniser via the addMediaObject() method) then this shall result in a transient error of the MediaSynchroniser (see clause 13.3.7) and the object shall be removed as if an application had called the removeMediaObject() method and an error event triggered with error number 2.
For parental rating errors during playback of A/V content through the CEA-2014 A/V Control object (as defined in section 5.7.1 of [CEA-2014-A]) an OITF SHALL support the following intrinsic event properties and corresponding DOM events for the CEA-2014 A/V Control object.
function onParentalRatingChange( String contentID,ParentalRatingCollection ratings, String DRMSystemID, Boolean blocked ) |
The function that is called whenever the parental rating of the content being played inside the A/V Control object changes. These events may occur at the start of a new content item, or during playback of a content item (e.g. during playback of A/V streaming content). The specified function is called with four arguments contentID, ratings, DRMSystemID, and blocked which are defined as follows: · String contentID – the content ID to which the parental rating change applies. If the event is generated by the DRM system, it SHALL be the unique identifier for that content in the context of the DRM system (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). Otherwise, it MAY be null or undefined. · ParentalRatingCollection ratings – the parental ratings of the currently playing content. The ParentalRatingCollection object is defined in section 7.9. · String DRMSystemID – the DRM System ID of the DRM system that generated the event as defined by element DRMSystemID in section 3.3.2 of [OIPF_META2]. The value SHALL be null if the parental control is not enforced by a particular DRM system. · Boolean blocked – flag indicating whether consumption of the content is blocked by the parental control system as a result of the new parental rating value. |
function onParentalRatingError( String contentID, ParentalRatingCollection ratings, String DRMSystemID ) |
The function that is called when a parental rating error occurs during playback of A/V content inside the A/V Control object, and is triggered whenever one or more parental ratings are discovered and none of them are valid. A valid parental rating is defined as one which uses a parental rating scheme that is supported by the OITF and which has a parental rating value that is supported by the OITF. The specified function is called with three arguments contentID, rating, and DRMSystemID which are defined as follows: · String contentID – the content ID to which the parental rating error applies. If the event is generated by the DRM system, it SHALL be the unique identifier for that content in the context of the DRM system (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). Otherwise, it MAY be null or undefined. · ParentalRatingCollection ratings – the parental rating value of the currently playing content. The ParentalRatingCollection object is defined in section 7.9.5. · String DRMSystemID – optional argument that specifies the DRM System ID of the DRM system that generated the event as defined by element DRMSystemID in section 3.3.2 of [OIPF_META2]. The value SHALL be null if the parental control is not enforced by a particular DRM system. |
Events
For the intrinsic events listed in the table below, a corresponding DOM event SHALL be generated in the following manner:
Intrinsic event | Corresponding DOM event | DOM Event properties |
onParentalRatingChange | ParentalRatingChange | Bubbles: No Cancellable: No Context Info: contentID, ratings, DRMSystemID, blocked |
onParentalRatingError | ParentalRatingError | Bubbles: No Cancellable: No Context Info: contentID, ratings, DRMSystemID. |
Note: the above DOM events are directly dispatched to the event target, and will not bubble nor capture. Applications SHOULD NOT rely on receiving these events during the bubbling or the capturing phase. The applications that use DOM event handlers SHALL call the addEventListener() method on the CEA-2014 A/V embedded object. The third parameter of addEventListener, i.e. “useCapture”, will be ignored.