229a0ad3605dd699ad5bd31d90990df3d4d3b6f7
[yaffs-website] / node_modules / video.js / es5 / utils / buffer.js
1 'use strict';
2
3 exports.__esModule = true;
4 exports.bufferedPercent = bufferedPercent;
5
6 var _timeRanges = require('./time-ranges.js');
7
8 /**
9  * Compute the percentage of the media that has been buffered.
10  *
11  * @param {TimeRange} buffered
12  *        The current `TimeRange` object representing buffered time ranges
13  *
14  * @param {number} duration
15  *        Total duration of the media
16  *
17  * @return {number}
18  *         Percent buffered of the total duration in decimal form.
19  */
20 function bufferedPercent(buffered, duration) {
21   var bufferedDuration = 0;
22   var start = void 0;
23   var end = void 0;
24
25   if (!duration) {
26     return 0;
27   }
28
29   if (!buffered || !buffered.length) {
30     buffered = (0, _timeRanges.createTimeRange)(0, 0);
31   }
32
33   for (var i = 0; i < buffered.length; i++) {
34     start = buffered.start(i);
35     end = buffered.end(i);
36
37     // buffered end can be bigger than duration by a very small fraction
38     if (end > duration) {
39       end = duration;
40     }
41
42     bufferedDuration += end - start;
43   }
44
45   return bufferedDuration / duration;
46 } /**
47    * @file buffer.js
48    * @module buffer
49    */