window.appendAt = function()

in 2020/lib/mse/msutil.js [611:645]


window.appendAt = function(timeoutManager, mp, sb, chain, t, gap, cb) {
  if (!elementInBody(mp)) {
    cb();
    return;
  }

  gap = gap || 3;

  var buffered_end = findBufferedRangeEndForTime(sb, t);

  (function loop(buffer) {
    if (!elementInBody(mp)) {
      cb();
      return;
    }
    if (buffer) {
      if (sb.updating) {
        timeoutManager.setTimeout(function() {
          loop(buffer);
        }, 0);
      } else {
        if (!safeAppend(sb, buffer))
          return;
        timeoutManager.setTimeout(loop, 0);
      }
    } else {
      buffered_end = findBufferedRangeEndForTime(sb, t);
      if (t + gap >= (buffered_end || 0) && !mp.error) {
        chain.pull(loop);
      } else {
        cb();
      }
    }
  })();
};