When listing segments needed, stop filtering the current range #1421
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While debugging an issue, I noticed that for optimization purposes we filtered already-loaded segments' metadata so we only considered those of the currently-needed time range before giving it to both the
getNeededSegments
function, which lists the segments the RxPlayer needs to download, and thecheckForDiscontinuity
function, which checks if a discontinuity is imminent.This is problematic since we added the
maxVideoBufferSize
option (so a long time ago!), as that option is also exploited ingetNeededSegments
yet needs to know ALL of the buffered segments so it can estimate the amount of video data currently retained by the browser's video buffer - and not just those in the currently-needed range. So it seems that themaxVideoBufferSize
-linked estimate could have been inexact most of the time here.