- From: Peter Thatcher <pthatcher@google.com>
- Date: Fri, 28 Aug 2015 11:48:01 -0700
- To: Justin Uberti <juberti@google.com>
- Cc: "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <CAJrXDUFsdizC2FiRHuKNpF2=tvsP9L8aicqWnffw8SZDwT2qeA@mail.gmail.com>
On Thu, Aug 27, 2015 at 2:23 PM, Justin Uberti <juberti@google.com> wrote: > I think this is an interesting idea, but unfortunately it leads to other > questions: > > 1) offerToReceiveVideo can be set with a lower number to create a=sendonly > m= lines. That is, lines with only a sender, but no receiver. Clearly > createRtpReceiver cannot accomplish this, so what do we do? > > One option could be to *always* generate a RtpReceiver when a RtpSender is > created, and then .active can be set to false on the RtpReceiver to make > the overall line a=sendonly. > ​Ah, good point. That's a use case I had forgotten about. I think the option of always creating an RtpSender that can be deactivated/closed/removed/whatever with addTrack makes sense. That's effectively what it does already. But then we'd need to make it clear that "addTrack" really means "sendAndReceiveTrack". ​ > > 2) what happens if you call createRtpReceiver on the callee side? > OfferToCreateVideo only affects the offerer, but with createRtpReceiver > we'd need to understand the callee behavior as well. > > It seems like it would create an 'extra' receiver, similar to how this is > handled on the offerer side, and therefore require a renegotiation to take > effect. > > ​I think it would create a new m-line, which would fire onnegitationneeded, just like createRtpSender does.​ > On Wed, Aug 26, 2015 at 2:54 PM, Peter Thatcher <pthatcher@google.com> > wrote: > >> It looks like we'll soon be adding PeerConnection.createRtpSender, which >> is a way to create an RtpSender before one has a track to send. >> >> The logic corollary is PeerConnection.createRtpReceiver, which would be a >> way to create an RtpReceiver before any media negotiation has occurred. In >> other words, it would serve the same purpose as "offerToReceiveVideo". >> >> In both implementing offerToReceiveVideo and using it in JS, I found it >> awkward. I think the following example code would be more natural: >> >> var receiver = pc.createRtpReceiver("video"); >> // The offer now acts like it currently does with "offerToReceiveVideo = >> 1". >> var offer = pc.createOffer(); >> // JS can use the receiver.track immediately. >> >> >> I think this would be more natural, and more logically consistent with >> PeerConnection.createRtpSender. >> >> >> If you'd like to see how it would look in a PR, here it is: >> >> https://github.com/w3c/webrtc-pc/pull/279/files >> >> >> >> >> >> >> >
Received on Friday, 28 August 2015 18:49:09 UTC