Closed SimonBrandner closed 1 year ago
Should it send one? Shouldn't it use replaceTrack()
? Perhaps my memory is failing
Yep, we do a replaceTrack()
: https://github.com/matrix-org/matrix-js-sdk/blob/matthew/sfu/src/webrtc/call.ts#L1396
Hm-hm. Is there anything on the SFU side that we need to track to make it work? So far it's observed as a freeze on the other participants' side. We don't seem to get any errors on the SFU side though 🤔
Yeah, I really have no idea what causes this... - it needs investigation
So I've tried it again a couple of times today. In all cases, we don't get any events from the client, and we also don't get anything from Pion (so no callbacks from onTrack
or something [though probably it should not fire indeed if we're just replacing a track]). We also don't get any errors on our goroutine that reads the data from the track. So on the server side we don't have any indication that something changed and we don't know what to do next.
Interesting enough, the logs in dev console on the client side are the same for EC Full Mesh and EC with SFU, but the later does not work. Perhaps we need to also investigate it deeper on a client side somehow, not sure.
Turns out the fact we were not cloning streams causes the tracks to be accidentally stopped somewhere
@SimonBrandner, should we close this one? It seems like we've found a reason for it (the client did not send an SDP offer).