-
-
Notifications
You must be signed in to change notification settings - Fork 237
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
Add simulcast support #189
Conversation
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.
some minor comments otherwise looks really good!
c7cf37e
to
19a82dd
Compare
"encoding/binary" | ||
) | ||
|
||
// VP8Helper is a helper to get temporal data from VP8 packet header |
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.
Should we contribute this to https://github.com/pion/rtp/blob/master/codecs/vp8_packet.go ?
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.
This just take care of the temporal data, it doesn't care of other flags or make a copy a of the vp8 payload for performance. So it's out of scope of the rtp/codecs. I can make a pull request to add temporal flags on vp8 codec, but we should not use it on sfu for temporal info.
The rtp packets are already cached in receivers, it's not required to set them in another cache.
696f3a6
to
7aa7297
Compare
Codecov Report
@@ Coverage Diff @@
## master #189 +/- ##
===========================================
- Coverage 69.57% 21.33% -48.25%
===========================================
Files 8 9 +1
Lines 677 872 +195
===========================================
- Hits 471 186 -285
- Misses 178 670 +492
+ Partials 28 16 -12
Continue to review full report at Codecov.
|
pkg/sender.go
Outdated
ctx, cancel := context.WithCancel(ctx) | ||
sender.Track() |
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.
is this necessary?
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.
no, a typo, will fixt it.
if track.RID() != "" { | ||
router = newRouter(p.id, cfg.router, SimulcastRouter) | ||
go func() { | ||
// Send 3 big remb msgs to fwd all the tracks |
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.
So we dont do any congestion control on the pub tracks right now?
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.
yes, currently a remb loop is called per track, to calculate the bandwidth and later downgrade senders, but we can omit fwding the remb packet.
Description
Look simulcast project.
Reference issue
Fixes #57