- From: Justin Uberti <juberti@google.com>
- Date: Wed, 7 May 2014 21:34:51 -0700
- To: "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <CAOJ7v-3kAkdCrm+4LKxH2CfJa2AsV1zHk5k-r4AcpT09Ey-JNg@mail.gmail.com>
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 Thursday, 8 May 2014 04:35:38 UTC