- From: Adam Bergkvist <adam.bergkvist@ericsson.com>
- Date: Wed, 11 Jul 2012 10:11:04 +0200
- To: Stefan Hakansson LK <stefan.lk.hakansson@ericsson.com>
- CC: "public-media-capture@w3.org" <public-media-capture@w3.org>
On 2012-07-10 14:01, Stefan Hakansson LK wrote: > On 07/09/2012 03:27 PM, Adam Bergkvist wrote: >> On 06/14/2012 10:52 AM, Adam Bergkvist wrote: >>> On 2012-05-15 19:40, Anant Narayanan wrote: >>>> On 05/15/2012 06:47 AM, Rich Tibbett wrote: >>>>> Anant Narayanan wrote: >>>>>>> On 2012-05-10 13:32, Rich Tibbett wrote: >>>>>> >>>>>>>> We could certainly tighten up the definition of the >>>>>>>> MediaStreamTrackList >>>>>>>> collection interface and I would be happy to take an action to propose >>>>>>>> some text here. >>>>>> >>>>>> Sounds great, thanks Rich! >>>>> >>>>> What would be the best way to do this? Plain text in an email, forking >>>>> the spec to add the proposal in ReSpec markup so it can be copied >>>>> verbatim in to the spec on approval or adding and committing the updates >>>>> directly to the spec in the version control system? >>>> >>>> All of the above! Use any mechanism you are comfortable with and I'll >>>> make sure the text ends up in the right place. >>> >>> I was going to propose some changes to the MediaStream() constructor >>> algorithm, but I think it would be best to move to the new argument list >>> before. >>> >>> What's the status on this Rich? I can write something up if you feel >>> that you don't have the time. >>> >> >> Here's text for the MediaStream() constructor that lets the developer >> pass a list of MediaStream, MediaStreamTrackList and MediaStreamTrack as >> argument. The algorithm also clarifies that the tracks in the new stream >> are new instances. >> >> If we want to proceed with it I can push it from my local repo. We might >> want to add text about what happens when ended tracks/streams are passed >> in as arguments. > > This looks reasonable to me. I think text about what happens if > tracks/streams that are ended are passed should be added. Some more > comments in-line below. Yes, I'll add that. >> >> /Adam >> >> ------- >> >> The MediaStream() constructor takes zero or one argument. If the >> argument, trackContainers, is supplied, it specifies a list of >> MediaStream, MediaStreamTrackList and MediaStreamTrack objects. The list >> objects specifies existing tracks whose sources will be used to constuct >> the tracks in the new MediaStream object. A MediaStreamTrack object >> specifies a track directly, while MediaStream and MediaStreamTrackList >> objects specifiy all tracks contained within these objects. When the >> constructor is invoked, the UA must run the following steps: >> >> 1. Let trackContainers be the constructor’s argument, if any, or >> null otherwise. >> >> 2. Let stream be a newly constructed MediaStream object. >> >> 3. Set stream’s label attribute to a newly generated value. >> >> 4. If trackContainers is not null, then run the following sub steps >> for every element, trackContainer, in trackContainers: >> >> 1. If trackContainer is null, then abort these steps and >> continue with the next element. >> >> 2. If trackContainer is of type MediaStreamTrack, then run the >> following sub steps: >> >> 1. Add track: Let track be the MediaStreamTrack about to be >> processed. >> >> 2. If track’s kind attribute is not "audio" or "video", >> then throw a SyntaxError exception. >> >> 3. If there is a MediaStreamTrack contained within stream >> that has the same underlying source as track, then abort these steps. >> >> 4. Create a new MediaStreamTrack object and let it inherit >> track’s underlying source, kind, label and enabled attributes. Add the > > Should it really inherit the enabled state? I thought it would always be > in state enabled when created. That sounds reasonable to me. > Also should "Add" be "Append"? Perhaps this part is a bit under-specified. We have other text in the spec that says if the media source has a format that defines a track order it should be used in a MediaStream and so on. Perhaps we could use "append" for now and see if we have any reason to enforce order later. Thanks for reviewing. /Adam >> new MediaStreamTrack to the corresponding track list (audioTracks or >> videoTracks) in stream according to kind. >> >> 3. If trackContainer is of type MediaStreamTrackList, then run >> the sub steps labeled Add track (above) for every MediaStreamTrack in >> trackContainer. >> >> 4. If trackContainer is of type MediaStream, then run the sub >> steps labeled Add track (above) for every MediaStreamTrack in >> trackContainer’s two track lists (audioTracks and videoTracks). >> >> 5. Return stream.
Received on Wednesday, 11 July 2012 08:11:38 UTC