- From: Jim Barnett <Jim.Barnett@genesyslab.com>
- Date: Fri, 19 Oct 2012 08:53:18 -0700
- To: "Sunyang (Eric)" <eric.sun@huawei.com>, <public-media-capture@w3.org>
- Message-ID: <E17CAD772E76C742B645BD4DC602CD8106DB60F4@NAHALD.us.int.genesyslab.com>
I think this is poorly phrased. The most natural way of reading "Different MediaStreams do not need to be synchronized" is that if an app creates MediaStreams m1 and m2, the outputs from m1 and m2 need not be synchronized with each other. But that's obvious, given that m1 and m2 may contain totally different Tracks coming from totally different devices. The question is whether m1 and m2 must be synchronized if they contain the _same_ Tracks. If we mean that they do not need to be, we should re-phrase the sentence. The preceding sentence is: "All tracks in a MediaStream are intended to be synchronized when rendered." It would be more precise to follow with: "In cases where a track appears in multiple MediaStreams, they may apply differing synchronizations to it. " It would be clearest to give an example: "For example, if a video Track is placed in two MediaStreams which are displayed in two different <video> elements, the display in the two elements need not be synchronized" Jim P.S. This is relevant to the recording discussion. If we intend synchronization to work as I have defined it above, then we _cannot_ use TrackLists as an input to recording, since they won't be synchronized. From: Sunyang (Eric) [mailto:eric.sun@huawei.com] Sent: Wednesday, October 17, 2012 10:58 PM To: Jim Barnett; public-media-capture@w3.org Subject: RE: synchronization That is why in "media capture an streams", it is said " Different MediaStreams do not need to be synchronized.", "do not need" means synchronization may happen but not need to happen each time. Yang Huawei From: Jim Barnett [mailto:Jim.Barnett@genesyslab.com] Sent: Wednesday, October 17, 2012 11:20 PM To: public-media-capture@w3.org Subject: synchronization The spec says that synchronization happens at the MediaStream level, but doesn't explain how it occurs. It also doesn't explain how clients get media from either MediaStream or Track. This leaves some edge cases up in the air. Suppose we have Tracks t1 and t2 inside MediaStream m1 and Tracks t2 and t3 inside MediaStream m2: will m1's clients and m2's clients see the data from t1 and t3 as synchronized? t1 and t3 are both synchronized with t2, but in different MediaStreams. Is synchronization transitive across MediaStreams? Another way to put it is to ask whether the different MediaStreams can provide different synchronizations. Can m2 provide data from t2 that is not synchronized with t1? If synchronization is purely at the MediaStream level, it would seem to me that should be allowed. On the other hand, if we mean that it is the MediaStream's job to make sure that the Track _objects_ are synchronized, then if t1 is synced with t2 in one MediaStream, it will be synched with it in _any_ MediaStream. (So synchronization would be transitive across MediaStreams.) - Jim
Received on Friday, 19 October 2012 15:55:14 UTC