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

Add forgotten bufferedStart setting in SegmentInventory #1284

Merged
merged 1 commit into from
Sep 26, 2023

Conversation

peaBerberian
Copy link
Collaborator

The RxPlayer maintains an inventory of which segments should be right now in browser buffers and at which position, through the SegmentInventory structure.

This is a complex part of the code which has to be frequently re-synchronized with the browser's buffer yet it allows a LOT of optimizations (preventing reloads when not needed, allowing to not re-load segments on seek, allowing fast-switching, allowing to implement in-JS buffer-memory limitations, allowing more efficient buffer-based adaptive algorithms, allowing to advertise the current played quality...).

I recently found out that bufferedStart - a mechanism to indicate the probable start time in seconds of a segment in the browser's buffer in that structure, was not set if the browser's buffer had a large time range of un-categorized buffered data before that segment. This is just something that I forgot to add and its mirror "end" value bufferedEnd is actually set in similar conditions.

Consequence of not setting this is a little unclear, as the RxPlayer has a lot of resilience in that area, but setting it should normally improve things...!

The RxPlayer maintains an inventory of which segments should be right now
in browser buffers and at which position, through the `SegmentInventory`
structure.

This is a complex part of the code which has to be frequently
re-synchronized with the browser's buffer yet it allows a LOT of
optimizations (preventing reloads when not needed, allowing to not
re-load segments on seek, allowing fast-switching, allowing to implement
in-JS buffer-memory limitations, allowing more efficient buffer-based
adaptive algorithms, allowing to advertise the current played quality...).

I recently found out that `bufferedStart` - a mechanism to indicate the
probable start time in seconds of a segment in the browser's buffer in
that structure, was not set if the browser's buffer had a large time range
of un-categorized buffered data before that segment.
This is just something that I forgot to add and its mirror "end" value
`bufferedEnd` is actually set in similar conditions.

Consequence of not setting this is a little unclear, as the RxPlayer has
a lot of resilience in that area, but setting it should normally improve
things...!
@peaBerberian peaBerberian added this to the 3.32.0 milestone Sep 25, 2023
@peaBerberian peaBerberian merged commit 808f663 into master Sep 26, 2023
3 checks passed
@peaBerberian peaBerberian mentioned this pull request Oct 2, 2023
@peaBerberian peaBerberian deleted the fix/bufferedStart-imprecize-segmentInventory branch February 7, 2024 16:31
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