1
Fork 0

Protect against negotiation inconsistencies.

This is not an issue in the current code, assuming that clients
negotiate correctly, but will become one once we implement codec
flexibility.
This commit is contained in:
Juliusz Chroboczek 2020-12-25 20:48:42 +01:00
parent 2dfa175bd1
commit f4379f7a8c
1 changed files with 9 additions and 0 deletions

View File

@ -535,6 +535,15 @@ func gotAnswer(c *webClient, id string, answer webrtc.SessionDescription) error
return err
}
for _, t := range down.tracks {
local := t.track.Codec()
remote := t.remote.Codec()
if local.MimeType != remote.MimeType ||
local.ClockRate != remote.ClockRate {
return errors.New("negotiation failed")
}
}
err = down.flushICECandidates()
if err != nil {
log.Printf("ICE: %v", err)