-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Properly handle ksvc bandwidth allocation #1036
Properly handle ksvc bandwidth allocation #1036
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.
Are you sure we don't need similar logic in ApplyBitrate() method?
Do you mean taking into account that logic when we pass |
Nope, I mean another thing but maybe we changed it long ago and what I said no longer makes sense. Will recheck tomorrow. |
Checking this. |
Checking it later today. |
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.
Ok @vpalmisano, I found the missing thing:
- See
SimulcastConsumer::GetDesiredBitrate()
. It returns the highest bitrate of all its streams (orthis->rtpParameters.encodings[0].maxBitrate
if given). - However
SvcConsumer::GetDesiredBitrate()
returns the total bitrate of the whole SVC or K-SVC stream. If K-SVC we should just return the bitrate of the spatial layer that produces the most bitrate, right?
NOTE: Consumer::GetDesiredBitrate()
is used by Transport::ComputeOutgoingDesiredBitrate()
method.
Correct, I'm taking a look. |
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.
Will review tomorrow. Thanks.
Releasing in 3.11.19 right now. |
When we use VP9 with K-SVC configuration, the spatial layers are independent; this means that the bandwidth allocator, when it tries to increase the allocated layer, should not take into account the lower spatial levels bitrates (same behaviour of the Simulcast case).