W3C home > Mailing lists > Public > public-webrtc@w3.org > September 2015

Proposal: Combine createRtpSender (PR 271) and createRtpReceiver (PR 279) into one method (PR 293)

From: Peter Thatcher <pthatcher@google.com>
Date: Tue, 8 Sep 2015 23:36:21 -0700
Message-ID: <CAJrXDUEZTudtb=o7one6UTEAG-yWQ7V81XW5MYoef9SVH3-92w@mail.gmail.com>
To: "public-webrtc@w3.org" <public-webrtc@w3.org>
Working through many use cases for createRtpSender and createRtpReceiver
has made me realize that what would be much cleaner is to have a method
that creates both like so:

// Replaces createRtpSender
var media = pc.addMedia("video", {send: true, receive: true});

// Replaces createRtpReceiver
var media = pc.addMedia("audio", {send: false, receive: true});

// Replaces addTrack + "offerToReceive: 0"
pc.addMedia("video", {send: true, receive: false});

The return time is a pair of an RtpSender and RtpReceiver:

interface RTCRtpTransceiver {
  readonly attribute mid;  // Chosen when addMedia is called.
  // These are non-nullable.  You get one, even if it isn't actively
  readonly attribute RtpSender sender;
  readonly attribute RtpReceiver receiver;

Rather than call it "RTCRtpPair", I called it "RTCRtpTransceiver", but
that's just a placeholder (much like "doohikies" was).  We can get creative
with the names later.  For now, the point is that this is cleaner than
having separate createRtpSender and createRtpReceiver methods.   Similarly,
I could have called it "createRtpTransceiver", but "addMedia" sounded a lot
nicer, and we can get creative with names later.

This also provides a nice place to put a "set m-line to port 0" method,
which could solve https://github.com/w3c/webrtc-pc/issues/187.  So I added
a "stop" method also:

partial interface RTCRtpTranceiver {
  readonly attribute bool stopped;
  void stop();

You can see the entire PR for it here:

And I made some slides with more examples and use cases about it here:

I hope to present on it at the upcoming f2f.
Received on Wednesday, 9 September 2015 06:37:30 UTC

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