Compare commits

...

1 Commits

Author SHA1 Message Date
Cedric Verstraeten
6a44498730 hot fix: readd locks 2023-10-24 13:39:17 +02:00
2 changed files with 8 additions and 0 deletions

View File

@@ -554,10 +554,12 @@ func HandleLiveStreamHD(livestreamCursor *pubsub.QueueCursor, configuration *mod
for handshake := range communication.HandleLiveHDHandshake {
log.Log.Info("HandleLiveStreamHD: setting up a peer connection.")
key := config.Key + "/" + handshake.SessionID
webrtc.CandidatesMutex.Lock()
_, ok := webrtc.CandidateArrays[key]
if !ok {
webrtc.CandidateArrays[key] = make(chan string)
}
webrtc.CandidatesMutex.Unlock()
webrtc.InitializeWebRTCConnection(configuration, communication, mqttClient, videoTrack, audioTrack, handshake, webrtc.CandidateArrays[key])
}

View File

@@ -179,6 +179,9 @@ func InitializeWebRTCConnection(configuration *models.Configuration, communicati
panic(err)
}
// When an ICE candidate is available send to the other Pion instance
// the other Pion instance will add this candidate by calling AddICECandidate
var candidatesMux sync.Mutex
// When an ICE candidate is available send to the other peer using the signaling server (MQTT).
// The other peer will add this candidate by calling AddICECandidate
peerConnection.OnICECandidate(func(candidate *pionWebRTC.ICECandidate) {
@@ -186,6 +189,9 @@ func InitializeWebRTCConnection(configuration *models.Configuration, communicati
return
}
candidatesMux.Lock()
defer candidatesMux.Unlock()
// Create a config map
valueMap := make(map[string]interface{})
candateJSON := candidate.ToJSON()