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

Implement new padding manager calculation algorithm #1810

Merged
merged 7 commits into from
May 10, 2022

Conversation

lodoyun
Copy link
Contributor

@lodoyun lodoyun commented Mar 25, 2022

Description

This PR implements a new algorithm to decide the amount of padding to send.
The new algorithm is based on a FSM with 4 states:

  • Start - a ramp-up state where we will send more padding than the current estimate. This state will be triggered when a stream starts and will last for a few seconds.
  • Stable - a mode similar to the old algorithm that adjust padding based on the current estimate, the target bitrate and the media that is being sent.
  • Hold - After a big drop in estimate is detected, we will go into hold mode and stop sending padding for a few seconds.
  • Recover - After being on hold, this state will check if the estimate drop was transitory by adjusting padding with the estimate detected before the drop. If another drop is detected in this state, the new lower estimation will be used in stable mode.

We currently have no way to "restart" which may be a good idea in some situations (big changes in the target bw, for instance)

  • It needs and includes Unit Tests

Changes in Client or Server public APIs

[] It includes documentation for these changes in /doc.

@lodoyun lodoyun merged commit 5623df2 into lynckia:master May 10, 2022
@lodoyun lodoyun deleted the add/updatePaddingCalculation branch May 10, 2022 12:30
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.

1 participant