Timeouts with ICE Nomination Mode Regular
As per my discussion with @slomo in gstreamer/gstreamer#1440 (closed), we're seeing issues where a pair in the answer to GStreamer (that isn't able to be contacted) takes 2.5 seconds to time out (1000,1000,500ms), if the pair is invalid, while using TURN.
GStreamer uses regular nomination, so as far as I understand it, this is actually "correct" behaviour? The issue is of course, if you have multiple pairs at the start of the SDP that are unable to be reached by libnice, then you add 2.5 seconds for every one that fails. Changing GStreamer to use aggressive nomination bypasses this issue.
For an example of the timeout, see here https://pastebin.com/dPrtSBjR
You can see that it consistently sits and waits trying to connect to pair 0x7f117400ea20
which is the invalid 1.1.1.1
IP, but it doesn't simultaneously try the others. You can see on line 1958 it gives up on the pair, then tries the second, valid pair, and then after that connection immediately succeeds.
Is this correct? Or have I stumbled on some funky behaviour here?