This repository has been archived by the owner on Aug 25, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Implement Peer's renegotiation synchronization (#27) #111
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
evdokimovs
changed the title
WIP: Implement Peer's renegotiation queue (#27)
WIP: Implement Peer's renegotiation synchronization (#27)
Jun 26, 2020
# Conflicts: # Cargo.lock
alexlapa
approved these changes
Jul 16, 2020
tyranron
changed the title
WIP: Implement Peer's renegotiation synchronization (#27)
Implement Peer's renegotiation synchronization (#27)
Jul 17, 2020
tyranron
added
k::design
Related to overall design and/or architecture
and removed
k::api
Related to API (application interface)
labels
Jul 17, 2020
tyranron
approved these changes
Jul 17, 2020
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
enhancement
Improvement of existing features or bugfix
k::design
Related to overall design and/or architecture
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Part of #27
Requires #105
Synopsis
Currently,
Peer
updates (such asMediaTrack
adding) which are needs renegotiation, may be performed only onPeer
inStable
state. But in some casesPeer
update may be performed in the notStable
state, so we should add functional of delayedPeer
updating if it not inStable
state.Solution
All actions which are needs renegotiation now will be delayed actions (named
Job
). SoJob
wouldn't executed on function call, but will be called only whenPeer
will be inStable
state. AllJob
s will be stored in thePeer
'sVecDeque
and will be executed in the right order.When
MediaTrack
deleting will be implemented, we also should implement cleaning unpublished overlapping actions from thePeer
. For example, ifJob
which createsMediaTrack
was pushed intoJob
s queue and after itJob
which deletes thisMediaTrack
also was published intoJob
queue. This is overlappingJob
s and they should be ignored, because they doesn't make sense.Checklist
WIP:
prefixk::
labels appliedWIP:
prefix is removed