-
Notifications
You must be signed in to change notification settings - Fork 109
(WIP) Data track signaling #1229
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
base: main
Are you sure you want to change the base?
Conversation
|
| string sid = 1; | ||
|
|
||
| // 16-bit, SFU-assigned identifier used to associate packets with the track, unique per room. | ||
| uint32 handle = 2; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typed out a long message and my laptop power went out :-(
Trying again
I think it is better for client (i. e. publisher of data track) to generate this. Reason being generating this for distributed room would be complicated. Something that would be good to avoid.
SFU can generate a different ID for subscriber side. And communicate that to subscribing client using one of two options
- A signal message to indicate mapping of handle ID -> track SID when a subscription happens. One issue is some data track packets arriving before signal messages arrives. Given that late joining subscriber will anyway not get all packets, this can be thought of a slightly delayed start.
- Send as a header extension in the first 10 - 20 packets. The risk is all these packets getting lost. For media, this is usually handled by sending end adding that extension till the receiver sends an RTCP report. We can do this as this will introduce two important things for data tracks (extensions and feedback report). Feedback report can also be used for NACK + retransmission down the line. For this case, the feedback report could be something like RTCP Receiver Report.
If we do it, handle can be removed from DataTrackInfo as it does not have any use.
|
Tried to compile and push, but still merge conflicts. Tried resolving conflicts and it became a major disaster. Will look at this more later. |
No description provided.