diff --git a/src/controller/buffer-controller.js b/src/controller/buffer-controller.js index 261ee80e0cd..84e584e4e29 100644 --- a/src/controller/buffer-controller.js +++ b/src/controller/buffer-controller.js @@ -135,7 +135,7 @@ class BufferController extends EventHandler { if (this._needsEos) { this.onBufferEos(); } - + this.appending = false; this.hls.trigger(Event.BUFFER_APPENDED, { parent : this.parent}); this.doAppending(); @@ -282,11 +282,9 @@ class BufferController extends EventHandler { logger.error('trying to append although a media error occured, flush segment and abort'); return; } - for (var type in sourceBuffer) { - if (sourceBuffer[type].updating) { - //logger.log('sb update in progress'); - return; - } + if (this.appending) { + //logger.log(`sb appending in progress`); + return; } if (segments && segments.length) { var segment = segments.shift(); @@ -297,6 +295,7 @@ class BufferController extends EventHandler { sourceBuffer[segment.type].appendBuffer(segment.data); this.appendError = 0; this.appended++; + this.appending = true; } else { // in case we don't have any source buffer matching with this segment type, // it means that Mediasource fails to create sourcebuffer