pub fn form_pairs(
ids: &mut PairIds,
role: Role,
locals: &[LocalCandidate],
remotes: &[RemoteCandidate],
) -> Vec<CandidatePair>Expand description
§6.1.2.2: pair each local candidate with each remote candidate of the same component and the same address family, then §6.1.2.4’s pruning.
The component reduction is §6.1.2.2’s: “the number of components for that data stream is
effectively reduced … to the minimum across both agents of the maximum component ID provided
by each agent”. If sipx offers RTP alone because MediaPort did not get the
control port, the peer’s RTCP candidates go unpaired, which is exactly the case that sentence
describes.