Re: Next steps on RTCRtpSender "doohickey" proposal

Did we agree on variadic, or addTrack(MST track, sequence<MS> streams)?


On Tue, May 20, 2014 at 12:24 PM, Martin Thomson
<martin.thomson@gmail.com>wrote:

> We discussed this and we're OK with the basics, but the following was
> a little controversial:
>
> void addTrack(MediaStreamTrack track, optional MediaStream stream);
>
> We concluded to do instead:
>
> void addTrack(MediaStreamTrack track, MediaStream... stream);
>
> Variadic arguments FTW.
>
> On 7 May 2014 21:34, Justin Uberti <juberti@google.com> wrote:
> > Trying to bring this discussion to a conclusion... I sense consensus
> around
> > the following:
> > - General concept of doohickeys, i.e. RTCRtpSender, RTPRtpReceiver.
> > - addTrack(track, streamId)/removeTrack and onaddtrack.
> > - Implicit cloning never occurs. This means that if you want to add a
> track
> > twice to a PC, you need to first clone it.
> >
> > More discussion is still needed on:
> > - RTCRtpEncodingParams
> > - RTCDtlsTransport
> >
> > Therefore I would like to advance the initial, uncontroversial parts of
> this
> > proposal, i.e. what I describe below. We can then discuss the exact
> nature
> > of the encodings and transport objects separately on the list, and at the
> > interim meeting.
> >
> > // the "send" doohickey
> >
> > interface RTCRtpSender {
> >
> >  readonly attribute MediaStreamTrack track;
> >
> > };
> >
> >
> > // the "receive" doohickey
> >
> > interface RTCRtpReceiver {
> >
> >  readonly attribute MediaStreamTrack track;
> >
> > };
> >
> >
> > // parameter to the onaddtrack event
> >
> > interface AddTrackEvent : Event {
> >
> >  readonly attribute RtpReceiver receiver;
> >
> >  readonly attribute MediaStreamTrack track;
> >
> >  readonly attribute MediaStream stream;
> >
> > };
> >
> >
> > partial interface RTCPeerConnection {
> >
> > // because a track can be part of multiple streams, the id parameter
> >
> >  // indicates which particular stream should be referenced in signaling
> >
> >  RTCRtpSender addTrack(track, streamId);  // replaces addStream; fails if
> > |track| has already been added
> >
> >  void removeTrack(RTCRtpSender);  // replaces removeStream
> >
> >  sequence<RTCRtpSender> getSenders();
> >
> >  sequence<RTCRtpReceiver> getReceivers();
> >
> >  EventHandler onaddtrack;  // replaces onaddstream; event object is
> > RemoteTrackEvent.
> >
> >                                         // note that onremovestream is
> not
> > needed, since tracks are 'removed'
> >
> >                                         // simply by progressing to the
> > ENDED state
> >
> > };
> >
> >
> >
>

Received on Wednesday, 21 May 2014 14:52:20 UTC