@volcengine/veplayer-plugin 2.4.3-rc.0 → 2.4.5-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/index.development.js +499 -1891
- package/esm/index.production.js +1 -1
- package/esm/veplayer.plugin.abr.development.js +3 -71
- package/esm/veplayer.plugin.abr.production.js +1 -1
- package/esm/veplayer.plugin.drm.development.js +3 -71
- package/esm/veplayer.plugin.drm.production.js +1 -1
- package/esm/veplayer.plugin.flv.development.js +196 -727
- package/esm/veplayer.plugin.flv.production.js +1 -1
- package/esm/veplayer.plugin.hls.development.js +304 -1233
- package/esm/veplayer.plugin.hls.production.js +1 -1
- package/esm/veplayer.plugin.mp4.development.js +5 -73
- package/esm/veplayer.plugin.mp4.production.js +1 -1
- package/esm/veplayer.plugin.rtm.development.js +4 -72
- package/esm/veplayer.plugin.rtm.production.js +1 -1
- package/esm/veplayer.plugin.shaka.development.js +4 -72
- package/esm/veplayer.plugin.shaka.production.js +1 -1
- package/package.json +1 -1
- package/umd/veplayer.plugin.abr.development.js +3 -71
- package/umd/veplayer.plugin.abr.production.js +1 -1
- package/umd/veplayer.plugin.drm.development.js +3 -71
- package/umd/veplayer.plugin.drm.production.js +1 -1
- package/umd/veplayer.plugin.flv.development.js +196 -727
- package/umd/veplayer.plugin.flv.production.js +1 -1
- package/umd/veplayer.plugin.hls.development.js +304 -1233
- package/umd/veplayer.plugin.hls.production.js +1 -1
- package/umd/veplayer.plugin.mp4.development.js +5 -73
- package/umd/veplayer.plugin.mp4.production.js +1 -1
- package/umd/veplayer.plugin.rtm.development.js +4 -72
- package/umd/veplayer.plugin.rtm.production.js +1 -1
- package/umd/veplayer.plugin.shaka.development.js +4 -72
- package/umd/veplayer.plugin.shaka.production.js +1 -1
|
@@ -1640,7 +1640,7 @@ util.getCurrentTimeByOffset = function(offsetTime, segments) {
|
|
|
1640
1640
|
}
|
|
1641
1641
|
return offsetTime;
|
|
1642
1642
|
};
|
|
1643
|
-
var version = "3.0.
|
|
1643
|
+
var version = "3.0.19-rc.0";
|
|
1644
1644
|
var ERROR_MAP = {
|
|
1645
1645
|
1: 5101,
|
|
1646
1646
|
2: 5102,
|
|
@@ -1749,7 +1749,8 @@ function hook(hookName, handler) {
|
|
|
1749
1749
|
}
|
|
1750
1750
|
if (this.__hooks && this.__hooks[hookName]) {
|
|
1751
1751
|
try {
|
|
1752
|
-
var
|
|
1752
|
+
var _this$__hooks$hookNam;
|
|
1753
|
+
var preRet = (_this$__hooks$hookNam = this.__hooks[hookName]).call.apply(_this$__hooks$hookNam, [this, this].concat(Array.prototype.slice.call(arguments)));
|
|
1753
1754
|
if (preRet) {
|
|
1754
1755
|
if (preRet.then) {
|
|
1755
1756
|
preRet.then(function(isContinue) {
|
|
@@ -1774,19 +1775,6 @@ function hook(hookName, handler) {
|
|
|
1774
1775
|
}
|
|
1775
1776
|
}.bind(this);
|
|
1776
1777
|
}
|
|
1777
|
-
function findHookIndex(hookName, handler) {
|
|
1778
|
-
var __hooks = this.__hooks;
|
|
1779
|
-
if (!__hooks || !Array.isArray(__hooks[hookName])) {
|
|
1780
|
-
return -1;
|
|
1781
|
-
}
|
|
1782
|
-
var hookHandlers = __hooks[hookName];
|
|
1783
|
-
for (var i = 0; i < hookHandlers.length; i++) {
|
|
1784
|
-
if (hookHandlers[i] === handler) {
|
|
1785
|
-
return i;
|
|
1786
|
-
}
|
|
1787
|
-
}
|
|
1788
|
-
return -1;
|
|
1789
|
-
}
|
|
1790
1778
|
function useHooks(hookName, handler) {
|
|
1791
1779
|
var __hooks = this.__hooks;
|
|
1792
1780
|
if (!__hooks) {
|
|
@@ -1796,12 +1784,7 @@ function useHooks(hookName, handler) {
|
|
|
1796
1784
|
console.warn("has no supported hook which name [".concat(hookName, "]"));
|
|
1797
1785
|
return false;
|
|
1798
1786
|
}
|
|
1799
|
-
|
|
1800
|
-
__hooks[hookName] = [];
|
|
1801
|
-
}
|
|
1802
|
-
if (findHookIndex.call(this, hookName, handler) === -1) {
|
|
1803
|
-
__hooks[hookName].push(handler);
|
|
1804
|
-
}
|
|
1787
|
+
__hooks && (__hooks[hookName] = handler);
|
|
1805
1788
|
return true;
|
|
1806
1789
|
}
|
|
1807
1790
|
function removeHooks(hookName, handler) {
|
|
@@ -1809,13 +1792,6 @@ function removeHooks(hookName, handler) {
|
|
|
1809
1792
|
if (!__hooks) {
|
|
1810
1793
|
return;
|
|
1811
1794
|
}
|
|
1812
|
-
if (Array.isArray(__hooks[hookName])) {
|
|
1813
|
-
var hooks = __hooks[hookName];
|
|
1814
|
-
var index = findHookIndex.call(this, hookName, handler);
|
|
1815
|
-
if (index !== -1) {
|
|
1816
|
-
hooks.splice(index, 1);
|
|
1817
|
-
}
|
|
1818
|
-
}
|
|
1819
1795
|
delete __hooks[hookName];
|
|
1820
1796
|
}
|
|
1821
1797
|
function hooksDescriptor(instance) {
|
|
@@ -1837,38 +1813,6 @@ function hooksDescriptor(instance) {
|
|
|
1837
1813
|
function delHooksDescriptor(instance) {
|
|
1838
1814
|
instance.__hooks = null;
|
|
1839
1815
|
}
|
|
1840
|
-
function runHooks(obj, hookName, handler) {
|
|
1841
|
-
for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {
|
|
1842
|
-
args[_key5 - 3] = arguments[_key5];
|
|
1843
|
-
}
|
|
1844
|
-
if (obj.__hooks && Array.isArray(obj.__hooks[hookName])) {
|
|
1845
|
-
var hooks = obj.__hooks[hookName];
|
|
1846
|
-
var index = -1;
|
|
1847
|
-
var runHooksRecursive = function runHooksRecursive2(obj2, hookName2, handler2) {
|
|
1848
|
-
for (var _len6 = arguments.length, args2 = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {
|
|
1849
|
-
args2[_key6 - 3] = arguments[_key6];
|
|
1850
|
-
}
|
|
1851
|
-
index++;
|
|
1852
|
-
if (hooks.length === 0 || index === hooks.length) {
|
|
1853
|
-
return handler2.call.apply(handler2, [obj2, obj2].concat(args2));
|
|
1854
|
-
}
|
|
1855
|
-
var hook2 = hooks[index];
|
|
1856
|
-
var ret = hook2.call.apply(hook2, [obj2, obj2].concat(args2));
|
|
1857
|
-
if (ret && ret.then) {
|
|
1858
|
-
return ret.then(function(data) {
|
|
1859
|
-
return data === false ? null : runHooksRecursive2.apply(void 0, [obj2, hookName2, handler2].concat(args2));
|
|
1860
|
-
}).catch(function(e) {
|
|
1861
|
-
console.warn("[runHooks]".concat(hookName2, " reject"), e.message);
|
|
1862
|
-
});
|
|
1863
|
-
} else if (ret !== false) {
|
|
1864
|
-
return runHooksRecursive2.apply(void 0, [obj2, hookName2, handler2].concat(args2));
|
|
1865
|
-
}
|
|
1866
|
-
};
|
|
1867
|
-
return runHooksRecursive.apply(void 0, [obj, hookName, handler].concat(args));
|
|
1868
|
-
} else {
|
|
1869
|
-
return handler.call.apply(handler, [obj, obj].concat(args));
|
|
1870
|
-
}
|
|
1871
|
-
}
|
|
1872
1816
|
function showErrorMsg(pluginName, msg) {
|
|
1873
1817
|
XG_DEBUG.logError("[".concat(pluginName, "] event or callback cant be undefined or null when call ").concat(msg));
|
|
1874
1818
|
}
|
|
@@ -2108,18 +2052,6 @@ var BasePlugin = /* @__PURE__ */ function() {
|
|
|
2108
2052
|
}
|
|
2109
2053
|
}
|
|
2110
2054
|
}
|
|
2111
|
-
}, {
|
|
2112
|
-
key: "defineMethod",
|
|
2113
|
-
value: function defineMethod(Obj, map) {
|
|
2114
|
-
for (var key in map) {
|
|
2115
|
-
if (Object.prototype.hasOwnProperty.call(map, key) && typeof map[key] === "function") {
|
|
2116
|
-
Object.defineProperty(Obj, key, {
|
|
2117
|
-
configurable: true,
|
|
2118
|
-
value: map[key]
|
|
2119
|
-
});
|
|
2120
|
-
}
|
|
2121
|
-
}
|
|
2122
|
-
}
|
|
2123
2055
|
}, {
|
|
2124
2056
|
key: "defaultConfig",
|
|
2125
2057
|
get: function get() {
|
|
@@ -2742,7 +2674,7 @@ function _arrayLikeToArray$1(arr, len) {
|
|
|
2742
2674
|
arr2[i] = arr[i];
|
|
2743
2675
|
return arr2;
|
|
2744
2676
|
}
|
|
2745
|
-
function _createForOfIteratorHelper
|
|
2677
|
+
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
2746
2678
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
2747
2679
|
if (!it) {
|
|
2748
2680
|
if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
@@ -2930,21 +2862,6 @@ var Buffer$1 = /* @__PURE__ */ function() {
|
|
|
2930
2862
|
length: Buffer2.totalLength && Buffer2.totalLength(buffers)
|
|
2931
2863
|
};
|
|
2932
2864
|
}
|
|
2933
|
-
}, {
|
|
2934
|
-
key: "isBuffered",
|
|
2935
|
-
value: function isBuffered(media, pos) {
|
|
2936
|
-
if (media) {
|
|
2937
|
-
var buffered = Buffer2.get(media);
|
|
2938
|
-
if (buffered !== null && buffered !== void 0 && buffered.length) {
|
|
2939
|
-
for (var i = 0; i < buffered.length; i++) {
|
|
2940
|
-
if (pos >= buffered.start(i) && pos <= buffered.end(i)) {
|
|
2941
|
-
return true;
|
|
2942
|
-
}
|
|
2943
|
-
}
|
|
2944
|
-
}
|
|
2945
|
-
}
|
|
2946
|
-
return false;
|
|
2947
|
-
}
|
|
2948
2865
|
}]);
|
|
2949
2866
|
return Buffer2;
|
|
2950
2867
|
}();
|
|
@@ -3097,7 +3014,7 @@ var Logger$2 = /* @__PURE__ */ function() {
|
|
|
3097
3014
|
this.logCache.apply(this, [LogCacheLevel.DEBUG].concat(args));
|
|
3098
3015
|
if (Logger2.disabled)
|
|
3099
3016
|
return;
|
|
3100
|
-
(_console = console).debug.apply(_console, [
|
|
3017
|
+
(_console = console).debug.apply(_console, [this._prefix, nowTime$1()].concat(args));
|
|
3101
3018
|
}
|
|
3102
3019
|
}, {
|
|
3103
3020
|
key: "log",
|
|
@@ -3109,7 +3026,7 @@ var Logger$2 = /* @__PURE__ */ function() {
|
|
|
3109
3026
|
this.logCache.apply(this, [LogCacheLevel.LOG].concat(args));
|
|
3110
3027
|
if (Logger2.disabled)
|
|
3111
3028
|
return;
|
|
3112
|
-
(_console2 = console).log.apply(_console2, [
|
|
3029
|
+
(_console2 = console).log.apply(_console2, [this._prefix, nowTime$1()].concat(args));
|
|
3113
3030
|
}
|
|
3114
3031
|
}, {
|
|
3115
3032
|
key: "warn",
|
|
@@ -3121,7 +3038,7 @@ var Logger$2 = /* @__PURE__ */ function() {
|
|
|
3121
3038
|
this.logCache.apply(this, [LogCacheLevel.WARN].concat(args));
|
|
3122
3039
|
if (Logger2.disabled)
|
|
3123
3040
|
return;
|
|
3124
|
-
(_console3 = console).warn.apply(_console3, [
|
|
3041
|
+
(_console3 = console).warn.apply(_console3, [this._prefix, nowTime$1()].concat(args));
|
|
3125
3042
|
}
|
|
3126
3043
|
}, {
|
|
3127
3044
|
key: "error",
|
|
@@ -3133,7 +3050,7 @@ var Logger$2 = /* @__PURE__ */ function() {
|
|
|
3133
3050
|
this.logCache.apply(this, [LogCacheLevel.ERROR].concat(args));
|
|
3134
3051
|
if (Logger2.disabled)
|
|
3135
3052
|
return;
|
|
3136
|
-
(_console4 = console).error.apply(_console4, [
|
|
3053
|
+
(_console4 = console).error.apply(_console4, [this._prefix, nowTime$1()].concat(args));
|
|
3137
3054
|
}
|
|
3138
3055
|
}, {
|
|
3139
3056
|
key: "logCache",
|
|
@@ -3148,7 +3065,7 @@ var Logger$2 = /* @__PURE__ */ function() {
|
|
|
3148
3065
|
var finLogText = logText.map(function(item) {
|
|
3149
3066
|
return logable(item);
|
|
3150
3067
|
});
|
|
3151
|
-
text =
|
|
3068
|
+
text = this._prefix + nowTime$1() + JSON.stringify(finLogText);
|
|
3152
3069
|
} catch (e) {
|
|
3153
3070
|
return;
|
|
3154
3071
|
}
|
|
@@ -4064,8 +3981,8 @@ function createResponse(data, done, response, contentLength, age, startTime, fir
|
|
|
4064
3981
|
response
|
|
4065
3982
|
};
|
|
4066
3983
|
}
|
|
4067
|
-
function calculateSpeed(byteLen,
|
|
4068
|
-
return Math.round(byteLen * 8 * 1e3 /
|
|
3984
|
+
function calculateSpeed(byteLen, millisec) {
|
|
3985
|
+
return Math.round(byteLen * 8 * 1e3 / millisec / 1024);
|
|
4069
3986
|
}
|
|
4070
3987
|
var EVENT = {
|
|
4071
3988
|
ERROR: "error",
|
|
@@ -4077,7 +3994,6 @@ var EVENT = {
|
|
|
4077
3994
|
SOURCEBUFFER_CREATED: "core.sourcebuffercreated",
|
|
4078
3995
|
MEDIASOURCE_OPENED: "core.mediasourceopened",
|
|
4079
3996
|
ANALYZE_DURATION_EXCEEDED: "core.analyzedurationexceeded",
|
|
4080
|
-
APPEND_BUFFER: "core.appendbuffer",
|
|
4081
3997
|
REMOVE_BUFFER: "core.removebuffer",
|
|
4082
3998
|
BUFFEREOS: "core.buffereos",
|
|
4083
3999
|
KEYFRAME: "core.keyframe",
|
|
@@ -4850,7 +4766,7 @@ var XhrLoader = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
4850
4766
|
value: function _getHeaders(xhr) {
|
|
4851
4767
|
var headerLines = xhr.getAllResponseHeaders().trim().split("\r\n");
|
|
4852
4768
|
var headers = {};
|
|
4853
|
-
var _iterator = _createForOfIteratorHelper
|
|
4769
|
+
var _iterator = _createForOfIteratorHelper(headerLines), _step;
|
|
4854
4770
|
try {
|
|
4855
4771
|
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
4856
4772
|
var header = _step.value;
|
|
@@ -4872,7 +4788,7 @@ var XhrLoader = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
4872
4788
|
}]);
|
|
4873
4789
|
return XhrLoader2;
|
|
4874
4790
|
}(EventEmitter);
|
|
4875
|
-
var _excluded$
|
|
4791
|
+
var _excluded$1 = ["retry", "retryDelay", "onRetryError", "transformError"];
|
|
4876
4792
|
var Task = /* @__PURE__ */ function() {
|
|
4877
4793
|
function Task2(type, config) {
|
|
4878
4794
|
_classCallCheck$1(this, Task2);
|
|
@@ -4892,7 +4808,7 @@ var Task = /* @__PURE__ */ function() {
|
|
|
4892
4808
|
key: "exec",
|
|
4893
4809
|
value: function exec() {
|
|
4894
4810
|
var _this = this;
|
|
4895
|
-
var _this$_config = this._config, retry = _this$_config.retry, retryDelay = _this$_config.retryDelay, onRetryError = _this$_config.onRetryError, transformError = _this$_config.transformError, rest = _objectWithoutProperties(_this$_config, _excluded$
|
|
4811
|
+
var _this$_config = this._config, retry = _this$_config.retry, retryDelay = _this$_config.retryDelay, onRetryError = _this$_config.onRetryError, transformError = _this$_config.transformError, rest = _objectWithoutProperties(_this$_config, _excluded$1);
|
|
4896
4812
|
var request = /* @__PURE__ */ function() {
|
|
4897
4813
|
var _ref = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee() {
|
|
4898
4814
|
var response, error, isRetry;
|
|
@@ -5688,60 +5604,6 @@ function _nonIterableSpread() {
|
|
|
5688
5604
|
function _nonIterableRest() {
|
|
5689
5605
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
5690
5606
|
}
|
|
5691
|
-
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
5692
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
5693
|
-
if (!it) {
|
|
5694
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
5695
|
-
if (it)
|
|
5696
|
-
o = it;
|
|
5697
|
-
var i = 0;
|
|
5698
|
-
var F = function() {
|
|
5699
|
-
};
|
|
5700
|
-
return {
|
|
5701
|
-
s: F,
|
|
5702
|
-
n: function() {
|
|
5703
|
-
if (i >= o.length)
|
|
5704
|
-
return {
|
|
5705
|
-
done: true
|
|
5706
|
-
};
|
|
5707
|
-
return {
|
|
5708
|
-
done: false,
|
|
5709
|
-
value: o[i++]
|
|
5710
|
-
};
|
|
5711
|
-
},
|
|
5712
|
-
e: function(e) {
|
|
5713
|
-
throw e;
|
|
5714
|
-
},
|
|
5715
|
-
f: F
|
|
5716
|
-
};
|
|
5717
|
-
}
|
|
5718
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
5719
|
-
}
|
|
5720
|
-
var normalCompletion = true, didErr = false, err;
|
|
5721
|
-
return {
|
|
5722
|
-
s: function() {
|
|
5723
|
-
it = it.call(o);
|
|
5724
|
-
},
|
|
5725
|
-
n: function() {
|
|
5726
|
-
var step = it.next();
|
|
5727
|
-
normalCompletion = step.done;
|
|
5728
|
-
return step;
|
|
5729
|
-
},
|
|
5730
|
-
e: function(e) {
|
|
5731
|
-
didErr = true;
|
|
5732
|
-
err = e;
|
|
5733
|
-
},
|
|
5734
|
-
f: function() {
|
|
5735
|
-
try {
|
|
5736
|
-
if (!normalCompletion && it.return != null)
|
|
5737
|
-
it.return();
|
|
5738
|
-
} finally {
|
|
5739
|
-
if (didErr)
|
|
5740
|
-
throw err;
|
|
5741
|
-
}
|
|
5742
|
-
}
|
|
5743
|
-
};
|
|
5744
|
-
}
|
|
5745
5607
|
function _toPrimitive(input, hint) {
|
|
5746
5608
|
if (typeof input !== "object" || input === null)
|
|
5747
5609
|
return input;
|
|
@@ -5764,15 +5626,13 @@ var TrackType = {
|
|
|
5764
5626
|
METADATA: "metadata"
|
|
5765
5627
|
};
|
|
5766
5628
|
var VideoCodecType = {
|
|
5767
|
-
AV1: "av1",
|
|
5768
5629
|
AVC: "avc",
|
|
5769
5630
|
HEVC: "hevc"
|
|
5770
5631
|
};
|
|
5771
5632
|
var AudioCodecType = {
|
|
5772
5633
|
AAC: "aac",
|
|
5773
5634
|
G711PCMA: "g7110a",
|
|
5774
|
-
G711PCMU: "g7110m"
|
|
5775
|
-
OPUS: "opus"
|
|
5635
|
+
G711PCMU: "g7110m"
|
|
5776
5636
|
};
|
|
5777
5637
|
var WarningType = {
|
|
5778
5638
|
LARGE_AV_SHIFT: "LARGE_AV_SHIFT",
|
|
@@ -5812,7 +5672,6 @@ var VideoTrack = /* @__PURE__ */ function() {
|
|
|
5812
5672
|
_defineProperty(this, "isVideoEncryption", false);
|
|
5813
5673
|
_defineProperty(this, "isAudioEncryption", false);
|
|
5814
5674
|
_defineProperty(this, "isVideo", true);
|
|
5815
|
-
_defineProperty(this, "lastKeyFrameDts", 0);
|
|
5816
5675
|
_defineProperty(this, "kid", null);
|
|
5817
5676
|
_defineProperty(this, "pssh", null);
|
|
5818
5677
|
_defineProperty(this, "ext", void 0);
|
|
@@ -5855,9 +5714,6 @@ var VideoTrack = /* @__PURE__ */ function() {
|
|
|
5855
5714
|
}, {
|
|
5856
5715
|
key: "exist",
|
|
5857
5716
|
value: function exist() {
|
|
5858
|
-
if (/av01/.test(this.codec)) {
|
|
5859
|
-
return true;
|
|
5860
|
-
}
|
|
5861
5717
|
return !!(this.pps.length && this.sps.length && this.codec);
|
|
5862
5718
|
}
|
|
5863
5719
|
}, {
|
|
@@ -5921,7 +5777,7 @@ var AudioTrack = /* @__PURE__ */ function() {
|
|
|
5921
5777
|
}, {
|
|
5922
5778
|
key: "exist",
|
|
5923
5779
|
value: function exist() {
|
|
5924
|
-
return !!(this.sampleRate && this.channelCount && this.codec &&
|
|
5780
|
+
return !!(this.sampleRate && this.channelCount && this.codec && this.codecType === AudioCodecType.AAC);
|
|
5925
5781
|
}
|
|
5926
5782
|
}, {
|
|
5927
5783
|
key: "hasSample",
|
|
@@ -6126,7 +5982,7 @@ var AAC = /* @__PURE__ */ function() {
|
|
|
6126
5982
|
continue;
|
|
6127
5983
|
}
|
|
6128
5984
|
frameLength = (data[i + 3] & 3) << 11 | data[i + 4] << 3 | (data[i + 5] & 224) >> 5;
|
|
6129
|
-
if (
|
|
5985
|
+
if (len - i < frameLength)
|
|
6130
5986
|
break;
|
|
6131
5987
|
protectionSkipBytes = (~data[i + 1] & 1) * 2;
|
|
6132
5988
|
frames.push({
|
|
@@ -6320,15 +6176,6 @@ function parse2(a) {
|
|
|
6320
6176
|
return parseInt(item, 16);
|
|
6321
6177
|
});
|
|
6322
6178
|
}
|
|
6323
|
-
function combineToFloat(integer, decimal) {
|
|
6324
|
-
return Number(integer + "." + decimal);
|
|
6325
|
-
}
|
|
6326
|
-
function toDegree(matrix) {
|
|
6327
|
-
if (matrix.length < 5)
|
|
6328
|
-
return 0;
|
|
6329
|
-
var scaled0 = Math.hypot(matrix[0], matrix[3]), scaled1 = Math.hypot(matrix[1], matrix[4]);
|
|
6330
|
-
return 0 === scaled0 || 0 === scaled1 ? 0 : 180 * Math.atan2(matrix[1] / scaled1, matrix[0] / scaled0) / Math.PI;
|
|
6331
|
-
}
|
|
6332
6179
|
var NALu = /* @__PURE__ */ function() {
|
|
6333
6180
|
function NALu2() {
|
|
6334
6181
|
_classCallCheck(this, NALu2);
|
|
@@ -6991,16 +6838,13 @@ var MAX_SILENT_FRAME_DURATION = 9e4;
|
|
|
6991
6838
|
var AUDIO_EXCETION_LOG_EMIT_DURATION = 5 * 9e4;
|
|
6992
6839
|
var MAX_VIDEO_FRAME_DURATION = 9e4;
|
|
6993
6840
|
var MAX_DTS_DELTA_WITH_NEXT_CHUNK = 9e4 / 2;
|
|
6994
|
-
var LARGE_AV_FIRST_FRAME_FORCE_FIX_THRESHOLD = 9e4 * 5;
|
|
6995
6841
|
var TsFixer = /* @__PURE__ */ function() {
|
|
6996
|
-
function TsFixer2(videoTrack, audioTrack, metadataTrack
|
|
6842
|
+
function TsFixer2(videoTrack, audioTrack, metadataTrack) {
|
|
6997
6843
|
_classCallCheck(this, TsFixer2);
|
|
6998
6844
|
this.videoTrack = videoTrack;
|
|
6999
6845
|
this.audioTrack = audioTrack;
|
|
7000
6846
|
this.metadataTrack = metadataTrack;
|
|
7001
6847
|
this._baseDts = -1;
|
|
7002
|
-
this._baseVideoDts = -1;
|
|
7003
|
-
this._baseAudioDts = -1;
|
|
7004
6848
|
this._baseDtsInited = false;
|
|
7005
6849
|
this._audioNextPts = void 0;
|
|
7006
6850
|
this._videoNextDts = void 0;
|
|
@@ -7009,8 +6853,6 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7009
6853
|
this._lastAudioExceptionGapDot = 0;
|
|
7010
6854
|
this._lastAudioExceptionOverlapDot = 0;
|
|
7011
6855
|
this._lastAudioExceptionLargeGapDot = 0;
|
|
7012
|
-
this._needForceFixLargeGap = fixerConfig === null || fixerConfig === void 0 ? void 0 : fixerConfig.forceFixLargeGap;
|
|
7013
|
-
this._largeGapThreshold = (fixerConfig === null || fixerConfig === void 0 ? void 0 : fixerConfig.largeGapThreshold) || LARGE_AV_FIRST_FRAME_FORCE_FIX_THRESHOLD;
|
|
7014
6856
|
}
|
|
7015
6857
|
_createClass(TsFixer2, [{
|
|
7016
6858
|
key: "fix",
|
|
@@ -7038,16 +6880,10 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7038
6880
|
if (discontinuity) {
|
|
7039
6881
|
this._calculateBaseDts(this.audioTrack, this.videoTrack);
|
|
7040
6882
|
this._baseDts -= startTime;
|
|
7041
|
-
this._baseAudioDts -= startTime;
|
|
7042
|
-
this._baseVideoDts -= startTime;
|
|
7043
6883
|
}
|
|
7044
6884
|
if (!contiguous) {
|
|
7045
6885
|
this._videoNextDts = vaDelta > 0 ? startTime + vaDelta : startTime;
|
|
7046
6886
|
this._audioNextPts = vaDelta > 0 ? startTime : startTime - vaDelta;
|
|
7047
|
-
if (this._needForceFixLargeGap) {
|
|
7048
|
-
this._videoNextDts = 0;
|
|
7049
|
-
this._audioNextPts = 0;
|
|
7050
|
-
}
|
|
7051
6887
|
var vDeltaToNextDts = firstVideoSample ? firstVideoSample.dts - this._baseDts - this._videoNextDts : 0;
|
|
7052
6888
|
var aDeltaToNextDts = firstAudioSample ? firstAudioSample.pts - this._baseDts - this._audioNextPts : 0;
|
|
7053
6889
|
if (Math.abs(vDeltaToNextDts || aDeltaToNextDts) > MAX_VIDEO_FRAME_DURATION) {
|
|
@@ -7080,8 +6916,8 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7080
6916
|
if (!samples.length)
|
|
7081
6917
|
return;
|
|
7082
6918
|
samples.forEach(function(x) {
|
|
7083
|
-
x.dts -= _this2.
|
|
7084
|
-
x.pts -= _this2.
|
|
6919
|
+
x.dts -= _this2._baseDts;
|
|
6920
|
+
x.pts -= _this2._baseDts;
|
|
7085
6921
|
});
|
|
7086
6922
|
if (this._videoNextDts === void 0) {
|
|
7087
6923
|
var samp0 = samples[0];
|
|
@@ -7174,7 +7010,7 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7174
7010
|
if (!samples.length)
|
|
7175
7011
|
return;
|
|
7176
7012
|
samples.forEach(function(x) {
|
|
7177
|
-
x.pts -= _this3.
|
|
7013
|
+
x.pts -= _this3._baseDts;
|
|
7178
7014
|
x.dts = x.pts;
|
|
7179
7015
|
});
|
|
7180
7016
|
this._doFixAudioInternal(audioTrack, samples, 9e4);
|
|
@@ -7191,15 +7027,12 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7191
7027
|
var videoBaseDts = Infinity;
|
|
7192
7028
|
if (audioSamps.length) {
|
|
7193
7029
|
audioTrack.baseDts = audioBasePts = audioSamps[0].pts;
|
|
7194
|
-
this._baseAudioDts = audioBasePts;
|
|
7195
7030
|
}
|
|
7196
7031
|
if (videoSamps.length) {
|
|
7197
7032
|
videoTrack.baseDts = videoBaseDts = videoSamps[0].dts;
|
|
7198
|
-
this._baseVideoDts = videoBaseDts;
|
|
7199
7033
|
}
|
|
7200
7034
|
this._baseDts = Math.min(audioBasePts, videoBaseDts);
|
|
7201
7035
|
var delta = videoBaseDts - audioBasePts;
|
|
7202
|
-
var largeGap = false;
|
|
7203
7036
|
if (Number.isFinite(delta) && Math.abs(delta) > LARGE_AV_FIRST_FRAME_GAP) {
|
|
7204
7037
|
videoTrack.warnings.push({
|
|
7205
7038
|
type: WarningType.LARGE_AV_SHIFT,
|
|
@@ -7209,16 +7042,6 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7209
7042
|
delta
|
|
7210
7043
|
});
|
|
7211
7044
|
}
|
|
7212
|
-
if (Number.isFinite(delta) && Math.abs(delta) > this._largeGapThreshold * MAX_SILENT_FRAME_DURATION) {
|
|
7213
|
-
largeGap = true;
|
|
7214
|
-
}
|
|
7215
|
-
if (!this._baseDtsInited) {
|
|
7216
|
-
if (largeGap && this._needForceFixLargeGap) {
|
|
7217
|
-
this._needForceFixLargeGap = true;
|
|
7218
|
-
} else {
|
|
7219
|
-
this._needForceFixLargeGap = false;
|
|
7220
|
-
}
|
|
7221
|
-
}
|
|
7222
7045
|
this._baseDtsInited = true;
|
|
7223
7046
|
return true;
|
|
7224
7047
|
}
|
|
@@ -7312,7 +7135,6 @@ var TsFixer = /* @__PURE__ */ function() {
|
|
|
7312
7135
|
var logger$4 = new Logger$1("TsDemuxer");
|
|
7313
7136
|
var TsDemuxer = /* @__PURE__ */ function() {
|
|
7314
7137
|
function TsDemuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
7315
|
-
var fixerConfig = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
7316
7138
|
_classCallCheck(this, TsDemuxer2);
|
|
7317
7139
|
_defineProperty(this, "_pmtId", -1);
|
|
7318
7140
|
_defineProperty(this, "_remainingPacketData", null);
|
|
@@ -7322,7 +7144,7 @@ var TsDemuxer = /* @__PURE__ */ function() {
|
|
|
7322
7144
|
this.videoTrack = videoTrack || new VideoTrack();
|
|
7323
7145
|
this.audioTrack = audioTrack || new AudioTrack();
|
|
7324
7146
|
this.metadataTrack = metadataTrack || new MetadataTrack();
|
|
7325
|
-
this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack
|
|
7147
|
+
this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack);
|
|
7326
7148
|
}
|
|
7327
7149
|
_createClass(TsDemuxer2, [{
|
|
7328
7150
|
key: "demux",
|
|
@@ -7669,207 +7491,6 @@ var TsDemuxer = /* @__PURE__ */ function() {
|
|
|
7669
7491
|
}]);
|
|
7670
7492
|
return TsDemuxer2;
|
|
7671
7493
|
}();
|
|
7672
|
-
var ByteReader = /* @__PURE__ */ function() {
|
|
7673
|
-
function ByteReader2(buf, offset, len) {
|
|
7674
|
-
_classCallCheck(this, ByteReader2);
|
|
7675
|
-
this.dv = new DataView(buf);
|
|
7676
|
-
this.start = this.offset = offset || this.dv.byteOffset;
|
|
7677
|
-
this.end = len ? this.start + len : this.start + this.dv.byteLength;
|
|
7678
|
-
}
|
|
7679
|
-
_createClass(ByteReader2, [{
|
|
7680
|
-
key: "buffer",
|
|
7681
|
-
get: function get() {
|
|
7682
|
-
return this.dv.buffer;
|
|
7683
|
-
}
|
|
7684
|
-
}, {
|
|
7685
|
-
key: "unreadLength",
|
|
7686
|
-
get: function get() {
|
|
7687
|
-
return Math.max(this.end - this.offset, 0);
|
|
7688
|
-
}
|
|
7689
|
-
}, {
|
|
7690
|
-
key: "size",
|
|
7691
|
-
get: function get() {
|
|
7692
|
-
return this.end - this.start;
|
|
7693
|
-
}
|
|
7694
|
-
}, {
|
|
7695
|
-
key: "readFloat",
|
|
7696
|
-
value: function readFloat(byteNum) {
|
|
7697
|
-
var val = 0;
|
|
7698
|
-
switch (byteNum) {
|
|
7699
|
-
case 4:
|
|
7700
|
-
val = this.dv.getFloat32(this.offset);
|
|
7701
|
-
break;
|
|
7702
|
-
case 8:
|
|
7703
|
-
val = this.dv.getFloat64(this.offset);
|
|
7704
|
-
break;
|
|
7705
|
-
default:
|
|
7706
|
-
throw new Error("read ".concat(byteNum, "-byte float is not supported"));
|
|
7707
|
-
}
|
|
7708
|
-
this.offset += byteNum;
|
|
7709
|
-
return val;
|
|
7710
|
-
}
|
|
7711
|
-
}, {
|
|
7712
|
-
key: "back",
|
|
7713
|
-
value: function back(byteNum) {
|
|
7714
|
-
this.offset -= byteNum;
|
|
7715
|
-
}
|
|
7716
|
-
}, {
|
|
7717
|
-
key: "skip",
|
|
7718
|
-
value: function skip(byteNum) {
|
|
7719
|
-
this.offset += byteNum;
|
|
7720
|
-
}
|
|
7721
|
-
}, {
|
|
7722
|
-
key: "readInt",
|
|
7723
|
-
value: function readInt(byteNum) {
|
|
7724
|
-
var offset = this.offset;
|
|
7725
|
-
this.offset += byteNum;
|
|
7726
|
-
switch (byteNum) {
|
|
7727
|
-
case 1:
|
|
7728
|
-
return this.dv.getInt8(offset);
|
|
7729
|
-
case 2:
|
|
7730
|
-
return this.dv.getInt16(offset);
|
|
7731
|
-
case 4:
|
|
7732
|
-
return this.dv.getInt32(offset);
|
|
7733
|
-
default:
|
|
7734
|
-
throw new Error("read ".concat(byteNum, "-byte integers is not supported"));
|
|
7735
|
-
}
|
|
7736
|
-
}
|
|
7737
|
-
}, {
|
|
7738
|
-
key: "read",
|
|
7739
|
-
value: function read(byteNum) {
|
|
7740
|
-
var offset = this.offset;
|
|
7741
|
-
this.offset += byteNum;
|
|
7742
|
-
switch (byteNum) {
|
|
7743
|
-
case 1:
|
|
7744
|
-
return this.dv.getUint8(offset);
|
|
7745
|
-
case 2:
|
|
7746
|
-
return this.dv.getUint16(offset);
|
|
7747
|
-
case 3:
|
|
7748
|
-
return (this.dv.getUint16(offset) << 8) + this.dv.getUint8(offset + 2);
|
|
7749
|
-
case 4:
|
|
7750
|
-
return this.dv.getUint32(offset);
|
|
7751
|
-
default:
|
|
7752
|
-
this.back(byteNum - 4);
|
|
7753
|
-
return this.read(byteNum - 4) + this.dv.getUint32(offset) * Math.pow(256, byteNum - 4);
|
|
7754
|
-
}
|
|
7755
|
-
}
|
|
7756
|
-
}, {
|
|
7757
|
-
key: "write",
|
|
7758
|
-
value: function write(byteNum, val) {
|
|
7759
|
-
var offset = this.offset;
|
|
7760
|
-
this.offset += byteNum;
|
|
7761
|
-
switch (byteNum) {
|
|
7762
|
-
case 1:
|
|
7763
|
-
return this.dv.setUint8(offset, val);
|
|
7764
|
-
case 2:
|
|
7765
|
-
return this.dv.setUint16(offset, val);
|
|
7766
|
-
case 3:
|
|
7767
|
-
return this.dv.setUint8(offset, val >>> 16), this.dv.setUint16(offset + 1, 65535 & val);
|
|
7768
|
-
case 4:
|
|
7769
|
-
return this.dv.setUint32(offset, val);
|
|
7770
|
-
default:
|
|
7771
|
-
throw new Error("write ".concat(byteNum, "-byte integers is not supported"));
|
|
7772
|
-
}
|
|
7773
|
-
}
|
|
7774
|
-
}, {
|
|
7775
|
-
key: "readToBuffer",
|
|
7776
|
-
value: function readToBuffer(len) {
|
|
7777
|
-
var buffer;
|
|
7778
|
-
if (this.offset || len) {
|
|
7779
|
-
buffer = this.dv.buffer.slice(this.offset, len ? this.offset + len : this.end);
|
|
7780
|
-
} else {
|
|
7781
|
-
buffer = this.dv.buffer;
|
|
7782
|
-
}
|
|
7783
|
-
this.offset += buffer.byteLength;
|
|
7784
|
-
return buffer;
|
|
7785
|
-
}
|
|
7786
|
-
}, {
|
|
7787
|
-
key: "readToUint8",
|
|
7788
|
-
value: function readToUint8(len) {
|
|
7789
|
-
var uint8 = new Uint8Array(this.dv.buffer, this.offset, len || this.unreadLength);
|
|
7790
|
-
this.offset += uint8.byteLength;
|
|
7791
|
-
return uint8;
|
|
7792
|
-
}
|
|
7793
|
-
}, {
|
|
7794
|
-
key: "readString",
|
|
7795
|
-
value: function readString(len) {
|
|
7796
|
-
var i = 0, str = "";
|
|
7797
|
-
for (; i < len; i++) {
|
|
7798
|
-
str += String.fromCharCode(this.dv.getUint8(this.offset));
|
|
7799
|
-
this.offset++;
|
|
7800
|
-
}
|
|
7801
|
-
return str;
|
|
7802
|
-
}
|
|
7803
|
-
}], [{
|
|
7804
|
-
key: "fromUint8",
|
|
7805
|
-
value: function fromUint8(uint8) {
|
|
7806
|
-
return new ByteReader2(uint8.buffer, uint8.byteOffset, uint8.byteLength);
|
|
7807
|
-
}
|
|
7808
|
-
}, {
|
|
7809
|
-
key: "concatUint8s",
|
|
7810
|
-
value: function concatUint8s(args) {
|
|
7811
|
-
var uint8 = new Uint8Array(args.reduce(function(ret, v) {
|
|
7812
|
-
return ret + v.byteLength;
|
|
7813
|
-
}, 0));
|
|
7814
|
-
var offset = 0;
|
|
7815
|
-
args.forEach(function(v) {
|
|
7816
|
-
uint8.set(v, offset);
|
|
7817
|
-
offset += v.byteLength;
|
|
7818
|
-
});
|
|
7819
|
-
return uint8;
|
|
7820
|
-
}
|
|
7821
|
-
}, {
|
|
7822
|
-
key: "concatUint8",
|
|
7823
|
-
value: function concatUint8() {
|
|
7824
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7825
|
-
args[_key] = arguments[_key];
|
|
7826
|
-
}
|
|
7827
|
-
return this.concatUint8s(args);
|
|
7828
|
-
}
|
|
7829
|
-
}]);
|
|
7830
|
-
return ByteReader2;
|
|
7831
|
-
}();
|
|
7832
|
-
var BitReader = /* @__PURE__ */ function() {
|
|
7833
|
-
function BitReader2(val, size) {
|
|
7834
|
-
_classCallCheck(this, BitReader2);
|
|
7835
|
-
this.offset = 0;
|
|
7836
|
-
this.val = val;
|
|
7837
|
-
this.size = size;
|
|
7838
|
-
}
|
|
7839
|
-
_createClass(BitReader2, [{
|
|
7840
|
-
key: "skip",
|
|
7841
|
-
value: function skip(len) {
|
|
7842
|
-
this.offset += len;
|
|
7843
|
-
}
|
|
7844
|
-
}, {
|
|
7845
|
-
key: "read",
|
|
7846
|
-
value: function read(len) {
|
|
7847
|
-
var unreadLength = this.size - this.offset - len;
|
|
7848
|
-
if (unreadLength >= 0) {
|
|
7849
|
-
var bits = 0, i = 0;
|
|
7850
|
-
this.offset += len;
|
|
7851
|
-
if (this.size > 31) {
|
|
7852
|
-
for (; i < len; i++) {
|
|
7853
|
-
bits += Math.pow(2, i);
|
|
7854
|
-
}
|
|
7855
|
-
return this.val / Math.pow(2, unreadLength) & bits;
|
|
7856
|
-
} else {
|
|
7857
|
-
for (; i < len; i++) {
|
|
7858
|
-
bits += 1 << i;
|
|
7859
|
-
}
|
|
7860
|
-
return this.val >>> unreadLength & bits;
|
|
7861
|
-
}
|
|
7862
|
-
}
|
|
7863
|
-
throw new Error("the number of the read operation exceeds the total length limit of bits");
|
|
7864
|
-
}
|
|
7865
|
-
}], [{
|
|
7866
|
-
key: "fromByte",
|
|
7867
|
-
value: function fromByte(byte, len) {
|
|
7868
|
-
return new BitReader2(byte.read(len), len << 3);
|
|
7869
|
-
}
|
|
7870
|
-
}]);
|
|
7871
|
-
return BitReader2;
|
|
7872
|
-
}();
|
|
7873
7494
|
var MP4Parser = /* @__PURE__ */ function() {
|
|
7874
7495
|
function MP4Parser2() {
|
|
7875
7496
|
_classCallCheck(this, MP4Parser2);
|
|
@@ -8027,36 +7648,18 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8027
7648
|
key: "tkhd",
|
|
8028
7649
|
value: function tkhd(box) {
|
|
8029
7650
|
return parseBox(box, true, function(ret, data) {
|
|
8030
|
-
var
|
|
7651
|
+
var start = 0;
|
|
8031
7652
|
if (ret.version === 1) {
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
byte.read(4);
|
|
8036
|
-
ret.duration = byte.read(8);
|
|
7653
|
+
ret.trackId = readBig32(data, 16);
|
|
7654
|
+
ret.duration = readBig64(data, 24);
|
|
7655
|
+
start += 32;
|
|
8037
7656
|
} else {
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
byte.read(4);
|
|
8042
|
-
ret.duration = byte.read(4);
|
|
7657
|
+
ret.trackId = readBig32(data, 8);
|
|
7658
|
+
ret.duration = readBig32(data, 16);
|
|
7659
|
+
start += 20;
|
|
8043
7660
|
}
|
|
8044
|
-
|
|
8045
|
-
ret.
|
|
8046
|
-
for (var i = 0; i < 36; i++) {
|
|
8047
|
-
ret.matrix.push(byte.read(1));
|
|
8048
|
-
}
|
|
8049
|
-
byte.back(36);
|
|
8050
|
-
var caculatedMatrix = [];
|
|
8051
|
-
for (var _i = 0, int32; _i < 3; _i++) {
|
|
8052
|
-
caculatedMatrix.push(combineToFloat(byte.readInt(2), byte.readInt(2)));
|
|
8053
|
-
caculatedMatrix.push(combineToFloat(byte.readInt(2), byte.readInt(2)));
|
|
8054
|
-
int32 = byte.readInt(4);
|
|
8055
|
-
caculatedMatrix.push(combineToFloat(int32 >> 30, int32 & 1073741823));
|
|
8056
|
-
}
|
|
8057
|
-
ret.rotation = toDegree(caculatedMatrix);
|
|
8058
|
-
ret.width = byte.read(4);
|
|
8059
|
-
ret.height = byte.read(4);
|
|
7661
|
+
ret.width = readBig32(data, start + 52);
|
|
7662
|
+
ret.height = readBig32(data, start + 56);
|
|
8060
7663
|
});
|
|
8061
7664
|
}
|
|
8062
7665
|
}, {
|
|
@@ -8186,7 +7789,7 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8186
7789
|
if (ret.version > 0) {
|
|
8187
7790
|
var numKeyIds = readBig32(data, start);
|
|
8188
7791
|
start += 4;
|
|
8189
|
-
for (var
|
|
7792
|
+
for (var _i = 0; _i < ("" + numKeyIds).length; _i++) {
|
|
8190
7793
|
for (var j = 0; j < 16; j++) {
|
|
8191
7794
|
var keyId = data[start];
|
|
8192
7795
|
start += 1;
|
|
@@ -8209,8 +7812,6 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8209
7812
|
ret.entryCount = readBig32(data);
|
|
8210
7813
|
ret.entries = MP4Parser2.findBox(data.subarray(4), [], start + 4).map(function(b) {
|
|
8211
7814
|
switch (b.type) {
|
|
8212
|
-
case "av01":
|
|
8213
|
-
return MP4Parser2.av01(b);
|
|
8214
7815
|
case "avc1":
|
|
8215
7816
|
case "avc2":
|
|
8216
7817
|
case "avc3":
|
|
@@ -8290,69 +7891,6 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8290
7891
|
}
|
|
8291
7892
|
});
|
|
8292
7893
|
}
|
|
8293
|
-
}, {
|
|
8294
|
-
key: "colr",
|
|
8295
|
-
value: function colr(box) {
|
|
8296
|
-
return parseBox(box, false, function(ret, data) {
|
|
8297
|
-
var byte = ByteReader.fromUint8(data);
|
|
8298
|
-
ret.data = box.data;
|
|
8299
|
-
ret.colorType = byte.readString(4);
|
|
8300
|
-
if (ret.colorType === "nclx") {
|
|
8301
|
-
ret.colorPrimaries = byte.read(2);
|
|
8302
|
-
ret.transferCharacteristics = byte.read(2);
|
|
8303
|
-
ret.matrixCoefficients = byte.read(2);
|
|
8304
|
-
ret.fullRangeFlag = byte.read(1) >> 7;
|
|
8305
|
-
} else if (ret.colorType === "rICC" || ret.colorType === "prof") {
|
|
8306
|
-
ret.iccProfile = data.readToUint8();
|
|
8307
|
-
}
|
|
8308
|
-
});
|
|
8309
|
-
}
|
|
8310
|
-
}, {
|
|
8311
|
-
key: "av01",
|
|
8312
|
-
value: function av01(box) {
|
|
8313
|
-
return parseBox(box, false, function(ret, data, start) {
|
|
8314
|
-
var bodyStart = parseVisualSampleEntry(ret, data);
|
|
8315
|
-
var bodyData = data.subarray(bodyStart);
|
|
8316
|
-
start += bodyStart;
|
|
8317
|
-
ret.av1C = MP4Parser2.av1C(MP4Parser2.findBox(bodyData, ["av1C"], start)[0]);
|
|
8318
|
-
ret.colr = MP4Parser2.colr(MP4Parser2.findBox(bodyData, ["colr"], start)[0]);
|
|
8319
|
-
});
|
|
8320
|
-
}
|
|
8321
|
-
}, {
|
|
8322
|
-
key: "av1C",
|
|
8323
|
-
value: function av1C(box) {
|
|
8324
|
-
return parseBox(box, false, function(ret, data) {
|
|
8325
|
-
ret.data = box.data;
|
|
8326
|
-
var byte = ByteReader.fromUint8(data);
|
|
8327
|
-
var bit = BitReader.fromByte(byte, 4);
|
|
8328
|
-
ret.marker = bit.read(1);
|
|
8329
|
-
ret.version = bit.read(7);
|
|
8330
|
-
ret.seqProfile = bit.read(3);
|
|
8331
|
-
ret.seqLevelIdx0 = bit.read(5);
|
|
8332
|
-
ret.seqTier0 = bit.read(1);
|
|
8333
|
-
ret.highBitdepth = bit.read(1);
|
|
8334
|
-
ret.twelveBit = bit.read(1);
|
|
8335
|
-
ret.monochrome = bit.read(1);
|
|
8336
|
-
ret.chromaSubsamplingX = bit.read(1);
|
|
8337
|
-
ret.chromaSubsamplingY = bit.read(1);
|
|
8338
|
-
ret.chromaSamplePosition = bit.read(2);
|
|
8339
|
-
ret.reserved = bit.read(3);
|
|
8340
|
-
ret.initialPresentationDelayPresent = bit.read(1);
|
|
8341
|
-
if (ret.initialPresentationDelayPresent) {
|
|
8342
|
-
ret.initialPresentationDelayMinusOne = bit.read(4);
|
|
8343
|
-
} else {
|
|
8344
|
-
ret.initialPresentationDelayMinusOne = 0;
|
|
8345
|
-
}
|
|
8346
|
-
ret.configOBUs = byte.readToUint8();
|
|
8347
|
-
var bitdepth;
|
|
8348
|
-
if (ret.seqLevelIdx0 === 2 && ret.highBitdepth === 1) {
|
|
8349
|
-
bitdepth = ret.twelveBit === 1 ? "12" : "10";
|
|
8350
|
-
} else if (ret.seqProfile <= 2) {
|
|
8351
|
-
bitdepth = ret.highBitdepth === 1 ? "10" : "08";
|
|
8352
|
-
}
|
|
8353
|
-
ret.codec = ["av01", ret.seqProfile, (ret.seqLevelIdx0 < 10 ? "0" + ret.seqLevelIdx0 : ret.seqLevelIdx0) + (ret.seqTier0 ? "H" : "M"), bitdepth].join(".");
|
|
8354
|
-
});
|
|
8355
|
-
}
|
|
8356
7894
|
}, {
|
|
8357
7895
|
key: "avc1",
|
|
8358
7896
|
value: function avc1(box) {
|
|
@@ -8387,7 +7925,7 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8387
7925
|
ret.ppsLength = data[start];
|
|
8388
7926
|
start += 1;
|
|
8389
7927
|
ret.pps = [];
|
|
8390
|
-
for (var
|
|
7928
|
+
for (var _i2 = 0; _i2 < ret.ppsLength; _i2++) {
|
|
8391
7929
|
var _size = readBig16(data, start);
|
|
8392
7930
|
start += 2;
|
|
8393
7931
|
ret.pps.push(data.subarray(start, start += _size));
|
|
@@ -8556,7 +8094,7 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8556
8094
|
start += 8;
|
|
8557
8095
|
}
|
|
8558
8096
|
} else {
|
|
8559
|
-
for (var
|
|
8097
|
+
for (var _i3 = 0; _i3 < entryCount; _i3++) {
|
|
8560
8098
|
entries.push({
|
|
8561
8099
|
count: readBig32(data, start),
|
|
8562
8100
|
offset: -(~readBig32(data, start + 4) + 1)
|
|
@@ -8778,20 +8316,13 @@ var MP4Parser = /* @__PURE__ */ function() {
|
|
|
8778
8316
|
v.mvhdTimecale = moov.mvhd.timescale;
|
|
8779
8317
|
v.timescale = v.formatTimescale = vTrack.mdia.mdhd.timescale;
|
|
8780
8318
|
v.duration = vTrack.mdia.mdhd.duration || v.mvhdDurtion / v.mvhdTimecale * v.timescale;
|
|
8781
|
-
v.rotation = vTrack.tkhd.rotation;
|
|
8782
|
-
v.matrix = vTrack.tkhd.matrix;
|
|
8783
8319
|
var e1 = vTrack.mdia.minf.stbl.stsd.entries[0];
|
|
8784
8320
|
v.width = e1.width;
|
|
8785
8321
|
v.height = e1.height;
|
|
8786
8322
|
if (e1.pasp) {
|
|
8787
8323
|
v.sarRatio = [e1.pasp.hSpacing, e1.pasp.vSpacing];
|
|
8788
8324
|
}
|
|
8789
|
-
if (e1.
|
|
8790
|
-
v.codecType = VideoCodecType.AV1;
|
|
8791
|
-
v.codec = e1.av1C.codec;
|
|
8792
|
-
v.av1C = e1.av1C.data;
|
|
8793
|
-
v.colr = e1.colr.data;
|
|
8794
|
-
} else if (e1.hvcC) {
|
|
8325
|
+
if (e1.hvcC) {
|
|
8795
8326
|
v.codecType = VideoCodecType.HEVC;
|
|
8796
8327
|
v.codec = e1.hvcC.codec;
|
|
8797
8328
|
v.vps = e1.hvcC.vps;
|
|
@@ -9110,9 +8641,8 @@ function parseAudioSampleEntry(ret, data) {
|
|
|
9110
8641
|
function parseBox(box, isFullBox, parse3) {
|
|
9111
8642
|
if (!box)
|
|
9112
8643
|
return;
|
|
9113
|
-
if (box.size !== box.data.length)
|
|
8644
|
+
if (box.size !== box.data.length)
|
|
9114
8645
|
throw new Error("box ".concat(box.type, " size !== data.length"));
|
|
9115
|
-
}
|
|
9116
8646
|
var ret = {
|
|
9117
8647
|
start: box.start,
|
|
9118
8648
|
size: box.size,
|
|
@@ -9151,167 +8681,11 @@ var toHex = function toHex2() {
|
|
|
9151
8681
|
var FMP4Demuxer = /* @__PURE__ */ function() {
|
|
9152
8682
|
function FMP4Demuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
9153
8683
|
_classCallCheck(this, FMP4Demuxer2);
|
|
9154
|
-
_defineProperty(this, "__loadedMoofWraps", []);
|
|
9155
|
-
_defineProperty(this, "__lastRemainData", null);
|
|
9156
|
-
_defineProperty(this, "__lastRemainDataStart", 0);
|
|
9157
|
-
_defineProperty(this, "__nextMoofStart", -1);
|
|
9158
8684
|
this.videoTrack = videoTrack || new VideoTrack();
|
|
9159
8685
|
this.audioTrack = audioTrack || new AudioTrack();
|
|
9160
8686
|
this.metadataTrack = metadataTrack || new MetadataTrack();
|
|
9161
8687
|
}
|
|
9162
8688
|
_createClass(FMP4Demuxer2, [{
|
|
9163
|
-
key: "demuxPart",
|
|
9164
|
-
value: function demuxPart(partData, partDataStart, moov) {
|
|
9165
|
-
var _this = this;
|
|
9166
|
-
var videoTrack = this.videoTrack, audioTrack = this.audioTrack;
|
|
9167
|
-
var videoExist = videoTrack.exist();
|
|
9168
|
-
var audioExist = audioTrack.exist();
|
|
9169
|
-
var isAV01 = /av01/.test(videoTrack.codec);
|
|
9170
|
-
videoTrack.samples = [];
|
|
9171
|
-
audioTrack.samples = [];
|
|
9172
|
-
var data = partData;
|
|
9173
|
-
var dataStart = partDataStart;
|
|
9174
|
-
if (this.__lastRemainData) {
|
|
9175
|
-
var lastRemainDataEnd = this.__lastRemainDataStart + this.__lastRemainData.byteLength;
|
|
9176
|
-
var continuous = partDataStart <= lastRemainDataEnd && partDataStart > this.__lastRemainDataStart && partDataStart + partData.byteLength > lastRemainDataEnd;
|
|
9177
|
-
if (continuous) {
|
|
9178
|
-
var noDuplicateData = partData.subarray(this.__lastRemainData.byteLength + this.__lastRemainDataStart - partDataStart);
|
|
9179
|
-
data = concatUint8Array(this.__lastRemainData, noDuplicateData);
|
|
9180
|
-
dataStart = this.__lastRemainDataStart;
|
|
9181
|
-
this.__lastRemainData = null;
|
|
9182
|
-
} else {
|
|
9183
|
-
this.__lastRemainData = null;
|
|
9184
|
-
this.__lastRemainDataStart = 0;
|
|
9185
|
-
this.__nextMoofStart = -1;
|
|
9186
|
-
}
|
|
9187
|
-
}
|
|
9188
|
-
if (!moov) {
|
|
9189
|
-
var moovBox = MP4Parser.findBox(data, ["moov"])[0];
|
|
9190
|
-
if (!moovBox)
|
|
9191
|
-
throw new Error("cannot found moov box");
|
|
9192
|
-
moov = MP4Parser.moov(moovBox);
|
|
9193
|
-
}
|
|
9194
|
-
if (data) {
|
|
9195
|
-
var dataEnd = dataStart + data.byteLength;
|
|
9196
|
-
if (!videoExist && !audioExist) {
|
|
9197
|
-
MP4Parser.moovToTrack(moov, videoTrack, audioTrack);
|
|
9198
|
-
}
|
|
9199
|
-
var moofBoxes = [];
|
|
9200
|
-
if (this.__nextMoofStart < 0) {
|
|
9201
|
-
MP4Parser.findBox(data, ["moof"], dataStart).forEach(function(v) {
|
|
9202
|
-
return moofBoxes.push(v);
|
|
9203
|
-
});
|
|
9204
|
-
} else if (this.__nextMoofStart >= dataStart && this.__nextMoofStart <= dataEnd - 8) {
|
|
9205
|
-
MP4Parser.findBox(data.subarray(this.__nextMoofStart - dataStart), ["moof"], this.__nextMoofStart).forEach(function(v) {
|
|
9206
|
-
return moofBoxes.push(v);
|
|
9207
|
-
});
|
|
9208
|
-
}
|
|
9209
|
-
moofBoxes.filter(function(moofBox) {
|
|
9210
|
-
return moofBox.size <= moofBox.data.length;
|
|
9211
|
-
}).forEach(function(moofBox) {
|
|
9212
|
-
var moof = MP4Parser.moof(moofBox);
|
|
9213
|
-
_this.__nextMoofStart = moof.start + Math.max.apply(Math, _toConsumableArray(moof.traf.map(function(v) {
|
|
9214
|
-
return v.trun.samples.reduce(function(ret, w) {
|
|
9215
|
-
return ret + w.size;
|
|
9216
|
-
}, v.trun.dataOffset || 0);
|
|
9217
|
-
})));
|
|
9218
|
-
_this.__loadedMoofWraps.push({
|
|
9219
|
-
start: moof.start,
|
|
9220
|
-
nextMoofStart: _this.__nextMoofStart,
|
|
9221
|
-
moof
|
|
9222
|
-
});
|
|
9223
|
-
_this.__loadedMoofWraps.sort(function(p, n) {
|
|
9224
|
-
return p.start - n.start;
|
|
9225
|
-
});
|
|
9226
|
-
});
|
|
9227
|
-
var _iterator = _createForOfIteratorHelper(this.__loadedMoofWraps), _step;
|
|
9228
|
-
try {
|
|
9229
|
-
var _loop = function _loop2() {
|
|
9230
|
-
var moofWrap = _step.value;
|
|
9231
|
-
if (moofWrap.start > dataEnd || moofWrap.nextMoofStart < dataStart) {
|
|
9232
|
-
return "continue";
|
|
9233
|
-
}
|
|
9234
|
-
var moofStart = moofWrap.start;
|
|
9235
|
-
var tracks = MP4Parser.moofToSamples(moofWrap.moof, videoTrack, audioTrack);
|
|
9236
|
-
var videoBaseMediaDecodeTime = videoTrack.baseMediaDecodeTime;
|
|
9237
|
-
var audioBaseMediaDecodeTime = audioTrack.baseMediaDecodeTime;
|
|
9238
|
-
var nalSize;
|
|
9239
|
-
Object.keys(tracks).forEach(function(k) {
|
|
9240
|
-
if (videoTrack.id == k) {
|
|
9241
|
-
tracks[k].some(function(x) {
|
|
9242
|
-
var xStart = x.offset += moofStart;
|
|
9243
|
-
if (xStart < dataStart) {
|
|
9244
|
-
return;
|
|
9245
|
-
}
|
|
9246
|
-
if (xStart + x.size > dataEnd) {
|
|
9247
|
-
return true;
|
|
9248
|
-
}
|
|
9249
|
-
var sample = new VideoSample((x.pts || x.dts) + videoBaseMediaDecodeTime, x.dts + videoBaseMediaDecodeTime);
|
|
9250
|
-
sample.duration = x.duration;
|
|
9251
|
-
sample.gopId = x.gopId;
|
|
9252
|
-
if (x.keyframe)
|
|
9253
|
-
sample.setToKeyframe();
|
|
9254
|
-
var sampleData = data.subarray(xStart - dataStart, xStart - dataStart + x.size);
|
|
9255
|
-
sample.data = sampleData;
|
|
9256
|
-
if (!isAV01) {
|
|
9257
|
-
var start = 0;
|
|
9258
|
-
var len = sampleData.length - 1;
|
|
9259
|
-
while (start < len) {
|
|
9260
|
-
nalSize = readBig32(sampleData, start);
|
|
9261
|
-
start += 4;
|
|
9262
|
-
sample.units.push(sampleData.subarray(start, start + nalSize));
|
|
9263
|
-
start += nalSize;
|
|
9264
|
-
}
|
|
9265
|
-
}
|
|
9266
|
-
_this.__lastRemainDataStart = xStart + x.size;
|
|
9267
|
-
videoTrack.samples.push(sample);
|
|
9268
|
-
});
|
|
9269
|
-
} else if (audioTrack.id == k) {
|
|
9270
|
-
tracks[k].some(function(x) {
|
|
9271
|
-
var xStart = x.offset + moofStart;
|
|
9272
|
-
if (xStart < dataStart) {
|
|
9273
|
-
return;
|
|
9274
|
-
}
|
|
9275
|
-
if (xStart + x.size > dataEnd) {
|
|
9276
|
-
return true;
|
|
9277
|
-
}
|
|
9278
|
-
var sampleData = data.subarray(xStart - dataStart, xStart - dataStart + x.size);
|
|
9279
|
-
audioTrack.samples.push(new AudioSample(x.dts + audioBaseMediaDecodeTime, sampleData, x.duration));
|
|
9280
|
-
_this.__lastRemainDataStart = xStart + x.size;
|
|
9281
|
-
});
|
|
9282
|
-
}
|
|
9283
|
-
});
|
|
9284
|
-
};
|
|
9285
|
-
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
9286
|
-
var _ret = _loop();
|
|
9287
|
-
if (_ret === "continue")
|
|
9288
|
-
continue;
|
|
9289
|
-
}
|
|
9290
|
-
} catch (err) {
|
|
9291
|
-
_iterator.e(err);
|
|
9292
|
-
} finally {
|
|
9293
|
-
_iterator.f();
|
|
9294
|
-
}
|
|
9295
|
-
}
|
|
9296
|
-
if (this.__lastRemainDataStart > dataStart && this.__lastRemainDataStart < data.byteLength + dataStart) {
|
|
9297
|
-
this.__lastRemainData = data.subarray(this.__lastRemainDataStart - dataStart);
|
|
9298
|
-
} else {
|
|
9299
|
-
this.__lastRemainData = data;
|
|
9300
|
-
this.__lastRemainDataStart = dataStart;
|
|
9301
|
-
}
|
|
9302
|
-
if (videoTrack.samples.length) {
|
|
9303
|
-
videoTrack.baseMediaDecodeTime = videoTrack.samples[0].pts;
|
|
9304
|
-
}
|
|
9305
|
-
if (audioTrack.samples.length) {
|
|
9306
|
-
audioTrack.baseMediaDecodeTime = audioTrack.samples[0].pts;
|
|
9307
|
-
}
|
|
9308
|
-
return {
|
|
9309
|
-
videoTrack,
|
|
9310
|
-
audioTrack,
|
|
9311
|
-
metadataTrack: this.metadataTrack
|
|
9312
|
-
};
|
|
9313
|
-
}
|
|
9314
|
-
}, {
|
|
9315
8689
|
key: "demux",
|
|
9316
8690
|
value: function demux(videoData, audioData) {
|
|
9317
8691
|
var videoTrack = this.videoTrack, audioTrack = this.audioTrack;
|
|
@@ -9803,16 +9177,10 @@ var MP4 = /* @__PURE__ */ function() {
|
|
|
9803
9177
|
if (track.useEME && track.enca) {
|
|
9804
9178
|
content = MP42.enca(track);
|
|
9805
9179
|
} else {
|
|
9806
|
-
|
|
9807
|
-
content = MP42.opus(track);
|
|
9808
|
-
} else {
|
|
9809
|
-
content = MP42.mp4a(track);
|
|
9810
|
-
}
|
|
9180
|
+
content = MP42.mp4a(track);
|
|
9811
9181
|
}
|
|
9812
9182
|
} else if (track.useEME && track.encv) {
|
|
9813
9183
|
content = MP42.encv(track);
|
|
9814
|
-
} else if (track.av1C) {
|
|
9815
|
-
content = MP42.av01(track);
|
|
9816
9184
|
} else {
|
|
9817
9185
|
content = MP42.avc1hev1(track);
|
|
9818
9186
|
}
|
|
@@ -10026,96 +9394,12 @@ var MP4 = /* @__PURE__ */ function() {
|
|
|
10026
9394
|
return MP42.box(MP42.types.sinf, content, MP42.box(MP42.types.frma, frma), MP42.box(MP42.types.schm, schm), schi);
|
|
10027
9395
|
}
|
|
10028
9396
|
}, {
|
|
10029
|
-
key: "
|
|
10030
|
-
value: function
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
10034
|
-
|
|
10035
|
-
0,
|
|
10036
|
-
0,
|
|
10037
|
-
0,
|
|
10038
|
-
0,
|
|
10039
|
-
1,
|
|
10040
|
-
0,
|
|
10041
|
-
0,
|
|
10042
|
-
0,
|
|
10043
|
-
0,
|
|
10044
|
-
0,
|
|
10045
|
-
0,
|
|
10046
|
-
0,
|
|
10047
|
-
0,
|
|
10048
|
-
0,
|
|
10049
|
-
0,
|
|
10050
|
-
0,
|
|
10051
|
-
0,
|
|
10052
|
-
0,
|
|
10053
|
-
0,
|
|
10054
|
-
0,
|
|
10055
|
-
0,
|
|
10056
|
-
track.width >> 8 & 255,
|
|
10057
|
-
track.width & 255,
|
|
10058
|
-
track.height >> 8 & 255,
|
|
10059
|
-
track.height & 255,
|
|
10060
|
-
0,
|
|
10061
|
-
72,
|
|
10062
|
-
0,
|
|
10063
|
-
0,
|
|
10064
|
-
0,
|
|
10065
|
-
72,
|
|
10066
|
-
0,
|
|
10067
|
-
0,
|
|
10068
|
-
0,
|
|
10069
|
-
0,
|
|
10070
|
-
0,
|
|
10071
|
-
0,
|
|
10072
|
-
0,
|
|
10073
|
-
1,
|
|
10074
|
-
0,
|
|
10075
|
-
0,
|
|
10076
|
-
0,
|
|
10077
|
-
0,
|
|
10078
|
-
0,
|
|
10079
|
-
0,
|
|
10080
|
-
0,
|
|
10081
|
-
0,
|
|
10082
|
-
0,
|
|
10083
|
-
0,
|
|
10084
|
-
0,
|
|
10085
|
-
0,
|
|
10086
|
-
0,
|
|
10087
|
-
0,
|
|
10088
|
-
0,
|
|
10089
|
-
0,
|
|
10090
|
-
0,
|
|
10091
|
-
0,
|
|
10092
|
-
0,
|
|
10093
|
-
0,
|
|
10094
|
-
0,
|
|
10095
|
-
0,
|
|
10096
|
-
0,
|
|
10097
|
-
0,
|
|
10098
|
-
0,
|
|
10099
|
-
0,
|
|
10100
|
-
0,
|
|
10101
|
-
0,
|
|
10102
|
-
0,
|
|
10103
|
-
0,
|
|
10104
|
-
0,
|
|
10105
|
-
0,
|
|
10106
|
-
0,
|
|
10107
|
-
24,
|
|
10108
|
-
17,
|
|
10109
|
-
17
|
|
10110
|
-
]), track.av1C, track.colr);
|
|
10111
|
-
}
|
|
10112
|
-
}, {
|
|
10113
|
-
key: "avc1hev1",
|
|
10114
|
-
value: function avc1hev1(track) {
|
|
10115
|
-
var isHevc = track.codecType === VideoCodecType.HEVC;
|
|
10116
|
-
var typ = isHevc ? MP42.types.hvc1 : MP42.types.avc1;
|
|
10117
|
-
var config = isHevc ? MP42.hvcC(track) : MP42.avcC(track);
|
|
10118
|
-
var boxes = [new Uint8Array([
|
|
9397
|
+
key: "avc1hev1",
|
|
9398
|
+
value: function avc1hev1(track) {
|
|
9399
|
+
var isHevc = track.codecType === VideoCodecType.HEVC;
|
|
9400
|
+
var typ = isHevc ? MP42.types.hvc1 : MP42.types.avc1;
|
|
9401
|
+
var config = isHevc ? MP42.hvcC(track) : MP42.avcC(track);
|
|
9402
|
+
var boxes = [new Uint8Array([
|
|
10119
9403
|
0,
|
|
10120
9404
|
0,
|
|
10121
9405
|
0,
|
|
@@ -10479,53 +9763,6 @@ var MP4 = /* @__PURE__ */ function() {
|
|
|
10479
9763
|
)));
|
|
10480
9764
|
return esds2;
|
|
10481
9765
|
}
|
|
10482
|
-
}, {
|
|
10483
|
-
key: "opus",
|
|
10484
|
-
value: function opus(track) {
|
|
10485
|
-
var opusAudioDescription = new Uint8Array([
|
|
10486
|
-
0,
|
|
10487
|
-
0,
|
|
10488
|
-
0,
|
|
10489
|
-
0,
|
|
10490
|
-
0,
|
|
10491
|
-
0,
|
|
10492
|
-
0,
|
|
10493
|
-
1,
|
|
10494
|
-
0,
|
|
10495
|
-
0,
|
|
10496
|
-
0,
|
|
10497
|
-
0,
|
|
10498
|
-
0,
|
|
10499
|
-
0,
|
|
10500
|
-
0,
|
|
10501
|
-
0,
|
|
10502
|
-
0,
|
|
10503
|
-
track.channelCount,
|
|
10504
|
-
0,
|
|
10505
|
-
16,
|
|
10506
|
-
0,
|
|
10507
|
-
0,
|
|
10508
|
-
0,
|
|
10509
|
-
0,
|
|
10510
|
-
track.sampleRate >> 8 & 255,
|
|
10511
|
-
track.sampleRate & 255,
|
|
10512
|
-
0,
|
|
10513
|
-
0
|
|
10514
|
-
]);
|
|
10515
|
-
var opusSpecificConfig = track.config.length ? MP42.dOps(track) : [];
|
|
10516
|
-
return MP42.box(MP42.types.Opus, opusAudioDescription, opusSpecificConfig);
|
|
10517
|
-
}
|
|
10518
|
-
}, {
|
|
10519
|
-
key: "dOps",
|
|
10520
|
-
value: function dOps(track) {
|
|
10521
|
-
if (track.config) {
|
|
10522
|
-
track.config[4] = track.sampleRate >>> 24 & 255;
|
|
10523
|
-
track.config[5] = track.sampleRate >>> 16 & 255;
|
|
10524
|
-
track.config[6] = track.sampleRate >>> 8 & 255;
|
|
10525
|
-
track.config[7] = track.sampleRate & 255;
|
|
10526
|
-
return MP42.box(MP42.types.dOps, track.config);
|
|
10527
|
-
}
|
|
10528
|
-
}
|
|
10529
9766
|
}, {
|
|
10530
9767
|
key: "mvex",
|
|
10531
9768
|
value: function mvex(tracks) {
|
|
@@ -11128,7 +10365,7 @@ var MP4 = /* @__PURE__ */ function() {
|
|
|
11128
10365
|
}]);
|
|
11129
10366
|
return MP42;
|
|
11130
10367
|
}();
|
|
11131
|
-
_defineProperty(MP4, "types", ["
|
|
10368
|
+
_defineProperty(MP4, "types", ["avc1", "avcC", "hvc1", "hvcC", "dinf", "dref", "esds", "ftyp", "hdlr", "mdat", "mdhd", "mdia", "mfhd", "minf", "moof", "moov", "mp4a", "mvex", "mvhd", "pasp", "stbl", "stco", "stsc", "stsd", "stsz", "stts", "tfdt", "tfhd", "traf", "trak", "trex", "tkhd", "vmhd", "smhd", "ctts", "stss", "styp", "pssh", "sidx", "sbgp", "saiz", "saio", "senc", "trun", "encv", "enca", "sinf", "btrt", "frma", "tenc", "schm", "schi", "mehd", "fiel", "sdtp"].reduce(function(p, c) {
|
|
11132
10369
|
p[c] = [c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2), c.charCodeAt(3)];
|
|
11133
10370
|
return p;
|
|
11134
10371
|
}, /* @__PURE__ */ Object.create(null)));
|
|
@@ -11463,46 +10700,30 @@ var FMP4Remuxer = /* @__PURE__ */ function() {
|
|
|
11463
10700
|
};
|
|
11464
10701
|
}
|
|
11465
10702
|
var samples = track.samples;
|
|
11466
|
-
var isAV01 = /av01/.test(track.codec);
|
|
11467
10703
|
var mdatSize = 0;
|
|
11468
|
-
|
|
11469
|
-
|
|
11470
|
-
|
|
11471
|
-
});
|
|
11472
|
-
|
|
11473
|
-
|
|
11474
|
-
mdatSize += s.units.reduce(function(t, c) {
|
|
11475
|
-
return t + c.byteLength;
|
|
11476
|
-
}, 0);
|
|
11477
|
-
mdatSize += s.units.length * 4;
|
|
11478
|
-
});
|
|
11479
|
-
}
|
|
10704
|
+
samples.forEach(function(s) {
|
|
10705
|
+
mdatSize += s.units.reduce(function(t, c) {
|
|
10706
|
+
return t + c.byteLength;
|
|
10707
|
+
}, 0);
|
|
10708
|
+
mdatSize += s.units.length * 4;
|
|
10709
|
+
});
|
|
11480
10710
|
var mdata = new Uint8Array(mdatSize);
|
|
11481
|
-
|
|
11482
|
-
|
|
11483
|
-
|
|
11484
|
-
|
|
11485
|
-
|
|
11486
|
-
|
|
11487
|
-
|
|
11488
|
-
|
|
11489
|
-
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
|
|
11493
|
-
|
|
11494
|
-
|
|
11495
|
-
|
|
11496
|
-
|
|
11497
|
-
_offset2 += u.byteLength;
|
|
11498
|
-
sampleSize += 4 + u.byteLength;
|
|
11499
|
-
});
|
|
11500
|
-
_sample2.size = sampleSize;
|
|
11501
|
-
_offset = _offset2, _sample = _sample2;
|
|
11502
|
-
};
|
|
11503
|
-
for (var _i = 0, _l = samples.length, _offset = 0, _sample; _i < _l; _i++) {
|
|
11504
|
-
_loop(_offset, _sample);
|
|
11505
|
-
}
|
|
10711
|
+
var mdatView = new DataView(mdata.buffer);
|
|
10712
|
+
var _loop = function _loop2(_offset, _sample) {
|
|
10713
|
+
_sample = samples[i];
|
|
10714
|
+
var sampleSize = 0;
|
|
10715
|
+
_sample.units.forEach(function(u) {
|
|
10716
|
+
mdatView.setUint32(_offset, u.byteLength);
|
|
10717
|
+
_offset += 4;
|
|
10718
|
+
mdata.set(u, _offset);
|
|
10719
|
+
_offset += u.byteLength;
|
|
10720
|
+
sampleSize += 4 + u.byteLength;
|
|
10721
|
+
});
|
|
10722
|
+
_sample.size = sampleSize;
|
|
10723
|
+
offset = _offset, sample = _sample;
|
|
10724
|
+
};
|
|
10725
|
+
for (var i = 0, l = samples.length, offset = 0, sample; i < l; i++) {
|
|
10726
|
+
_loop(offset, sample);
|
|
11506
10727
|
}
|
|
11507
10728
|
var mdat = MP4.mdat(mdata);
|
|
11508
10729
|
var moof = MP4.moof([track]);
|
|
@@ -11661,11 +10882,11 @@ var Event$1 = _objectSpread2$2(_objectSpread2$2({}, EVENT), {}, {
|
|
|
11661
10882
|
});
|
|
11662
10883
|
var logger$3 = new Logger$2("Transmuxer");
|
|
11663
10884
|
var Transmuxer = /* @__PURE__ */ function() {
|
|
11664
|
-
function Transmuxer2(hls, isMP4, needRemux
|
|
10885
|
+
function Transmuxer2(hls, isMP4, needRemux) {
|
|
11665
10886
|
_classCallCheck$3(this, Transmuxer2);
|
|
11666
10887
|
_defineProperty$3(this, "_initSegmentId", "");
|
|
11667
10888
|
this.hls = hls;
|
|
11668
|
-
this._demuxer = isMP4 ? new FMP4Demuxer() : new TsDemuxer(
|
|
10889
|
+
this._demuxer = isMP4 ? new FMP4Demuxer() : new TsDemuxer();
|
|
11669
10890
|
this._isMP4 = isMP4;
|
|
11670
10891
|
if (needRemux)
|
|
11671
10892
|
this._remuxer = new FMP4Remuxer(this._demuxer.videoTrack, this._demuxer.audioTrack);
|
|
@@ -11820,7 +11041,7 @@ var Transmuxer = /* @__PURE__ */ function() {
|
|
|
11820
11041
|
}]);
|
|
11821
11042
|
return Transmuxer2;
|
|
11822
11043
|
}();
|
|
11823
|
-
var _excluded
|
|
11044
|
+
var _excluded = ["data"], _excluded2 = ["data"];
|
|
11824
11045
|
var logger$2 = new Logger$2("BufferService");
|
|
11825
11046
|
var BufferService = /* @__PURE__ */ function() {
|
|
11826
11047
|
function BufferService2(hls) {
|
|
@@ -11932,11 +11153,11 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
11932
11153
|
return;
|
|
11933
11154
|
if (TsDemuxer.probe(chunk)) {
|
|
11934
11155
|
if (!this._transmuxer)
|
|
11935
|
-
this._transmuxer = new Transmuxer(this.hls, false, !this._softVideo
|
|
11156
|
+
this._transmuxer = new Transmuxer(this.hls, false, !this._softVideo);
|
|
11936
11157
|
} else if (MP4Parser.probe(chunk)) {
|
|
11937
11158
|
if (this._softVideo) {
|
|
11938
11159
|
if (!this._transmuxer)
|
|
11939
|
-
this._transmuxer = new Transmuxer(this.hls, true
|
|
11160
|
+
this._transmuxer = new Transmuxer(this.hls, true);
|
|
11940
11161
|
} else {
|
|
11941
11162
|
this._directAppend = true;
|
|
11942
11163
|
var mix = false;
|
|
@@ -11986,8 +11207,7 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
11986
11207
|
key: "appendBuffer",
|
|
11987
11208
|
value: function() {
|
|
11988
11209
|
var _appendBuffer = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee2(segment, audioSegment, videoChunk, audioChunk, discontinuity, contiguous, startTime) {
|
|
11989
|
-
var
|
|
11990
|
-
var afterAppend, p, needInit, _this$_transmuxer$tra, _this$_transmuxer$tra2, video, audio, isFirstAppend, mse, _p, videoData, videoRest, audioData, audioRest;
|
|
11210
|
+
var p, needInit, _this$_transmuxer$tra, _this$_transmuxer$tra2, video, audio, isFirstAppend, mse, _p, videoData, videoRest, audioData, audioRest;
|
|
11991
11211
|
return _regeneratorRuntime$1().wrap(function _callee2$(_context2) {
|
|
11992
11212
|
while (1)
|
|
11993
11213
|
switch (_context2.prev = _context2.next) {
|
|
@@ -11998,18 +11218,8 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
11998
11218
|
}
|
|
11999
11219
|
return _context2.abrupt("return");
|
|
12000
11220
|
case 2:
|
|
12001
|
-
afterAppend = function afterAppend2() {
|
|
12002
|
-
var _this2$hls;
|
|
12003
|
-
if ((_this2$hls = _this2.hls) !== null && _this2$hls !== void 0 && _this2$hls.emit) {
|
|
12004
|
-
var _this2$hls2;
|
|
12005
|
-
(_this2$hls2 = _this2.hls) === null || _this2$hls2 === void 0 ? void 0 : _this2$hls2.emit(EVENT.APPEND_BUFFER, {
|
|
12006
|
-
start: segment.start,
|
|
12007
|
-
end: segment.end
|
|
12008
|
-
});
|
|
12009
|
-
}
|
|
12010
|
-
};
|
|
12011
11221
|
if (!this._directAppend) {
|
|
12012
|
-
_context2.next =
|
|
11222
|
+
_context2.next = 7;
|
|
12013
11223
|
break;
|
|
12014
11224
|
}
|
|
12015
11225
|
p = [];
|
|
@@ -12017,8 +11227,8 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
12017
11227
|
p.push(this._mse.append(MSE.VIDEO, videoChunk));
|
|
12018
11228
|
if (audioChunk)
|
|
12019
11229
|
p.push(this._mse.append(MSE.AUDIO, audioChunk));
|
|
12020
|
-
return _context2.abrupt("return", Promise.all(p)
|
|
12021
|
-
case
|
|
11230
|
+
return _context2.abrupt("return", Promise.all(p));
|
|
11231
|
+
case 7:
|
|
12022
11232
|
needInit = this._needInitSegment || discontinuity;
|
|
12023
11233
|
_this$_transmuxer$tra = this._transmuxer.transmux(videoChunk, audioChunk, needInit, contiguous, startTime, this._needInitSegment || discontinuity), _this$_transmuxer$tra2 = _slicedToArray$1(_this$_transmuxer$tra, 2), video = _this$_transmuxer$tra2[0], audio = _this$_transmuxer$tra2[1];
|
|
12024
11234
|
if (audioChunk && audioSegment) {
|
|
@@ -12034,17 +11244,16 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
12034
11244
|
this.hls.emit(Event$1.NO_AUDIO_TRACK);
|
|
12035
11245
|
}
|
|
12036
11246
|
if (!this._softVideo) {
|
|
12037
|
-
_context2.next =
|
|
11247
|
+
_context2.next = 18;
|
|
12038
11248
|
break;
|
|
12039
11249
|
}
|
|
12040
11250
|
this._softVideo.appendBuffer(video, audio);
|
|
12041
11251
|
this._needInitSegment = false;
|
|
12042
|
-
|
|
12043
|
-
_context2.next = 30;
|
|
11252
|
+
_context2.next = 28;
|
|
12044
11253
|
break;
|
|
12045
|
-
case
|
|
11254
|
+
case 18:
|
|
12046
11255
|
if (!this._mse) {
|
|
12047
|
-
_context2.next =
|
|
11256
|
+
_context2.next = 28;
|
|
12048
11257
|
break;
|
|
12049
11258
|
}
|
|
12050
11259
|
isFirstAppend = !this._sourceCreated;
|
|
@@ -12060,15 +11269,15 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
12060
11269
|
});
|
|
12061
11270
|
}
|
|
12062
11271
|
if (video) {
|
|
12063
|
-
videoData = video.data, videoRest = _objectWithoutProperties$1(video, _excluded
|
|
11272
|
+
videoData = video.data, videoRest = _objectWithoutProperties$1(video, _excluded);
|
|
12064
11273
|
_p.push(mse.append(MSE.VIDEO, videoData, videoRest));
|
|
12065
11274
|
}
|
|
12066
11275
|
if (audio) {
|
|
12067
11276
|
audioData = audio.data, audioRest = _objectWithoutProperties$1(audio, _excluded2);
|
|
12068
11277
|
_p.push(mse.append(MSE.AUDIO, audioData, audioRest));
|
|
12069
11278
|
}
|
|
12070
|
-
return _context2.abrupt("return", Promise.all(_p)
|
|
12071
|
-
case
|
|
11279
|
+
return _context2.abrupt("return", Promise.all(_p));
|
|
11280
|
+
case 28:
|
|
12072
11281
|
case "end":
|
|
12073
11282
|
return _context2.stop();
|
|
12074
11283
|
}
|
|
@@ -12083,7 +11292,7 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
12083
11292
|
key: "removeBuffer",
|
|
12084
11293
|
value: function() {
|
|
12085
11294
|
var _removeBuffer = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee3() {
|
|
12086
|
-
var
|
|
11295
|
+
var _this2 = this;
|
|
12087
11296
|
var start, end, media, _args3 = arguments;
|
|
12088
11297
|
return _regeneratorRuntime$1().wrap(function _callee3$(_context3) {
|
|
12089
11298
|
while (1)
|
|
@@ -12099,7 +11308,7 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
12099
11308
|
return _context3.abrupt("return");
|
|
12100
11309
|
case 5:
|
|
12101
11310
|
return _context3.abrupt("return", this._mse.clearBuffer(start, end).then(function() {
|
|
12102
|
-
return
|
|
11311
|
+
return _this2.hls.emit(EVENT.REMOVE_BUFFER, {
|
|
12103
11312
|
start,
|
|
12104
11313
|
end,
|
|
12105
11314
|
removeEnd: end
|
|
@@ -12280,51 +11489,30 @@ var BufferService = /* @__PURE__ */ function() {
|
|
|
12280
11489
|
return setLiveSeekableRange;
|
|
12281
11490
|
}()
|
|
12282
11491
|
}, {
|
|
12283
|
-
key: "
|
|
11492
|
+
key: "destroy",
|
|
12284
11493
|
value: function() {
|
|
12285
|
-
var
|
|
11494
|
+
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee9() {
|
|
11495
|
+
var _this$_decryptor;
|
|
12286
11496
|
return _regeneratorRuntime$1().wrap(function _callee9$(_context9) {
|
|
12287
11497
|
while (1)
|
|
12288
11498
|
switch (_context9.prev = _context9.next) {
|
|
12289
11499
|
case 0:
|
|
11500
|
+
(_this$_decryptor = this._decryptor) === null || _this$_decryptor === void 0 ? void 0 : _this$_decryptor.destroy();
|
|
12290
11501
|
if (!this._mse) {
|
|
12291
|
-
_context9.next =
|
|
11502
|
+
_context9.next = 4;
|
|
12292
11503
|
break;
|
|
12293
11504
|
}
|
|
12294
|
-
_context9.next =
|
|
11505
|
+
_context9.next = 4;
|
|
12295
11506
|
return this._mse.unbindMedia();
|
|
12296
|
-
case
|
|
12297
|
-
case "end":
|
|
12298
|
-
return _context9.stop();
|
|
12299
|
-
}
|
|
12300
|
-
}, _callee9, this);
|
|
12301
|
-
}));
|
|
12302
|
-
function detachMedia() {
|
|
12303
|
-
return _detachMedia.apply(this, arguments);
|
|
12304
|
-
}
|
|
12305
|
-
return detachMedia;
|
|
12306
|
-
}()
|
|
12307
|
-
}, {
|
|
12308
|
-
key: "destroy",
|
|
12309
|
-
value: function() {
|
|
12310
|
-
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee10() {
|
|
12311
|
-
var _this$_decryptor;
|
|
12312
|
-
return _regeneratorRuntime$1().wrap(function _callee10$(_context10) {
|
|
12313
|
-
while (1)
|
|
12314
|
-
switch (_context10.prev = _context10.next) {
|
|
12315
|
-
case 0:
|
|
12316
|
-
(_this$_decryptor = this._decryptor) === null || _this$_decryptor === void 0 ? void 0 : _this$_decryptor.destroy();
|
|
12317
|
-
_context10.next = 3;
|
|
12318
|
-
return this.detachMedia();
|
|
12319
|
-
case 3:
|
|
11507
|
+
case 4:
|
|
12320
11508
|
this._decryptor = null;
|
|
12321
11509
|
this._mse = null;
|
|
12322
11510
|
this._softVideo = null;
|
|
12323
|
-
case
|
|
11511
|
+
case 7:
|
|
12324
11512
|
case "end":
|
|
12325
|
-
return
|
|
11513
|
+
return _context9.stop();
|
|
12326
11514
|
}
|
|
12327
|
-
},
|
|
11515
|
+
}, _callee9, this);
|
|
12328
11516
|
}));
|
|
12329
11517
|
function destroy() {
|
|
12330
11518
|
return _destroy.apply(this, arguments);
|
|
@@ -12412,11 +11600,7 @@ function getConfig(cfg) {
|
|
|
12412
11600
|
minSegmentsStartPlay: 3,
|
|
12413
11601
|
preferMMS: false,
|
|
12414
11602
|
preferMMSStreaming: false,
|
|
12415
|
-
mseLowLatency: true
|
|
12416
|
-
fixerConfig: {
|
|
12417
|
-
forceFixLargeGap: false,
|
|
12418
|
-
largeGapThreshold: 5
|
|
12419
|
-
}
|
|
11603
|
+
mseLowLatency: true
|
|
12420
11604
|
}, cfg), {}, {
|
|
12421
11605
|
media
|
|
12422
11606
|
});
|
|
@@ -12531,8 +11715,6 @@ var MediaPlaylist = /* @__PURE__ */ _createClass$3(function MediaPlaylist2() {
|
|
|
12531
11715
|
_defineProperty$3(this, "lowLatency", false);
|
|
12532
11716
|
_defineProperty$3(this, "endPartIndex", 0);
|
|
12533
11717
|
_defineProperty$3(this, "segments", []);
|
|
12534
|
-
_defineProperty$3(this, "dateRanges", {});
|
|
12535
|
-
_defineProperty$3(this, "skippedSegments", 0);
|
|
12536
11718
|
});
|
|
12537
11719
|
var MediaSegment = /* @__PURE__ */ function() {
|
|
12538
11720
|
function MediaSegment2(parentUrl) {
|
|
@@ -12704,38 +11886,6 @@ function getCodecs(type, codecs) {
|
|
|
12704
11886
|
}
|
|
12705
11887
|
}
|
|
12706
11888
|
}
|
|
12707
|
-
function isValidDaterange(attr, dateRangeWithSameId) {
|
|
12708
|
-
var _badValueForSameId;
|
|
12709
|
-
if (dateRangeWithSameId) {
|
|
12710
|
-
for (var key in dateRangeWithSameId) {
|
|
12711
|
-
if (Object.prototype.hasOwnProperty.call(dateRangeWithSameId, key) && attr[key] !== dateRangeWithSameId[key]) {
|
|
12712
|
-
_badValueForSameId = key;
|
|
12713
|
-
break;
|
|
12714
|
-
}
|
|
12715
|
-
}
|
|
12716
|
-
}
|
|
12717
|
-
var duration = null;
|
|
12718
|
-
if (attr.DURATION) {
|
|
12719
|
-
duration = parseFloat(attr.DURATION);
|
|
12720
|
-
if (!Number.isFinite(duration)) {
|
|
12721
|
-
duration = null;
|
|
12722
|
-
} else if (attr._endDate) {
|
|
12723
|
-
duration = (attr._endDate.getTime() - attr._startDate.getTime()) / 1e3;
|
|
12724
|
-
}
|
|
12725
|
-
}
|
|
12726
|
-
var cue = enumeratedStringList(attr.CUE || attr["X-CUE"], {
|
|
12727
|
-
pre: false,
|
|
12728
|
-
post: false,
|
|
12729
|
-
once: false
|
|
12730
|
-
});
|
|
12731
|
-
return !!attr.ID && !_badValueForSameId && Number.isFinite(attr._startDate.getTime()) && (duration === null || duration >= 0) && (!(attr.END_ON_NEXT === "YES") || !!attr.CLASS) && (!attr.CUE || !cue.pre && !cue.post || cue.pre !== cue.post) && (!(attr.CLASS === "com.apple.hls.interstitial") || "X-ASSET-URI" in attr || "X-ASSET-LIST" in attr);
|
|
12732
|
-
}
|
|
12733
|
-
function enumeratedStringList(attrValue, dict) {
|
|
12734
|
-
return (attrValue ? attrValue.split(/[ ,]+/) : []).reduce(function(result, identifier) {
|
|
12735
|
-
result[identifier.toLowerCase()] = true;
|
|
12736
|
-
return result;
|
|
12737
|
-
}, dict);
|
|
12738
|
-
}
|
|
12739
11889
|
function parseMasterPlaylist(lines, parentUrl) {
|
|
12740
11890
|
var master = new MasterPlaylist();
|
|
12741
11891
|
var index = 0;
|
|
@@ -12844,6 +11994,9 @@ function parseMediaPlaylist(lines, parentUrl, useLowLatency) {
|
|
|
12844
11994
|
var endOfList = false;
|
|
12845
11995
|
var partSegmentIndex = 0;
|
|
12846
11996
|
while (line = lines[index++]) {
|
|
11997
|
+
if (endOfList) {
|
|
11998
|
+
break;
|
|
11999
|
+
}
|
|
12847
12000
|
if (line[0] !== "#") {
|
|
12848
12001
|
if (media.lowLatency) {
|
|
12849
12002
|
curSN++;
|
|
@@ -12897,6 +12050,11 @@ function parseMediaPlaylist(lines, parentUrl, useLowLatency) {
|
|
|
12897
12050
|
break;
|
|
12898
12051
|
case "ENDLIST":
|
|
12899
12052
|
{
|
|
12053
|
+
var _lastSegment = media.segments[media.segments.length - 1];
|
|
12054
|
+
if (_lastSegment) {
|
|
12055
|
+
_lastSegment.isLast = true;
|
|
12056
|
+
}
|
|
12057
|
+
media.live = false;
|
|
12900
12058
|
endOfList = true;
|
|
12901
12059
|
}
|
|
12902
12060
|
break;
|
|
@@ -12993,29 +12151,6 @@ function parseMediaPlaylist(lines, parentUrl, useLowLatency) {
|
|
|
12993
12151
|
curSegment = new MediaSegment(parentUrl);
|
|
12994
12152
|
}
|
|
12995
12153
|
break;
|
|
12996
|
-
case "SKIP":
|
|
12997
|
-
{
|
|
12998
|
-
var _attr5 = parseAttr(data);
|
|
12999
|
-
var skippedSegments = parseInt(_attr5["SKIPPED-SEGMENTS"], 10);
|
|
13000
|
-
if (skippedSegments <= Number.MAX_SAFE_INTEGER) {
|
|
13001
|
-
media.skippedSegments += skippedSegments;
|
|
13002
|
-
}
|
|
13003
|
-
}
|
|
13004
|
-
break;
|
|
13005
|
-
case "DATERANGE":
|
|
13006
|
-
{
|
|
13007
|
-
var _attr6 = parseAttr(data);
|
|
13008
|
-
var dateRangeWithSameId = media.dateRanges[_attr6.ID];
|
|
13009
|
-
_attr6._startDate = dateRangeWithSameId ? dateRangeWithSameId._startDate : new Date(_attr6["START-DATE"]);
|
|
13010
|
-
var endDate = (dateRangeWithSameId === null || dateRangeWithSameId === void 0 ? void 0 : dateRangeWithSameId._endDate) || new Date(_attr6.END_DATE);
|
|
13011
|
-
if (Number.isFinite(endDate)) {
|
|
13012
|
-
_attr6._endDate = endDate;
|
|
13013
|
-
}
|
|
13014
|
-
if (isValidDaterange(_attr6, dateRangeWithSameId) || media.skippedSegments) {
|
|
13015
|
-
media.dateRanges[_attr6.ID] = _attr6;
|
|
13016
|
-
}
|
|
13017
|
-
}
|
|
13018
|
-
break;
|
|
13019
12154
|
}
|
|
13020
12155
|
}
|
|
13021
12156
|
media.segments = media.segments.filter(function(x) {
|
|
@@ -13023,14 +12158,11 @@ function parseMediaPlaylist(lines, parentUrl, useLowLatency) {
|
|
|
13023
12158
|
});
|
|
13024
12159
|
var lastSegment = media.segments[media.segments.length - 1];
|
|
13025
12160
|
if (lastSegment) {
|
|
13026
|
-
if (endOfList) {
|
|
13027
|
-
lastSegment.isLast = true;
|
|
13028
|
-
}
|
|
13029
12161
|
media.endSN = lastSegment.sn;
|
|
13030
12162
|
media.endPartIndex = lastSegment.partIndex;
|
|
13031
|
-
|
|
13032
|
-
|
|
13033
|
-
|
|
12163
|
+
if (endOfList && !lastSegment.isLast) {
|
|
12164
|
+
lastSegment.isLast = true;
|
|
12165
|
+
}
|
|
13034
12166
|
}
|
|
13035
12167
|
media.totalDuration = totalDuration;
|
|
13036
12168
|
media.endCC = curCC;
|
|
@@ -14127,7 +13259,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14127
13259
|
_defineProperty$3(_assertThisInitialized$2(_this), "_switchUrlOpts", null);
|
|
14128
13260
|
_defineProperty$3(_assertThisInitialized$2(_this), "_isProcessQuotaExceeded", false);
|
|
14129
13261
|
_defineProperty$3(_assertThisInitialized$2(_this), "_loadSegment", /* @__PURE__ */ _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee() {
|
|
14130
|
-
var
|
|
13262
|
+
var nextSeg, _assertThisInitialize, config, bInfo, bufferThroughout;
|
|
14131
13263
|
return _regeneratorRuntime$1().wrap(function _callee$(_context) {
|
|
14132
13264
|
while (1)
|
|
14133
13265
|
switch (_context.prev = _context.next) {
|
|
@@ -14138,44 +13270,42 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14138
13270
|
}
|
|
14139
13271
|
return _context.abrupt("return");
|
|
14140
13272
|
case 2:
|
|
14141
|
-
|
|
13273
|
+
nextSeg = _this._playlist.nextSegment;
|
|
14142
13274
|
_assertThisInitialize = _assertThisInitialized$2(_this), config = _assertThisInitialize.config;
|
|
14143
|
-
|
|
14144
|
-
|
|
14145
|
-
if (nextSegment) {
|
|
14146
|
-
_context.next = 8;
|
|
13275
|
+
if (nextSeg) {
|
|
13276
|
+
_context.next = 6;
|
|
14147
13277
|
break;
|
|
14148
13278
|
}
|
|
14149
13279
|
return _context.abrupt("return");
|
|
14150
|
-
case
|
|
13280
|
+
case 6:
|
|
14151
13281
|
if (_this.isLive) {
|
|
14152
|
-
_context.next =
|
|
13282
|
+
_context.next = 16;
|
|
14153
13283
|
break;
|
|
14154
13284
|
}
|
|
14155
13285
|
bInfo = _this.bufferInfo();
|
|
14156
13286
|
if (_this.media.paused && !_this.media.currentTime) {
|
|
14157
13287
|
bInfo = _this.bufferInfo(bInfo.nextStart || 0.5);
|
|
14158
13288
|
}
|
|
14159
|
-
bufferThroughout = Math.abs(bInfo.end - _this.media.duration) <
|
|
13289
|
+
bufferThroughout = Math.abs(bInfo.end - _this.media.duration) < 0.1;
|
|
14160
13290
|
if (!(bInfo.remaining >= config.preloadTime || bufferThroughout)) {
|
|
14161
|
-
_context.next =
|
|
13291
|
+
_context.next = 13;
|
|
14162
13292
|
break;
|
|
14163
13293
|
}
|
|
14164
13294
|
_this._tryEos();
|
|
14165
13295
|
return _context.abrupt("return");
|
|
14166
|
-
case
|
|
13296
|
+
case 13:
|
|
14167
13297
|
if (!(config.preferMMSStreaming && !_this._bufferService.msStreaming)) {
|
|
14168
|
-
_context.next =
|
|
13298
|
+
_context.next = 15;
|
|
14169
13299
|
break;
|
|
14170
13300
|
}
|
|
14171
13301
|
return _context.abrupt("return");
|
|
14172
|
-
case
|
|
14173
|
-
if (!_this._urlSwitching && _this._prevSegSn !==
|
|
13302
|
+
case 15:
|
|
13303
|
+
if (!_this._urlSwitching && _this._prevSegSn !== nextSeg.sn - 1 && bInfo.end && Math.abs(nextSeg.start - bInfo.end) > 1) {
|
|
14174
13304
|
_this._playlist.setNextSegmentByIndex(_this._playlist.findSegmentIndexByTime(bInfo.end + 0.1));
|
|
14175
13305
|
}
|
|
14176
|
-
case
|
|
13306
|
+
case 16:
|
|
14177
13307
|
return _context.abrupt("return", _this._loadSegmentDirect());
|
|
14178
|
-
case
|
|
13308
|
+
case 17:
|
|
14179
13309
|
case "end":
|
|
14180
13310
|
return _context.stop();
|
|
14181
13311
|
}
|
|
@@ -14423,12 +13553,6 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14423
13553
|
var _this$_bufferService;
|
|
14424
13554
|
return (_this$_bufferService = this._bufferService) === null || _this$_bufferService === void 0 ? void 0 : _this$_bufferService.baseDts;
|
|
14425
13555
|
}
|
|
14426
|
-
}, {
|
|
14427
|
-
key: "abrSwitchPoint",
|
|
14428
|
-
get: function get() {
|
|
14429
|
-
var targetSeg = this._urlSwitching ? this._playlist.currentSegment : this._playlist.nextSegment;
|
|
14430
|
-
return targetSeg ? targetSeg.start + targetSeg.duration / 2 : null;
|
|
14431
|
-
}
|
|
14432
13556
|
}, {
|
|
14433
13557
|
key: "speedInfo",
|
|
14434
13558
|
value: function speedInfo() {
|
|
@@ -14454,37 +13578,30 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14454
13578
|
}, {
|
|
14455
13579
|
key: "load",
|
|
14456
13580
|
value: function() {
|
|
14457
|
-
var _load = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee4() {
|
|
14458
|
-
var
|
|
13581
|
+
var _load = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee4(url) {
|
|
13582
|
+
var reuseMse, _args4 = arguments;
|
|
14459
13583
|
return _regeneratorRuntime$1().wrap(function _callee4$(_context4) {
|
|
14460
13584
|
while (1)
|
|
14461
13585
|
switch (_context4.prev = _context4.next) {
|
|
14462
13586
|
case 0:
|
|
14463
|
-
|
|
14464
|
-
options = _args4.length > 1 && _args4[1] !== void 0 ? _args4[1] : {};
|
|
14465
|
-
reuseMse = typeof options === "boolean" ? options : !!(options !== null && options !== void 0 && options.reuseMse);
|
|
14466
|
-
if (_typeof$2(options) === "object" && options !== null && options !== void 0 && options.clearSwitchStatus) {
|
|
14467
|
-
this._urlSwitching = false;
|
|
14468
|
-
this._switchUrlOpts = null;
|
|
14469
|
-
this.config.startTime = void 0;
|
|
14470
|
-
}
|
|
13587
|
+
reuseMse = _args4.length > 1 && _args4[1] !== void 0 ? _args4[1] : false;
|
|
14471
13588
|
if (url)
|
|
14472
13589
|
this.config.url = url;
|
|
14473
13590
|
url = this.config.url;
|
|
14474
|
-
_context4.next =
|
|
13591
|
+
_context4.next = 5;
|
|
14475
13592
|
return this._reset(reuseMse);
|
|
14476
|
-
case
|
|
14477
|
-
_context4.next =
|
|
13593
|
+
case 5:
|
|
13594
|
+
_context4.next = 7;
|
|
14478
13595
|
return this._loadData(url);
|
|
14479
|
-
case
|
|
13596
|
+
case 7:
|
|
14480
13597
|
this._startTick();
|
|
14481
|
-
case
|
|
13598
|
+
case 8:
|
|
14482
13599
|
case "end":
|
|
14483
13600
|
return _context4.stop();
|
|
14484
13601
|
}
|
|
14485
13602
|
}, _callee4, this);
|
|
14486
13603
|
}));
|
|
14487
|
-
function load() {
|
|
13604
|
+
function load(_x) {
|
|
14488
13605
|
return _load.apply(this, arguments);
|
|
14489
13606
|
}
|
|
14490
13607
|
return load;
|
|
@@ -14493,7 +13610,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14493
13610
|
key: "_loadData",
|
|
14494
13611
|
value: function() {
|
|
14495
13612
|
var _loadData2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee5(url) {
|
|
14496
|
-
var manifest, currentStream,
|
|
13613
|
+
var manifest, currentStream, _this$_switchUrlOpts, _this$_switchUrlOpts2, switchTimePoint, segIdx, nextSeg, bufferClearStartPoint, preIndex, startTime, _this$_switchUrlOpts3;
|
|
14497
13614
|
return _regeneratorRuntime$1().wrap(function _callee5$(_context5) {
|
|
14498
13615
|
while (1)
|
|
14499
13616
|
switch (_context5.prev = _context5.next) {
|
|
@@ -14514,46 +13631,41 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14514
13631
|
case 5:
|
|
14515
13632
|
manifest = _context5.sent;
|
|
14516
13633
|
currentStream = this._playlist.currentStream;
|
|
14517
|
-
if (!this._urlSwitching) {
|
|
14518
|
-
_context5.next =
|
|
13634
|
+
if (!(this._urlSwitching && !this.isLive)) {
|
|
13635
|
+
_context5.next = 17;
|
|
14519
13636
|
break;
|
|
14520
13637
|
}
|
|
14521
|
-
if (!this.isLive) {
|
|
14522
|
-
_context5.next = 14;
|
|
14523
|
-
break;
|
|
14524
|
-
}
|
|
14525
|
-
preIndex = this._playlist.setNextSegmentBySN(this._prevSegSn);
|
|
14526
|
-
logger.log("segment nb=".concat(this._prevSegSn, " index of ").concat(preIndex, " in the new playlist"));
|
|
14527
|
-
if (preIndex === -1) {
|
|
14528
|
-
this._prevSegCc = null;
|
|
14529
|
-
this._prevSegSn = null;
|
|
14530
|
-
}
|
|
14531
|
-
_context5.next = 23;
|
|
14532
|
-
break;
|
|
14533
|
-
case 14:
|
|
14534
13638
|
if (currentStream.bitrate === 0 && (_this$_switchUrlOpts = this._switchUrlOpts) !== null && _this$_switchUrlOpts !== void 0 && _this$_switchUrlOpts.bitrate) {
|
|
14535
13639
|
currentStream.bitrate = (_this$_switchUrlOpts2 = this._switchUrlOpts) === null || _this$_switchUrlOpts2 === void 0 ? void 0 : _this$_switchUrlOpts2.bitrate;
|
|
14536
13640
|
}
|
|
14537
|
-
switchTimePoint =
|
|
13641
|
+
switchTimePoint = this._getSeamlessSwitchPoint();
|
|
14538
13642
|
this.config.startTime = switchTimePoint;
|
|
14539
13643
|
segIdx = this._playlist.findSegmentIndexByTime(switchTimePoint);
|
|
14540
13644
|
nextSeg = this._playlist.getSegmentByIndex(segIdx + 1);
|
|
14541
13645
|
if (!nextSeg) {
|
|
14542
|
-
_context5.next =
|
|
13646
|
+
_context5.next = 17;
|
|
14543
13647
|
break;
|
|
14544
13648
|
}
|
|
14545
13649
|
bufferClearStartPoint = nextSeg.start;
|
|
14546
|
-
_context5.next =
|
|
13650
|
+
_context5.next = 17;
|
|
14547
13651
|
return this._bufferService.removeBuffer(bufferClearStartPoint);
|
|
14548
|
-
case
|
|
13652
|
+
case 17:
|
|
13653
|
+
if (this._urlSwitching && this.isLive) {
|
|
13654
|
+
preIndex = this._playlist.setNextSegmentBySN(this._prevSegSn);
|
|
13655
|
+
logger.log("segment nb=".concat(this._prevSegSn, " index of ").concat(preIndex, " in the new playlist"));
|
|
13656
|
+
if (preIndex === -1) {
|
|
13657
|
+
this._prevSegCc = null;
|
|
13658
|
+
this._prevSegSn = null;
|
|
13659
|
+
}
|
|
13660
|
+
}
|
|
14549
13661
|
if (manifest) {
|
|
14550
|
-
_context5.next =
|
|
13662
|
+
_context5.next = 20;
|
|
14551
13663
|
break;
|
|
14552
13664
|
}
|
|
14553
13665
|
return _context5.abrupt("return");
|
|
14554
|
-
case
|
|
13666
|
+
case 20:
|
|
14555
13667
|
if (!this.isLive) {
|
|
14556
|
-
_context5.next =
|
|
13668
|
+
_context5.next = 31;
|
|
14557
13669
|
break;
|
|
14558
13670
|
}
|
|
14559
13671
|
this._bufferService.setLiveSeekableRange(0, 4294967295);
|
|
@@ -14566,35 +13678,35 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14566
13678
|
if (!manifest.isMaster)
|
|
14567
13679
|
this._pollM3U8(url);
|
|
14568
13680
|
if (!(this._playlist.nbSegments < this.config.minSegmentsStartPlay)) {
|
|
14569
|
-
_context5.next =
|
|
13681
|
+
_context5.next = 28;
|
|
14570
13682
|
break;
|
|
14571
13683
|
}
|
|
14572
13684
|
return _context5.abrupt("return");
|
|
14573
|
-
case
|
|
14574
|
-
_context5.next =
|
|
13685
|
+
case 28:
|
|
13686
|
+
_context5.next = 30;
|
|
14575
13687
|
return this._loadSegment();
|
|
14576
|
-
case
|
|
13688
|
+
case 30:
|
|
14577
13689
|
return _context5.abrupt("return");
|
|
14578
|
-
case
|
|
14579
|
-
_context5.next =
|
|
13690
|
+
case 31:
|
|
13691
|
+
_context5.next = 33;
|
|
14580
13692
|
return this._bufferService.updateDuration(currentStream.totalDuration);
|
|
14581
|
-
case
|
|
13693
|
+
case 33:
|
|
14582
13694
|
startTime = this.config.startTime;
|
|
14583
13695
|
if (startTime) {
|
|
14584
|
-
if (!((_this$
|
|
13696
|
+
if (!((_this$_switchUrlOpts3 = this._switchUrlOpts) !== null && _this$_switchUrlOpts3 !== void 0 && _this$_switchUrlOpts3.seamless)) {
|
|
14585
13697
|
this.media.currentTime = startTime;
|
|
14586
13698
|
}
|
|
14587
13699
|
this._playlist.setNextSegmentByIndex(this._playlist.findSegmentIndexByTime(startTime) || 0);
|
|
14588
13700
|
}
|
|
14589
|
-
_context5.next =
|
|
13701
|
+
_context5.next = 37;
|
|
14590
13702
|
return this._loadSegment();
|
|
14591
|
-
case
|
|
13703
|
+
case 37:
|
|
14592
13704
|
case "end":
|
|
14593
13705
|
return _context5.stop();
|
|
14594
13706
|
}
|
|
14595
13707
|
}, _callee5, this);
|
|
14596
13708
|
}));
|
|
14597
|
-
function _loadData(
|
|
13709
|
+
function _loadData(_x2) {
|
|
14598
13710
|
return _loadData2.apply(this, arguments);
|
|
14599
13711
|
}
|
|
14600
13712
|
return _loadData;
|
|
@@ -14608,20 +13720,18 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14608
13720
|
switch (_context6.prev = _context6.next) {
|
|
14609
13721
|
case 0:
|
|
14610
13722
|
this.config.startTime = 0;
|
|
14611
|
-
|
|
14612
|
-
this._switchUrlOpts = null;
|
|
14613
|
-
_context6.next = 5;
|
|
13723
|
+
_context6.next = 3;
|
|
14614
13724
|
return this.load();
|
|
14615
|
-
case
|
|
13725
|
+
case 3:
|
|
14616
13726
|
this._reloadOnPlay = false;
|
|
14617
13727
|
return _context6.abrupt("return", this.media.play(!isPlayEmit));
|
|
14618
|
-
case
|
|
13728
|
+
case 5:
|
|
14619
13729
|
case "end":
|
|
14620
13730
|
return _context6.stop();
|
|
14621
13731
|
}
|
|
14622
13732
|
}, _callee6, this);
|
|
14623
13733
|
}));
|
|
14624
|
-
function replay(
|
|
13734
|
+
function replay(_x3) {
|
|
14625
13735
|
return _replay.apply(this, arguments);
|
|
14626
13736
|
}
|
|
14627
13737
|
return replay;
|
|
@@ -14726,7 +13836,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14726
13836
|
}
|
|
14727
13837
|
}, _callee7, this, [[18, 29]]);
|
|
14728
13838
|
}));
|
|
14729
|
-
function switchURL(
|
|
13839
|
+
function switchURL(_x4) {
|
|
14730
13840
|
return _switchURL.apply(this, arguments);
|
|
14731
13841
|
}
|
|
14732
13842
|
return switchURL;
|
|
@@ -14812,7 +13922,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14812
13922
|
}
|
|
14813
13923
|
}, _callee8, this, [[8, 16], [21, 31]]);
|
|
14814
13924
|
}));
|
|
14815
|
-
function switchStream(
|
|
13925
|
+
function switchStream(_x5) {
|
|
14816
13926
|
return _switchStream.apply(this, arguments);
|
|
14817
13927
|
}
|
|
14818
13928
|
return switchStream;
|
|
@@ -14898,7 +14008,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14898
14008
|
}
|
|
14899
14009
|
}, _callee9, this, [[10, 18], [22, 32]]);
|
|
14900
14010
|
}));
|
|
14901
|
-
function switchAudioStream(
|
|
14011
|
+
function switchAudioStream(_x6) {
|
|
14902
14012
|
return _switchAudioStream.apply(this, arguments);
|
|
14903
14013
|
}
|
|
14904
14014
|
return switchAudioStream;
|
|
@@ -14923,50 +14033,25 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14923
14033
|
}
|
|
14924
14034
|
}, _callee10, this);
|
|
14925
14035
|
}));
|
|
14926
|
-
function switchSubtitleStream(
|
|
14036
|
+
function switchSubtitleStream(_x7) {
|
|
14927
14037
|
return _switchSubtitleStream.apply(this, arguments);
|
|
14928
14038
|
}
|
|
14929
14039
|
return switchSubtitleStream;
|
|
14930
14040
|
}()
|
|
14931
|
-
}, {
|
|
14932
|
-
key: "detachMedia",
|
|
14933
|
-
value: function() {
|
|
14934
|
-
var _detachMedia = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee11() {
|
|
14935
|
-
return _regeneratorRuntime$1().wrap(function _callee11$(_context11) {
|
|
14936
|
-
while (1)
|
|
14937
|
-
switch (_context11.prev = _context11.next) {
|
|
14938
|
-
case 0:
|
|
14939
|
-
if (!this._bufferService) {
|
|
14940
|
-
_context11.next = 3;
|
|
14941
|
-
break;
|
|
14942
|
-
}
|
|
14943
|
-
_context11.next = 3;
|
|
14944
|
-
return this._bufferService.detachMedia();
|
|
14945
|
-
case 3:
|
|
14946
|
-
case "end":
|
|
14947
|
-
return _context11.stop();
|
|
14948
|
-
}
|
|
14949
|
-
}, _callee11, this);
|
|
14950
|
-
}));
|
|
14951
|
-
function detachMedia() {
|
|
14952
|
-
return _detachMedia.apply(this, arguments);
|
|
14953
|
-
}
|
|
14954
|
-
return detachMedia;
|
|
14955
|
-
}()
|
|
14956
14041
|
}, {
|
|
14957
14042
|
key: "destroy",
|
|
14958
14043
|
value: function() {
|
|
14959
|
-
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14044
|
+
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee11() {
|
|
14960
14045
|
var _this$_seiService2;
|
|
14961
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14046
|
+
return _regeneratorRuntime$1().wrap(function _callee11$(_context11) {
|
|
14962
14047
|
while (1)
|
|
14963
|
-
switch (
|
|
14048
|
+
switch (_context11.prev = _context11.next) {
|
|
14964
14049
|
case 0:
|
|
14965
14050
|
if (this.media) {
|
|
14966
|
-
|
|
14051
|
+
_context11.next = 2;
|
|
14967
14052
|
break;
|
|
14968
14053
|
}
|
|
14969
|
-
return
|
|
14054
|
+
return _context11.abrupt("return");
|
|
14970
14055
|
case 2:
|
|
14971
14056
|
this.removeAllListeners();
|
|
14972
14057
|
this._playlist.reset();
|
|
@@ -14977,15 +14062,15 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14977
14062
|
this.media.removeEventListener("pause", this._onPause);
|
|
14978
14063
|
this.media.removeEventListener("seeking", this._onSeeking);
|
|
14979
14064
|
this.media.removeEventListener("timeupdate", this._onTimeupdate);
|
|
14980
|
-
|
|
14065
|
+
_context11.next = 13;
|
|
14981
14066
|
return Promise.all([this._clear(), this._bufferService.destroy()]);
|
|
14982
14067
|
case 13:
|
|
14983
14068
|
this.media = null;
|
|
14984
14069
|
case 14:
|
|
14985
14070
|
case "end":
|
|
14986
|
-
return
|
|
14071
|
+
return _context11.stop();
|
|
14987
14072
|
}
|
|
14988
|
-
},
|
|
14073
|
+
}, _callee11, this);
|
|
14989
14074
|
}));
|
|
14990
14075
|
function destroy() {
|
|
14991
14076
|
return _destroy.apply(this, arguments);
|
|
@@ -14995,48 +14080,48 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
14995
14080
|
}, {
|
|
14996
14081
|
key: "_loadM3U8",
|
|
14997
14082
|
value: function() {
|
|
14998
|
-
var _loadM3U = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14083
|
+
var _loadM3U = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee12(url) {
|
|
14999
14084
|
var playlist, _this$config$manifest, _this$config$manifest2, manifest, _ref4, _ref5, _this$_playlist$curre;
|
|
15000
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14085
|
+
return _regeneratorRuntime$1().wrap(function _callee12$(_context12) {
|
|
15001
14086
|
while (1)
|
|
15002
|
-
switch (
|
|
14087
|
+
switch (_context12.prev = _context12.next) {
|
|
15003
14088
|
case 0:
|
|
15004
|
-
|
|
14089
|
+
_context12.prev = 0;
|
|
15005
14090
|
manifest = (_this$config$manifest = this.config.manifestList) === null || _this$config$manifest === void 0 ? void 0 : (_this$config$manifest2 = _this$config$manifest.filter(function(x) {
|
|
15006
14091
|
return x.url === url;
|
|
15007
14092
|
})[0]) === null || _this$config$manifest2 === void 0 ? void 0 : _this$config$manifest2.manifest;
|
|
15008
14093
|
if (!manifest) {
|
|
15009
|
-
|
|
14094
|
+
_context12.next = 6;
|
|
15010
14095
|
break;
|
|
15011
14096
|
}
|
|
15012
|
-
|
|
15013
|
-
|
|
14097
|
+
_context12.t0 = this._manifestLoader.parseText(manifest, url);
|
|
14098
|
+
_context12.next = 9;
|
|
15014
14099
|
break;
|
|
15015
14100
|
case 6:
|
|
15016
|
-
|
|
14101
|
+
_context12.next = 8;
|
|
15017
14102
|
return this._manifestLoader.load(url);
|
|
15018
14103
|
case 8:
|
|
15019
|
-
|
|
14104
|
+
_context12.t0 = _context12.sent;
|
|
15020
14105
|
case 9:
|
|
15021
|
-
_ref4 =
|
|
14106
|
+
_ref4 = _context12.t0;
|
|
15022
14107
|
_ref5 = _slicedToArray$1(_ref4, 1);
|
|
15023
14108
|
playlist = _ref5[0];
|
|
15024
|
-
|
|
14109
|
+
_context12.next = 17;
|
|
15025
14110
|
break;
|
|
15026
14111
|
case 14:
|
|
15027
|
-
|
|
15028
|
-
|
|
15029
|
-
throw this._emitError(StreamingError.create(
|
|
14112
|
+
_context12.prev = 14;
|
|
14113
|
+
_context12.t1 = _context12["catch"](0);
|
|
14114
|
+
throw this._emitError(StreamingError.create(_context12.t1));
|
|
15030
14115
|
case 17:
|
|
15031
14116
|
if (playlist) {
|
|
15032
|
-
|
|
14117
|
+
_context12.next = 19;
|
|
15033
14118
|
break;
|
|
15034
14119
|
}
|
|
15035
|
-
return
|
|
14120
|
+
return _context12.abrupt("return");
|
|
15036
14121
|
case 19:
|
|
15037
14122
|
this._playlist.upsertPlaylist(playlist);
|
|
15038
14123
|
if (!playlist.isMaster) {
|
|
15039
|
-
|
|
14124
|
+
_context12.next = 24;
|
|
15040
14125
|
break;
|
|
15041
14126
|
}
|
|
15042
14127
|
if ((_this$_playlist$curre = this._playlist.currentStream.subtitleStreams) !== null && _this$_playlist$curre !== void 0 && _this$_playlist$curre.length) {
|
|
@@ -15044,18 +14129,18 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15044
14129
|
list: this._playlist.currentStream.subtitleStreams
|
|
15045
14130
|
});
|
|
15046
14131
|
}
|
|
15047
|
-
|
|
14132
|
+
_context12.next = 24;
|
|
15048
14133
|
return this._refreshM3U8();
|
|
15049
14134
|
case 24:
|
|
15050
14135
|
this.emit(Event$1.STREAM_PARSED);
|
|
15051
|
-
return
|
|
14136
|
+
return _context12.abrupt("return", playlist);
|
|
15052
14137
|
case 26:
|
|
15053
14138
|
case "end":
|
|
15054
|
-
return
|
|
14139
|
+
return _context12.stop();
|
|
15055
14140
|
}
|
|
15056
|
-
},
|
|
14141
|
+
}, _callee12, this, [[0, 14]]);
|
|
15057
14142
|
}));
|
|
15058
|
-
function _loadM3U8(
|
|
14143
|
+
function _loadM3U8(_x8) {
|
|
15059
14144
|
return _loadM3U.apply(this, arguments);
|
|
15060
14145
|
}
|
|
15061
14146
|
return _loadM3U8;
|
|
@@ -15089,7 +14174,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15089
14174
|
var isEmpty = this._playlist.isEmpty;
|
|
15090
14175
|
var pollInterval;
|
|
15091
14176
|
if (this._playlist.lowLatency) {
|
|
15092
|
-
pollInterval = (this._playlist.currentStream.partTargetDuration || 0) * 1e3;
|
|
14177
|
+
pollInterval = (this._playlist.currentStream.partTargetDuration * 2 || 0) * 1e3;
|
|
15093
14178
|
} else {
|
|
15094
14179
|
var _this$_playlist$lastS;
|
|
15095
14180
|
pollInterval = (((_this$_playlist$lastS = this._playlist.lastSegment) === null || _this$_playlist$lastS === void 0 ? void 0 : _this$_playlist$lastS.duration) || 0) * 1e3;
|
|
@@ -15117,53 +14202,53 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15117
14202
|
}, {
|
|
15118
14203
|
key: "_loadSegmentDirect",
|
|
15119
14204
|
value: function() {
|
|
15120
|
-
var _loadSegmentDirect2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14205
|
+
var _loadSegmentDirect2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee13(loadOnce) {
|
|
15121
14206
|
var seg, appended, cachedError, _this$_playlist$curre2, bufferEnd, sameStream;
|
|
15122
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14207
|
+
return _regeneratorRuntime$1().wrap(function _callee13$(_context13) {
|
|
15123
14208
|
while (1)
|
|
15124
|
-
switch (
|
|
14209
|
+
switch (_context13.prev = _context13.next) {
|
|
15125
14210
|
case 0:
|
|
15126
14211
|
seg = this._playlist.nextSegment;
|
|
15127
14212
|
if (seg) {
|
|
15128
|
-
|
|
14213
|
+
_context13.next = 3;
|
|
15129
14214
|
break;
|
|
15130
14215
|
}
|
|
15131
|
-
return
|
|
14216
|
+
return _context13.abrupt("return");
|
|
15132
14217
|
case 3:
|
|
15133
14218
|
appended = false;
|
|
15134
14219
|
cachedError = null;
|
|
15135
|
-
|
|
14220
|
+
_context13.prev = 5;
|
|
15136
14221
|
this._segmentProcessing = true;
|
|
15137
14222
|
logger.log("load segment, sn:".concat(seg.sn, ", [").concat(seg.start, ", ").concat(seg.end, "], partIndex:").concat(seg.partIndex));
|
|
15138
|
-
|
|
14223
|
+
_context13.next = 10;
|
|
15139
14224
|
return this._reqAndBufferSegment(seg, this._playlist.getAudioSegment(seg));
|
|
15140
14225
|
case 10:
|
|
15141
|
-
appended =
|
|
15142
|
-
|
|
14226
|
+
appended = _context13.sent;
|
|
14227
|
+
_context13.next = 16;
|
|
15143
14228
|
break;
|
|
15144
14229
|
case 13:
|
|
15145
|
-
|
|
15146
|
-
|
|
15147
|
-
cachedError =
|
|
14230
|
+
_context13.prev = 13;
|
|
14231
|
+
_context13.t0 = _context13["catch"](5);
|
|
14232
|
+
cachedError = _context13.t0;
|
|
15148
14233
|
case 16:
|
|
15149
|
-
|
|
14234
|
+
_context13.prev = 16;
|
|
15150
14235
|
this._segmentProcessing = false;
|
|
15151
|
-
return
|
|
14236
|
+
return _context13.finish(16);
|
|
15152
14237
|
case 19:
|
|
15153
14238
|
if (!cachedError) {
|
|
15154
|
-
|
|
14239
|
+
_context13.next = 26;
|
|
15155
14240
|
break;
|
|
15156
14241
|
}
|
|
15157
14242
|
if (!this._bufferService.isFull()) {
|
|
15158
|
-
|
|
14243
|
+
_context13.next = 25;
|
|
15159
14244
|
break;
|
|
15160
14245
|
}
|
|
15161
14246
|
logger.log("load segment, sn:".concat(seg.sn, ", partIndex:").concat(seg.partIndex));
|
|
15162
14247
|
this._segmentProcessing = true;
|
|
15163
14248
|
this._isProcessQuotaExceeded = true;
|
|
15164
|
-
return
|
|
14249
|
+
return _context13.abrupt("return", false);
|
|
15165
14250
|
case 25:
|
|
15166
|
-
return
|
|
14251
|
+
return _context13.abrupt("return", this._emitError(StreamingError.create(cachedError)));
|
|
15167
14252
|
case 26:
|
|
15168
14253
|
if (appended) {
|
|
15169
14254
|
bufferEnd = this.bufferInfo().end;
|
|
@@ -15189,14 +14274,14 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15189
14274
|
this._loadSegment();
|
|
15190
14275
|
}
|
|
15191
14276
|
}
|
|
15192
|
-
return
|
|
14277
|
+
return _context13.abrupt("return", appended);
|
|
15193
14278
|
case 28:
|
|
15194
14279
|
case "end":
|
|
15195
|
-
return
|
|
14280
|
+
return _context13.stop();
|
|
15196
14281
|
}
|
|
15197
|
-
},
|
|
14282
|
+
}, _callee13, this, [[5, 13, 16, 19]]);
|
|
15198
14283
|
}));
|
|
15199
|
-
function _loadSegmentDirect(
|
|
14284
|
+
function _loadSegmentDirect(_x9) {
|
|
15200
14285
|
return _loadSegmentDirect2.apply(this, arguments);
|
|
15201
14286
|
}
|
|
15202
14287
|
return _loadSegmentDirect;
|
|
@@ -15204,45 +14289,45 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15204
14289
|
}, {
|
|
15205
14290
|
key: "_reqAndBufferSegment",
|
|
15206
14291
|
value: function() {
|
|
15207
|
-
var _reqAndBufferSegment2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14292
|
+
var _reqAndBufferSegment2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee14(seg, audioSeg) {
|
|
15208
14293
|
var _this$_bufferService2;
|
|
15209
14294
|
var cc, discontinuity, responses, data, sn, start, stream, before, contiguous, segStart;
|
|
15210
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14295
|
+
return _regeneratorRuntime$1().wrap(function _callee14$(_context14) {
|
|
15211
14296
|
while (1)
|
|
15212
|
-
switch (
|
|
14297
|
+
switch (_context14.prev = _context14.next) {
|
|
15213
14298
|
case 0:
|
|
15214
14299
|
cc = seg ? seg.cc : audioSeg.cc;
|
|
15215
14300
|
discontinuity = this._prevSegCc !== cc;
|
|
15216
14301
|
responses = [];
|
|
15217
|
-
|
|
15218
|
-
|
|
14302
|
+
_context14.prev = 3;
|
|
14303
|
+
_context14.next = 6;
|
|
15219
14304
|
return this._segmentLoader.load(seg, audioSeg, discontinuity);
|
|
15220
14305
|
case 6:
|
|
15221
|
-
responses =
|
|
15222
|
-
|
|
14306
|
+
responses = _context14.sent;
|
|
14307
|
+
_context14.next = 14;
|
|
15223
14308
|
break;
|
|
15224
14309
|
case 9:
|
|
15225
|
-
|
|
15226
|
-
|
|
15227
|
-
|
|
15228
|
-
this._segmentLoader.error =
|
|
15229
|
-
throw
|
|
14310
|
+
_context14.prev = 9;
|
|
14311
|
+
_context14.t0 = _context14["catch"](3);
|
|
14312
|
+
_context14.t0.fatal = false;
|
|
14313
|
+
this._segmentLoader.error = _context14.t0;
|
|
14314
|
+
throw _context14.t0;
|
|
15230
14315
|
case 14:
|
|
15231
14316
|
if (responses[0]) {
|
|
15232
|
-
|
|
14317
|
+
_context14.next = 16;
|
|
15233
14318
|
break;
|
|
15234
14319
|
}
|
|
15235
|
-
return
|
|
14320
|
+
return _context14.abrupt("return");
|
|
15236
14321
|
case 16:
|
|
15237
|
-
|
|
14322
|
+
_context14.next = 18;
|
|
15238
14323
|
return (_this$_bufferService2 = this._bufferService).decryptBuffer.apply(_this$_bufferService2, _toConsumableArray$2(responses));
|
|
15239
14324
|
case 18:
|
|
15240
|
-
data =
|
|
14325
|
+
data = _context14.sent;
|
|
15241
14326
|
if (data) {
|
|
15242
|
-
|
|
14327
|
+
_context14.next = 21;
|
|
15243
14328
|
break;
|
|
15244
14329
|
}
|
|
15245
|
-
return
|
|
14330
|
+
return _context14.abrupt("return");
|
|
15246
14331
|
case 21:
|
|
15247
14332
|
sn = seg ? seg.sn : audioSeg.sn;
|
|
15248
14333
|
start = seg ? seg.start : audioSeg.start;
|
|
@@ -15256,26 +14341,26 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15256
14341
|
logger.warn("update the new playlist liveEdge, segment id=".concat(sn, ", buffer start=").concat(segStart, ", liveEdge=").concat(this._playlist.liveEdge));
|
|
15257
14342
|
start = segStart;
|
|
15258
14343
|
}
|
|
15259
|
-
|
|
14344
|
+
_context14.next = 30;
|
|
15260
14345
|
return this._bufferService.appendBuffer(seg, audioSeg, data[0], data[1], discontinuity, contiguous, start);
|
|
15261
14346
|
case 30:
|
|
15262
14347
|
this.emit(Event$1.APPEND_COST, {
|
|
15263
14348
|
elapsed: Date.now() - before,
|
|
15264
14349
|
url: seg.url
|
|
15265
14350
|
});
|
|
15266
|
-
|
|
14351
|
+
_context14.next = 33;
|
|
15267
14352
|
return this._bufferService.evictBuffer(this.config.bufferBehind);
|
|
15268
14353
|
case 33:
|
|
15269
14354
|
this._prevSegCc = cc;
|
|
15270
14355
|
this._prevSegSn = sn;
|
|
15271
|
-
return
|
|
14356
|
+
return _context14.abrupt("return", true);
|
|
15272
14357
|
case 36:
|
|
15273
14358
|
case "end":
|
|
15274
|
-
return
|
|
14359
|
+
return _context14.stop();
|
|
15275
14360
|
}
|
|
15276
|
-
},
|
|
14361
|
+
}, _callee14, this, [[3, 9]]);
|
|
15277
14362
|
}));
|
|
15278
|
-
function _reqAndBufferSegment(
|
|
14363
|
+
function _reqAndBufferSegment(_x10, _x11) {
|
|
15279
14364
|
return _reqAndBufferSegment2.apply(this, arguments);
|
|
15280
14365
|
}
|
|
15281
14366
|
return _reqAndBufferSegment;
|
|
@@ -15283,11 +14368,11 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15283
14368
|
}, {
|
|
15284
14369
|
key: "_onCheckQuotaExceeded",
|
|
15285
14370
|
value: function() {
|
|
15286
|
-
var _onCheckQuotaExceeded2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14371
|
+
var _onCheckQuotaExceeded2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee15() {
|
|
15287
14372
|
var seekTime, buffered, inBuffered, i, bufferBehind, mediaTime;
|
|
15288
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14373
|
+
return _regeneratorRuntime$1().wrap(function _callee15$(_context15) {
|
|
15289
14374
|
while (1)
|
|
15290
|
-
switch (
|
|
14375
|
+
switch (_context15.prev = _context15.next) {
|
|
15291
14376
|
case 0:
|
|
15292
14377
|
seekTime = this.media.currentTime;
|
|
15293
14378
|
buffered = this.media.buffered;
|
|
@@ -15295,37 +14380,37 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15295
14380
|
i = 0;
|
|
15296
14381
|
case 4:
|
|
15297
14382
|
if (!(i < buffered.length)) {
|
|
15298
|
-
|
|
14383
|
+
_context15.next = 11;
|
|
15299
14384
|
break;
|
|
15300
14385
|
}
|
|
15301
14386
|
if (!(buffered.start(0) >= seekTime && seekTime < buffered.end(i))) {
|
|
15302
|
-
|
|
14387
|
+
_context15.next = 8;
|
|
15303
14388
|
break;
|
|
15304
14389
|
}
|
|
15305
14390
|
inBuffered = true;
|
|
15306
|
-
return
|
|
14391
|
+
return _context15.abrupt("break", 11);
|
|
15307
14392
|
case 8:
|
|
15308
14393
|
i++;
|
|
15309
|
-
|
|
14394
|
+
_context15.next = 4;
|
|
15310
14395
|
break;
|
|
15311
14396
|
case 11:
|
|
15312
14397
|
if (!this._bufferService.isFull()) {
|
|
15313
|
-
|
|
14398
|
+
_context15.next = 17;
|
|
15314
14399
|
break;
|
|
15315
14400
|
}
|
|
15316
14401
|
bufferBehind = inBuffered ? this.config.bufferBehind : 5;
|
|
15317
14402
|
mediaTime = this.media.currentTime;
|
|
15318
14403
|
if (!(mediaTime - bufferBehind > 0)) {
|
|
15319
|
-
|
|
14404
|
+
_context15.next = 17;
|
|
15320
14405
|
break;
|
|
15321
14406
|
}
|
|
15322
|
-
|
|
14407
|
+
_context15.next = 17;
|
|
15323
14408
|
return this._bufferService.removeBuffer(0, mediaTime - bufferBehind);
|
|
15324
14409
|
case 17:
|
|
15325
14410
|
case "end":
|
|
15326
|
-
return
|
|
14411
|
+
return _context15.stop();
|
|
15327
14412
|
}
|
|
15328
|
-
},
|
|
14413
|
+
}, _callee15, this);
|
|
15329
14414
|
}));
|
|
15330
14415
|
function _onCheckQuotaExceeded() {
|
|
15331
14416
|
return _onCheckQuotaExceeded2.apply(this, arguments);
|
|
@@ -15343,22 +14428,22 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15343
14428
|
}, {
|
|
15344
14429
|
key: "_clear",
|
|
15345
14430
|
value: function() {
|
|
15346
|
-
var _clear2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
15347
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14431
|
+
var _clear2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee16() {
|
|
14432
|
+
return _regeneratorRuntime$1().wrap(function _callee16$(_context16) {
|
|
15348
14433
|
while (1)
|
|
15349
|
-
switch (
|
|
14434
|
+
switch (_context16.prev = _context16.next) {
|
|
15350
14435
|
case 0:
|
|
15351
14436
|
clearTimeout(this._disconnectTimer);
|
|
15352
14437
|
this._stopTick();
|
|
15353
|
-
|
|
14438
|
+
_context16.next = 4;
|
|
15354
14439
|
return Promise.all([this._segmentLoader.cancel(), this._manifestLoader.stopPoll()]);
|
|
15355
14440
|
case 4:
|
|
15356
14441
|
this._segmentProcessing = false;
|
|
15357
14442
|
case 5:
|
|
15358
14443
|
case "end":
|
|
15359
|
-
return
|
|
14444
|
+
return _context16.stop();
|
|
15360
14445
|
}
|
|
15361
|
-
},
|
|
14446
|
+
}, _callee16, this);
|
|
15362
14447
|
}));
|
|
15363
14448
|
function _clear() {
|
|
15364
14449
|
return _clear2.apply(this, arguments);
|
|
@@ -15368,14 +14453,14 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15368
14453
|
}, {
|
|
15369
14454
|
key: "_reset",
|
|
15370
14455
|
value: function() {
|
|
15371
|
-
var _reset2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14456
|
+
var _reset2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee17() {
|
|
15372
14457
|
var _this$_seiService3;
|
|
15373
|
-
var reuseMse,
|
|
15374
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14458
|
+
var reuseMse, _args17 = arguments;
|
|
14459
|
+
return _regeneratorRuntime$1().wrap(function _callee17$(_context17) {
|
|
15375
14460
|
while (1)
|
|
15376
|
-
switch (
|
|
14461
|
+
switch (_context17.prev = _context17.next) {
|
|
15377
14462
|
case 0:
|
|
15378
|
-
reuseMse =
|
|
14463
|
+
reuseMse = _args17.length > 0 && _args17[0] !== void 0 ? _args17[0] : false;
|
|
15379
14464
|
this._reloadOnPlay = false;
|
|
15380
14465
|
this._prevSegSn = null;
|
|
15381
14466
|
this._prevSegCc = null;
|
|
@@ -15384,15 +14469,15 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15384
14469
|
this._segmentLoader.reset();
|
|
15385
14470
|
(_this$_seiService3 = this._seiService) === null || _this$_seiService3 === void 0 ? void 0 : _this$_seiService3.reset();
|
|
15386
14471
|
this._stats.reset();
|
|
15387
|
-
|
|
14472
|
+
_context17.next = 11;
|
|
15388
14473
|
return this._clear();
|
|
15389
14474
|
case 11:
|
|
15390
|
-
return
|
|
14475
|
+
return _context17.abrupt("return", this._bufferService.reset(reuseMse));
|
|
15391
14476
|
case 12:
|
|
15392
14477
|
case "end":
|
|
15393
|
-
return
|
|
14478
|
+
return _context17.stop();
|
|
15394
14479
|
}
|
|
15395
|
-
},
|
|
14480
|
+
}, _callee17, this);
|
|
15396
14481
|
}));
|
|
15397
14482
|
function _reset() {
|
|
15398
14483
|
return _reset2.apply(this, arguments);
|
|
@@ -15473,8 +14558,8 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15473
14558
|
value: function _tryEos() {
|
|
15474
14559
|
var _this$_bufferService3, _this$_bufferService4;
|
|
15475
14560
|
var media = this.media;
|
|
15476
|
-
var _this$
|
|
15477
|
-
var eosAllowed =
|
|
14561
|
+
var _this$_playlist = this._playlist, nextSegment = _this$_playlist.nextSegment, lastSegment = _this$_playlist.lastSegment;
|
|
14562
|
+
var eosAllowed = !nextSegment && media.readyState && media.duration > 0 && ((_this$_bufferService3 = this._bufferService) === null || _this$_bufferService3 === void 0 ? void 0 : _this$_bufferService3.msIsOpened) && !((_this$_bufferService4 = this._bufferService) !== null && _this$_bufferService4 !== void 0 && _this$_bufferService4.msHasOpTasks);
|
|
15478
14563
|
if (!eosAllowed) {
|
|
15479
14564
|
return;
|
|
15480
14565
|
}
|
|
@@ -15510,7 +14595,7 @@ var Hls = /* @__PURE__ */ function(_EventEmitter) {
|
|
|
15510
14595
|
}]);
|
|
15511
14596
|
return Hls2;
|
|
15512
14597
|
}(EventEmitter);
|
|
15513
|
-
_defineProperty$3(Hls, "version", "3.0.
|
|
14598
|
+
_defineProperty$3(Hls, "version", "3.0.19-rc.0");
|
|
15514
14599
|
try {
|
|
15515
14600
|
if (localStorage.getItem("xgd")) {
|
|
15516
14601
|
Hls.enableLogger();
|
|
@@ -15601,7 +14686,6 @@ var PluginExtension = /* @__PURE__ */ function() {
|
|
|
15601
14686
|
}]);
|
|
15602
14687
|
return PluginExtension2;
|
|
15603
14688
|
}();
|
|
15604
|
-
var _excluded = ["currentTime"];
|
|
15605
14689
|
function parseSwitchUrlArgs(args, plugin) {
|
|
15606
14690
|
var player = plugin.player;
|
|
15607
14691
|
var curTime = player.currentTime;
|
|
@@ -15612,14 +14696,9 @@ function parseSwitchUrlArgs(args, plugin) {
|
|
|
15612
14696
|
case "boolean":
|
|
15613
14697
|
options.seamless = args;
|
|
15614
14698
|
break;
|
|
15615
|
-
case "object":
|
|
15616
|
-
|
|
15617
|
-
Object.assign(options, rest);
|
|
15618
|
-
if (typeof currentTime === "number") {
|
|
15619
|
-
options.startTime = currentTime;
|
|
15620
|
-
}
|
|
14699
|
+
case "object":
|
|
14700
|
+
Object.assign(options, args);
|
|
15621
14701
|
break;
|
|
15622
|
-
}
|
|
15623
14702
|
}
|
|
15624
14703
|
return options;
|
|
15625
14704
|
}
|
|
@@ -15629,11 +14708,10 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15629
14708
|
function HlsPlugin2() {
|
|
15630
14709
|
var _this;
|
|
15631
14710
|
_classCallCheck$3(this, HlsPlugin2);
|
|
15632
|
-
for (var _len = arguments.length,
|
|
15633
|
-
|
|
14711
|
+
for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
14712
|
+
_args[_key] = arguments[_key];
|
|
15634
14713
|
}
|
|
15635
|
-
_this = _super.call.apply(_super, [this].concat(
|
|
15636
|
-
_defineProperty$3(_assertThisInitialized$2(_this), "logger", logger);
|
|
14714
|
+
_this = _super.call.apply(_super, [this].concat(_args));
|
|
15637
14715
|
_defineProperty$3(_assertThisInitialized$2(_this), "hls", null);
|
|
15638
14716
|
_defineProperty$3(_assertThisInitialized$2(_this), "pluginExtension", null);
|
|
15639
14717
|
_defineProperty$3(_assertThisInitialized$2(_this), "getStats", function() {
|
|
@@ -15645,6 +14723,24 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15645
14723
|
var lang = _ref.lang;
|
|
15646
14724
|
(_this$hls2 = _this.hls) === null || _this$hls2 === void 0 ? void 0 : _this$hls2.switchSubtitleStream(lang);
|
|
15647
14725
|
});
|
|
14726
|
+
_defineProperty$3(_assertThisInitialized$2(_this), "_onSwitchURL", function(url, args) {
|
|
14727
|
+
return new Promise(function(resolve, reject) {
|
|
14728
|
+
var _assertThisInitialize = _assertThisInitialized$2(_this), player = _assertThisInitialize.player, hls = _assertThisInitialize.hls;
|
|
14729
|
+
if (hls) {
|
|
14730
|
+
var _this$player$config, _this$player$config$h;
|
|
14731
|
+
var options = parseSwitchUrlArgs(args, _assertThisInitialized$2(_this));
|
|
14732
|
+
player.config.url = url;
|
|
14733
|
+
hls.switchURL(url, options).then(function() {
|
|
14734
|
+
return resolve(true);
|
|
14735
|
+
}).catch(reject);
|
|
14736
|
+
if (!options.seamless && (_this$player$config = _this.player.config) !== null && _this$player$config !== void 0 && (_this$player$config$h = _this$player$config.hls) !== null && _this$player$config$h !== void 0 && _this$player$config$h.keepStatusAfterSwitch) {
|
|
14737
|
+
_this._keepPauseStatus();
|
|
14738
|
+
}
|
|
14739
|
+
} else {
|
|
14740
|
+
reject();
|
|
14741
|
+
}
|
|
14742
|
+
});
|
|
14743
|
+
});
|
|
15648
14744
|
_defineProperty$3(_assertThisInitialized$2(_this), "_keepPauseStatus", function() {
|
|
15649
14745
|
var paused = _this.player.paused;
|
|
15650
14746
|
if (!paused)
|
|
@@ -15669,8 +14765,8 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15669
14765
|
}, {
|
|
15670
14766
|
key: "softDecode",
|
|
15671
14767
|
get: function get() {
|
|
15672
|
-
var _this$player, _this$player$
|
|
15673
|
-
var mediaType = (_this$player = this.player) === null || _this$player === void 0 ? void 0 : (_this$player$
|
|
14768
|
+
var _this$player, _this$player$config2;
|
|
14769
|
+
var mediaType = (_this$player = this.player) === null || _this$player === void 0 ? void 0 : (_this$player$config2 = _this$player.config) === null || _this$player$config2 === void 0 ? void 0 : _this$player$config2.mediaType;
|
|
15674
14770
|
return !!mediaType && mediaType !== "video" && mediaType !== "audio";
|
|
15675
14771
|
}
|
|
15676
14772
|
}, {
|
|
@@ -15678,35 +14774,13 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15678
14774
|
value: function beforePlayerInit() {
|
|
15679
14775
|
var _this2 = this;
|
|
15680
14776
|
var config = this.player.config;
|
|
15681
|
-
var mediaElem = this.player.media || this.player.video;
|
|
15682
14777
|
var hlsOpts = config.hls || {};
|
|
15683
14778
|
if (!config.url && !config.__allowHlsEmptyUrl__ || !hlsOpts.preferMMS && MSE.isMMSOnly()) {
|
|
15684
14779
|
return;
|
|
15685
14780
|
}
|
|
15686
14781
|
if (this.hls)
|
|
15687
14782
|
this.hls.destroy();
|
|
15688
|
-
|
|
15689
|
-
if (!descriptor || descriptor.writable) {
|
|
15690
|
-
this.player.switchURL = function(url, args) {
|
|
15691
|
-
return new Promise(function(resolve, reject) {
|
|
15692
|
-
var player = _this2.player, hls = _this2.hls;
|
|
15693
|
-
if (hls) {
|
|
15694
|
-
var _this2$player$config, _this2$player$config$;
|
|
15695
|
-
var options = parseSwitchUrlArgs(args, _this2);
|
|
15696
|
-
player.config.url = url;
|
|
15697
|
-
hls.switchURL(url, options).then(function() {
|
|
15698
|
-
return resolve(true);
|
|
15699
|
-
}).catch(reject);
|
|
15700
|
-
if (!options.seamless && (_this2$player$config = _this2.player.config) !== null && _this2$player$config !== void 0 && (_this2$player$config$ = _this2$player$config.hls) !== null && _this2$player$config$ !== void 0 && _this2$player$config$.keepStatusAfterSwitch) {
|
|
15701
|
-
_this2._keepPauseStatus();
|
|
15702
|
-
}
|
|
15703
|
-
} else {
|
|
15704
|
-
reject();
|
|
15705
|
-
}
|
|
15706
|
-
});
|
|
15707
|
-
};
|
|
15708
|
-
}
|
|
15709
|
-
var onSwitchUrl = this.player.switchURL;
|
|
14783
|
+
this.player.switchURL = this._onSwitchURL;
|
|
15710
14784
|
this.player.handleSource = false;
|
|
15711
14785
|
hlsOpts.innerDegrade = hlsOpts.innerDegrade || config.innerDegrade;
|
|
15712
14786
|
if (hlsOpts.disconnectTime === null || hlsOpts.disconnectTime === void 0)
|
|
@@ -15714,7 +14788,7 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15714
14788
|
this.hls = new Hls(_objectSpread2$2({
|
|
15715
14789
|
softDecode: this.softDecode,
|
|
15716
14790
|
isLive: config.isLive,
|
|
15717
|
-
media:
|
|
14791
|
+
media: this.player.media || this.player.video,
|
|
15718
14792
|
startTime: config.startTime,
|
|
15719
14793
|
url: config.url
|
|
15720
14794
|
}, hlsOpts));
|
|
@@ -15732,7 +14806,7 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15732
14806
|
if (this.softDecode) {
|
|
15733
14807
|
this.pluginExtension = new PluginExtension(_objectSpread2$2({
|
|
15734
14808
|
isLive: config.isLive,
|
|
15735
|
-
media:
|
|
14809
|
+
media: this.player.video
|
|
15736
14810
|
}, hlsOpts), this);
|
|
15737
14811
|
this.player.forceDegradeToVideo = function() {
|
|
15738
14812
|
var _this2$pluginExtensio;
|
|
@@ -15749,8 +14823,8 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15749
14823
|
return (_this2$hls2 = _this2.hls) === null || _this2$hls2 === void 0 ? void 0 : _this2$hls2.replay();
|
|
15750
14824
|
});
|
|
15751
14825
|
}
|
|
15752
|
-
this.on(URL_CHANGE, onSwitchUrl);
|
|
15753
14826
|
this.on(SWITCH_SUBTITLE, this._onSwitchSubtitle);
|
|
14827
|
+
this.on(URL_CHANGE, this._onSwitchURL);
|
|
15754
14828
|
this.on(DESTROY, this.destroy.bind(this));
|
|
15755
14829
|
this._transError();
|
|
15756
14830
|
this._transCoreEvent(EVENT.TTFB);
|
|
@@ -15760,7 +14834,6 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15760
14834
|
this._transCoreEvent(EVENT.LOAD_RETRY);
|
|
15761
14835
|
this._transCoreEvent(EVENT.SOURCEBUFFER_CREATED);
|
|
15762
14836
|
this._transCoreEvent(EVENT.MEDIASOURCE_OPENED);
|
|
15763
|
-
this._transCoreEvent(EVENT.APPEND_BUFFER);
|
|
15764
14837
|
this._transCoreEvent(EVENT.REMOVE_BUFFER);
|
|
15765
14838
|
this._transCoreEvent(EVENT.BUFFEREOS);
|
|
15766
14839
|
this._transCoreEvent(EVENT.KEYFRAME);
|
|
@@ -15780,9 +14853,7 @@ var HlsPlugin = /* @__PURE__ */ function(_BasePlugin) {
|
|
|
15780
14853
|
this._transCoreEvent(Event$1.SUBTITLE_PLAYLIST);
|
|
15781
14854
|
this._transCoreEvent(Event$1.APPEND_COST);
|
|
15782
14855
|
if (config.url) {
|
|
15783
|
-
this.hls.load(config.url, {
|
|
15784
|
-
reuseMse: true
|
|
15785
|
-
}).catch(function(e) {
|
|
14856
|
+
this.hls.load(config.url, true).catch(function(e) {
|
|
15786
14857
|
});
|
|
15787
14858
|
}
|
|
15788
14859
|
}
|