Version 1
[yaffs-website] / node_modules / video.js / es5 / utils / buffer.js
diff --git a/node_modules/video.js/es5/utils/buffer.js b/node_modules/video.js/es5/utils/buffer.js
new file mode 100644 (file)
index 0000000..229a0ad
--- /dev/null
@@ -0,0 +1,49 @@
+'use strict';
+
+exports.__esModule = true;
+exports.bufferedPercent = bufferedPercent;
+
+var _timeRanges = require('./time-ranges.js');
+
+/**
+ * Compute the percentage of the media that has been buffered.
+ *
+ * @param {TimeRange} buffered
+ *        The current `TimeRange` object representing buffered time ranges
+ *
+ * @param {number} duration
+ *        Total duration of the media
+ *
+ * @return {number}
+ *         Percent buffered of the total duration in decimal form.
+ */
+function bufferedPercent(buffered, duration) {
+  var bufferedDuration = 0;
+  var start = void 0;
+  var end = void 0;
+
+  if (!duration) {
+    return 0;
+  }
+
+  if (!buffered || !buffered.length) {
+    buffered = (0, _timeRanges.createTimeRange)(0, 0);
+  }
+
+  for (var i = 0; i < buffered.length; i++) {
+    start = buffered.start(i);
+    end = buffered.end(i);
+
+    // buffered end can be bigger than duration by a very small fraction
+    if (end > duration) {
+      end = duration;
+    }
+
+    bufferedDuration += end - start;
+  }
+
+  return bufferedDuration / duration;
+} /**
+   * @file buffer.js
+   * @module buffer
+   */