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

Screenshare transceiver reused for incoming screenshare without renegotiation #125

Open
dbkr opened this issue Feb 2, 2023 · 1 comment
Assignees
Labels
T-Defect Something isn't working

Comments

@dbkr
Copy link
Member

dbkr commented Feb 2, 2023

If you start screensharing in EC and then someone else starts swcreensharing too, you won't see their screenshare. This is because waterfall tries to re-use the transceiver created by the client for the screenshare publish to the SFU for the new screenshare down to the client. Waterfall calls AddTrack and the transceiver is in the recvonly state (from the SFU's PoV) so it's not unreasonable for pion to re-use it, but we'd expect a renegotiation from the SFU to change the direction to sendrecv (the client doesn't get one).

Options to fix:

  • Fix whatever bug in pion that means the renegotiation doesn't happen
  • Use addTransceiver (presumably pion has this?) to manually add a new transceiver rather than re-use the existing one.

The spec probably isn't super explicit on this, but the second option seems like it would keep things simpler.

@daniel-abramov daniel-abramov added T-Defect Something isn't working T-Task labels Feb 2, 2023
@dbkr
Copy link
Member Author

dbkr commented Feb 3, 2023

Having checked this in the debugger, actually this isn't quite true - we don't even seem to be calling AddTrack at all for the second screenshare. @EnricoSchw says this looks like pion mixing up the mids of the transceivers.

@EnricoSchw EnricoSchw self-assigned this Feb 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Defect Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants