- From: Justin Uberti <juberti@google.com>
- Date: Thu, 16 Apr 2015 09:53:54 -0700
- To: Peter Thatcher <pthatcher@google.com>
- Cc: Martin Thomson <martin.thomson@gmail.com>, Harald Alvestrand <harald@alvestrand.no>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <CAOJ7v-1YfuzPV5vRxQ3XN9uo-_jmsY8ocg+hCKRBBxhmqQLGkg@mail.gmail.com>
On Wed, Apr 15, 2015 at 7:48 PM, Peter Thatcher <pthatcher@google.com> wrote: > On Wed, Apr 15, 2015 at 6:57 PM, Justin Uberti <juberti@google.com> wrote: > >> The two arguments (that I know of) against using mid by itself: >> 1) addTrack followed by removeTrack followed by addTrack will result in >> the same mid for the second track, due to the quirks of SDP. This means >> that sometimes addTrack gives you a new mid, sometimes it won't. This is >> unfortunate, although if we wanted to go down this path, we could >> prohibit recycling m= sections without a corresponding mid change. IOW, you >> could only recycle rejected m= sections, and so the example here would >> result in two m= lines. >> > > This is effectively the problem I was also expressing. If one does > addTrack + removeTrack + addTrack, can we use a different MID the second > time without accumulating dead m-lines over time? If we can, then there is > no problem. If we can't, then either JS cannot safely do > addTrack+removeTrack repeatedly too many times (do to the accumulation) or > we must have multiple RtpSenders with the same MID but at different times. > I think I'd be OK with the accumulation of dead m-lines. If an app really > had an accumulation problem, they could get around it by doing one of: > using replaceTrack, munging SDP, or using the future 1.1 API. > This particular issue won't result in too many dead m-lines; we will still be able to recycle m=lines that aren't in use by either side. We just won't be able to recycle "half-dead" m-lines, which is probably OK. > > >> 2) without a=msid, there is no way to detect a recyclable m= line >> (currently we can look for a=msid to determine this). >> >> Specifically, if you have a remote description without a=msid in a m= >> section, and you stop your local track for that m= section, you don't know >> whether to set port 0 (i.e. dead m= section) or not in subsequent offers, >> because you can't tell if the remote side is still using that m= section. >> >> > So basically we just need a way to know "I'm a WebRTC endpoint; I know > what to do if you remove/recycle an m-line"? For that I would suggest two > possible solutions: > > 1. Have an a=removable line. Do one thing and do it well (instead of > having multiple meaning tied to a=msid). > > 2. Don't remove/recycle m-lines. Would it really be that bad if we > didn't? We don't right now, and no one has complained. And, as I > mentioned, JS could always overcome an accumulation problem by using > replaceTrack, munging SDP, or using the future 1.1 API. > I think this will be a real problem for conferences, since the list could grow without bound. > > > > All that said, as much as I prefer the idea of having only 1 ID (MID), I > would probably be OK with an SDP attribute like a=RtpSenderLabel if that > ends up being more simple due to the quirks of SDP. > > > > > >> >> >> On Wed, Apr 15, 2015 at 5:12 PM, Peter Thatcher <pthatcher@google.com> >> wrote: >> >>> Ah, I see. It's true that if we didn't allow JS to choose the value, it >>> would be the same as now where the JS cannot choose the track ID. So we >>> wouldn't be losing anything compared to the status quo. >>> >>> But isn't the JS always able to set it anyway via SDP munging? >>> >>> On Wed, Apr 15, 2015 at 3:24 PM, Martin Thomson < >>> martin.thomson@gmail.com> wrote: >>> >>>> On 15 April 2015 at 15:19, Peter Thatcher <pthatcher@google.com> wrote: >>>> > And te question isn't whether to allow the JS to choose the MID. It's >>>> > whether to have two IDs/labels (MID + something else), or just one >>>> (MID). >>>> > If one will work, I prefer one. >>>> >>>> >>>> Like I said, I am OK with just one and with that one being a=mid; I >>>> was pushing back at your suggestion that we let the JS set it, that's >>>> all. >>>> >>> >>> >> >
Received on Thursday, 16 April 2015 16:54:44 UTC