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

Enable renegotation #28

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Enable renegotation #28

wants to merge 1 commit into from

Conversation

farao
Copy link
Member

@farao farao commented Jun 10, 2020

Roughly following https://blog.mozilla.org/webrtc/perfect-negotiation-in-webrtc/
but using @negotiationInProcess instead of @peerConnection.signalingState to
make the process a bit more readable/understandable.

Disadvantage: Rollbacks are quite new (half a year in chrome, bit more in Firefox).
But: Races should be rare and all other solutions would require a protocol change
and would make the process slower.

@farao
Copy link
Member Author

farao commented Jun 10, 2020

Needs testing :-)

@farao
Copy link
Member Author

farao commented Jun 10, 2020

Three example scenarios which should hopefully be supported by enabling renegotiation:

  1. Screen sharing (adding a screen video track on the fly)
  2. Starting audio only and deciding to want to switch on the camera during the call
  3. Changing networks, e.g. being on a mobile connection on the phone and then wifi gets connected.

@janlelis
Copy link
Member

Suggestion: We implement this together with use case 1 (palavatv/palava-web#8)

@farao
Copy link
Member Author

farao commented Jun 11, 2020

Well, it is a precondition for case 1 but still a separate feature which we could also test with case 3?

@farao
Copy link
Member Author

farao commented Jun 11, 2020

I don't think that the code for the renegotiation will change when tackling screen sharing as a next step.

@janlelis
Copy link
Member

Well, it is a precondition for case 1 but still a separate feature which we could also test with case 3?

True, you are right of course, case 3 only requires a mobile phone and a desktop computer to test

@janlelis janlelis changed the base branch from master to main November 12, 2020 15:13
No "perfect renegotiation" because that's too new and unsupported by
browsers. Instead, a workaround by deferring adding the own offer:
https://stackoverflow.com/questions/65059808/downward-compatibility-of-webrtc-renegotiation
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.

2 participants