W3C home > Mailing lists > Public > public-webrtc@w3.org > May 2014

Re: Next steps on RTCRtpSender "doohickey" proposal

From: Martin Thomson <martin.thomson@gmail.com>
Date: Tue, 20 May 2014 12:24:09 -0700
Message-ID: <CABkgnnWANUXkZERjpLVYXKPmX6EDTu6OqdagFDj+vOMrbLk67w@mail.gmail.com>
To: Justin Uberti <juberti@google.com>
Cc: "public-webrtc@w3.org" <public-webrtc@w3.org>
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 Tuesday, 20 May 2014 19:24:37 UTC

This archive was generated by hypermail 2.3.1 : Monday, 23 October 2017 15:19:40 UTC