Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define an RTCIceCandidate match algorithm. #192

Merged
merged 2 commits into from
Jan 11, 2024

Conversation

sam-vi
Copy link
Contributor

@sam-vi sam-vi commented Dec 20, 2023

Fixes: #186.

The algorithm matches the (non-derived) candidate, sdpMid, sdpMLineIndex, and usernameFragment attributes of RTCIceCandidate.

The candidate match algorithm will be used in the candidate pair match algorithm (#187), which will, in turn, be used in validation steps for RTCIceTransport methods (#188).


Preview | Diff

Fixes: w3c#186.

The algorithm matches the (non-derived) candidate, sdpMid,
sdpMLineIndex, and usernameFragment attributes of RTCIceCandidate.

The candidate match algorithm will be used in the candidate pair match
algorithm (w3c#187), which will, in turn, be used in validation steps for
RTCIceTransport methods (w3c#188).
sam-vi added a commit to sam-vi/webrtc-extensions that referenced this pull request Dec 20, 2023
Fixes: w3c#187.

This PR depends on the candidate match algorithm described in w3c#192.

The candidate pair match algorithm will be used in validation steps for RTCIceTransport methods (w3c#188).
Break down long and complex lines into individual steps.
@sam-vi
Copy link
Contributor Author

sam-vi commented Jan 10, 2024

This algorithm is referenced by the candidate-pair match algorithm (#193), which will be used in validation steps for various RTCIceTransport algorithms (#194).

This algorithm is a more lenient approach to candidate matching as compared to object equality, as suggested by w3c/webrtc-pc#2906. If various RTCIceCandidate values are indeed made object-comparable, this PR is unnecessary and the candidate-pair match algorithm can simply test object equality instead.

The wording of the algorithm is based on the codec match algorithm.

Separate steps are needed in the algo for checking null values of sdpMid, sdpMLineIndex, and usernameFragment because null is not a value of type DOMString or of integer types.

sam-vi added a commit to sam-vi/webrtc-extensions that referenced this pull request Jan 10, 2024
This depends on several other PRs to be merged first:
- w3c#170: Addition of removeCandidatePair method
- w3c#192: Definition of candidate match algo
  - alternately, w3c/webrtc-pc#2906 to enforce RTCIceCandidate object
    equality
- w3c#193: Definition of candidate pair match algo
- w3c#194: Addition of CandidatePairs internal slot
sam-vi added a commit to sam-vi/webrtc-extensions that referenced this pull request Jan 10, 2024
This depends on several other PRs to be merged first:
- w3c#170: Addition of removeCandidatePair method
- w3c#192: Definition of candidate match algo
  - alternately, w3c/webrtc-pc#2906 to enforce RTCIceCandidate object
    equality
- w3c#193: Definition of candidate pair match algo
- w3c#194: Addition of CandidatePairs internal slot
@henbos henbos requested a review from jan-ivar January 11, 2024 15:11
@henbos henbos merged commit 48e2a4a into w3c:main Jan 11, 2024
2 checks passed
@sam-vi sam-vi deleted the samvi-186-candidate-match branch January 12, 2024 09:39
sam-vi added a commit to sam-vi/webrtc-extensions that referenced this pull request Jan 12, 2024
This depends on several other PRs to be merged first:
- w3c#170: Addition of removeCandidatePair method
- w3c#192: Definition of candidate match algo
  - alternately, w3c/webrtc-pc#2906 to enforce RTCIceCandidate object
    equality
- w3c#193: Definition of candidate pair match algo
- w3c#194: Addition of CandidatePairs internal slot
sam-vi added a commit to sam-vi/webrtc-extensions that referenced this pull request Jan 12, 2024
This depends on several other PRs to be merged first:
- w3c#170: Addition of removeCandidatePair method
- w3c#192: Definition of candidate match algo
  - alternately, w3c/webrtc-pc#2906 to enforce RTCIceCandidate object
    equality
- w3c#193: Definition of candidate pair match algo
- w3c#194: Addition of CandidatePairs internal slot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Describe a match algorithm for two RTCIceCandidates
3 participants