fix(FEC-11586): [Player, Safari] The 'FF' (Fast forward) seek button is flashing time to time in player due to getting different values from 'isOnLiveEdge' parameter #611
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.
Description of the Changes
issue: The live indicator depends on the isOnLiveEdge flag and the isOnLiveEdge flag is calculated by the following formula: liveDuration - currentTime <= segmentDuration × 2.
and the segmentDuration is calculated by the gap between last updated Video.seekable, and Video.bufferd. (and on the assumption that the bufferd is bigger than seekable at any point)
but in practice buffered Unlike Video.currentTime (which is always progresses), is sometimes reverses which brings the segmentDuration to become a negative number, and hence although that current time is close enough to seekable to be considered on live, the condition returns false since the liveDuration - currentTime would always be a positive number
fix: The solution is to not rely on the buffered to determine the liveDuration but on the gap between the seekables themself.
solves FEC-11586
CheckLists