- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Fri, 17 Apr 2015 09:28:28 +0200
- To: Jan-Ivar Bruaroey <jib@mozilla.com>, public-webrtc@w3.org
On 04/17/2015 08:19 AM, Jan-Ivar Bruaroey wrote:
> (Ah, this is where you explained how A talks to B. I missed it)
>
> On 4/15/15 3:01 AM, Harald Alvestrand wrote:
>> Just reiterating what I percieve as the original purpose of having
>> IDs on these items:
>> To let Javascript applications talk to each other about the tracks.
>>
>> That is:
>>
>> A sends X and Y to B
>>
>> A sends (data channel, via web server, whatever) to B, something like:
>> {'display_map: { 'X': 'left', 'Y: 'right' }}
>>
>> B displays X to the left and Y to the right.
>>
>> If tracks have IDs that are consistent over the connection, this can
>> be done by an application without referring to any property of the
>> PeerConnection whatsoever; it just looks at the tracks.
>>
>> I'd like that property to remain - it's not necessary, because the
>> receiver could look up the RTPReceiver for the track and get the
>> identifier value from there, but it makes life easier in the simple
>> case.
>
> If RtpSender.id = original_track.id, and RtpSender.id is used in SDP
> (as I think someone suggested, can't find the post right now sorry),
> then your model would seem to hold, provided that iff A wants to use
> replaceTrack, it would remember to indirect through its senders, e.g.
> send {'display_map: { [senderX.id]: 'left', [senderY.id]: 'right' }}
>
> People who don't use replaceTrack would be unaffected.
I liked the suggestion that went:
A: addTrack(X) => senderX with senderX.id = X.id
B: ontrack => XatB.id = senderX.id, receiverX.id = senderX.id
replaceTrack doesn't touch senderX.id
javascript can set senderX.id if it wants to
renegotiation only looks at senderX.id
renegotiation may update receiverX.id from senderX.id
B will end XatB and create XprimeAtB when receiverX.id changes
ie replaceTrack functions as a replacer, and A can affect whether old
track is replaced at B or not, but it will only happen if A wants it to
happen.
If we don't think we will ever want to make that happen, make senderX.id
immutable.
Received on Friday, 17 April 2015 07:28:59 UTC