RE: tvapi-ACTION-39: Look into parental control

Great work and thank you Sean.

I also would like to thank Paul, Chris and Sung Hei for the great work, and we had a great achievement in the past 3 weeks. Now we only have 7 gaps [5] as follows. I captured the original table from Paul’s original analysis [6], and only keep current remaining gaps in the following table.

It seems to me that:

-          The first 4 gaps, i.e.” channel.search”, “channel.filter”, “channel.sort” and “channel.sequential” are actually addressed according to Notes.

-          CAS is being address by “ACTION-38” which is discussed at another thread [7].

So we only have 2 gaps here – “channel.tracks” and “program.data.video”.

Sean and Paul,

Can we address those 2 gaps “channel.tracks” and “program.data.video” in the next update of spec?



Req.ID


Requirement


Notes


channel.search


The API SHALL be able to provide the webapps with the functions of sorting, searching, and filtering the channel/program list, including but not limited to:


The current TVSource.getChannels()<http://w3c.github.io/tvapi/spec/#widl-TVSource-getChannels-Promise-sequence-TVChannel> API provides a sequence of TVChannel<http://w3c.github.io/tvapi/spec/#idl-def-TVChannel> objects. Assuming an idl <sequence> maps to a Javascript Array, then the application has access to all channels and can query as necessary with suitable iterators


channel.filter


filtered based on rating information for Parental Control


The current TVSource.getChannels()<http://w3c.github.io/tvapi/spec/#widl-TVSource-getChannels-Promise-sequence-TVChannel> API provides a sequence of TVChannel<http://w3c.github.io/tvapi/spec/#idl-def-TVChannel> objects. If an approach as outlined in the follow up to ACTION-39 is implemented, then this API can provide a subset of channels if Parental Control is currently active on the device

-          This can help stop unrated viewers reading descriptions and viewing poster art of rated programs


channel.sort


sorted based on program start time, name etc


The current TVSource.getChannels()<http://w3c.github.io/tvapi/spec/#widl-TVSource-getChannels-Promise-sequence-TVChannel> API provides a sequence of TVChannel<http://w3c.github.io/tvapi/spec/#idl-def-TVChannel> objects. Assuming an idl <sequence> maps to a Javascript Array, then the application has access to all channels and can query as necessary with suitable iterators


channel.sequential


The API SHALL be able to provide the webapps with the functions of getting the previous channel and next channel (channel up and down)


The current TVSource.getChannels()<http://w3c.github.io/tvapi/spec/#widl-TVSource-getChannels-Promise-sequence-TVChannel> API provides a sequence of TVChannel<http://w3c.github.io/tvapi/spec/#idl-def-TVChannel> objects. This could be assumed to be “sequential” so that TVChannel[i+1] is the ‘next channel’ from TVChannel[i]


channel.tracks


The API SHALL be able to enable the webapps to switch the video/audio/text tracks of a channel.


Q: When the currentChannel is played though the TVSource to MediaStream, are all tracks from the source (video, all audio, all info/subtitle) given? The MediaStream<http://www.w3.org/TR/mediacapture-streams/> specification only suggests a microphone (audio) and camera (video) track, TVSource would need some API to map received transport stream components onto these (OIPF DAE does this through the selectCompoent/unSelectComponent methods<http://www.oipf.tv/web-spec/volume5.html#extensions-for-playback-of-selected-media-components> for the video/broadcast object)


program.data.video


For video stream: such as quality, codec used, etc.


See the OIPF DAE specification for information on how various properties/attributes are populated for AVComponent<http://www.oipf.tv/web-spec/volume5.html#mapping-apis-to-content-formats-avcomponent>s, Channel<http://www.oipf.tv/web-spec/volume5.html#mapping-apis-to-content-formats-channel>s, Program<http://www.oipf.tv/web-spec/volume5.html#programme-scheduled-recording-recording-and-download>s (including recorded programs)


cas*





Q: Is Sung Hei looking at this area? (Action- 38)



Thank you and have a great weekend



Bin

[5] https://www.w3.org/community/tvapi/wiki/Main_Page/Progress_Measurement

[6] http://lists.w3.org/Archives/Public/public-tvapi/2015Aug/0011.html

[7] http://lists.w3.org/Archives/Public/public-tvapi/2015Sep/0008.html


From: Sean Lin [mailto:selin@mozilla.com]
Sent: Friday, September 11, 2015 1:05 AM
To: Paul Higgs
Cc: TV Control API Community Group
Subject: Re: tvapi-ACTION-39: Look into parental control

Hi all,

I just updated the draft to support Parental Control [1][2][3][4] based on previous analysis. The progress measurement [5] is also updated accordingly.

Please feel free to chime in with your comments/concerns/questions.

[1] https://w3c.github.io/tvapi/spec/#tvmanager-interface

[2] https://w3c.github.io/tvapi/spec/#tvchannel-interface

[3] https://w3c.github.io/tvapi/spec/#widl-TVSource-setCurrentChannel-Promise-void--DOMString-channelNumber

[4] https://w3c.github.io/tvapi/spec/#widl-TVRecording-getStream-Promise-TVBufferedMediaStream

[5] https://www.w3.org/community/tvapi/wiki/Main_Page/Progress_Measurement


Thanks,
Sean Lin
Mozilla Taiwan
selin@mozilla.com<mailto:selin@mozilla.com>


On Sat, Aug 15, 2015 at 12:37 AM, Paul Higgs <paul.higgs@ericsson.com<mailto:paul.higgs@ericsson.com>> wrote:

Hi all

Parental rating observation and control by an application is quite a complex beast, but based on our requirements and discussions I believe we need the following.

This is based on the OIPF Parental rating and parental control APIs which are the only known APIs to be implemented in the industry.



1.       We need to set a parental control code that can used by "adults" to unlock programs/channels/recordings and also administer permitted levels.
OIPF does this through setParentalControlPIN()<http://www.oipf.tv/web-spec/volume5.html#setparentalcontrolpin>. Functionality to set/reset the parental control code should added to the TVManager<http://w3c.github.io/tvapi/spec/#tvmanager-interface> since it is likely to apply in many areas. A computer based UA may also use system or UA setting to set/reset the code.  While any “phrase” could be used as a parental control code, typically a numeric PIN of at least 4 digits is used as this is the simplest user-interaction with a TV based device.



2.       Parental control enforcement is activated “system wide” and in the OIPF this is through the setParentalControlStatus<http://www.oipf.tv/web-spec/volume5.html#setparentalcontrolstatus>() method. TVManager<http://w3c.github.io/tvapi/spec/#tvmanager-interface> should provide functions to enable/disable parental control enforcement in a similar manner (an application dialog can ask for a PIN and call setParentalControlStatus(pin, false).



3.       Given the API is required to be deployed in different regions, each of whom are likely to have different parental rating schemes (see https://en.wikipedia.org/wiki/Television_content_rating_systems for global program rating schemes and the diversity). OIPF allows the application to define (via the addParentalRatingScheme<http://www.oipf.tv/web-spec/volume5.html#parentalratingschemecollection-addparentalratingscheme>() method) the parental control items that are permitted when parental control is enabled.



•         HbbTV 2.0<http://www.hbbtv.org/pages/about_hbbtv/specification-2.php> profiles (in A.1) the ratings to  “A scheme supporting DVB-SI age based rating shall be supported.”



4.       The setBlockUnrated<http://www.oipf.tv/web-spec/volume5.html#setblockunrated>() method can be used to block presentation of programs which do not contain any parental rating information



5.       OIPF does not define a method to explicitly identify a given channel and block all of its contents (from the 2015-08-04 minutes “Sean: As far as I know, the parent configures channels with an access code to unlock them”). To achieve this we would need a setParentalControlChannelStatus(pin:string, enable:boolean) against the TVChannel<http://w3c.github.io/tvapi/spec/#idl-def-TVChannel>.
There is a read-only Boolean locked<http://www.oipf.tv/web-spec/volume5.html#channel-locked> for the channel which indicates if playback is currently disabled due to parental control enforcement being in effect.



6.       If an attempt is made to “tune” to a channel using via one of the approaches supported in the OIPF video/broadcast<http://www.oipf.tv/web-spec/volume5.html#video-broadcast> element and parental rating enforcement is active and the current program on that channel is outside the permitted rating, then the onChannelChangeError<http://www.oipf.tv/web-spec/volume5.html#video-broadcast-onchannelchangeerror>(channel, error) event handler is invoked with error=3 “parental lock on channel”. A PIN can be entered and



7.       While tuned to a channel, if the parental rating changes to a value outside the permitted range the onParentalRatingChange<http://www.oipf.tv/web-spec/volume5.html#video-broadcast-onparentalratingchange>() event handler is called, the block argument to this indicates whether parental control enforcement is in effect.



8.       If the parental rating information is not available or not decodable then the onParentalRatingError<http://www.oipf.tv/web-spec/volume5.html#video-broadcast-onparentalratingerror>() event handler is called. It is then up to the application to determine what action to take,





The OIPF specification also defines “blocked” and “locked” properties/attributes  on Recordings<http://www.oipf.tv/web-spec/volume5.html#recording-class>, Programme<http://www.oipf.tv/web-spec/volume5.html#programme-class> and CODAsset<http://www.oipf.tv/web-spec/volume5.html#codasset-class>



Paul



-----Original Message-----
From: TV Control API Community Group Issue Tracker [mailto:sysbot+tracker@w3.org<mailto:sysbot%2Btracker@w3.org>]
Sent: Tuesday, August 04, 2015 9:50 AM
To: public-tvapi@w3.org<mailto:public-tvapi@w3.org>
Subject: tvapi-ACTION-39: Look into parental control



tvapi-ACTION-39: Look into parental control



http://www.w3.org/community/tvapi/track/actions/39




Assigned to: Paul Higgs

Received on Friday, 11 September 2015 17:13:56 UTC