Applications should be able to time synchronise their activity with the timeline of a programme being played on a television or other home media rendering device.

Application developers will benefit from having a single simple API that provides a unified interface to this functionality, irrespective of the means by which the programme is being delivered to, or played by, the television device.

The application is running on a different device from where the programme is being played. This could be a laptop, mobile phone, tablet, etc. Both devices are on the same home network. The device playing the programme may be a television or other media rendering device. The programme being played may be being obtained by a variety of different means:

from a live broadcast via an integrated tuner

playback from local storage (e.g. a Personal Video Recorder device)

streaming from another device on the home network

streaming from an on-demand internet service

The target of the API would be a processing engine on the home network. For a Javascript API this processing engine could be incorporated into the user agent. Alternatively, it could be implemented by any other device on the home network, including the television device itself. For the latter case, the user agent must be able to discover and communicate with the processing engine in order to execute the functions of the API.

The processing engine may, when appropriate, utilise existing home networking protocols to perform its function. For example: it may use UPnP AV services to query and set the playback time index.

An API meeting these requirements may enable an application to:

request the current playback time index of the programme being played on a given device

command the device to jump to a different playback time index

request notification when programme playback reaches a particular moment or time interval in the programme timeline.

Scenario: An application wants to present a slideshow of content relating to the programme the user is watching on their television. As the programme progresses, the slideshow automatically moves onto the correct slide for any given point in the programme. If it is possible to seek within the programme timeline (because the programme is not being watched from a live broadcast), the user can use the application to jump to a different point in the presentation and the television will also seek to the corresponding segment of the programme.

Justification:

Simplify creation of applications that will work with a range of devices and variety of means by which a given programme might played on the television.

Enable the creation of added-value viewing experience for the user where additional information is available in a timely fashion without interrupting the TV viewing experience or increasing on screen 'clutter'.

What could be standardised:

Type of use case: Application specific services / protocols / APIs

A Javascript API

Services or protocols implemented by devices on the home network

Dependencies:

Application discovering a service (issue 14)

Media Identification (issue 19) - required for an application to know which content to provide for the programme being watched in the described scenario

This use case could be considered an extension of the TV Control (issue 20) use case

matt: do these UPnP functions enable a companion device to time its own presentation of content (eg. a web application showing a slideshow) to that of the UPnP device if the UPnP device is tuned to a broadcast service (for example)? In this scenario it would not be appropriate or necessarily feasible to achieve synchronisation by commanding the device to commence playback at a particular master clock time. The clock synchronisation protocol mentioned in the UPnP spec is not itself a part of UPnP? In which case, perhaps an application would also need access to this service on the home network too?

rberkoff: IEEE-802.1AS can be used to provide 10's of nanoseconds timebase synchronisation