- From: Stefan Håkansson LK <stefan.lk.hakansson@ericsson.com>
- Date: Tue, 5 Nov 2013 18:35:27 +0000
- To: Harald Alvestrand <harald@alvestrand.no>, Adam Bergkvist <adam.bergkvist@ericsson.com>, "public-media-capture@w3.org" <public-media-capture@w3.org>
On 05/11/13 18:04, Harald Alvestrand wrote: > On 11/05/2013 06:47 AM, Adam Bergkvist wrote: >> On 2013-11-04 20:02, Harald Alvestrand wrote: >>> My alternate suggestion is to remove the constructor for >>> MediaStreamTrack until we have a good story on how we want to use naked >>> tracks; at the moment, no such compelling story has been told, as far as >>> I can tell, so I'd want to call that a "post version 1" feature. >> >> We can skip the MediaStreamTrack(kind, Constraints) constructor for >> now and only have a MediaStreamTrack(MediaStreamTrack) to make cloning >> consistent with MediaStream(MediaStream) (if we decide to go that way). >> >>> I would also suggest that AudioStreamTrack and VideoStreamTrack be >>> removed from the spec, since they now have no visible properties. >> >> That is my intention as well since removing the constructors from >> these types would leave nothing at all. >> >>> Replacing MediaStream.clone() with a MediaStream(MediaStream) >>> constructor doesn't matter to me - the difference seems to be syntax, >>> not semantics. >> >> So then the MediaStream(MediaStream) would clone the provided stream >> including its MediaStreamTracks. >> >> Should the MediaStream(sequence<MediaStreamTrack>) constructor clone >> the provided tracks or just add them? > > I would say that it adds them, so that > > s = MediaStream((track)) > > has the same result as > > s = MediaStream() > s.AddTrack(track) > > I think it would be confusing to have these two different. I agree. >> >> /Adam >> >>> On 11/04/2013 10:51 AM, Adam Bergkvist wrote: >>>> Hi >>>> >>>> In the current spec, we have the following APIs to create new >>>> instances of MediaStream and MediaStreamTrack: >>>> >>>> ------------ >>>> MediaStream() constructor >>>> - sequence<MediaStreamTrack> >>>> - MediaStream (used to clone the given stream, but behavior changed >>>> (accidentally?) when we switched to explicit cloning of tracks) >>>> >>>> MediaStream.clone() >>>> >>>> AudioStreamTrack() constructor >>>> - Constraints >>>> >>>> VideoStreamTrack() constructor >>>> - Constraints >>>> >>>> MediaStreamTrack.clone() >>>> ------------ >>>> >>>> I belive the API surface we expose for this functionality is a whole >>>> lot bigger than it would have to be. The Audio/VideoStreamTrack >>>> interfaces are empty now when getSourceIds() have become getDevices() >>>> on Navigator. I think we could get away with something like below: >>>> >>>> ------------ >>>> MediaStream() constructor >>>> - sequence<MediaStreamTrack> (add specified tracks to new stream) >>>> - MediaStream (clone given stream; including tracks) >>>> >>>> MediaStreamTrack() constructor >>>> - kind, Constraints (replaces constructors on derived types) >>>> - MediaStreamTrack (clone given track) >>>> ------------ >>>> >>>> /Adam >>>> >>> >>> >> > >
Received on Tuesday, 5 November 2013 18:35:53 UTC