matrix-org / matrix-org/waterfall

Screenshare transceiver reused for incoming screenshare without renegotiation

Open
#125 1 comment 0 reactions 1 assignee View on GitHub

@EnricoSchw is already working on this.

Since Feb 6, 2023.

T-Defect
Dominant language
Go
Stars
105
Forks
5
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.