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

Fix AddTrack transceiver reuse per W3C specs #1861

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

Conversation

EdoaLive
Copy link

According to W3C specifications, the transceiver can be reused if "The sender has never been used to send. More precisely, the [[CurrentDirection]] slot of the RTCRtpTransceiver associated with the sender has never had a value of "sendrecv" or "sendonly"".
Current implementation does not have CurrentDirection slot, so the flag usedToSend is set on setDirection change.
This fixes #1843 and maybe other issues (for us it fixes other two issues when reusing transceiver, eg clients going and coming back to a conference).
This has been done on the v2 branch because we currently don't have the resources to switch our software to v3 and test it there. Looking at the source (master) seems this kind of issue is still there.

According to W3C specifications, the transceiver can be reused if "The sender has never been used to send. More precisely, the [[CurrentDirection]] slot of the RTCRtpTransceiver associated with the sender has never had a value of "sendrecv" or "sendonly"".
Current implementation does not have CurrentDirection slot, so the flag usedToSend is set on setDirection change.
This fixes pion#1843 and maybe other issues.
@Sean-Der
Copy link
Member

Sean-Der commented Jul 2, 2021

Thank you so much for the fix @EdoaLive !

I will write a test for it and merge to master and v2 in the next couple of days.

@Sean-Der Sean-Der added this to the 3.1.0 milestone Aug 2, 2021
@Sean-Der Sean-Der modified the milestones: 3.1.0, 4.0.0 Sep 14, 2021
@Sean-Der Sean-Der removed this from the 4.0.0 milestone May 22, 2022
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.

None yet

2 participants