- From: Francois Daoust <fd@w3.org>
- Date: Tue, 07 Jul 2015 17:26:20 +0200
- To: public-webtiming@w3.org
Hi Multi-Device Timing CG, Right now, the Timing Object specification is clear, elegant and simple but also single-device and not connected to existing elements in HTML5. This makes it hard to evaluate its "full potential", especially when talking to external people. I have been thinking on ways to update the spec to: 1. specify how a timing object can be associated with an online timing resource, to fulfill the multi-device promise 2. specify how a timing object may control a media element for cross-device synchronized video playback 3. specify how a timing object may control TextTrack objects to create a Sequencer Here is what I have in mind. I plan to propose spec prose along these lines. The result will not be perfect. I left some details out below on purpose but even with details in, I expect many open questions to remain. However, having some text in place along these lines would allow to reach out to potential implementers and gather feedback. What do you think? 1. Association with an online timing resource ========== It seems important to leave some freedom for timing providers to control the communication and messaging protocols used to interact with the online timing service. What this means to me is that there needs to be a way to plug an object provided by the timing provider into a timing object. I propose to: - define a TimingProvider interface that timing providers would need to implement. - add a "timing provider" product to the conformance section since the above interface would not be implemented by user agents. - add an "srcObject" attribute to the Timing Object interface which, on setting, would associate the timing object with the TimingProvider object. - adjust the algorithms accordingly Note a user agent may could provide a native implementation of TimingProvider objects. This would be required to support existing protocols that are not exposed to Web pages, such as the UDP-based communication protocol used in DVB TM-CSS for clock synchronization. 2. How to bind a media element to a timing object ========== From a media element perspective, a timing object looks like a Media Controller with one notable exception: a media element cannot pause a timing object when data buffer runs out. Here, I propose to: - extend the MediaElement interface to add a new attribute named "timing" that would associate it with a timing object. - reference appropriate algorithms, clarifying for instance that the "position" of the timing object becomes the "associated clock" of the "media timeline" in the generic case. - note the need for the user agent to keep up with the position of the timing object no matter what, even if that means skipping several seconds. 3. Sequencer ========== With TextTracks, HTML5 already has a Sequencer in place to some extent. The main restriction is that TextTracks are bound to a media element and we don't want that restriction. Instead of creating a dedicated Sequencer interface, I propose to: - add an "addTextTrack" method to the TimingObject interface - explain that a TimingObject must run the "time marches on" algorithm (or a slightly updated version of it) when it is moving, as defined in HTML5. Reusing TextTracks may not be as beautiful as having a nice Sequencer interface but that should be enough to enable the required functionality and would require very limited updates to the spec. Thanks, Francois.
Received on Tuesday, 7 July 2015 15:26:32 UTC