mirror of
https://github.com/livekit/livekit.git
synced 2026-03-29 07:09:51 +00:00
mark final ice candidate (#2871)
* add IsFinal flag to last ice candidate * deps
This commit is contained in:
@@ -69,6 +69,8 @@ type RTCClient struct {
|
||||
signalRequestInterceptor SignalRequestInterceptor
|
||||
signalResponseInterceptor SignalResponseInterceptor
|
||||
|
||||
icQueue atomic.Pointer[webrtc.ICECandidate]
|
||||
|
||||
subscriberAsPrimary atomic.Bool
|
||||
publisherFullyEstablished atomic.Bool
|
||||
subscriberFullyEstablished atomic.Bool
|
||||
@@ -226,9 +228,6 @@ func NewRTCClient(conn *websocket.Conn, opts *Options) (*RTCClient, error) {
|
||||
}
|
||||
|
||||
publisherHandler.OnICECandidateCalls(func(ic *webrtc.ICECandidate, t livekit.SignalTarget) error {
|
||||
if ic == nil {
|
||||
return nil
|
||||
}
|
||||
return c.SendIceCandidate(ic, livekit.SignalTarget_PUBLISHER)
|
||||
})
|
||||
publisherHandler.OnOfferCalls(c.onOffer)
|
||||
@@ -556,11 +555,14 @@ func (c *RTCClient) sendRequest(msg *livekit.SignalRequest) error {
|
||||
}
|
||||
|
||||
func (c *RTCClient) SendIceCandidate(ic *webrtc.ICECandidate, target livekit.SignalTarget) error {
|
||||
trickle := rtc.ToProtoTrickle(ic.ToJSON())
|
||||
trickle.Target = target
|
||||
prevIC := c.icQueue.Swap(ic)
|
||||
if prevIC == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return c.SendRequest(&livekit.SignalRequest{
|
||||
Message: &livekit.SignalRequest_Trickle{
|
||||
Trickle: trickle,
|
||||
Trickle: rtc.ToProtoTrickle(prevIC.ToJSON(), target, ic == nil),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user