Skip to content

Commit

Permalink
Add forgotten bufferedStart setting in SegmentInventory
Browse files Browse the repository at this point in the history
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...!
  • Loading branch information
peaBerberian committed Sep 25, 2023
1 parent 0da1a8a commit 63bea93
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions src/core/segment_buffers/inventory/segment_inventory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -921,6 +921,7 @@ function guessBufferedStartFromRangeStart(
} else if (rangeStart < firstSegmentInRange.start) {
log.debug("SI: range start too far from expected start",
bufferType, rangeStart, firstSegmentInRange.start);
firstSegmentInRange.bufferedStart = firstSegmentInRange.start;
} else {
log.debug("SI: Segment appears immediately garbage collected at the start",
bufferType, firstSegmentInRange.bufferedStart, rangeStart);
Expand Down

0 comments on commit 63bea93

Please sign in to comment.