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

experimentalBufferBasedABR (and maybe regular ABR too): fixup ABR when no progress events from XHR #964

Closed
gkatsev opened this issue Sep 30, 2020 · 0 comments · Fixed by #965 or #978
Milestone

Comments

@gkatsev
Copy link
Member

gkatsev commented Sep 30, 2020

When we get really bad network for a long time and download of gear5 fails, we end up running out of buffer because our downswitch didn't run because last check happened when we had plenty of buffer and we no longer earlyabort

@gkatsev gkatsev added this to the ABR milestone Sep 30, 2020
gkatsev added a commit that referenced this issue Oct 30, 2020
… on an interval (#978)

This is a followup to #886. There, I noticed that if we get sustained bad network we will time out because we will an opportunity for earlyabort. At first, I tried working around by delaying earlyabort in that case (#966) but as I was getting that ready I kept finding edge cases that we needed to account for. Specifically, the issue is that we only run our ABR algorithm on progress and bandwidthchange events from the segment loader. This means that if the download stalls, we stop run our algorithm and will eventually stall playback. Instead, we should remove earlyabort altogether (f897dde) and set up an interval (currently 250ms) to re-run our ABR algorithm. This means that if the network becomes bad for a sustained period, we will drop down once the buffer allows us but if the network recovers, we will switch up appropriately as well.

Also, the interval is stopped while we're paused.

Fixes #964.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant