Skip to content

Commit

Permalink
Merge pull request #2128 from spiterikevin/1901a
Browse files Browse the repository at this point in the history
BufferController isBufferingComplete cleared on seeking
  • Loading branch information
Dan Sparacio committed Aug 18, 2017
2 parents eb6c694 + 2adaeea commit 9995b48
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/streaming/controllers/BufferController.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ function BufferController(config) {
isAppendingInProgress,
isPruningInProgress,
initCache,
seekStartTime;
seekStartTime,
seekClearedBufferingCompleted;

function setup() {
log = Debug(context).getInstance().log.bind(instance);
Expand Down Expand Up @@ -237,8 +238,11 @@ function BufferController(config) {
// START Buffer Level, State & Sufficiency Handling.
//**********************************************************************
function onPlaybackSeeking() {
lastIndex = Number.POSITIVE_INFINITY;
isBufferingCompleted = false;
if (isBufferingCompleted) {
seekClearedBufferingCompleted = true;
isBufferingCompleted = false;
maxAppendedIndex = 0;
}
seekStartTime = undefined;
onPlaybackProgression();
}
Expand Down Expand Up @@ -289,6 +293,12 @@ function BufferController(config) {
// No need to check buffer if type is not audio or video (for example if several errors occur during text parsing, so that the buffer cannot be filled, no error must occur on video playback)
if (type !== 'audio' && type !== 'video') return;

if (seekClearedBufferingCompleted && !isBufferingCompleted && playbackController && playbackController.getTimeToStreamEnd() - bufferLevel < STALL_THRESHOLD) {
seekClearedBufferingCompleted = false;
isBufferingCompleted = true;
eventBus.trigger(Events.BUFFERING_COMPLETED, {sender: instance, streamInfo: streamProcessor.getStreamInfo()});
}

if (bufferLevel < STALL_THRESHOLD && !isBufferingCompleted) {
notifyBufferStateChanged(BUFFER_EMPTY);
} else {
Expand Down Expand Up @@ -488,6 +498,7 @@ function BufferController(config) {
isBufferingCompleted = false;
isAppendingInProgress = false;
isPruningInProgress = false;
seekClearedBufferingCompleted = false;
bufferLevel = 0;
wallclockTicked = 0;

Expand Down

0 comments on commit 9995b48

Please sign in to comment.