Add Low Latency Stall Threshold #4689
Open
+66
−10
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.
In some cases when using Dash.js in Low Latency mode - seen in this caue with chunks of 0.96s in duration,
BUFFER_EMPTY
events are not raised when the player is observed to stall.Current operation has a catch for low-latency mode in the
checkIfSufficientBuffer
within theBufferController
which says if the player is in low latency mode only when the buffer reaches 0 is aBUFFER_EMPTY
raised.In some low latency use cases the player can stall in low-latency mode with a buffer level greater than 0. Particulary when chunk sizes are greater than just a handful of frames.
Outside of low-latency mode the BUFFER_EMPTY event is raised whenever the buffer is below the
stallThreshold
setting. Set by default to 0.3s.This PR solves the above by adding a seperate
lowLatencyStallThreshold
alongside the exisitingstallThreshold
to enable users to configure each indepedently to allow for cases when the player is to be used to play both low-latency and regular live DASH content.Also included are extensions to the reference player samples to allow the configuration of both
stallThreshold
andlowLatencyStallThreshold