@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
|
@@ -1644,7 +1644,7 @@
|
|
|
1644
1644
|
}
|
|
1645
1645
|
return offsetTime;
|
|
1646
1646
|
};
|
|
1647
|
-
var version = "3.0.
|
|
1647
|
+
var version = "3.0.19-rc.0";
|
|
1648
1648
|
var ERROR_MAP = {
|
|
1649
1649
|
1: 5101,
|
|
1650
1650
|
2: 5102,
|
|
@@ -1753,7 +1753,8 @@
|
|
|
1753
1753
|
}
|
|
1754
1754
|
if (this.__hooks && this.__hooks[hookName]) {
|
|
1755
1755
|
try {
|
|
1756
|
-
var
|
|
1756
|
+
var _this$__hooks$hookNam;
|
|
1757
|
+
var preRet = (_this$__hooks$hookNam = this.__hooks[hookName]).call.apply(_this$__hooks$hookNam, [this, this].concat(Array.prototype.slice.call(arguments)));
|
|
1757
1758
|
if (preRet) {
|
|
1758
1759
|
if (preRet.then) {
|
|
1759
1760
|
preRet.then(function(isContinue) {
|
|
@@ -1778,19 +1779,6 @@
|
|
|
1778
1779
|
}
|
|
1779
1780
|
}.bind(this);
|
|
1780
1781
|
}
|
|
1781
|
-
function findHookIndex(hookName, handler) {
|
|
1782
|
-
var __hooks = this.__hooks;
|
|
1783
|
-
if (!__hooks || !Array.isArray(__hooks[hookName])) {
|
|
1784
|
-
return -1;
|
|
1785
|
-
}
|
|
1786
|
-
var hookHandlers = __hooks[hookName];
|
|
1787
|
-
for (var i = 0; i < hookHandlers.length; i++) {
|
|
1788
|
-
if (hookHandlers[i] === handler) {
|
|
1789
|
-
return i;
|
|
1790
|
-
}
|
|
1791
|
-
}
|
|
1792
|
-
return -1;
|
|
1793
|
-
}
|
|
1794
1782
|
function useHooks(hookName, handler) {
|
|
1795
1783
|
var __hooks = this.__hooks;
|
|
1796
1784
|
if (!__hooks) {
|
|
@@ -1800,12 +1788,7 @@
|
|
|
1800
1788
|
console.warn("has no supported hook which name [".concat(hookName, "]"));
|
|
1801
1789
|
return false;
|
|
1802
1790
|
}
|
|
1803
|
-
|
|
1804
|
-
__hooks[hookName] = [];
|
|
1805
|
-
}
|
|
1806
|
-
if (findHookIndex.call(this, hookName, handler) === -1) {
|
|
1807
|
-
__hooks[hookName].push(handler);
|
|
1808
|
-
}
|
|
1791
|
+
__hooks && (__hooks[hookName] = handler);
|
|
1809
1792
|
return true;
|
|
1810
1793
|
}
|
|
1811
1794
|
function removeHooks(hookName, handler) {
|
|
@@ -1813,13 +1796,6 @@
|
|
|
1813
1796
|
if (!__hooks) {
|
|
1814
1797
|
return;
|
|
1815
1798
|
}
|
|
1816
|
-
if (Array.isArray(__hooks[hookName])) {
|
|
1817
|
-
var hooks = __hooks[hookName];
|
|
1818
|
-
var index = findHookIndex.call(this, hookName, handler);
|
|
1819
|
-
if (index !== -1) {
|
|
1820
|
-
hooks.splice(index, 1);
|
|
1821
|
-
}
|
|
1822
|
-
}
|
|
1823
1799
|
delete __hooks[hookName];
|
|
1824
1800
|
}
|
|
1825
1801
|
function hooksDescriptor(instance) {
|
|
@@ -1841,38 +1817,6 @@
|
|
|
1841
1817
|
function delHooksDescriptor(instance) {
|
|
1842
1818
|
instance.__hooks = null;
|
|
1843
1819
|
}
|
|
1844
|
-
function runHooks(obj, hookName, handler) {
|
|
1845
|
-
for (var _len5 = arguments.length, args = new Array(_len5 > 3 ? _len5 - 3 : 0), _key5 = 3; _key5 < _len5; _key5++) {
|
|
1846
|
-
args[_key5 - 3] = arguments[_key5];
|
|
1847
|
-
}
|
|
1848
|
-
if (obj.__hooks && Array.isArray(obj.__hooks[hookName])) {
|
|
1849
|
-
var hooks = obj.__hooks[hookName];
|
|
1850
|
-
var index = -1;
|
|
1851
|
-
var runHooksRecursive = function runHooksRecursive2(obj2, hookName2, handler2) {
|
|
1852
|
-
for (var _len6 = arguments.length, args2 = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {
|
|
1853
|
-
args2[_key6 - 3] = arguments[_key6];
|
|
1854
|
-
}
|
|
1855
|
-
index++;
|
|
1856
|
-
if (hooks.length === 0 || index === hooks.length) {
|
|
1857
|
-
return handler2.call.apply(handler2, [obj2, obj2].concat(args2));
|
|
1858
|
-
}
|
|
1859
|
-
var hook2 = hooks[index];
|
|
1860
|
-
var ret = hook2.call.apply(hook2, [obj2, obj2].concat(args2));
|
|
1861
|
-
if (ret && ret.then) {
|
|
1862
|
-
return ret.then(function(data) {
|
|
1863
|
-
return data === false ? null : runHooksRecursive2.apply(void 0, [obj2, hookName2, handler2].concat(args2));
|
|
1864
|
-
}).catch(function(e) {
|
|
1865
|
-
console.warn("[runHooks]".concat(hookName2, " reject"), e.message);
|
|
1866
|
-
});
|
|
1867
|
-
} else if (ret !== false) {
|
|
1868
|
-
return runHooksRecursive2.apply(void 0, [obj2, hookName2, handler2].concat(args2));
|
|
1869
|
-
}
|
|
1870
|
-
};
|
|
1871
|
-
return runHooksRecursive.apply(void 0, [obj, hookName, handler].concat(args));
|
|
1872
|
-
} else {
|
|
1873
|
-
return handler.call.apply(handler, [obj, obj].concat(args));
|
|
1874
|
-
}
|
|
1875
|
-
}
|
|
1876
1820
|
function showErrorMsg(pluginName, msg) {
|
|
1877
1821
|
XG_DEBUG.logError("[".concat(pluginName, "] event or callback cant be undefined or null when call ").concat(msg));
|
|
1878
1822
|
}
|
|
@@ -2112,18 +2056,6 @@
|
|
|
2112
2056
|
}
|
|
2113
2057
|
}
|
|
2114
2058
|
}
|
|
2115
|
-
}, {
|
|
2116
|
-
key: "defineMethod",
|
|
2117
|
-
value: function defineMethod(Obj, map) {
|
|
2118
|
-
for (var key in map) {
|
|
2119
|
-
if (Object.prototype.hasOwnProperty.call(map, key) && typeof map[key] === "function") {
|
|
2120
|
-
Object.defineProperty(Obj, key, {
|
|
2121
|
-
configurable: true,
|
|
2122
|
-
value: map[key]
|
|
2123
|
-
});
|
|
2124
|
-
}
|
|
2125
|
-
}
|
|
2126
|
-
}
|
|
2127
2059
|
}, {
|
|
2128
2060
|
key: "defaultConfig",
|
|
2129
2061
|
get: function get() {
|
|
@@ -2746,7 +2678,7 @@
|
|
|
2746
2678
|
arr2[i] = arr[i];
|
|
2747
2679
|
return arr2;
|
|
2748
2680
|
}
|
|
2749
|
-
function _createForOfIteratorHelper
|
|
2681
|
+
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
2750
2682
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
2751
2683
|
if (!it) {
|
|
2752
2684
|
if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
@@ -2934,21 +2866,6 @@
|
|
|
2934
2866
|
length: Buffer2.totalLength && Buffer2.totalLength(buffers)
|
|
2935
2867
|
};
|
|
2936
2868
|
}
|
|
2937
|
-
}, {
|
|
2938
|
-
key: "isBuffered",
|
|
2939
|
-
value: function isBuffered(media, pos) {
|
|
2940
|
-
if (media) {
|
|
2941
|
-
var buffered = Buffer2.get(media);
|
|
2942
|
-
if (buffered !== null && buffered !== void 0 && buffered.length) {
|
|
2943
|
-
for (var i = 0; i < buffered.length; i++) {
|
|
2944
|
-
if (pos >= buffered.start(i) && pos <= buffered.end(i)) {
|
|
2945
|
-
return true;
|
|
2946
|
-
}
|
|
2947
|
-
}
|
|
2948
|
-
}
|
|
2949
|
-
}
|
|
2950
|
-
return false;
|
|
2951
|
-
}
|
|
2952
2869
|
}]);
|
|
2953
2870
|
return Buffer2;
|
|
2954
2871
|
}();
|
|
@@ -3101,7 +3018,7 @@
|
|
|
3101
3018
|
this.logCache.apply(this, [LogCacheLevel.DEBUG].concat(args));
|
|
3102
3019
|
if (Logger2.disabled)
|
|
3103
3020
|
return;
|
|
3104
|
-
(_console = console).debug.apply(_console, [
|
|
3021
|
+
(_console = console).debug.apply(_console, [this._prefix, nowTime$1()].concat(args));
|
|
3105
3022
|
}
|
|
3106
3023
|
}, {
|
|
3107
3024
|
key: "log",
|
|
@@ -3113,7 +3030,7 @@
|
|
|
3113
3030
|
this.logCache.apply(this, [LogCacheLevel.LOG].concat(args));
|
|
3114
3031
|
if (Logger2.disabled)
|
|
3115
3032
|
return;
|
|
3116
|
-
(_console2 = console).log.apply(_console2, [
|
|
3033
|
+
(_console2 = console).log.apply(_console2, [this._prefix, nowTime$1()].concat(args));
|
|
3117
3034
|
}
|
|
3118
3035
|
}, {
|
|
3119
3036
|
key: "warn",
|
|
@@ -3125,7 +3042,7 @@
|
|
|
3125
3042
|
this.logCache.apply(this, [LogCacheLevel.WARN].concat(args));
|
|
3126
3043
|
if (Logger2.disabled)
|
|
3127
3044
|
return;
|
|
3128
|
-
(_console3 = console).warn.apply(_console3, [
|
|
3045
|
+
(_console3 = console).warn.apply(_console3, [this._prefix, nowTime$1()].concat(args));
|
|
3129
3046
|
}
|
|
3130
3047
|
}, {
|
|
3131
3048
|
key: "error",
|
|
@@ -3137,7 +3054,7 @@
|
|
|
3137
3054
|
this.logCache.apply(this, [LogCacheLevel.ERROR].concat(args));
|
|
3138
3055
|
if (Logger2.disabled)
|
|
3139
3056
|
return;
|
|
3140
|
-
(_console4 = console).error.apply(_console4, [
|
|
3057
|
+
(_console4 = console).error.apply(_console4, [this._prefix, nowTime$1()].concat(args));
|
|
3141
3058
|
}
|
|
3142
3059
|
}, {
|
|
3143
3060
|
key: "logCache",
|
|
@@ -3152,7 +3069,7 @@
|
|
|
3152
3069
|
var finLogText = logText.map(function(item) {
|
|
3153
3070
|
return logable(item);
|
|
3154
3071
|
});
|
|
3155
|
-
text =
|
|
3072
|
+
text = this._prefix + nowTime$1() + JSON.stringify(finLogText);
|
|
3156
3073
|
} catch (e) {
|
|
3157
3074
|
return;
|
|
3158
3075
|
}
|
|
@@ -4068,8 +3985,8 @@
|
|
|
4068
3985
|
response
|
|
4069
3986
|
};
|
|
4070
3987
|
}
|
|
4071
|
-
function calculateSpeed(byteLen,
|
|
4072
|
-
return Math.round(byteLen * 8 * 1e3 /
|
|
3988
|
+
function calculateSpeed(byteLen, millisec) {
|
|
3989
|
+
return Math.round(byteLen * 8 * 1e3 / millisec / 1024);
|
|
4073
3990
|
}
|
|
4074
3991
|
var EVENT = {
|
|
4075
3992
|
ERROR: "error",
|
|
@@ -4081,7 +3998,6 @@
|
|
|
4081
3998
|
SOURCEBUFFER_CREATED: "core.sourcebuffercreated",
|
|
4082
3999
|
MEDIASOURCE_OPENED: "core.mediasourceopened",
|
|
4083
4000
|
ANALYZE_DURATION_EXCEEDED: "core.analyzedurationexceeded",
|
|
4084
|
-
APPEND_BUFFER: "core.appendbuffer",
|
|
4085
4001
|
REMOVE_BUFFER: "core.removebuffer",
|
|
4086
4002
|
BUFFEREOS: "core.buffereos",
|
|
4087
4003
|
KEYFRAME: "core.keyframe",
|
|
@@ -4854,7 +4770,7 @@
|
|
|
4854
4770
|
value: function _getHeaders(xhr) {
|
|
4855
4771
|
var headerLines = xhr.getAllResponseHeaders().trim().split("\r\n");
|
|
4856
4772
|
var headers = {};
|
|
4857
|
-
var _iterator = _createForOfIteratorHelper
|
|
4773
|
+
var _iterator = _createForOfIteratorHelper(headerLines), _step;
|
|
4858
4774
|
try {
|
|
4859
4775
|
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
4860
4776
|
var header = _step.value;
|
|
@@ -4876,7 +4792,7 @@
|
|
|
4876
4792
|
}]);
|
|
4877
4793
|
return XhrLoader2;
|
|
4878
4794
|
}(EventEmitter);
|
|
4879
|
-
var _excluded$
|
|
4795
|
+
var _excluded$1 = ["retry", "retryDelay", "onRetryError", "transformError"];
|
|
4880
4796
|
var Task = /* @__PURE__ */ function() {
|
|
4881
4797
|
function Task2(type, config) {
|
|
4882
4798
|
_classCallCheck$1(this, Task2);
|
|
@@ -4896,7 +4812,7 @@
|
|
|
4896
4812
|
key: "exec",
|
|
4897
4813
|
value: function exec() {
|
|
4898
4814
|
var _this = this;
|
|
4899
|
-
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$
|
|
4815
|
+
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);
|
|
4900
4816
|
var request = /* @__PURE__ */ function() {
|
|
4901
4817
|
var _ref = _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee() {
|
|
4902
4818
|
var response, error, isRetry;
|
|
@@ -5692,60 +5608,6 @@
|
|
|
5692
5608
|
function _nonIterableRest() {
|
|
5693
5609
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
5694
5610
|
}
|
|
5695
|
-
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
5696
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
5697
|
-
if (!it) {
|
|
5698
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
5699
|
-
if (it)
|
|
5700
|
-
o = it;
|
|
5701
|
-
var i = 0;
|
|
5702
|
-
var F = function() {
|
|
5703
|
-
};
|
|
5704
|
-
return {
|
|
5705
|
-
s: F,
|
|
5706
|
-
n: function() {
|
|
5707
|
-
if (i >= o.length)
|
|
5708
|
-
return {
|
|
5709
|
-
done: true
|
|
5710
|
-
};
|
|
5711
|
-
return {
|
|
5712
|
-
done: false,
|
|
5713
|
-
value: o[i++]
|
|
5714
|
-
};
|
|
5715
|
-
},
|
|
5716
|
-
e: function(e) {
|
|
5717
|
-
throw e;
|
|
5718
|
-
},
|
|
5719
|
-
f: F
|
|
5720
|
-
};
|
|
5721
|
-
}
|
|
5722
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
5723
|
-
}
|
|
5724
|
-
var normalCompletion = true, didErr = false, err;
|
|
5725
|
-
return {
|
|
5726
|
-
s: function() {
|
|
5727
|
-
it = it.call(o);
|
|
5728
|
-
},
|
|
5729
|
-
n: function() {
|
|
5730
|
-
var step = it.next();
|
|
5731
|
-
normalCompletion = step.done;
|
|
5732
|
-
return step;
|
|
5733
|
-
},
|
|
5734
|
-
e: function(e) {
|
|
5735
|
-
didErr = true;
|
|
5736
|
-
err = e;
|
|
5737
|
-
},
|
|
5738
|
-
f: function() {
|
|
5739
|
-
try {
|
|
5740
|
-
if (!normalCompletion && it.return != null)
|
|
5741
|
-
it.return();
|
|
5742
|
-
} finally {
|
|
5743
|
-
if (didErr)
|
|
5744
|
-
throw err;
|
|
5745
|
-
}
|
|
5746
|
-
}
|
|
5747
|
-
};
|
|
5748
|
-
}
|
|
5749
5611
|
function _toPrimitive(input, hint) {
|
|
5750
5612
|
if (typeof input !== "object" || input === null)
|
|
5751
5613
|
return input;
|
|
@@ -5768,15 +5630,13 @@
|
|
|
5768
5630
|
METADATA: "metadata"
|
|
5769
5631
|
};
|
|
5770
5632
|
var VideoCodecType = {
|
|
5771
|
-
AV1: "av1",
|
|
5772
5633
|
AVC: "avc",
|
|
5773
5634
|
HEVC: "hevc"
|
|
5774
5635
|
};
|
|
5775
5636
|
var AudioCodecType = {
|
|
5776
5637
|
AAC: "aac",
|
|
5777
5638
|
G711PCMA: "g7110a",
|
|
5778
|
-
G711PCMU: "g7110m"
|
|
5779
|
-
OPUS: "opus"
|
|
5639
|
+
G711PCMU: "g7110m"
|
|
5780
5640
|
};
|
|
5781
5641
|
var WarningType = {
|
|
5782
5642
|
LARGE_AV_SHIFT: "LARGE_AV_SHIFT",
|
|
@@ -5816,7 +5676,6 @@
|
|
|
5816
5676
|
_defineProperty(this, "isVideoEncryption", false);
|
|
5817
5677
|
_defineProperty(this, "isAudioEncryption", false);
|
|
5818
5678
|
_defineProperty(this, "isVideo", true);
|
|
5819
|
-
_defineProperty(this, "lastKeyFrameDts", 0);
|
|
5820
5679
|
_defineProperty(this, "kid", null);
|
|
5821
5680
|
_defineProperty(this, "pssh", null);
|
|
5822
5681
|
_defineProperty(this, "ext", void 0);
|
|
@@ -5859,9 +5718,6 @@
|
|
|
5859
5718
|
}, {
|
|
5860
5719
|
key: "exist",
|
|
5861
5720
|
value: function exist() {
|
|
5862
|
-
if (/av01/.test(this.codec)) {
|
|
5863
|
-
return true;
|
|
5864
|
-
}
|
|
5865
5721
|
return !!(this.pps.length && this.sps.length && this.codec);
|
|
5866
5722
|
}
|
|
5867
5723
|
}, {
|
|
@@ -5925,7 +5781,7 @@
|
|
|
5925
5781
|
}, {
|
|
5926
5782
|
key: "exist",
|
|
5927
5783
|
value: function exist() {
|
|
5928
|
-
return !!(this.sampleRate && this.channelCount && this.codec &&
|
|
5784
|
+
return !!(this.sampleRate && this.channelCount && this.codec && this.codecType === AudioCodecType.AAC);
|
|
5929
5785
|
}
|
|
5930
5786
|
}, {
|
|
5931
5787
|
key: "hasSample",
|
|
@@ -6130,7 +5986,7 @@
|
|
|
6130
5986
|
continue;
|
|
6131
5987
|
}
|
|
6132
5988
|
frameLength = (data[i + 3] & 3) << 11 | data[i + 4] << 3 | (data[i + 5] & 224) >> 5;
|
|
6133
|
-
if (
|
|
5989
|
+
if (len - i < frameLength)
|
|
6134
5990
|
break;
|
|
6135
5991
|
protectionSkipBytes = (~data[i + 1] & 1) * 2;
|
|
6136
5992
|
frames.push({
|
|
@@ -6324,15 +6180,6 @@
|
|
|
6324
6180
|
return parseInt(item, 16);
|
|
6325
6181
|
});
|
|
6326
6182
|
}
|
|
6327
|
-
function combineToFloat(integer, decimal) {
|
|
6328
|
-
return Number(integer + "." + decimal);
|
|
6329
|
-
}
|
|
6330
|
-
function toDegree(matrix) {
|
|
6331
|
-
if (matrix.length < 5)
|
|
6332
|
-
return 0;
|
|
6333
|
-
var scaled0 = Math.hypot(matrix[0], matrix[3]), scaled1 = Math.hypot(matrix[1], matrix[4]);
|
|
6334
|
-
return 0 === scaled0 || 0 === scaled1 ? 0 : 180 * Math.atan2(matrix[1] / scaled1, matrix[0] / scaled0) / Math.PI;
|
|
6335
|
-
}
|
|
6336
6183
|
var NALu = /* @__PURE__ */ function() {
|
|
6337
6184
|
function NALu2() {
|
|
6338
6185
|
_classCallCheck(this, NALu2);
|
|
@@ -6995,16 +6842,13 @@
|
|
|
6995
6842
|
var AUDIO_EXCETION_LOG_EMIT_DURATION = 5 * 9e4;
|
|
6996
6843
|
var MAX_VIDEO_FRAME_DURATION = 9e4;
|
|
6997
6844
|
var MAX_DTS_DELTA_WITH_NEXT_CHUNK = 9e4 / 2;
|
|
6998
|
-
var LARGE_AV_FIRST_FRAME_FORCE_FIX_THRESHOLD = 9e4 * 5;
|
|
6999
6845
|
var TsFixer = /* @__PURE__ */ function() {
|
|
7000
|
-
function TsFixer2(videoTrack, audioTrack, metadataTrack
|
|
6846
|
+
function TsFixer2(videoTrack, audioTrack, metadataTrack) {
|
|
7001
6847
|
_classCallCheck(this, TsFixer2);
|
|
7002
6848
|
this.videoTrack = videoTrack;
|
|
7003
6849
|
this.audioTrack = audioTrack;
|
|
7004
6850
|
this.metadataTrack = metadataTrack;
|
|
7005
6851
|
this._baseDts = -1;
|
|
7006
|
-
this._baseVideoDts = -1;
|
|
7007
|
-
this._baseAudioDts = -1;
|
|
7008
6852
|
this._baseDtsInited = false;
|
|
7009
6853
|
this._audioNextPts = void 0;
|
|
7010
6854
|
this._videoNextDts = void 0;
|
|
@@ -7013,8 +6857,6 @@
|
|
|
7013
6857
|
this._lastAudioExceptionGapDot = 0;
|
|
7014
6858
|
this._lastAudioExceptionOverlapDot = 0;
|
|
7015
6859
|
this._lastAudioExceptionLargeGapDot = 0;
|
|
7016
|
-
this._needForceFixLargeGap = fixerConfig === null || fixerConfig === void 0 ? void 0 : fixerConfig.forceFixLargeGap;
|
|
7017
|
-
this._largeGapThreshold = (fixerConfig === null || fixerConfig === void 0 ? void 0 : fixerConfig.largeGapThreshold) || LARGE_AV_FIRST_FRAME_FORCE_FIX_THRESHOLD;
|
|
7018
6860
|
}
|
|
7019
6861
|
_createClass(TsFixer2, [{
|
|
7020
6862
|
key: "fix",
|
|
@@ -7042,16 +6884,10 @@
|
|
|
7042
6884
|
if (discontinuity) {
|
|
7043
6885
|
this._calculateBaseDts(this.audioTrack, this.videoTrack);
|
|
7044
6886
|
this._baseDts -= startTime;
|
|
7045
|
-
this._baseAudioDts -= startTime;
|
|
7046
|
-
this._baseVideoDts -= startTime;
|
|
7047
6887
|
}
|
|
7048
6888
|
if (!contiguous) {
|
|
7049
6889
|
this._videoNextDts = vaDelta > 0 ? startTime + vaDelta : startTime;
|
|
7050
6890
|
this._audioNextPts = vaDelta > 0 ? startTime : startTime - vaDelta;
|
|
7051
|
-
if (this._needForceFixLargeGap) {
|
|
7052
|
-
this._videoNextDts = 0;
|
|
7053
|
-
this._audioNextPts = 0;
|
|
7054
|
-
}
|
|
7055
6891
|
var vDeltaToNextDts = firstVideoSample ? firstVideoSample.dts - this._baseDts - this._videoNextDts : 0;
|
|
7056
6892
|
var aDeltaToNextDts = firstAudioSample ? firstAudioSample.pts - this._baseDts - this._audioNextPts : 0;
|
|
7057
6893
|
if (Math.abs(vDeltaToNextDts || aDeltaToNextDts) > MAX_VIDEO_FRAME_DURATION) {
|
|
@@ -7084,8 +6920,8 @@
|
|
|
7084
6920
|
if (!samples.length)
|
|
7085
6921
|
return;
|
|
7086
6922
|
samples.forEach(function(x) {
|
|
7087
|
-
x.dts -= _this2.
|
|
7088
|
-
x.pts -= _this2.
|
|
6923
|
+
x.dts -= _this2._baseDts;
|
|
6924
|
+
x.pts -= _this2._baseDts;
|
|
7089
6925
|
});
|
|
7090
6926
|
if (this._videoNextDts === void 0) {
|
|
7091
6927
|
var samp0 = samples[0];
|
|
@@ -7178,7 +7014,7 @@
|
|
|
7178
7014
|
if (!samples.length)
|
|
7179
7015
|
return;
|
|
7180
7016
|
samples.forEach(function(x) {
|
|
7181
|
-
x.pts -= _this3.
|
|
7017
|
+
x.pts -= _this3._baseDts;
|
|
7182
7018
|
x.dts = x.pts;
|
|
7183
7019
|
});
|
|
7184
7020
|
this._doFixAudioInternal(audioTrack, samples, 9e4);
|
|
@@ -7195,15 +7031,12 @@
|
|
|
7195
7031
|
var videoBaseDts = Infinity;
|
|
7196
7032
|
if (audioSamps.length) {
|
|
7197
7033
|
audioTrack.baseDts = audioBasePts = audioSamps[0].pts;
|
|
7198
|
-
this._baseAudioDts = audioBasePts;
|
|
7199
7034
|
}
|
|
7200
7035
|
if (videoSamps.length) {
|
|
7201
7036
|
videoTrack.baseDts = videoBaseDts = videoSamps[0].dts;
|
|
7202
|
-
this._baseVideoDts = videoBaseDts;
|
|
7203
7037
|
}
|
|
7204
7038
|
this._baseDts = Math.min(audioBasePts, videoBaseDts);
|
|
7205
7039
|
var delta = videoBaseDts - audioBasePts;
|
|
7206
|
-
var largeGap = false;
|
|
7207
7040
|
if (Number.isFinite(delta) && Math.abs(delta) > LARGE_AV_FIRST_FRAME_GAP) {
|
|
7208
7041
|
videoTrack.warnings.push({
|
|
7209
7042
|
type: WarningType.LARGE_AV_SHIFT,
|
|
@@ -7213,16 +7046,6 @@
|
|
|
7213
7046
|
delta
|
|
7214
7047
|
});
|
|
7215
7048
|
}
|
|
7216
|
-
if (Number.isFinite(delta) && Math.abs(delta) > this._largeGapThreshold * MAX_SILENT_FRAME_DURATION) {
|
|
7217
|
-
largeGap = true;
|
|
7218
|
-
}
|
|
7219
|
-
if (!this._baseDtsInited) {
|
|
7220
|
-
if (largeGap && this._needForceFixLargeGap) {
|
|
7221
|
-
this._needForceFixLargeGap = true;
|
|
7222
|
-
} else {
|
|
7223
|
-
this._needForceFixLargeGap = false;
|
|
7224
|
-
}
|
|
7225
|
-
}
|
|
7226
7049
|
this._baseDtsInited = true;
|
|
7227
7050
|
return true;
|
|
7228
7051
|
}
|
|
@@ -7316,7 +7139,6 @@
|
|
|
7316
7139
|
var logger$4 = new Logger$1("TsDemuxer");
|
|
7317
7140
|
var TsDemuxer = /* @__PURE__ */ function() {
|
|
7318
7141
|
function TsDemuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
7319
|
-
var fixerConfig = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
7320
7142
|
_classCallCheck(this, TsDemuxer2);
|
|
7321
7143
|
_defineProperty(this, "_pmtId", -1);
|
|
7322
7144
|
_defineProperty(this, "_remainingPacketData", null);
|
|
@@ -7326,7 +7148,7 @@
|
|
|
7326
7148
|
this.videoTrack = videoTrack || new VideoTrack();
|
|
7327
7149
|
this.audioTrack = audioTrack || new AudioTrack();
|
|
7328
7150
|
this.metadataTrack = metadataTrack || new MetadataTrack();
|
|
7329
|
-
this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack
|
|
7151
|
+
this._fixer = new TsFixer(this.videoTrack, this.audioTrack, this.metadataTrack);
|
|
7330
7152
|
}
|
|
7331
7153
|
_createClass(TsDemuxer2, [{
|
|
7332
7154
|
key: "demux",
|
|
@@ -7673,207 +7495,6 @@
|
|
|
7673
7495
|
}]);
|
|
7674
7496
|
return TsDemuxer2;
|
|
7675
7497
|
}();
|
|
7676
|
-
var ByteReader = /* @__PURE__ */ function() {
|
|
7677
|
-
function ByteReader2(buf, offset, len) {
|
|
7678
|
-
_classCallCheck(this, ByteReader2);
|
|
7679
|
-
this.dv = new DataView(buf);
|
|
7680
|
-
this.start = this.offset = offset || this.dv.byteOffset;
|
|
7681
|
-
this.end = len ? this.start + len : this.start + this.dv.byteLength;
|
|
7682
|
-
}
|
|
7683
|
-
_createClass(ByteReader2, [{
|
|
7684
|
-
key: "buffer",
|
|
7685
|
-
get: function get() {
|
|
7686
|
-
return this.dv.buffer;
|
|
7687
|
-
}
|
|
7688
|
-
}, {
|
|
7689
|
-
key: "unreadLength",
|
|
7690
|
-
get: function get() {
|
|
7691
|
-
return Math.max(this.end - this.offset, 0);
|
|
7692
|
-
}
|
|
7693
|
-
}, {
|
|
7694
|
-
key: "size",
|
|
7695
|
-
get: function get() {
|
|
7696
|
-
return this.end - this.start;
|
|
7697
|
-
}
|
|
7698
|
-
}, {
|
|
7699
|
-
key: "readFloat",
|
|
7700
|
-
value: function readFloat(byteNum) {
|
|
7701
|
-
var val = 0;
|
|
7702
|
-
switch (byteNum) {
|
|
7703
|
-
case 4:
|
|
7704
|
-
val = this.dv.getFloat32(this.offset);
|
|
7705
|
-
break;
|
|
7706
|
-
case 8:
|
|
7707
|
-
val = this.dv.getFloat64(this.offset);
|
|
7708
|
-
break;
|
|
7709
|
-
default:
|
|
7710
|
-
throw new Error("read ".concat(byteNum, "-byte float is not supported"));
|
|
7711
|
-
}
|
|
7712
|
-
this.offset += byteNum;
|
|
7713
|
-
return val;
|
|
7714
|
-
}
|
|
7715
|
-
}, {
|
|
7716
|
-
key: "back",
|
|
7717
|
-
value: function back(byteNum) {
|
|
7718
|
-
this.offset -= byteNum;
|
|
7719
|
-
}
|
|
7720
|
-
}, {
|
|
7721
|
-
key: "skip",
|
|
7722
|
-
value: function skip(byteNum) {
|
|
7723
|
-
this.offset += byteNum;
|
|
7724
|
-
}
|
|
7725
|
-
}, {
|
|
7726
|
-
key: "readInt",
|
|
7727
|
-
value: function readInt(byteNum) {
|
|
7728
|
-
var offset = this.offset;
|
|
7729
|
-
this.offset += byteNum;
|
|
7730
|
-
switch (byteNum) {
|
|
7731
|
-
case 1:
|
|
7732
|
-
return this.dv.getInt8(offset);
|
|
7733
|
-
case 2:
|
|
7734
|
-
return this.dv.getInt16(offset);
|
|
7735
|
-
case 4:
|
|
7736
|
-
return this.dv.getInt32(offset);
|
|
7737
|
-
default:
|
|
7738
|
-
throw new Error("read ".concat(byteNum, "-byte integers is not supported"));
|
|
7739
|
-
}
|
|
7740
|
-
}
|
|
7741
|
-
}, {
|
|
7742
|
-
key: "read",
|
|
7743
|
-
value: function read(byteNum) {
|
|
7744
|
-
var offset = this.offset;
|
|
7745
|
-
this.offset += byteNum;
|
|
7746
|
-
switch (byteNum) {
|
|
7747
|
-
case 1:
|
|
7748
|
-
return this.dv.getUint8(offset);
|
|
7749
|
-
case 2:
|
|
7750
|
-
return this.dv.getUint16(offset);
|
|
7751
|
-
case 3:
|
|
7752
|
-
return (this.dv.getUint16(offset) << 8) + this.dv.getUint8(offset + 2);
|
|
7753
|
-
case 4:
|
|
7754
|
-
return this.dv.getUint32(offset);
|
|
7755
|
-
default:
|
|
7756
|
-
this.back(byteNum - 4);
|
|
7757
|
-
return this.read(byteNum - 4) + this.dv.getUint32(offset) * Math.pow(256, byteNum - 4);
|
|
7758
|
-
}
|
|
7759
|
-
}
|
|
7760
|
-
}, {
|
|
7761
|
-
key: "write",
|
|
7762
|
-
value: function write(byteNum, val) {
|
|
7763
|
-
var offset = this.offset;
|
|
7764
|
-
this.offset += byteNum;
|
|
7765
|
-
switch (byteNum) {
|
|
7766
|
-
case 1:
|
|
7767
|
-
return this.dv.setUint8(offset, val);
|
|
7768
|
-
case 2:
|
|
7769
|
-
return this.dv.setUint16(offset, val);
|
|
7770
|
-
case 3:
|
|
7771
|
-
return this.dv.setUint8(offset, val >>> 16), this.dv.setUint16(offset + 1, 65535 & val);
|
|
7772
|
-
case 4:
|
|
7773
|
-
return this.dv.setUint32(offset, val);
|
|
7774
|
-
default:
|
|
7775
|
-
throw new Error("write ".concat(byteNum, "-byte integers is not supported"));
|
|
7776
|
-
}
|
|
7777
|
-
}
|
|
7778
|
-
}, {
|
|
7779
|
-
key: "readToBuffer",
|
|
7780
|
-
value: function readToBuffer(len) {
|
|
7781
|
-
var buffer;
|
|
7782
|
-
if (this.offset || len) {
|
|
7783
|
-
buffer = this.dv.buffer.slice(this.offset, len ? this.offset + len : this.end);
|
|
7784
|
-
} else {
|
|
7785
|
-
buffer = this.dv.buffer;
|
|
7786
|
-
}
|
|
7787
|
-
this.offset += buffer.byteLength;
|
|
7788
|
-
return buffer;
|
|
7789
|
-
}
|
|
7790
|
-
}, {
|
|
7791
|
-
key: "readToUint8",
|
|
7792
|
-
value: function readToUint8(len) {
|
|
7793
|
-
var uint8 = new Uint8Array(this.dv.buffer, this.offset, len || this.unreadLength);
|
|
7794
|
-
this.offset += uint8.byteLength;
|
|
7795
|
-
return uint8;
|
|
7796
|
-
}
|
|
7797
|
-
}, {
|
|
7798
|
-
key: "readString",
|
|
7799
|
-
value: function readString(len) {
|
|
7800
|
-
var i = 0, str = "";
|
|
7801
|
-
for (; i < len; i++) {
|
|
7802
|
-
str += String.fromCharCode(this.dv.getUint8(this.offset));
|
|
7803
|
-
this.offset++;
|
|
7804
|
-
}
|
|
7805
|
-
return str;
|
|
7806
|
-
}
|
|
7807
|
-
}], [{
|
|
7808
|
-
key: "fromUint8",
|
|
7809
|
-
value: function fromUint8(uint8) {
|
|
7810
|
-
return new ByteReader2(uint8.buffer, uint8.byteOffset, uint8.byteLength);
|
|
7811
|
-
}
|
|
7812
|
-
}, {
|
|
7813
|
-
key: "concatUint8s",
|
|
7814
|
-
value: function concatUint8s(args) {
|
|
7815
|
-
var uint8 = new Uint8Array(args.reduce(function(ret, v) {
|
|
7816
|
-
return ret + v.byteLength;
|
|
7817
|
-
}, 0));
|
|
7818
|
-
var offset = 0;
|
|
7819
|
-
args.forEach(function(v) {
|
|
7820
|
-
uint8.set(v, offset);
|
|
7821
|
-
offset += v.byteLength;
|
|
7822
|
-
});
|
|
7823
|
-
return uint8;
|
|
7824
|
-
}
|
|
7825
|
-
}, {
|
|
7826
|
-
key: "concatUint8",
|
|
7827
|
-
value: function concatUint8() {
|
|
7828
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
7829
|
-
args[_key] = arguments[_key];
|
|
7830
|
-
}
|
|
7831
|
-
return this.concatUint8s(args);
|
|
7832
|
-
}
|
|
7833
|
-
}]);
|
|
7834
|
-
return ByteReader2;
|
|
7835
|
-
}();
|
|
7836
|
-
var BitReader = /* @__PURE__ */ function() {
|
|
7837
|
-
function BitReader2(val, size) {
|
|
7838
|
-
_classCallCheck(this, BitReader2);
|
|
7839
|
-
this.offset = 0;
|
|
7840
|
-
this.val = val;
|
|
7841
|
-
this.size = size;
|
|
7842
|
-
}
|
|
7843
|
-
_createClass(BitReader2, [{
|
|
7844
|
-
key: "skip",
|
|
7845
|
-
value: function skip(len) {
|
|
7846
|
-
this.offset += len;
|
|
7847
|
-
}
|
|
7848
|
-
}, {
|
|
7849
|
-
key: "read",
|
|
7850
|
-
value: function read(len) {
|
|
7851
|
-
var unreadLength = this.size - this.offset - len;
|
|
7852
|
-
if (unreadLength >= 0) {
|
|
7853
|
-
var bits = 0, i = 0;
|
|
7854
|
-
this.offset += len;
|
|
7855
|
-
if (this.size > 31) {
|
|
7856
|
-
for (; i < len; i++) {
|
|
7857
|
-
bits += Math.pow(2, i);
|
|
7858
|
-
}
|
|
7859
|
-
return this.val / Math.pow(2, unreadLength) & bits;
|
|
7860
|
-
} else {
|
|
7861
|
-
for (; i < len; i++) {
|
|
7862
|
-
bits += 1 << i;
|
|
7863
|
-
}
|
|
7864
|
-
return this.val >>> unreadLength & bits;
|
|
7865
|
-
}
|
|
7866
|
-
}
|
|
7867
|
-
throw new Error("the number of the read operation exceeds the total length limit of bits");
|
|
7868
|
-
}
|
|
7869
|
-
}], [{
|
|
7870
|
-
key: "fromByte",
|
|
7871
|
-
value: function fromByte(byte, len) {
|
|
7872
|
-
return new BitReader2(byte.read(len), len << 3);
|
|
7873
|
-
}
|
|
7874
|
-
}]);
|
|
7875
|
-
return BitReader2;
|
|
7876
|
-
}();
|
|
7877
7498
|
var MP4Parser = /* @__PURE__ */ function() {
|
|
7878
7499
|
function MP4Parser2() {
|
|
7879
7500
|
_classCallCheck(this, MP4Parser2);
|
|
@@ -8031,36 +7652,18 @@
|
|
|
8031
7652
|
key: "tkhd",
|
|
8032
7653
|
value: function tkhd(box) {
|
|
8033
7654
|
return parseBox(box, true, function(ret, data) {
|
|
8034
|
-
var
|
|
7655
|
+
var start = 0;
|
|
8035
7656
|
if (ret.version === 1) {
|
|
8036
|
-
|
|
8037
|
-
|
|
8038
|
-
|
|
8039
|
-
byte.read(4);
|
|
8040
|
-
ret.duration = byte.read(8);
|
|
7657
|
+
ret.trackId = readBig32(data, 16);
|
|
7658
|
+
ret.duration = readBig64(data, 24);
|
|
7659
|
+
start += 32;
|
|
8041
7660
|
} else {
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
byte.read(4);
|
|
8046
|
-
ret.duration = byte.read(4);
|
|
7661
|
+
ret.trackId = readBig32(data, 8);
|
|
7662
|
+
ret.duration = readBig32(data, 16);
|
|
7663
|
+
start += 20;
|
|
8047
7664
|
}
|
|
8048
|
-
|
|
8049
|
-
ret.
|
|
8050
|
-
for (var i = 0; i < 36; i++) {
|
|
8051
|
-
ret.matrix.push(byte.read(1));
|
|
8052
|
-
}
|
|
8053
|
-
byte.back(36);
|
|
8054
|
-
var caculatedMatrix = [];
|
|
8055
|
-
for (var _i = 0, int32; _i < 3; _i++) {
|
|
8056
|
-
caculatedMatrix.push(combineToFloat(byte.readInt(2), byte.readInt(2)));
|
|
8057
|
-
caculatedMatrix.push(combineToFloat(byte.readInt(2), byte.readInt(2)));
|
|
8058
|
-
int32 = byte.readInt(4);
|
|
8059
|
-
caculatedMatrix.push(combineToFloat(int32 >> 30, int32 & 1073741823));
|
|
8060
|
-
}
|
|
8061
|
-
ret.rotation = toDegree(caculatedMatrix);
|
|
8062
|
-
ret.width = byte.read(4);
|
|
8063
|
-
ret.height = byte.read(4);
|
|
7665
|
+
ret.width = readBig32(data, start + 52);
|
|
7666
|
+
ret.height = readBig32(data, start + 56);
|
|
8064
7667
|
});
|
|
8065
7668
|
}
|
|
8066
7669
|
}, {
|
|
@@ -8190,7 +7793,7 @@
|
|
|
8190
7793
|
if (ret.version > 0) {
|
|
8191
7794
|
var numKeyIds = readBig32(data, start);
|
|
8192
7795
|
start += 4;
|
|
8193
|
-
for (var
|
|
7796
|
+
for (var _i = 0; _i < ("" + numKeyIds).length; _i++) {
|
|
8194
7797
|
for (var j = 0; j < 16; j++) {
|
|
8195
7798
|
var keyId = data[start];
|
|
8196
7799
|
start += 1;
|
|
@@ -8213,8 +7816,6 @@
|
|
|
8213
7816
|
ret.entryCount = readBig32(data);
|
|
8214
7817
|
ret.entries = MP4Parser2.findBox(data.subarray(4), [], start + 4).map(function(b) {
|
|
8215
7818
|
switch (b.type) {
|
|
8216
|
-
case "av01":
|
|
8217
|
-
return MP4Parser2.av01(b);
|
|
8218
7819
|
case "avc1":
|
|
8219
7820
|
case "avc2":
|
|
8220
7821
|
case "avc3":
|
|
@@ -8294,69 +7895,6 @@
|
|
|
8294
7895
|
}
|
|
8295
7896
|
});
|
|
8296
7897
|
}
|
|
8297
|
-
}, {
|
|
8298
|
-
key: "colr",
|
|
8299
|
-
value: function colr(box) {
|
|
8300
|
-
return parseBox(box, false, function(ret, data) {
|
|
8301
|
-
var byte = ByteReader.fromUint8(data);
|
|
8302
|
-
ret.data = box.data;
|
|
8303
|
-
ret.colorType = byte.readString(4);
|
|
8304
|
-
if (ret.colorType === "nclx") {
|
|
8305
|
-
ret.colorPrimaries = byte.read(2);
|
|
8306
|
-
ret.transferCharacteristics = byte.read(2);
|
|
8307
|
-
ret.matrixCoefficients = byte.read(2);
|
|
8308
|
-
ret.fullRangeFlag = byte.read(1) >> 7;
|
|
8309
|
-
} else if (ret.colorType === "rICC" || ret.colorType === "prof") {
|
|
8310
|
-
ret.iccProfile = data.readToUint8();
|
|
8311
|
-
}
|
|
8312
|
-
});
|
|
8313
|
-
}
|
|
8314
|
-
}, {
|
|
8315
|
-
key: "av01",
|
|
8316
|
-
value: function av01(box) {
|
|
8317
|
-
return parseBox(box, false, function(ret, data, start) {
|
|
8318
|
-
var bodyStart = parseVisualSampleEntry(ret, data);
|
|
8319
|
-
var bodyData = data.subarray(bodyStart);
|
|
8320
|
-
start += bodyStart;
|
|
8321
|
-
ret.av1C = MP4Parser2.av1C(MP4Parser2.findBox(bodyData, ["av1C"], start)[0]);
|
|
8322
|
-
ret.colr = MP4Parser2.colr(MP4Parser2.findBox(bodyData, ["colr"], start)[0]);
|
|
8323
|
-
});
|
|
8324
|
-
}
|
|
8325
|
-
}, {
|
|
8326
|
-
key: "av1C",
|
|
8327
|
-
value: function av1C(box) {
|
|
8328
|
-
return parseBox(box, false, function(ret, data) {
|
|
8329
|
-
ret.data = box.data;
|
|
8330
|
-
var byte = ByteReader.fromUint8(data);
|
|
8331
|
-
var bit = BitReader.fromByte(byte, 4);
|
|
8332
|
-
ret.marker = bit.read(1);
|
|
8333
|
-
ret.version = bit.read(7);
|
|
8334
|
-
ret.seqProfile = bit.read(3);
|
|
8335
|
-
ret.seqLevelIdx0 = bit.read(5);
|
|
8336
|
-
ret.seqTier0 = bit.read(1);
|
|
8337
|
-
ret.highBitdepth = bit.read(1);
|
|
8338
|
-
ret.twelveBit = bit.read(1);
|
|
8339
|
-
ret.monochrome = bit.read(1);
|
|
8340
|
-
ret.chromaSubsamplingX = bit.read(1);
|
|
8341
|
-
ret.chromaSubsamplingY = bit.read(1);
|
|
8342
|
-
ret.chromaSamplePosition = bit.read(2);
|
|
8343
|
-
ret.reserved = bit.read(3);
|
|
8344
|
-
ret.initialPresentationDelayPresent = bit.read(1);
|
|
8345
|
-
if (ret.initialPresentationDelayPresent) {
|
|
8346
|
-
ret.initialPresentationDelayMinusOne = bit.read(4);
|
|
8347
|
-
} else {
|
|
8348
|
-
ret.initialPresentationDelayMinusOne = 0;
|
|
8349
|
-
}
|
|
8350
|
-
ret.configOBUs = byte.readToUint8();
|
|
8351
|
-
var bitdepth;
|
|
8352
|
-
if (ret.seqLevelIdx0 === 2 && ret.highBitdepth === 1) {
|
|
8353
|
-
bitdepth = ret.twelveBit === 1 ? "12" : "10";
|
|
8354
|
-
} else if (ret.seqProfile <= 2) {
|
|
8355
|
-
bitdepth = ret.highBitdepth === 1 ? "10" : "08";
|
|
8356
|
-
}
|
|
8357
|
-
ret.codec = ["av01", ret.seqProfile, (ret.seqLevelIdx0 < 10 ? "0" + ret.seqLevelIdx0 : ret.seqLevelIdx0) + (ret.seqTier0 ? "H" : "M"), bitdepth].join(".");
|
|
8358
|
-
});
|
|
8359
|
-
}
|
|
8360
7898
|
}, {
|
|
8361
7899
|
key: "avc1",
|
|
8362
7900
|
value: function avc1(box) {
|
|
@@ -8391,7 +7929,7 @@
|
|
|
8391
7929
|
ret.ppsLength = data[start];
|
|
8392
7930
|
start += 1;
|
|
8393
7931
|
ret.pps = [];
|
|
8394
|
-
for (var
|
|
7932
|
+
for (var _i2 = 0; _i2 < ret.ppsLength; _i2++) {
|
|
8395
7933
|
var _size = readBig16(data, start);
|
|
8396
7934
|
start += 2;
|
|
8397
7935
|
ret.pps.push(data.subarray(start, start += _size));
|
|
@@ -8560,7 +8098,7 @@
|
|
|
8560
8098
|
start += 8;
|
|
8561
8099
|
}
|
|
8562
8100
|
} else {
|
|
8563
|
-
for (var
|
|
8101
|
+
for (var _i3 = 0; _i3 < entryCount; _i3++) {
|
|
8564
8102
|
entries.push({
|
|
8565
8103
|
count: readBig32(data, start),
|
|
8566
8104
|
offset: -(~readBig32(data, start + 4) + 1)
|
|
@@ -8782,20 +8320,13 @@
|
|
|
8782
8320
|
v.mvhdTimecale = moov.mvhd.timescale;
|
|
8783
8321
|
v.timescale = v.formatTimescale = vTrack.mdia.mdhd.timescale;
|
|
8784
8322
|
v.duration = vTrack.mdia.mdhd.duration || v.mvhdDurtion / v.mvhdTimecale * v.timescale;
|
|
8785
|
-
v.rotation = vTrack.tkhd.rotation;
|
|
8786
|
-
v.matrix = vTrack.tkhd.matrix;
|
|
8787
8323
|
var e1 = vTrack.mdia.minf.stbl.stsd.entries[0];
|
|
8788
8324
|
v.width = e1.width;
|
|
8789
8325
|
v.height = e1.height;
|
|
8790
8326
|
if (e1.pasp) {
|
|
8791
8327
|
v.sarRatio = [e1.pasp.hSpacing, e1.pasp.vSpacing];
|
|
8792
8328
|
}
|
|
8793
|
-
if (e1.
|
|
8794
|
-
v.codecType = VideoCodecType.AV1;
|
|
8795
|
-
v.codec = e1.av1C.codec;
|
|
8796
|
-
v.av1C = e1.av1C.data;
|
|
8797
|
-
v.colr = e1.colr.data;
|
|
8798
|
-
} else if (e1.hvcC) {
|
|
8329
|
+
if (e1.hvcC) {
|
|
8799
8330
|
v.codecType = VideoCodecType.HEVC;
|
|
8800
8331
|
v.codec = e1.hvcC.codec;
|
|
8801
8332
|
v.vps = e1.hvcC.vps;
|
|
@@ -9114,9 +8645,8 @@
|
|
|
9114
8645
|
function parseBox(box, isFullBox, parse2) {
|
|
9115
8646
|
if (!box)
|
|
9116
8647
|
return;
|
|
9117
|
-
if (box.size !== box.data.length)
|
|
8648
|
+
if (box.size !== box.data.length)
|
|
9118
8649
|
throw new Error("box ".concat(box.type, " size !== data.length"));
|
|
9119
|
-
}
|
|
9120
8650
|
var ret = {
|
|
9121
8651
|
start: box.start,
|
|
9122
8652
|
size: box.size,
|
|
@@ -9155,167 +8685,11 @@
|
|
|
9155
8685
|
var FMP4Demuxer = /* @__PURE__ */ function() {
|
|
9156
8686
|
function FMP4Demuxer2(videoTrack, audioTrack, metadataTrack) {
|
|
9157
8687
|
_classCallCheck(this, FMP4Demuxer2);
|
|
9158
|
-
_defineProperty(this, "__loadedMoofWraps", []);
|
|
9159
|
-
_defineProperty(this, "__lastRemainData", null);
|
|
9160
|
-
_defineProperty(this, "__lastRemainDataStart", 0);
|
|
9161
|
-
_defineProperty(this, "__nextMoofStart", -1);
|
|
9162
8688
|
this.videoTrack = videoTrack || new VideoTrack();
|
|
9163
8689
|
this.audioTrack = audioTrack || new AudioTrack();
|
|
9164
8690
|
this.metadataTrack = metadataTrack || new MetadataTrack();
|
|
9165
8691
|
}
|
|
9166
8692
|
_createClass(FMP4Demuxer2, [{
|
|
9167
|
-
key: "demuxPart",
|
|
9168
|
-
value: function demuxPart(partData, partDataStart, moov) {
|
|
9169
|
-
var _this = this;
|
|
9170
|
-
var videoTrack = this.videoTrack, audioTrack = this.audioTrack;
|
|
9171
|
-
var videoExist = videoTrack.exist();
|
|
9172
|
-
var audioExist = audioTrack.exist();
|
|
9173
|
-
var isAV01 = /av01/.test(videoTrack.codec);
|
|
9174
|
-
videoTrack.samples = [];
|
|
9175
|
-
audioTrack.samples = [];
|
|
9176
|
-
var data = partData;
|
|
9177
|
-
var dataStart = partDataStart;
|
|
9178
|
-
if (this.__lastRemainData) {
|
|
9179
|
-
var lastRemainDataEnd = this.__lastRemainDataStart + this.__lastRemainData.byteLength;
|
|
9180
|
-
var continuous = partDataStart <= lastRemainDataEnd && partDataStart > this.__lastRemainDataStart && partDataStart + partData.byteLength > lastRemainDataEnd;
|
|
9181
|
-
if (continuous) {
|
|
9182
|
-
var noDuplicateData = partData.subarray(this.__lastRemainData.byteLength + this.__lastRemainDataStart - partDataStart);
|
|
9183
|
-
data = concatUint8Array(this.__lastRemainData, noDuplicateData);
|
|
9184
|
-
dataStart = this.__lastRemainDataStart;
|
|
9185
|
-
this.__lastRemainData = null;
|
|
9186
|
-
} else {
|
|
9187
|
-
this.__lastRemainData = null;
|
|
9188
|
-
this.__lastRemainDataStart = 0;
|
|
9189
|
-
this.__nextMoofStart = -1;
|
|
9190
|
-
}
|
|
9191
|
-
}
|
|
9192
|
-
if (!moov) {
|
|
9193
|
-
var moovBox = MP4Parser.findBox(data, ["moov"])[0];
|
|
9194
|
-
if (!moovBox)
|
|
9195
|
-
throw new Error("cannot found moov box");
|
|
9196
|
-
moov = MP4Parser.moov(moovBox);
|
|
9197
|
-
}
|
|
9198
|
-
if (data) {
|
|
9199
|
-
var dataEnd = dataStart + data.byteLength;
|
|
9200
|
-
if (!videoExist && !audioExist) {
|
|
9201
|
-
MP4Parser.moovToTrack(moov, videoTrack, audioTrack);
|
|
9202
|
-
}
|
|
9203
|
-
var moofBoxes = [];
|
|
9204
|
-
if (this.__nextMoofStart < 0) {
|
|
9205
|
-
MP4Parser.findBox(data, ["moof"], dataStart).forEach(function(v) {
|
|
9206
|
-
return moofBoxes.push(v);
|
|
9207
|
-
});
|
|
9208
|
-
} else if (this.__nextMoofStart >= dataStart && this.__nextMoofStart <= dataEnd - 8) {
|
|
9209
|
-
MP4Parser.findBox(data.subarray(this.__nextMoofStart - dataStart), ["moof"], this.__nextMoofStart).forEach(function(v) {
|
|
9210
|
-
return moofBoxes.push(v);
|
|
9211
|
-
});
|
|
9212
|
-
}
|
|
9213
|
-
moofBoxes.filter(function(moofBox) {
|
|
9214
|
-
return moofBox.size <= moofBox.data.length;
|
|
9215
|
-
}).forEach(function(moofBox) {
|
|
9216
|
-
var moof = MP4Parser.moof(moofBox);
|
|
9217
|
-
_this.__nextMoofStart = moof.start + Math.max.apply(Math, _toConsumableArray(moof.traf.map(function(v) {
|
|
9218
|
-
return v.trun.samples.reduce(function(ret, w) {
|
|
9219
|
-
return ret + w.size;
|
|
9220
|
-
}, v.trun.dataOffset || 0);
|
|
9221
|
-
})));
|
|
9222
|
-
_this.__loadedMoofWraps.push({
|
|
9223
|
-
start: moof.start,
|
|
9224
|
-
nextMoofStart: _this.__nextMoofStart,
|
|
9225
|
-
moof
|
|
9226
|
-
});
|
|
9227
|
-
_this.__loadedMoofWraps.sort(function(p, n) {
|
|
9228
|
-
return p.start - n.start;
|
|
9229
|
-
});
|
|
9230
|
-
});
|
|
9231
|
-
var _iterator = _createForOfIteratorHelper(this.__loadedMoofWraps), _step;
|
|
9232
|
-
try {
|
|
9233
|
-
var _loop = function _loop2() {
|
|
9234
|
-
var moofWrap = _step.value;
|
|
9235
|
-
if (moofWrap.start > dataEnd || moofWrap.nextMoofStart < dataStart) {
|
|
9236
|
-
return "continue";
|
|
9237
|
-
}
|
|
9238
|
-
var moofStart = moofWrap.start;
|
|
9239
|
-
var tracks = MP4Parser.moofToSamples(moofWrap.moof, videoTrack, audioTrack);
|
|
9240
|
-
var videoBaseMediaDecodeTime = videoTrack.baseMediaDecodeTime;
|
|
9241
|
-
var audioBaseMediaDecodeTime = audioTrack.baseMediaDecodeTime;
|
|
9242
|
-
var nalSize;
|
|
9243
|
-
Object.keys(tracks).forEach(function(k) {
|
|
9244
|
-
if (videoTrack.id == k) {
|
|
9245
|
-
tracks[k].some(function(x) {
|
|
9246
|
-
var xStart = x.offset += moofStart;
|
|
9247
|
-
if (xStart < dataStart) {
|
|
9248
|
-
return;
|
|
9249
|
-
}
|
|
9250
|
-
if (xStart + x.size > dataEnd) {
|
|
9251
|
-
return true;
|
|
9252
|
-
}
|
|
9253
|
-
var sample = new VideoSample((x.pts || x.dts) + videoBaseMediaDecodeTime, x.dts + videoBaseMediaDecodeTime);
|
|
9254
|
-
sample.duration = x.duration;
|
|
9255
|
-
sample.gopId = x.gopId;
|
|
9256
|
-
if (x.keyframe)
|
|
9257
|
-
sample.setToKeyframe();
|
|
9258
|
-
var sampleData = data.subarray(xStart - dataStart, xStart - dataStart + x.size);
|
|
9259
|
-
sample.data = sampleData;
|
|
9260
|
-
if (!isAV01) {
|
|
9261
|
-
var start = 0;
|
|
9262
|
-
var len = sampleData.length - 1;
|
|
9263
|
-
while (start < len) {
|
|
9264
|
-
nalSize = readBig32(sampleData, start);
|
|
9265
|
-
start += 4;
|
|
9266
|
-
sample.units.push(sampleData.subarray(start, start + nalSize));
|
|
9267
|
-
start += nalSize;
|
|
9268
|
-
}
|
|
9269
|
-
}
|
|
9270
|
-
_this.__lastRemainDataStart = xStart + x.size;
|
|
9271
|
-
videoTrack.samples.push(sample);
|
|
9272
|
-
});
|
|
9273
|
-
} else if (audioTrack.id == k) {
|
|
9274
|
-
tracks[k].some(function(x) {
|
|
9275
|
-
var xStart = x.offset + moofStart;
|
|
9276
|
-
if (xStart < dataStart) {
|
|
9277
|
-
return;
|
|
9278
|
-
}
|
|
9279
|
-
if (xStart + x.size > dataEnd) {
|
|
9280
|
-
return true;
|
|
9281
|
-
}
|
|
9282
|
-
var sampleData = data.subarray(xStart - dataStart, xStart - dataStart + x.size);
|
|
9283
|
-
audioTrack.samples.push(new AudioSample(x.dts + audioBaseMediaDecodeTime, sampleData, x.duration));
|
|
9284
|
-
_this.__lastRemainDataStart = xStart + x.size;
|
|
9285
|
-
});
|
|
9286
|
-
}
|
|
9287
|
-
});
|
|
9288
|
-
};
|
|
9289
|
-
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
|
|
9290
|
-
var _ret = _loop();
|
|
9291
|
-
if (_ret === "continue")
|
|
9292
|
-
continue;
|
|
9293
|
-
}
|
|
9294
|
-
} catch (err) {
|
|
9295
|
-
_iterator.e(err);
|
|
9296
|
-
} finally {
|
|
9297
|
-
_iterator.f();
|
|
9298
|
-
}
|
|
9299
|
-
}
|
|
9300
|
-
if (this.__lastRemainDataStart > dataStart && this.__lastRemainDataStart < data.byteLength + dataStart) {
|
|
9301
|
-
this.__lastRemainData = data.subarray(this.__lastRemainDataStart - dataStart);
|
|
9302
|
-
} else {
|
|
9303
|
-
this.__lastRemainData = data;
|
|
9304
|
-
this.__lastRemainDataStart = dataStart;
|
|
9305
|
-
}
|
|
9306
|
-
if (videoTrack.samples.length) {
|
|
9307
|
-
videoTrack.baseMediaDecodeTime = videoTrack.samples[0].pts;
|
|
9308
|
-
}
|
|
9309
|
-
if (audioTrack.samples.length) {
|
|
9310
|
-
audioTrack.baseMediaDecodeTime = audioTrack.samples[0].pts;
|
|
9311
|
-
}
|
|
9312
|
-
return {
|
|
9313
|
-
videoTrack,
|
|
9314
|
-
audioTrack,
|
|
9315
|
-
metadataTrack: this.metadataTrack
|
|
9316
|
-
};
|
|
9317
|
-
}
|
|
9318
|
-
}, {
|
|
9319
8693
|
key: "demux",
|
|
9320
8694
|
value: function demux(videoData, audioData) {
|
|
9321
8695
|
var videoTrack = this.videoTrack, audioTrack = this.audioTrack;
|
|
@@ -9807,16 +9181,10 @@
|
|
|
9807
9181
|
if (track.useEME && track.enca) {
|
|
9808
9182
|
content = MP42.enca(track);
|
|
9809
9183
|
} else {
|
|
9810
|
-
|
|
9811
|
-
content = MP42.opus(track);
|
|
9812
|
-
} else {
|
|
9813
|
-
content = MP42.mp4a(track);
|
|
9814
|
-
}
|
|
9184
|
+
content = MP42.mp4a(track);
|
|
9815
9185
|
}
|
|
9816
9186
|
} else if (track.useEME && track.encv) {
|
|
9817
9187
|
content = MP42.encv(track);
|
|
9818
|
-
} else if (track.av1C) {
|
|
9819
|
-
content = MP42.av01(track);
|
|
9820
9188
|
} else {
|
|
9821
9189
|
content = MP42.avc1hev1(track);
|
|
9822
9190
|
}
|
|
@@ -10030,96 +9398,12 @@
|
|
|
10030
9398
|
return MP42.box(MP42.types.sinf, content, MP42.box(MP42.types.frma, frma), MP42.box(MP42.types.schm, schm), schi);
|
|
10031
9399
|
}
|
|
10032
9400
|
}, {
|
|
10033
|
-
key: "
|
|
10034
|
-
value: function
|
|
10035
|
-
|
|
10036
|
-
|
|
10037
|
-
|
|
10038
|
-
|
|
10039
|
-
0,
|
|
10040
|
-
0,
|
|
10041
|
-
0,
|
|
10042
|
-
0,
|
|
10043
|
-
1,
|
|
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
|
-
0,
|
|
10057
|
-
0,
|
|
10058
|
-
0,
|
|
10059
|
-
0,
|
|
10060
|
-
track.width >> 8 & 255,
|
|
10061
|
-
track.width & 255,
|
|
10062
|
-
track.height >> 8 & 255,
|
|
10063
|
-
track.height & 255,
|
|
10064
|
-
0,
|
|
10065
|
-
72,
|
|
10066
|
-
0,
|
|
10067
|
-
0,
|
|
10068
|
-
0,
|
|
10069
|
-
72,
|
|
10070
|
-
0,
|
|
10071
|
-
0,
|
|
10072
|
-
0,
|
|
10073
|
-
0,
|
|
10074
|
-
0,
|
|
10075
|
-
0,
|
|
10076
|
-
0,
|
|
10077
|
-
1,
|
|
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
|
-
0,
|
|
10108
|
-
0,
|
|
10109
|
-
0,
|
|
10110
|
-
0,
|
|
10111
|
-
24,
|
|
10112
|
-
17,
|
|
10113
|
-
17
|
|
10114
|
-
]), track.av1C, track.colr);
|
|
10115
|
-
}
|
|
10116
|
-
}, {
|
|
10117
|
-
key: "avc1hev1",
|
|
10118
|
-
value: function avc1hev1(track) {
|
|
10119
|
-
var isHevc = track.codecType === VideoCodecType.HEVC;
|
|
10120
|
-
var typ = isHevc ? MP42.types.hvc1 : MP42.types.avc1;
|
|
10121
|
-
var config = isHevc ? MP42.hvcC(track) : MP42.avcC(track);
|
|
10122
|
-
var boxes = [new Uint8Array([
|
|
9401
|
+
key: "avc1hev1",
|
|
9402
|
+
value: function avc1hev1(track) {
|
|
9403
|
+
var isHevc = track.codecType === VideoCodecType.HEVC;
|
|
9404
|
+
var typ = isHevc ? MP42.types.hvc1 : MP42.types.avc1;
|
|
9405
|
+
var config = isHevc ? MP42.hvcC(track) : MP42.avcC(track);
|
|
9406
|
+
var boxes = [new Uint8Array([
|
|
10123
9407
|
0,
|
|
10124
9408
|
0,
|
|
10125
9409
|
0,
|
|
@@ -10483,53 +9767,6 @@
|
|
|
10483
9767
|
)));
|
|
10484
9768
|
return esds2;
|
|
10485
9769
|
}
|
|
10486
|
-
}, {
|
|
10487
|
-
key: "opus",
|
|
10488
|
-
value: function opus(track) {
|
|
10489
|
-
var opusAudioDescription = new Uint8Array([
|
|
10490
|
-
0,
|
|
10491
|
-
0,
|
|
10492
|
-
0,
|
|
10493
|
-
0,
|
|
10494
|
-
0,
|
|
10495
|
-
0,
|
|
10496
|
-
0,
|
|
10497
|
-
1,
|
|
10498
|
-
0,
|
|
10499
|
-
0,
|
|
10500
|
-
0,
|
|
10501
|
-
0,
|
|
10502
|
-
0,
|
|
10503
|
-
0,
|
|
10504
|
-
0,
|
|
10505
|
-
0,
|
|
10506
|
-
0,
|
|
10507
|
-
track.channelCount,
|
|
10508
|
-
0,
|
|
10509
|
-
16,
|
|
10510
|
-
0,
|
|
10511
|
-
0,
|
|
10512
|
-
0,
|
|
10513
|
-
0,
|
|
10514
|
-
track.sampleRate >> 8 & 255,
|
|
10515
|
-
track.sampleRate & 255,
|
|
10516
|
-
0,
|
|
10517
|
-
0
|
|
10518
|
-
]);
|
|
10519
|
-
var opusSpecificConfig = track.config.length ? MP42.dOps(track) : [];
|
|
10520
|
-
return MP42.box(MP42.types.Opus, opusAudioDescription, opusSpecificConfig);
|
|
10521
|
-
}
|
|
10522
|
-
}, {
|
|
10523
|
-
key: "dOps",
|
|
10524
|
-
value: function dOps(track) {
|
|
10525
|
-
if (track.config) {
|
|
10526
|
-
track.config[4] = track.sampleRate >>> 24 & 255;
|
|
10527
|
-
track.config[5] = track.sampleRate >>> 16 & 255;
|
|
10528
|
-
track.config[6] = track.sampleRate >>> 8 & 255;
|
|
10529
|
-
track.config[7] = track.sampleRate & 255;
|
|
10530
|
-
return MP42.box(MP42.types.dOps, track.config);
|
|
10531
|
-
}
|
|
10532
|
-
}
|
|
10533
9770
|
}, {
|
|
10534
9771
|
key: "mvex",
|
|
10535
9772
|
value: function mvex(tracks) {
|
|
@@ -11132,7 +10369,7 @@
|
|
|
11132
10369
|
}]);
|
|
11133
10370
|
return MP42;
|
|
11134
10371
|
}();
|
|
11135
|
-
_defineProperty(MP4, "types", ["
|
|
10372
|
+
_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) {
|
|
11136
10373
|
p[c] = [c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2), c.charCodeAt(3)];
|
|
11137
10374
|
return p;
|
|
11138
10375
|
}, /* @__PURE__ */ Object.create(null)));
|
|
@@ -11467,46 +10704,30 @@
|
|
|
11467
10704
|
};
|
|
11468
10705
|
}
|
|
11469
10706
|
var samples = track.samples;
|
|
11470
|
-
var isAV01 = /av01/.test(track.codec);
|
|
11471
10707
|
var mdatSize = 0;
|
|
11472
|
-
|
|
11473
|
-
|
|
11474
|
-
|
|
11475
|
-
});
|
|
11476
|
-
|
|
11477
|
-
|
|
11478
|
-
mdatSize += s.units.reduce(function(t, c) {
|
|
11479
|
-
return t + c.byteLength;
|
|
11480
|
-
}, 0);
|
|
11481
|
-
mdatSize += s.units.length * 4;
|
|
11482
|
-
});
|
|
11483
|
-
}
|
|
10708
|
+
samples.forEach(function(s) {
|
|
10709
|
+
mdatSize += s.units.reduce(function(t, c) {
|
|
10710
|
+
return t + c.byteLength;
|
|
10711
|
+
}, 0);
|
|
10712
|
+
mdatSize += s.units.length * 4;
|
|
10713
|
+
});
|
|
11484
10714
|
var mdata = new Uint8Array(mdatSize);
|
|
11485
|
-
|
|
11486
|
-
|
|
11487
|
-
|
|
11488
|
-
|
|
11489
|
-
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
|
|
11493
|
-
|
|
11494
|
-
|
|
11495
|
-
|
|
11496
|
-
|
|
11497
|
-
|
|
11498
|
-
|
|
11499
|
-
|
|
11500
|
-
|
|
11501
|
-
_offset2 += u.byteLength;
|
|
11502
|
-
sampleSize += 4 + u.byteLength;
|
|
11503
|
-
});
|
|
11504
|
-
_sample2.size = sampleSize;
|
|
11505
|
-
_offset = _offset2, _sample = _sample2;
|
|
11506
|
-
};
|
|
11507
|
-
for (var _i = 0, _l = samples.length, _offset = 0, _sample; _i < _l; _i++) {
|
|
11508
|
-
_loop(_offset, _sample);
|
|
11509
|
-
}
|
|
10715
|
+
var mdatView = new DataView(mdata.buffer);
|
|
10716
|
+
var _loop = function _loop2(_offset, _sample) {
|
|
10717
|
+
_sample = samples[i];
|
|
10718
|
+
var sampleSize = 0;
|
|
10719
|
+
_sample.units.forEach(function(u) {
|
|
10720
|
+
mdatView.setUint32(_offset, u.byteLength);
|
|
10721
|
+
_offset += 4;
|
|
10722
|
+
mdata.set(u, _offset);
|
|
10723
|
+
_offset += u.byteLength;
|
|
10724
|
+
sampleSize += 4 + u.byteLength;
|
|
10725
|
+
});
|
|
10726
|
+
_sample.size = sampleSize;
|
|
10727
|
+
offset = _offset, sample = _sample;
|
|
10728
|
+
};
|
|
10729
|
+
for (var i = 0, l = samples.length, offset = 0, sample; i < l; i++) {
|
|
10730
|
+
_loop(offset, sample);
|
|
11510
10731
|
}
|
|
11511
10732
|
var mdat = MP4.mdat(mdata);
|
|
11512
10733
|
var moof = MP4.moof([track]);
|
|
@@ -11665,11 +10886,11 @@
|
|
|
11665
10886
|
});
|
|
11666
10887
|
var logger$3 = new Logger$2("Transmuxer");
|
|
11667
10888
|
var Transmuxer = /* @__PURE__ */ function() {
|
|
11668
|
-
function Transmuxer2(hls, isMP4, needRemux
|
|
10889
|
+
function Transmuxer2(hls, isMP4, needRemux) {
|
|
11669
10890
|
_classCallCheck$3(this, Transmuxer2);
|
|
11670
10891
|
_defineProperty$3(this, "_initSegmentId", "");
|
|
11671
10892
|
this.hls = hls;
|
|
11672
|
-
this._demuxer = isMP4 ? new FMP4Demuxer() : new TsDemuxer(
|
|
10893
|
+
this._demuxer = isMP4 ? new FMP4Demuxer() : new TsDemuxer();
|
|
11673
10894
|
this._isMP4 = isMP4;
|
|
11674
10895
|
if (needRemux)
|
|
11675
10896
|
this._remuxer = new FMP4Remuxer(this._demuxer.videoTrack, this._demuxer.audioTrack);
|
|
@@ -11824,7 +11045,7 @@
|
|
|
11824
11045
|
}]);
|
|
11825
11046
|
return Transmuxer2;
|
|
11826
11047
|
}();
|
|
11827
|
-
var _excluded
|
|
11048
|
+
var _excluded = ["data"], _excluded2 = ["data"];
|
|
11828
11049
|
var logger$2 = new Logger$2("BufferService");
|
|
11829
11050
|
var BufferService = /* @__PURE__ */ function() {
|
|
11830
11051
|
function BufferService2(hls) {
|
|
@@ -11936,11 +11157,11 @@
|
|
|
11936
11157
|
return;
|
|
11937
11158
|
if (TsDemuxer.probe(chunk)) {
|
|
11938
11159
|
if (!this._transmuxer)
|
|
11939
|
-
this._transmuxer = new Transmuxer(this.hls, false, !this._softVideo
|
|
11160
|
+
this._transmuxer = new Transmuxer(this.hls, false, !this._softVideo);
|
|
11940
11161
|
} else if (MP4Parser.probe(chunk)) {
|
|
11941
11162
|
if (this._softVideo) {
|
|
11942
11163
|
if (!this._transmuxer)
|
|
11943
|
-
this._transmuxer = new Transmuxer(this.hls, true
|
|
11164
|
+
this._transmuxer = new Transmuxer(this.hls, true);
|
|
11944
11165
|
} else {
|
|
11945
11166
|
this._directAppend = true;
|
|
11946
11167
|
var mix = false;
|
|
@@ -11990,8 +11211,7 @@
|
|
|
11990
11211
|
key: "appendBuffer",
|
|
11991
11212
|
value: function() {
|
|
11992
11213
|
var _appendBuffer = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee2(segment, audioSegment, videoChunk, audioChunk, discontinuity, contiguous, startTime) {
|
|
11993
|
-
var
|
|
11994
|
-
var afterAppend, p, needInit, _this$_transmuxer$tra, _this$_transmuxer$tra2, video, audio, isFirstAppend, mse, _p, videoData, videoRest, audioData, audioRest;
|
|
11214
|
+
var p, needInit, _this$_transmuxer$tra, _this$_transmuxer$tra2, video, audio, isFirstAppend, mse, _p, videoData, videoRest, audioData, audioRest;
|
|
11995
11215
|
return _regeneratorRuntime$1().wrap(function _callee2$(_context2) {
|
|
11996
11216
|
while (1)
|
|
11997
11217
|
switch (_context2.prev = _context2.next) {
|
|
@@ -12002,18 +11222,8 @@
|
|
|
12002
11222
|
}
|
|
12003
11223
|
return _context2.abrupt("return");
|
|
12004
11224
|
case 2:
|
|
12005
|
-
afterAppend = function afterAppend2() {
|
|
12006
|
-
var _this2$hls;
|
|
12007
|
-
if ((_this2$hls = _this2.hls) !== null && _this2$hls !== void 0 && _this2$hls.emit) {
|
|
12008
|
-
var _this2$hls2;
|
|
12009
|
-
(_this2$hls2 = _this2.hls) === null || _this2$hls2 === void 0 ? void 0 : _this2$hls2.emit(EVENT.APPEND_BUFFER, {
|
|
12010
|
-
start: segment.start,
|
|
12011
|
-
end: segment.end
|
|
12012
|
-
});
|
|
12013
|
-
}
|
|
12014
|
-
};
|
|
12015
11225
|
if (!this._directAppend) {
|
|
12016
|
-
_context2.next =
|
|
11226
|
+
_context2.next = 7;
|
|
12017
11227
|
break;
|
|
12018
11228
|
}
|
|
12019
11229
|
p = [];
|
|
@@ -12021,8 +11231,8 @@
|
|
|
12021
11231
|
p.push(this._mse.append(MSE.VIDEO, videoChunk));
|
|
12022
11232
|
if (audioChunk)
|
|
12023
11233
|
p.push(this._mse.append(MSE.AUDIO, audioChunk));
|
|
12024
|
-
return _context2.abrupt("return", Promise.all(p)
|
|
12025
|
-
case
|
|
11234
|
+
return _context2.abrupt("return", Promise.all(p));
|
|
11235
|
+
case 7:
|
|
12026
11236
|
needInit = this._needInitSegment || discontinuity;
|
|
12027
11237
|
_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];
|
|
12028
11238
|
if (audioChunk && audioSegment) {
|
|
@@ -12038,17 +11248,16 @@
|
|
|
12038
11248
|
this.hls.emit(Event$1.NO_AUDIO_TRACK);
|
|
12039
11249
|
}
|
|
12040
11250
|
if (!this._softVideo) {
|
|
12041
|
-
_context2.next =
|
|
11251
|
+
_context2.next = 18;
|
|
12042
11252
|
break;
|
|
12043
11253
|
}
|
|
12044
11254
|
this._softVideo.appendBuffer(video, audio);
|
|
12045
11255
|
this._needInitSegment = false;
|
|
12046
|
-
|
|
12047
|
-
_context2.next = 30;
|
|
11256
|
+
_context2.next = 28;
|
|
12048
11257
|
break;
|
|
12049
|
-
case
|
|
11258
|
+
case 18:
|
|
12050
11259
|
if (!this._mse) {
|
|
12051
|
-
_context2.next =
|
|
11260
|
+
_context2.next = 28;
|
|
12052
11261
|
break;
|
|
12053
11262
|
}
|
|
12054
11263
|
isFirstAppend = !this._sourceCreated;
|
|
@@ -12064,15 +11273,15 @@
|
|
|
12064
11273
|
});
|
|
12065
11274
|
}
|
|
12066
11275
|
if (video) {
|
|
12067
|
-
videoData = video.data, videoRest = _objectWithoutProperties$1(video, _excluded
|
|
11276
|
+
videoData = video.data, videoRest = _objectWithoutProperties$1(video, _excluded);
|
|
12068
11277
|
_p.push(mse.append(MSE.VIDEO, videoData, videoRest));
|
|
12069
11278
|
}
|
|
12070
11279
|
if (audio) {
|
|
12071
11280
|
audioData = audio.data, audioRest = _objectWithoutProperties$1(audio, _excluded2);
|
|
12072
11281
|
_p.push(mse.append(MSE.AUDIO, audioData, audioRest));
|
|
12073
11282
|
}
|
|
12074
|
-
return _context2.abrupt("return", Promise.all(_p)
|
|
12075
|
-
case
|
|
11283
|
+
return _context2.abrupt("return", Promise.all(_p));
|
|
11284
|
+
case 28:
|
|
12076
11285
|
case "end":
|
|
12077
11286
|
return _context2.stop();
|
|
12078
11287
|
}
|
|
@@ -12087,7 +11296,7 @@
|
|
|
12087
11296
|
key: "removeBuffer",
|
|
12088
11297
|
value: function() {
|
|
12089
11298
|
var _removeBuffer = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee3() {
|
|
12090
|
-
var
|
|
11299
|
+
var _this2 = this;
|
|
12091
11300
|
var start, end, media, _args3 = arguments;
|
|
12092
11301
|
return _regeneratorRuntime$1().wrap(function _callee3$(_context3) {
|
|
12093
11302
|
while (1)
|
|
@@ -12103,7 +11312,7 @@
|
|
|
12103
11312
|
return _context3.abrupt("return");
|
|
12104
11313
|
case 5:
|
|
12105
11314
|
return _context3.abrupt("return", this._mse.clearBuffer(start, end).then(function() {
|
|
12106
|
-
return
|
|
11315
|
+
return _this2.hls.emit(EVENT.REMOVE_BUFFER, {
|
|
12107
11316
|
start,
|
|
12108
11317
|
end,
|
|
12109
11318
|
removeEnd: end
|
|
@@ -12284,51 +11493,30 @@
|
|
|
12284
11493
|
return setLiveSeekableRange;
|
|
12285
11494
|
}()
|
|
12286
11495
|
}, {
|
|
12287
|
-
key: "
|
|
11496
|
+
key: "destroy",
|
|
12288
11497
|
value: function() {
|
|
12289
|
-
var
|
|
11498
|
+
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee9() {
|
|
11499
|
+
var _this$_decryptor;
|
|
12290
11500
|
return _regeneratorRuntime$1().wrap(function _callee9$(_context9) {
|
|
12291
11501
|
while (1)
|
|
12292
11502
|
switch (_context9.prev = _context9.next) {
|
|
12293
11503
|
case 0:
|
|
11504
|
+
(_this$_decryptor = this._decryptor) === null || _this$_decryptor === void 0 ? void 0 : _this$_decryptor.destroy();
|
|
12294
11505
|
if (!this._mse) {
|
|
12295
|
-
_context9.next =
|
|
11506
|
+
_context9.next = 4;
|
|
12296
11507
|
break;
|
|
12297
11508
|
}
|
|
12298
|
-
_context9.next =
|
|
11509
|
+
_context9.next = 4;
|
|
12299
11510
|
return this._mse.unbindMedia();
|
|
12300
|
-
case
|
|
12301
|
-
case "end":
|
|
12302
|
-
return _context9.stop();
|
|
12303
|
-
}
|
|
12304
|
-
}, _callee9, this);
|
|
12305
|
-
}));
|
|
12306
|
-
function detachMedia() {
|
|
12307
|
-
return _detachMedia.apply(this, arguments);
|
|
12308
|
-
}
|
|
12309
|
-
return detachMedia;
|
|
12310
|
-
}()
|
|
12311
|
-
}, {
|
|
12312
|
-
key: "destroy",
|
|
12313
|
-
value: function() {
|
|
12314
|
-
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee10() {
|
|
12315
|
-
var _this$_decryptor;
|
|
12316
|
-
return _regeneratorRuntime$1().wrap(function _callee10$(_context10) {
|
|
12317
|
-
while (1)
|
|
12318
|
-
switch (_context10.prev = _context10.next) {
|
|
12319
|
-
case 0:
|
|
12320
|
-
(_this$_decryptor = this._decryptor) === null || _this$_decryptor === void 0 ? void 0 : _this$_decryptor.destroy();
|
|
12321
|
-
_context10.next = 3;
|
|
12322
|
-
return this.detachMedia();
|
|
12323
|
-
case 3:
|
|
11511
|
+
case 4:
|
|
12324
11512
|
this._decryptor = null;
|
|
12325
11513
|
this._mse = null;
|
|
12326
11514
|
this._softVideo = null;
|
|
12327
|
-
case
|
|
11515
|
+
case 7:
|
|
12328
11516
|
case "end":
|
|
12329
|
-
return
|
|
11517
|
+
return _context9.stop();
|
|
12330
11518
|
}
|
|
12331
|
-
},
|
|
11519
|
+
}, _callee9, this);
|
|
12332
11520
|
}));
|
|
12333
11521
|
function destroy() {
|
|
12334
11522
|
return _destroy.apply(this, arguments);
|
|
@@ -12416,11 +11604,7 @@
|
|
|
12416
11604
|
minSegmentsStartPlay: 3,
|
|
12417
11605
|
preferMMS: false,
|
|
12418
11606
|
preferMMSStreaming: false,
|
|
12419
|
-
mseLowLatency: true
|
|
12420
|
-
fixerConfig: {
|
|
12421
|
-
forceFixLargeGap: false,
|
|
12422
|
-
largeGapThreshold: 5
|
|
12423
|
-
}
|
|
11607
|
+
mseLowLatency: true
|
|
12424
11608
|
}, cfg), {}, {
|
|
12425
11609
|
media
|
|
12426
11610
|
});
|
|
@@ -12535,8 +11719,6 @@
|
|
|
12535
11719
|
_defineProperty$3(this, "lowLatency", false);
|
|
12536
11720
|
_defineProperty$3(this, "endPartIndex", 0);
|
|
12537
11721
|
_defineProperty$3(this, "segments", []);
|
|
12538
|
-
_defineProperty$3(this, "dateRanges", {});
|
|
12539
|
-
_defineProperty$3(this, "skippedSegments", 0);
|
|
12540
11722
|
});
|
|
12541
11723
|
var MediaSegment = /* @__PURE__ */ function() {
|
|
12542
11724
|
function MediaSegment2(parentUrl) {
|
|
@@ -12708,38 +11890,6 @@
|
|
|
12708
11890
|
}
|
|
12709
11891
|
}
|
|
12710
11892
|
}
|
|
12711
|
-
function isValidDaterange(attr, dateRangeWithSameId) {
|
|
12712
|
-
var _badValueForSameId;
|
|
12713
|
-
if (dateRangeWithSameId) {
|
|
12714
|
-
for (var key in dateRangeWithSameId) {
|
|
12715
|
-
if (Object.prototype.hasOwnProperty.call(dateRangeWithSameId, key) && attr[key] !== dateRangeWithSameId[key]) {
|
|
12716
|
-
_badValueForSameId = key;
|
|
12717
|
-
break;
|
|
12718
|
-
}
|
|
12719
|
-
}
|
|
12720
|
-
}
|
|
12721
|
-
var duration = null;
|
|
12722
|
-
if (attr.DURATION) {
|
|
12723
|
-
duration = parseFloat(attr.DURATION);
|
|
12724
|
-
if (!Number.isFinite(duration)) {
|
|
12725
|
-
duration = null;
|
|
12726
|
-
} else if (attr._endDate) {
|
|
12727
|
-
duration = (attr._endDate.getTime() - attr._startDate.getTime()) / 1e3;
|
|
12728
|
-
}
|
|
12729
|
-
}
|
|
12730
|
-
var cue = enumeratedStringList(attr.CUE || attr["X-CUE"], {
|
|
12731
|
-
pre: false,
|
|
12732
|
-
post: false,
|
|
12733
|
-
once: false
|
|
12734
|
-
});
|
|
12735
|
-
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);
|
|
12736
|
-
}
|
|
12737
|
-
function enumeratedStringList(attrValue, dict) {
|
|
12738
|
-
return (attrValue ? attrValue.split(/[ ,]+/) : []).reduce(function(result, identifier) {
|
|
12739
|
-
result[identifier.toLowerCase()] = true;
|
|
12740
|
-
return result;
|
|
12741
|
-
}, dict);
|
|
12742
|
-
}
|
|
12743
11893
|
function parseMasterPlaylist(lines, parentUrl) {
|
|
12744
11894
|
var master = new MasterPlaylist();
|
|
12745
11895
|
var index = 0;
|
|
@@ -12848,6 +11998,9 @@
|
|
|
12848
11998
|
var endOfList = false;
|
|
12849
11999
|
var partSegmentIndex = 0;
|
|
12850
12000
|
while (line = lines[index++]) {
|
|
12001
|
+
if (endOfList) {
|
|
12002
|
+
break;
|
|
12003
|
+
}
|
|
12851
12004
|
if (line[0] !== "#") {
|
|
12852
12005
|
if (media.lowLatency) {
|
|
12853
12006
|
curSN++;
|
|
@@ -12901,6 +12054,11 @@
|
|
|
12901
12054
|
break;
|
|
12902
12055
|
case "ENDLIST":
|
|
12903
12056
|
{
|
|
12057
|
+
var _lastSegment = media.segments[media.segments.length - 1];
|
|
12058
|
+
if (_lastSegment) {
|
|
12059
|
+
_lastSegment.isLast = true;
|
|
12060
|
+
}
|
|
12061
|
+
media.live = false;
|
|
12904
12062
|
endOfList = true;
|
|
12905
12063
|
}
|
|
12906
12064
|
break;
|
|
@@ -12997,29 +12155,6 @@
|
|
|
12997
12155
|
curSegment = new MediaSegment(parentUrl);
|
|
12998
12156
|
}
|
|
12999
12157
|
break;
|
|
13000
|
-
case "SKIP":
|
|
13001
|
-
{
|
|
13002
|
-
var _attr5 = parseAttr(data);
|
|
13003
|
-
var skippedSegments = parseInt(_attr5["SKIPPED-SEGMENTS"], 10);
|
|
13004
|
-
if (skippedSegments <= Number.MAX_SAFE_INTEGER) {
|
|
13005
|
-
media.skippedSegments += skippedSegments;
|
|
13006
|
-
}
|
|
13007
|
-
}
|
|
13008
|
-
break;
|
|
13009
|
-
case "DATERANGE":
|
|
13010
|
-
{
|
|
13011
|
-
var _attr6 = parseAttr(data);
|
|
13012
|
-
var dateRangeWithSameId = media.dateRanges[_attr6.ID];
|
|
13013
|
-
_attr6._startDate = dateRangeWithSameId ? dateRangeWithSameId._startDate : new Date(_attr6["START-DATE"]);
|
|
13014
|
-
var endDate = (dateRangeWithSameId === null || dateRangeWithSameId === void 0 ? void 0 : dateRangeWithSameId._endDate) || new Date(_attr6.END_DATE);
|
|
13015
|
-
if (Number.isFinite(endDate)) {
|
|
13016
|
-
_attr6._endDate = endDate;
|
|
13017
|
-
}
|
|
13018
|
-
if (isValidDaterange(_attr6, dateRangeWithSameId) || media.skippedSegments) {
|
|
13019
|
-
media.dateRanges[_attr6.ID] = _attr6;
|
|
13020
|
-
}
|
|
13021
|
-
}
|
|
13022
|
-
break;
|
|
13023
12158
|
}
|
|
13024
12159
|
}
|
|
13025
12160
|
media.segments = media.segments.filter(function(x) {
|
|
@@ -13027,14 +12162,11 @@
|
|
|
13027
12162
|
});
|
|
13028
12163
|
var lastSegment = media.segments[media.segments.length - 1];
|
|
13029
12164
|
if (lastSegment) {
|
|
13030
|
-
if (endOfList) {
|
|
13031
|
-
lastSegment.isLast = true;
|
|
13032
|
-
}
|
|
13033
12165
|
media.endSN = lastSegment.sn;
|
|
13034
12166
|
media.endPartIndex = lastSegment.partIndex;
|
|
13035
|
-
|
|
13036
|
-
|
|
13037
|
-
|
|
12167
|
+
if (endOfList && !lastSegment.isLast) {
|
|
12168
|
+
lastSegment.isLast = true;
|
|
12169
|
+
}
|
|
13038
12170
|
}
|
|
13039
12171
|
media.totalDuration = totalDuration;
|
|
13040
12172
|
media.endCC = curCC;
|
|
@@ -14131,7 +13263,7 @@
|
|
|
14131
13263
|
_defineProperty$3(_assertThisInitialized$2(_this), "_switchUrlOpts", null);
|
|
14132
13264
|
_defineProperty$3(_assertThisInitialized$2(_this), "_isProcessQuotaExceeded", false);
|
|
14133
13265
|
_defineProperty$3(_assertThisInitialized$2(_this), "_loadSegment", /* @__PURE__ */ _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee() {
|
|
14134
|
-
var
|
|
13266
|
+
var nextSeg, _assertThisInitialize, config, bInfo, bufferThroughout;
|
|
14135
13267
|
return _regeneratorRuntime$1().wrap(function _callee$(_context) {
|
|
14136
13268
|
while (1)
|
|
14137
13269
|
switch (_context.prev = _context.next) {
|
|
@@ -14142,44 +13274,42 @@
|
|
|
14142
13274
|
}
|
|
14143
13275
|
return _context.abrupt("return");
|
|
14144
13276
|
case 2:
|
|
14145
|
-
|
|
13277
|
+
nextSeg = _this._playlist.nextSegment;
|
|
14146
13278
|
_assertThisInitialize = _assertThisInitialized$2(_this), config = _assertThisInitialize.config;
|
|
14147
|
-
|
|
14148
|
-
|
|
14149
|
-
if (nextSegment) {
|
|
14150
|
-
_context.next = 8;
|
|
13279
|
+
if (nextSeg) {
|
|
13280
|
+
_context.next = 6;
|
|
14151
13281
|
break;
|
|
14152
13282
|
}
|
|
14153
13283
|
return _context.abrupt("return");
|
|
14154
|
-
case
|
|
13284
|
+
case 6:
|
|
14155
13285
|
if (_this.isLive) {
|
|
14156
|
-
_context.next =
|
|
13286
|
+
_context.next = 16;
|
|
14157
13287
|
break;
|
|
14158
13288
|
}
|
|
14159
13289
|
bInfo = _this.bufferInfo();
|
|
14160
13290
|
if (_this.media.paused && !_this.media.currentTime) {
|
|
14161
13291
|
bInfo = _this.bufferInfo(bInfo.nextStart || 0.5);
|
|
14162
13292
|
}
|
|
14163
|
-
bufferThroughout = Math.abs(bInfo.end - _this.media.duration) <
|
|
13293
|
+
bufferThroughout = Math.abs(bInfo.end - _this.media.duration) < 0.1;
|
|
14164
13294
|
if (!(bInfo.remaining >= config.preloadTime || bufferThroughout)) {
|
|
14165
|
-
_context.next =
|
|
13295
|
+
_context.next = 13;
|
|
14166
13296
|
break;
|
|
14167
13297
|
}
|
|
14168
13298
|
_this._tryEos();
|
|
14169
13299
|
return _context.abrupt("return");
|
|
14170
|
-
case
|
|
13300
|
+
case 13:
|
|
14171
13301
|
if (!(config.preferMMSStreaming && !_this._bufferService.msStreaming)) {
|
|
14172
|
-
_context.next =
|
|
13302
|
+
_context.next = 15;
|
|
14173
13303
|
break;
|
|
14174
13304
|
}
|
|
14175
13305
|
return _context.abrupt("return");
|
|
14176
|
-
case
|
|
14177
|
-
if (!_this._urlSwitching && _this._prevSegSn !==
|
|
13306
|
+
case 15:
|
|
13307
|
+
if (!_this._urlSwitching && _this._prevSegSn !== nextSeg.sn - 1 && bInfo.end && Math.abs(nextSeg.start - bInfo.end) > 1) {
|
|
14178
13308
|
_this._playlist.setNextSegmentByIndex(_this._playlist.findSegmentIndexByTime(bInfo.end + 0.1));
|
|
14179
13309
|
}
|
|
14180
|
-
case
|
|
13310
|
+
case 16:
|
|
14181
13311
|
return _context.abrupt("return", _this._loadSegmentDirect());
|
|
14182
|
-
case
|
|
13312
|
+
case 17:
|
|
14183
13313
|
case "end":
|
|
14184
13314
|
return _context.stop();
|
|
14185
13315
|
}
|
|
@@ -14427,12 +13557,6 @@
|
|
|
14427
13557
|
var _this$_bufferService;
|
|
14428
13558
|
return (_this$_bufferService = this._bufferService) === null || _this$_bufferService === void 0 ? void 0 : _this$_bufferService.baseDts;
|
|
14429
13559
|
}
|
|
14430
|
-
}, {
|
|
14431
|
-
key: "abrSwitchPoint",
|
|
14432
|
-
get: function get() {
|
|
14433
|
-
var targetSeg = this._urlSwitching ? this._playlist.currentSegment : this._playlist.nextSegment;
|
|
14434
|
-
return targetSeg ? targetSeg.start + targetSeg.duration / 2 : null;
|
|
14435
|
-
}
|
|
14436
13560
|
}, {
|
|
14437
13561
|
key: "speedInfo",
|
|
14438
13562
|
value: function speedInfo() {
|
|
@@ -14458,37 +13582,30 @@
|
|
|
14458
13582
|
}, {
|
|
14459
13583
|
key: "load",
|
|
14460
13584
|
value: function() {
|
|
14461
|
-
var _load = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee4() {
|
|
14462
|
-
var
|
|
13585
|
+
var _load = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee4(url) {
|
|
13586
|
+
var reuseMse, _args4 = arguments;
|
|
14463
13587
|
return _regeneratorRuntime$1().wrap(function _callee4$(_context4) {
|
|
14464
13588
|
while (1)
|
|
14465
13589
|
switch (_context4.prev = _context4.next) {
|
|
14466
13590
|
case 0:
|
|
14467
|
-
|
|
14468
|
-
options = _args4.length > 1 && _args4[1] !== void 0 ? _args4[1] : {};
|
|
14469
|
-
reuseMse = typeof options === "boolean" ? options : !!(options !== null && options !== void 0 && options.reuseMse);
|
|
14470
|
-
if (_typeof$2(options) === "object" && options !== null && options !== void 0 && options.clearSwitchStatus) {
|
|
14471
|
-
this._urlSwitching = false;
|
|
14472
|
-
this._switchUrlOpts = null;
|
|
14473
|
-
this.config.startTime = void 0;
|
|
14474
|
-
}
|
|
13591
|
+
reuseMse = _args4.length > 1 && _args4[1] !== void 0 ? _args4[1] : false;
|
|
14475
13592
|
if (url)
|
|
14476
13593
|
this.config.url = url;
|
|
14477
13594
|
url = this.config.url;
|
|
14478
|
-
_context4.next =
|
|
13595
|
+
_context4.next = 5;
|
|
14479
13596
|
return this._reset(reuseMse);
|
|
14480
|
-
case
|
|
14481
|
-
_context4.next =
|
|
13597
|
+
case 5:
|
|
13598
|
+
_context4.next = 7;
|
|
14482
13599
|
return this._loadData(url);
|
|
14483
|
-
case
|
|
13600
|
+
case 7:
|
|
14484
13601
|
this._startTick();
|
|
14485
|
-
case
|
|
13602
|
+
case 8:
|
|
14486
13603
|
case "end":
|
|
14487
13604
|
return _context4.stop();
|
|
14488
13605
|
}
|
|
14489
13606
|
}, _callee4, this);
|
|
14490
13607
|
}));
|
|
14491
|
-
function load() {
|
|
13608
|
+
function load(_x) {
|
|
14492
13609
|
return _load.apply(this, arguments);
|
|
14493
13610
|
}
|
|
14494
13611
|
return load;
|
|
@@ -14497,7 +13614,7 @@
|
|
|
14497
13614
|
key: "_loadData",
|
|
14498
13615
|
value: function() {
|
|
14499
13616
|
var _loadData2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee5(url) {
|
|
14500
|
-
var manifest, currentStream,
|
|
13617
|
+
var manifest, currentStream, _this$_switchUrlOpts, _this$_switchUrlOpts2, switchTimePoint, segIdx, nextSeg, bufferClearStartPoint, preIndex, startTime, _this$_switchUrlOpts3;
|
|
14501
13618
|
return _regeneratorRuntime$1().wrap(function _callee5$(_context5) {
|
|
14502
13619
|
while (1)
|
|
14503
13620
|
switch (_context5.prev = _context5.next) {
|
|
@@ -14518,46 +13635,41 @@
|
|
|
14518
13635
|
case 5:
|
|
14519
13636
|
manifest = _context5.sent;
|
|
14520
13637
|
currentStream = this._playlist.currentStream;
|
|
14521
|
-
if (!this._urlSwitching) {
|
|
14522
|
-
_context5.next =
|
|
13638
|
+
if (!(this._urlSwitching && !this.isLive)) {
|
|
13639
|
+
_context5.next = 17;
|
|
14523
13640
|
break;
|
|
14524
13641
|
}
|
|
14525
|
-
if (!this.isLive) {
|
|
14526
|
-
_context5.next = 14;
|
|
14527
|
-
break;
|
|
14528
|
-
}
|
|
14529
|
-
preIndex = this._playlist.setNextSegmentBySN(this._prevSegSn);
|
|
14530
|
-
logger.log("segment nb=".concat(this._prevSegSn, " index of ").concat(preIndex, " in the new playlist"));
|
|
14531
|
-
if (preIndex === -1) {
|
|
14532
|
-
this._prevSegCc = null;
|
|
14533
|
-
this._prevSegSn = null;
|
|
14534
|
-
}
|
|
14535
|
-
_context5.next = 23;
|
|
14536
|
-
break;
|
|
14537
|
-
case 14:
|
|
14538
13642
|
if (currentStream.bitrate === 0 && (_this$_switchUrlOpts = this._switchUrlOpts) !== null && _this$_switchUrlOpts !== void 0 && _this$_switchUrlOpts.bitrate) {
|
|
14539
13643
|
currentStream.bitrate = (_this$_switchUrlOpts2 = this._switchUrlOpts) === null || _this$_switchUrlOpts2 === void 0 ? void 0 : _this$_switchUrlOpts2.bitrate;
|
|
14540
13644
|
}
|
|
14541
|
-
switchTimePoint =
|
|
13645
|
+
switchTimePoint = this._getSeamlessSwitchPoint();
|
|
14542
13646
|
this.config.startTime = switchTimePoint;
|
|
14543
13647
|
segIdx = this._playlist.findSegmentIndexByTime(switchTimePoint);
|
|
14544
13648
|
nextSeg = this._playlist.getSegmentByIndex(segIdx + 1);
|
|
14545
13649
|
if (!nextSeg) {
|
|
14546
|
-
_context5.next =
|
|
13650
|
+
_context5.next = 17;
|
|
14547
13651
|
break;
|
|
14548
13652
|
}
|
|
14549
13653
|
bufferClearStartPoint = nextSeg.start;
|
|
14550
|
-
_context5.next =
|
|
13654
|
+
_context5.next = 17;
|
|
14551
13655
|
return this._bufferService.removeBuffer(bufferClearStartPoint);
|
|
14552
|
-
case
|
|
13656
|
+
case 17:
|
|
13657
|
+
if (this._urlSwitching && this.isLive) {
|
|
13658
|
+
preIndex = this._playlist.setNextSegmentBySN(this._prevSegSn);
|
|
13659
|
+
logger.log("segment nb=".concat(this._prevSegSn, " index of ").concat(preIndex, " in the new playlist"));
|
|
13660
|
+
if (preIndex === -1) {
|
|
13661
|
+
this._prevSegCc = null;
|
|
13662
|
+
this._prevSegSn = null;
|
|
13663
|
+
}
|
|
13664
|
+
}
|
|
14553
13665
|
if (manifest) {
|
|
14554
|
-
_context5.next =
|
|
13666
|
+
_context5.next = 20;
|
|
14555
13667
|
break;
|
|
14556
13668
|
}
|
|
14557
13669
|
return _context5.abrupt("return");
|
|
14558
|
-
case
|
|
13670
|
+
case 20:
|
|
14559
13671
|
if (!this.isLive) {
|
|
14560
|
-
_context5.next =
|
|
13672
|
+
_context5.next = 31;
|
|
14561
13673
|
break;
|
|
14562
13674
|
}
|
|
14563
13675
|
this._bufferService.setLiveSeekableRange(0, 4294967295);
|
|
@@ -14570,35 +13682,35 @@
|
|
|
14570
13682
|
if (!manifest.isMaster)
|
|
14571
13683
|
this._pollM3U8(url);
|
|
14572
13684
|
if (!(this._playlist.nbSegments < this.config.minSegmentsStartPlay)) {
|
|
14573
|
-
_context5.next =
|
|
13685
|
+
_context5.next = 28;
|
|
14574
13686
|
break;
|
|
14575
13687
|
}
|
|
14576
13688
|
return _context5.abrupt("return");
|
|
14577
|
-
case
|
|
14578
|
-
_context5.next =
|
|
13689
|
+
case 28:
|
|
13690
|
+
_context5.next = 30;
|
|
14579
13691
|
return this._loadSegment();
|
|
14580
|
-
case
|
|
13692
|
+
case 30:
|
|
14581
13693
|
return _context5.abrupt("return");
|
|
14582
|
-
case
|
|
14583
|
-
_context5.next =
|
|
13694
|
+
case 31:
|
|
13695
|
+
_context5.next = 33;
|
|
14584
13696
|
return this._bufferService.updateDuration(currentStream.totalDuration);
|
|
14585
|
-
case
|
|
13697
|
+
case 33:
|
|
14586
13698
|
startTime = this.config.startTime;
|
|
14587
13699
|
if (startTime) {
|
|
14588
|
-
if (!((_this$
|
|
13700
|
+
if (!((_this$_switchUrlOpts3 = this._switchUrlOpts) !== null && _this$_switchUrlOpts3 !== void 0 && _this$_switchUrlOpts3.seamless)) {
|
|
14589
13701
|
this.media.currentTime = startTime;
|
|
14590
13702
|
}
|
|
14591
13703
|
this._playlist.setNextSegmentByIndex(this._playlist.findSegmentIndexByTime(startTime) || 0);
|
|
14592
13704
|
}
|
|
14593
|
-
_context5.next =
|
|
13705
|
+
_context5.next = 37;
|
|
14594
13706
|
return this._loadSegment();
|
|
14595
|
-
case
|
|
13707
|
+
case 37:
|
|
14596
13708
|
case "end":
|
|
14597
13709
|
return _context5.stop();
|
|
14598
13710
|
}
|
|
14599
13711
|
}, _callee5, this);
|
|
14600
13712
|
}));
|
|
14601
|
-
function _loadData(
|
|
13713
|
+
function _loadData(_x2) {
|
|
14602
13714
|
return _loadData2.apply(this, arguments);
|
|
14603
13715
|
}
|
|
14604
13716
|
return _loadData;
|
|
@@ -14612,20 +13724,18 @@
|
|
|
14612
13724
|
switch (_context6.prev = _context6.next) {
|
|
14613
13725
|
case 0:
|
|
14614
13726
|
this.config.startTime = 0;
|
|
14615
|
-
|
|
14616
|
-
this._switchUrlOpts = null;
|
|
14617
|
-
_context6.next = 5;
|
|
13727
|
+
_context6.next = 3;
|
|
14618
13728
|
return this.load();
|
|
14619
|
-
case
|
|
13729
|
+
case 3:
|
|
14620
13730
|
this._reloadOnPlay = false;
|
|
14621
13731
|
return _context6.abrupt("return", this.media.play(!isPlayEmit));
|
|
14622
|
-
case
|
|
13732
|
+
case 5:
|
|
14623
13733
|
case "end":
|
|
14624
13734
|
return _context6.stop();
|
|
14625
13735
|
}
|
|
14626
13736
|
}, _callee6, this);
|
|
14627
13737
|
}));
|
|
14628
|
-
function replay(
|
|
13738
|
+
function replay(_x3) {
|
|
14629
13739
|
return _replay.apply(this, arguments);
|
|
14630
13740
|
}
|
|
14631
13741
|
return replay;
|
|
@@ -14730,7 +13840,7 @@
|
|
|
14730
13840
|
}
|
|
14731
13841
|
}, _callee7, this, [[18, 29]]);
|
|
14732
13842
|
}));
|
|
14733
|
-
function switchURL(
|
|
13843
|
+
function switchURL(_x4) {
|
|
14734
13844
|
return _switchURL.apply(this, arguments);
|
|
14735
13845
|
}
|
|
14736
13846
|
return switchURL;
|
|
@@ -14816,7 +13926,7 @@
|
|
|
14816
13926
|
}
|
|
14817
13927
|
}, _callee8, this, [[8, 16], [21, 31]]);
|
|
14818
13928
|
}));
|
|
14819
|
-
function switchStream(
|
|
13929
|
+
function switchStream(_x5) {
|
|
14820
13930
|
return _switchStream.apply(this, arguments);
|
|
14821
13931
|
}
|
|
14822
13932
|
return switchStream;
|
|
@@ -14902,7 +14012,7 @@
|
|
|
14902
14012
|
}
|
|
14903
14013
|
}, _callee9, this, [[10, 18], [22, 32]]);
|
|
14904
14014
|
}));
|
|
14905
|
-
function switchAudioStream(
|
|
14015
|
+
function switchAudioStream(_x6) {
|
|
14906
14016
|
return _switchAudioStream.apply(this, arguments);
|
|
14907
14017
|
}
|
|
14908
14018
|
return switchAudioStream;
|
|
@@ -14927,50 +14037,25 @@
|
|
|
14927
14037
|
}
|
|
14928
14038
|
}, _callee10, this);
|
|
14929
14039
|
}));
|
|
14930
|
-
function switchSubtitleStream(
|
|
14040
|
+
function switchSubtitleStream(_x7) {
|
|
14931
14041
|
return _switchSubtitleStream.apply(this, arguments);
|
|
14932
14042
|
}
|
|
14933
14043
|
return switchSubtitleStream;
|
|
14934
14044
|
}()
|
|
14935
|
-
}, {
|
|
14936
|
-
key: "detachMedia",
|
|
14937
|
-
value: function() {
|
|
14938
|
-
var _detachMedia = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee11() {
|
|
14939
|
-
return _regeneratorRuntime$1().wrap(function _callee11$(_context11) {
|
|
14940
|
-
while (1)
|
|
14941
|
-
switch (_context11.prev = _context11.next) {
|
|
14942
|
-
case 0:
|
|
14943
|
-
if (!this._bufferService) {
|
|
14944
|
-
_context11.next = 3;
|
|
14945
|
-
break;
|
|
14946
|
-
}
|
|
14947
|
-
_context11.next = 3;
|
|
14948
|
-
return this._bufferService.detachMedia();
|
|
14949
|
-
case 3:
|
|
14950
|
-
case "end":
|
|
14951
|
-
return _context11.stop();
|
|
14952
|
-
}
|
|
14953
|
-
}, _callee11, this);
|
|
14954
|
-
}));
|
|
14955
|
-
function detachMedia() {
|
|
14956
|
-
return _detachMedia.apply(this, arguments);
|
|
14957
|
-
}
|
|
14958
|
-
return detachMedia;
|
|
14959
|
-
}()
|
|
14960
14045
|
}, {
|
|
14961
14046
|
key: "destroy",
|
|
14962
14047
|
value: function() {
|
|
14963
|
-
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14048
|
+
var _destroy = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee11() {
|
|
14964
14049
|
var _this$_seiService2;
|
|
14965
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14050
|
+
return _regeneratorRuntime$1().wrap(function _callee11$(_context11) {
|
|
14966
14051
|
while (1)
|
|
14967
|
-
switch (
|
|
14052
|
+
switch (_context11.prev = _context11.next) {
|
|
14968
14053
|
case 0:
|
|
14969
14054
|
if (this.media) {
|
|
14970
|
-
|
|
14055
|
+
_context11.next = 2;
|
|
14971
14056
|
break;
|
|
14972
14057
|
}
|
|
14973
|
-
return
|
|
14058
|
+
return _context11.abrupt("return");
|
|
14974
14059
|
case 2:
|
|
14975
14060
|
this.removeAllListeners();
|
|
14976
14061
|
this._playlist.reset();
|
|
@@ -14981,15 +14066,15 @@
|
|
|
14981
14066
|
this.media.removeEventListener("pause", this._onPause);
|
|
14982
14067
|
this.media.removeEventListener("seeking", this._onSeeking);
|
|
14983
14068
|
this.media.removeEventListener("timeupdate", this._onTimeupdate);
|
|
14984
|
-
|
|
14069
|
+
_context11.next = 13;
|
|
14985
14070
|
return Promise.all([this._clear(), this._bufferService.destroy()]);
|
|
14986
14071
|
case 13:
|
|
14987
14072
|
this.media = null;
|
|
14988
14073
|
case 14:
|
|
14989
14074
|
case "end":
|
|
14990
|
-
return
|
|
14075
|
+
return _context11.stop();
|
|
14991
14076
|
}
|
|
14992
|
-
},
|
|
14077
|
+
}, _callee11, this);
|
|
14993
14078
|
}));
|
|
14994
14079
|
function destroy() {
|
|
14995
14080
|
return _destroy.apply(this, arguments);
|
|
@@ -14999,48 +14084,48 @@
|
|
|
14999
14084
|
}, {
|
|
15000
14085
|
key: "_loadM3U8",
|
|
15001
14086
|
value: function() {
|
|
15002
|
-
var _loadM3U = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14087
|
+
var _loadM3U = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee12(url) {
|
|
15003
14088
|
var playlist, _this$config$manifest, _this$config$manifest2, manifest, _ref4, _ref5, _this$_playlist$curre;
|
|
15004
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14089
|
+
return _regeneratorRuntime$1().wrap(function _callee12$(_context12) {
|
|
15005
14090
|
while (1)
|
|
15006
|
-
switch (
|
|
14091
|
+
switch (_context12.prev = _context12.next) {
|
|
15007
14092
|
case 0:
|
|
15008
|
-
|
|
14093
|
+
_context12.prev = 0;
|
|
15009
14094
|
manifest = (_this$config$manifest = this.config.manifestList) === null || _this$config$manifest === void 0 ? void 0 : (_this$config$manifest2 = _this$config$manifest.filter(function(x) {
|
|
15010
14095
|
return x.url === url;
|
|
15011
14096
|
})[0]) === null || _this$config$manifest2 === void 0 ? void 0 : _this$config$manifest2.manifest;
|
|
15012
14097
|
if (!manifest) {
|
|
15013
|
-
|
|
14098
|
+
_context12.next = 6;
|
|
15014
14099
|
break;
|
|
15015
14100
|
}
|
|
15016
|
-
|
|
15017
|
-
|
|
14101
|
+
_context12.t0 = this._manifestLoader.parseText(manifest, url);
|
|
14102
|
+
_context12.next = 9;
|
|
15018
14103
|
break;
|
|
15019
14104
|
case 6:
|
|
15020
|
-
|
|
14105
|
+
_context12.next = 8;
|
|
15021
14106
|
return this._manifestLoader.load(url);
|
|
15022
14107
|
case 8:
|
|
15023
|
-
|
|
14108
|
+
_context12.t0 = _context12.sent;
|
|
15024
14109
|
case 9:
|
|
15025
|
-
_ref4 =
|
|
14110
|
+
_ref4 = _context12.t0;
|
|
15026
14111
|
_ref5 = _slicedToArray$1(_ref4, 1);
|
|
15027
14112
|
playlist = _ref5[0];
|
|
15028
|
-
|
|
14113
|
+
_context12.next = 17;
|
|
15029
14114
|
break;
|
|
15030
14115
|
case 14:
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
throw this._emitError(StreamingError.create(
|
|
14116
|
+
_context12.prev = 14;
|
|
14117
|
+
_context12.t1 = _context12["catch"](0);
|
|
14118
|
+
throw this._emitError(StreamingError.create(_context12.t1));
|
|
15034
14119
|
case 17:
|
|
15035
14120
|
if (playlist) {
|
|
15036
|
-
|
|
14121
|
+
_context12.next = 19;
|
|
15037
14122
|
break;
|
|
15038
14123
|
}
|
|
15039
|
-
return
|
|
14124
|
+
return _context12.abrupt("return");
|
|
15040
14125
|
case 19:
|
|
15041
14126
|
this._playlist.upsertPlaylist(playlist);
|
|
15042
14127
|
if (!playlist.isMaster) {
|
|
15043
|
-
|
|
14128
|
+
_context12.next = 24;
|
|
15044
14129
|
break;
|
|
15045
14130
|
}
|
|
15046
14131
|
if ((_this$_playlist$curre = this._playlist.currentStream.subtitleStreams) !== null && _this$_playlist$curre !== void 0 && _this$_playlist$curre.length) {
|
|
@@ -15048,18 +14133,18 @@
|
|
|
15048
14133
|
list: this._playlist.currentStream.subtitleStreams
|
|
15049
14134
|
});
|
|
15050
14135
|
}
|
|
15051
|
-
|
|
14136
|
+
_context12.next = 24;
|
|
15052
14137
|
return this._refreshM3U8();
|
|
15053
14138
|
case 24:
|
|
15054
14139
|
this.emit(Event$1.STREAM_PARSED);
|
|
15055
|
-
return
|
|
14140
|
+
return _context12.abrupt("return", playlist);
|
|
15056
14141
|
case 26:
|
|
15057
14142
|
case "end":
|
|
15058
|
-
return
|
|
14143
|
+
return _context12.stop();
|
|
15059
14144
|
}
|
|
15060
|
-
},
|
|
14145
|
+
}, _callee12, this, [[0, 14]]);
|
|
15061
14146
|
}));
|
|
15062
|
-
function _loadM3U8(
|
|
14147
|
+
function _loadM3U8(_x8) {
|
|
15063
14148
|
return _loadM3U.apply(this, arguments);
|
|
15064
14149
|
}
|
|
15065
14150
|
return _loadM3U8;
|
|
@@ -15093,7 +14178,7 @@
|
|
|
15093
14178
|
var isEmpty = this._playlist.isEmpty;
|
|
15094
14179
|
var pollInterval;
|
|
15095
14180
|
if (this._playlist.lowLatency) {
|
|
15096
|
-
pollInterval = (this._playlist.currentStream.partTargetDuration || 0) * 1e3;
|
|
14181
|
+
pollInterval = (this._playlist.currentStream.partTargetDuration * 2 || 0) * 1e3;
|
|
15097
14182
|
} else {
|
|
15098
14183
|
var _this$_playlist$lastS;
|
|
15099
14184
|
pollInterval = (((_this$_playlist$lastS = this._playlist.lastSegment) === null || _this$_playlist$lastS === void 0 ? void 0 : _this$_playlist$lastS.duration) || 0) * 1e3;
|
|
@@ -15121,53 +14206,53 @@
|
|
|
15121
14206
|
}, {
|
|
15122
14207
|
key: "_loadSegmentDirect",
|
|
15123
14208
|
value: function() {
|
|
15124
|
-
var _loadSegmentDirect2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14209
|
+
var _loadSegmentDirect2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee13(loadOnce) {
|
|
15125
14210
|
var seg, appended, cachedError, _this$_playlist$curre2, bufferEnd, sameStream;
|
|
15126
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14211
|
+
return _regeneratorRuntime$1().wrap(function _callee13$(_context13) {
|
|
15127
14212
|
while (1)
|
|
15128
|
-
switch (
|
|
14213
|
+
switch (_context13.prev = _context13.next) {
|
|
15129
14214
|
case 0:
|
|
15130
14215
|
seg = this._playlist.nextSegment;
|
|
15131
14216
|
if (seg) {
|
|
15132
|
-
|
|
14217
|
+
_context13.next = 3;
|
|
15133
14218
|
break;
|
|
15134
14219
|
}
|
|
15135
|
-
return
|
|
14220
|
+
return _context13.abrupt("return");
|
|
15136
14221
|
case 3:
|
|
15137
14222
|
appended = false;
|
|
15138
14223
|
cachedError = null;
|
|
15139
|
-
|
|
14224
|
+
_context13.prev = 5;
|
|
15140
14225
|
this._segmentProcessing = true;
|
|
15141
14226
|
logger.log("load segment, sn:".concat(seg.sn, ", [").concat(seg.start, ", ").concat(seg.end, "], partIndex:").concat(seg.partIndex));
|
|
15142
|
-
|
|
14227
|
+
_context13.next = 10;
|
|
15143
14228
|
return this._reqAndBufferSegment(seg, this._playlist.getAudioSegment(seg));
|
|
15144
14229
|
case 10:
|
|
15145
|
-
appended =
|
|
15146
|
-
|
|
14230
|
+
appended = _context13.sent;
|
|
14231
|
+
_context13.next = 16;
|
|
15147
14232
|
break;
|
|
15148
14233
|
case 13:
|
|
15149
|
-
|
|
15150
|
-
|
|
15151
|
-
cachedError =
|
|
14234
|
+
_context13.prev = 13;
|
|
14235
|
+
_context13.t0 = _context13["catch"](5);
|
|
14236
|
+
cachedError = _context13.t0;
|
|
15152
14237
|
case 16:
|
|
15153
|
-
|
|
14238
|
+
_context13.prev = 16;
|
|
15154
14239
|
this._segmentProcessing = false;
|
|
15155
|
-
return
|
|
14240
|
+
return _context13.finish(16);
|
|
15156
14241
|
case 19:
|
|
15157
14242
|
if (!cachedError) {
|
|
15158
|
-
|
|
14243
|
+
_context13.next = 26;
|
|
15159
14244
|
break;
|
|
15160
14245
|
}
|
|
15161
14246
|
if (!this._bufferService.isFull()) {
|
|
15162
|
-
|
|
14247
|
+
_context13.next = 25;
|
|
15163
14248
|
break;
|
|
15164
14249
|
}
|
|
15165
14250
|
logger.log("load segment, sn:".concat(seg.sn, ", partIndex:").concat(seg.partIndex));
|
|
15166
14251
|
this._segmentProcessing = true;
|
|
15167
14252
|
this._isProcessQuotaExceeded = true;
|
|
15168
|
-
return
|
|
14253
|
+
return _context13.abrupt("return", false);
|
|
15169
14254
|
case 25:
|
|
15170
|
-
return
|
|
14255
|
+
return _context13.abrupt("return", this._emitError(StreamingError.create(cachedError)));
|
|
15171
14256
|
case 26:
|
|
15172
14257
|
if (appended) {
|
|
15173
14258
|
bufferEnd = this.bufferInfo().end;
|
|
@@ -15193,14 +14278,14 @@
|
|
|
15193
14278
|
this._loadSegment();
|
|
15194
14279
|
}
|
|
15195
14280
|
}
|
|
15196
|
-
return
|
|
14281
|
+
return _context13.abrupt("return", appended);
|
|
15197
14282
|
case 28:
|
|
15198
14283
|
case "end":
|
|
15199
|
-
return
|
|
14284
|
+
return _context13.stop();
|
|
15200
14285
|
}
|
|
15201
|
-
},
|
|
14286
|
+
}, _callee13, this, [[5, 13, 16, 19]]);
|
|
15202
14287
|
}));
|
|
15203
|
-
function _loadSegmentDirect(
|
|
14288
|
+
function _loadSegmentDirect(_x9) {
|
|
15204
14289
|
return _loadSegmentDirect2.apply(this, arguments);
|
|
15205
14290
|
}
|
|
15206
14291
|
return _loadSegmentDirect;
|
|
@@ -15208,45 +14293,45 @@
|
|
|
15208
14293
|
}, {
|
|
15209
14294
|
key: "_reqAndBufferSegment",
|
|
15210
14295
|
value: function() {
|
|
15211
|
-
var _reqAndBufferSegment2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14296
|
+
var _reqAndBufferSegment2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee14(seg, audioSeg) {
|
|
15212
14297
|
var _this$_bufferService2;
|
|
15213
14298
|
var cc, discontinuity, responses, data, sn, start, stream, before, contiguous, segStart;
|
|
15214
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14299
|
+
return _regeneratorRuntime$1().wrap(function _callee14$(_context14) {
|
|
15215
14300
|
while (1)
|
|
15216
|
-
switch (
|
|
14301
|
+
switch (_context14.prev = _context14.next) {
|
|
15217
14302
|
case 0:
|
|
15218
14303
|
cc = seg ? seg.cc : audioSeg.cc;
|
|
15219
14304
|
discontinuity = this._prevSegCc !== cc;
|
|
15220
14305
|
responses = [];
|
|
15221
|
-
|
|
15222
|
-
|
|
14306
|
+
_context14.prev = 3;
|
|
14307
|
+
_context14.next = 6;
|
|
15223
14308
|
return this._segmentLoader.load(seg, audioSeg, discontinuity);
|
|
15224
14309
|
case 6:
|
|
15225
|
-
responses =
|
|
15226
|
-
|
|
14310
|
+
responses = _context14.sent;
|
|
14311
|
+
_context14.next = 14;
|
|
15227
14312
|
break;
|
|
15228
14313
|
case 9:
|
|
15229
|
-
|
|
15230
|
-
|
|
15231
|
-
|
|
15232
|
-
this._segmentLoader.error =
|
|
15233
|
-
throw
|
|
14314
|
+
_context14.prev = 9;
|
|
14315
|
+
_context14.t0 = _context14["catch"](3);
|
|
14316
|
+
_context14.t0.fatal = false;
|
|
14317
|
+
this._segmentLoader.error = _context14.t0;
|
|
14318
|
+
throw _context14.t0;
|
|
15234
14319
|
case 14:
|
|
15235
14320
|
if (responses[0]) {
|
|
15236
|
-
|
|
14321
|
+
_context14.next = 16;
|
|
15237
14322
|
break;
|
|
15238
14323
|
}
|
|
15239
|
-
return
|
|
14324
|
+
return _context14.abrupt("return");
|
|
15240
14325
|
case 16:
|
|
15241
|
-
|
|
14326
|
+
_context14.next = 18;
|
|
15242
14327
|
return (_this$_bufferService2 = this._bufferService).decryptBuffer.apply(_this$_bufferService2, _toConsumableArray$2(responses));
|
|
15243
14328
|
case 18:
|
|
15244
|
-
data =
|
|
14329
|
+
data = _context14.sent;
|
|
15245
14330
|
if (data) {
|
|
15246
|
-
|
|
14331
|
+
_context14.next = 21;
|
|
15247
14332
|
break;
|
|
15248
14333
|
}
|
|
15249
|
-
return
|
|
14334
|
+
return _context14.abrupt("return");
|
|
15250
14335
|
case 21:
|
|
15251
14336
|
sn = seg ? seg.sn : audioSeg.sn;
|
|
15252
14337
|
start = seg ? seg.start : audioSeg.start;
|
|
@@ -15260,26 +14345,26 @@
|
|
|
15260
14345
|
logger.warn("update the new playlist liveEdge, segment id=".concat(sn, ", buffer start=").concat(segStart, ", liveEdge=").concat(this._playlist.liveEdge));
|
|
15261
14346
|
start = segStart;
|
|
15262
14347
|
}
|
|
15263
|
-
|
|
14348
|
+
_context14.next = 30;
|
|
15264
14349
|
return this._bufferService.appendBuffer(seg, audioSeg, data[0], data[1], discontinuity, contiguous, start);
|
|
15265
14350
|
case 30:
|
|
15266
14351
|
this.emit(Event$1.APPEND_COST, {
|
|
15267
14352
|
elapsed: Date.now() - before,
|
|
15268
14353
|
url: seg.url
|
|
15269
14354
|
});
|
|
15270
|
-
|
|
14355
|
+
_context14.next = 33;
|
|
15271
14356
|
return this._bufferService.evictBuffer(this.config.bufferBehind);
|
|
15272
14357
|
case 33:
|
|
15273
14358
|
this._prevSegCc = cc;
|
|
15274
14359
|
this._prevSegSn = sn;
|
|
15275
|
-
return
|
|
14360
|
+
return _context14.abrupt("return", true);
|
|
15276
14361
|
case 36:
|
|
15277
14362
|
case "end":
|
|
15278
|
-
return
|
|
14363
|
+
return _context14.stop();
|
|
15279
14364
|
}
|
|
15280
|
-
},
|
|
14365
|
+
}, _callee14, this, [[3, 9]]);
|
|
15281
14366
|
}));
|
|
15282
|
-
function _reqAndBufferSegment(
|
|
14367
|
+
function _reqAndBufferSegment(_x10, _x11) {
|
|
15283
14368
|
return _reqAndBufferSegment2.apply(this, arguments);
|
|
15284
14369
|
}
|
|
15285
14370
|
return _reqAndBufferSegment;
|
|
@@ -15287,11 +14372,11 @@
|
|
|
15287
14372
|
}, {
|
|
15288
14373
|
key: "_onCheckQuotaExceeded",
|
|
15289
14374
|
value: function() {
|
|
15290
|
-
var _onCheckQuotaExceeded2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14375
|
+
var _onCheckQuotaExceeded2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee15() {
|
|
15291
14376
|
var seekTime, buffered, inBuffered, i, bufferBehind, mediaTime;
|
|
15292
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14377
|
+
return _regeneratorRuntime$1().wrap(function _callee15$(_context15) {
|
|
15293
14378
|
while (1)
|
|
15294
|
-
switch (
|
|
14379
|
+
switch (_context15.prev = _context15.next) {
|
|
15295
14380
|
case 0:
|
|
15296
14381
|
seekTime = this.media.currentTime;
|
|
15297
14382
|
buffered = this.media.buffered;
|
|
@@ -15299,37 +14384,37 @@
|
|
|
15299
14384
|
i = 0;
|
|
15300
14385
|
case 4:
|
|
15301
14386
|
if (!(i < buffered.length)) {
|
|
15302
|
-
|
|
14387
|
+
_context15.next = 11;
|
|
15303
14388
|
break;
|
|
15304
14389
|
}
|
|
15305
14390
|
if (!(buffered.start(0) >= seekTime && seekTime < buffered.end(i))) {
|
|
15306
|
-
|
|
14391
|
+
_context15.next = 8;
|
|
15307
14392
|
break;
|
|
15308
14393
|
}
|
|
15309
14394
|
inBuffered = true;
|
|
15310
|
-
return
|
|
14395
|
+
return _context15.abrupt("break", 11);
|
|
15311
14396
|
case 8:
|
|
15312
14397
|
i++;
|
|
15313
|
-
|
|
14398
|
+
_context15.next = 4;
|
|
15314
14399
|
break;
|
|
15315
14400
|
case 11:
|
|
15316
14401
|
if (!this._bufferService.isFull()) {
|
|
15317
|
-
|
|
14402
|
+
_context15.next = 17;
|
|
15318
14403
|
break;
|
|
15319
14404
|
}
|
|
15320
14405
|
bufferBehind = inBuffered ? this.config.bufferBehind : 5;
|
|
15321
14406
|
mediaTime = this.media.currentTime;
|
|
15322
14407
|
if (!(mediaTime - bufferBehind > 0)) {
|
|
15323
|
-
|
|
14408
|
+
_context15.next = 17;
|
|
15324
14409
|
break;
|
|
15325
14410
|
}
|
|
15326
|
-
|
|
14411
|
+
_context15.next = 17;
|
|
15327
14412
|
return this._bufferService.removeBuffer(0, mediaTime - bufferBehind);
|
|
15328
14413
|
case 17:
|
|
15329
14414
|
case "end":
|
|
15330
|
-
return
|
|
14415
|
+
return _context15.stop();
|
|
15331
14416
|
}
|
|
15332
|
-
},
|
|
14417
|
+
}, _callee15, this);
|
|
15333
14418
|
}));
|
|
15334
14419
|
function _onCheckQuotaExceeded() {
|
|
15335
14420
|
return _onCheckQuotaExceeded2.apply(this, arguments);
|
|
@@ -15347,22 +14432,22 @@
|
|
|
15347
14432
|
}, {
|
|
15348
14433
|
key: "_clear",
|
|
15349
14434
|
value: function() {
|
|
15350
|
-
var _clear2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
15351
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14435
|
+
var _clear2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee16() {
|
|
14436
|
+
return _regeneratorRuntime$1().wrap(function _callee16$(_context16) {
|
|
15352
14437
|
while (1)
|
|
15353
|
-
switch (
|
|
14438
|
+
switch (_context16.prev = _context16.next) {
|
|
15354
14439
|
case 0:
|
|
15355
14440
|
clearTimeout(this._disconnectTimer);
|
|
15356
14441
|
this._stopTick();
|
|
15357
|
-
|
|
14442
|
+
_context16.next = 4;
|
|
15358
14443
|
return Promise.all([this._segmentLoader.cancel(), this._manifestLoader.stopPoll()]);
|
|
15359
14444
|
case 4:
|
|
15360
14445
|
this._segmentProcessing = false;
|
|
15361
14446
|
case 5:
|
|
15362
14447
|
case "end":
|
|
15363
|
-
return
|
|
14448
|
+
return _context16.stop();
|
|
15364
14449
|
}
|
|
15365
|
-
},
|
|
14450
|
+
}, _callee16, this);
|
|
15366
14451
|
}));
|
|
15367
14452
|
function _clear() {
|
|
15368
14453
|
return _clear2.apply(this, arguments);
|
|
@@ -15372,14 +14457,14 @@
|
|
|
15372
14457
|
}, {
|
|
15373
14458
|
key: "_reset",
|
|
15374
14459
|
value: function() {
|
|
15375
|
-
var _reset2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function
|
|
14460
|
+
var _reset2 = _asyncToGenerator$1(/* @__PURE__ */ _regeneratorRuntime$1().mark(function _callee17() {
|
|
15376
14461
|
var _this$_seiService3;
|
|
15377
|
-
var reuseMse,
|
|
15378
|
-
return _regeneratorRuntime$1().wrap(function
|
|
14462
|
+
var reuseMse, _args17 = arguments;
|
|
14463
|
+
return _regeneratorRuntime$1().wrap(function _callee17$(_context17) {
|
|
15379
14464
|
while (1)
|
|
15380
|
-
switch (
|
|
14465
|
+
switch (_context17.prev = _context17.next) {
|
|
15381
14466
|
case 0:
|
|
15382
|
-
reuseMse =
|
|
14467
|
+
reuseMse = _args17.length > 0 && _args17[0] !== void 0 ? _args17[0] : false;
|
|
15383
14468
|
this._reloadOnPlay = false;
|
|
15384
14469
|
this._prevSegSn = null;
|
|
15385
14470
|
this._prevSegCc = null;
|
|
@@ -15388,15 +14473,15 @@
|
|
|
15388
14473
|
this._segmentLoader.reset();
|
|
15389
14474
|
(_this$_seiService3 = this._seiService) === null || _this$_seiService3 === void 0 ? void 0 : _this$_seiService3.reset();
|
|
15390
14475
|
this._stats.reset();
|
|
15391
|
-
|
|
14476
|
+
_context17.next = 11;
|
|
15392
14477
|
return this._clear();
|
|
15393
14478
|
case 11:
|
|
15394
|
-
return
|
|
14479
|
+
return _context17.abrupt("return", this._bufferService.reset(reuseMse));
|
|
15395
14480
|
case 12:
|
|
15396
14481
|
case "end":
|
|
15397
|
-
return
|
|
14482
|
+
return _context17.stop();
|
|
15398
14483
|
}
|
|
15399
|
-
},
|
|
14484
|
+
}, _callee17, this);
|
|
15400
14485
|
}));
|
|
15401
14486
|
function _reset() {
|
|
15402
14487
|
return _reset2.apply(this, arguments);
|
|
@@ -15477,8 +14562,8 @@
|
|
|
15477
14562
|
value: function _tryEos() {
|
|
15478
14563
|
var _this$_bufferService3, _this$_bufferService4;
|
|
15479
14564
|
var media = this.media;
|
|
15480
|
-
var _this$
|
|
15481
|
-
var eosAllowed =
|
|
14565
|
+
var _this$_playlist = this._playlist, nextSegment = _this$_playlist.nextSegment, lastSegment = _this$_playlist.lastSegment;
|
|
14566
|
+
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);
|
|
15482
14567
|
if (!eosAllowed) {
|
|
15483
14568
|
return;
|
|
15484
14569
|
}
|
|
@@ -15514,7 +14599,7 @@
|
|
|
15514
14599
|
}]);
|
|
15515
14600
|
return Hls2;
|
|
15516
14601
|
}(EventEmitter);
|
|
15517
|
-
_defineProperty$3(Hls, "version", "3.0.
|
|
14602
|
+
_defineProperty$3(Hls, "version", "3.0.19-rc.0");
|
|
15518
14603
|
try {
|
|
15519
14604
|
if (localStorage.getItem("xgd")) {
|
|
15520
14605
|
Hls.enableLogger();
|
|
@@ -15605,7 +14690,6 @@
|
|
|
15605
14690
|
}]);
|
|
15606
14691
|
return PluginExtension2;
|
|
15607
14692
|
}();
|
|
15608
|
-
var _excluded = ["currentTime"];
|
|
15609
14693
|
function parseSwitchUrlArgs(args, plugin) {
|
|
15610
14694
|
var player = plugin.player;
|
|
15611
14695
|
var curTime = player.currentTime;
|
|
@@ -15616,14 +14700,9 @@
|
|
|
15616
14700
|
case "boolean":
|
|
15617
14701
|
options.seamless = args;
|
|
15618
14702
|
break;
|
|
15619
|
-
case "object":
|
|
15620
|
-
|
|
15621
|
-
Object.assign(options, rest);
|
|
15622
|
-
if (typeof currentTime === "number") {
|
|
15623
|
-
options.startTime = currentTime;
|
|
15624
|
-
}
|
|
14703
|
+
case "object":
|
|
14704
|
+
Object.assign(options, args);
|
|
15625
14705
|
break;
|
|
15626
|
-
}
|
|
15627
14706
|
}
|
|
15628
14707
|
return options;
|
|
15629
14708
|
}
|
|
@@ -15633,11 +14712,10 @@
|
|
|
15633
14712
|
function HlsPlugin2() {
|
|
15634
14713
|
var _this;
|
|
15635
14714
|
_classCallCheck$3(this, HlsPlugin2);
|
|
15636
|
-
for (var _len = arguments.length,
|
|
15637
|
-
|
|
14715
|
+
for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
14716
|
+
_args[_key] = arguments[_key];
|
|
15638
14717
|
}
|
|
15639
|
-
_this = _super.call.apply(_super, [this].concat(
|
|
15640
|
-
_defineProperty$3(_assertThisInitialized$2(_this), "logger", logger);
|
|
14718
|
+
_this = _super.call.apply(_super, [this].concat(_args));
|
|
15641
14719
|
_defineProperty$3(_assertThisInitialized$2(_this), "hls", null);
|
|
15642
14720
|
_defineProperty$3(_assertThisInitialized$2(_this), "pluginExtension", null);
|
|
15643
14721
|
_defineProperty$3(_assertThisInitialized$2(_this), "getStats", function() {
|
|
@@ -15649,6 +14727,24 @@
|
|
|
15649
14727
|
var lang = _ref.lang;
|
|
15650
14728
|
(_this$hls2 = _this.hls) === null || _this$hls2 === void 0 ? void 0 : _this$hls2.switchSubtitleStream(lang);
|
|
15651
14729
|
});
|
|
14730
|
+
_defineProperty$3(_assertThisInitialized$2(_this), "_onSwitchURL", function(url, args) {
|
|
14731
|
+
return new Promise(function(resolve, reject) {
|
|
14732
|
+
var _assertThisInitialize = _assertThisInitialized$2(_this), player = _assertThisInitialize.player, hls = _assertThisInitialize.hls;
|
|
14733
|
+
if (hls) {
|
|
14734
|
+
var _this$player$config, _this$player$config$h;
|
|
14735
|
+
var options = parseSwitchUrlArgs(args, _assertThisInitialized$2(_this));
|
|
14736
|
+
player.config.url = url;
|
|
14737
|
+
hls.switchURL(url, options).then(function() {
|
|
14738
|
+
return resolve(true);
|
|
14739
|
+
}).catch(reject);
|
|
14740
|
+
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) {
|
|
14741
|
+
_this._keepPauseStatus();
|
|
14742
|
+
}
|
|
14743
|
+
} else {
|
|
14744
|
+
reject();
|
|
14745
|
+
}
|
|
14746
|
+
});
|
|
14747
|
+
});
|
|
15652
14748
|
_defineProperty$3(_assertThisInitialized$2(_this), "_keepPauseStatus", function() {
|
|
15653
14749
|
var paused = _this.player.paused;
|
|
15654
14750
|
if (!paused)
|
|
@@ -15673,8 +14769,8 @@
|
|
|
15673
14769
|
}, {
|
|
15674
14770
|
key: "softDecode",
|
|
15675
14771
|
get: function get() {
|
|
15676
|
-
var _this$player, _this$player$
|
|
15677
|
-
var mediaType = (_this$player = this.player) === null || _this$player === void 0 ? void 0 : (_this$player$
|
|
14772
|
+
var _this$player, _this$player$config2;
|
|
14773
|
+
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;
|
|
15678
14774
|
return !!mediaType && mediaType !== "video" && mediaType !== "audio";
|
|
15679
14775
|
}
|
|
15680
14776
|
}, {
|
|
@@ -15682,35 +14778,13 @@
|
|
|
15682
14778
|
value: function beforePlayerInit() {
|
|
15683
14779
|
var _this2 = this;
|
|
15684
14780
|
var config = this.player.config;
|
|
15685
|
-
var mediaElem = this.player.media || this.player.video;
|
|
15686
14781
|
var hlsOpts = config.hls || {};
|
|
15687
14782
|
if (!config.url && !config.__allowHlsEmptyUrl__ || !hlsOpts.preferMMS && MSE.isMMSOnly()) {
|
|
15688
14783
|
return;
|
|
15689
14784
|
}
|
|
15690
14785
|
if (this.hls)
|
|
15691
14786
|
this.hls.destroy();
|
|
15692
|
-
|
|
15693
|
-
if (!descriptor || descriptor.writable) {
|
|
15694
|
-
this.player.switchURL = function(url, args) {
|
|
15695
|
-
return new Promise(function(resolve, reject) {
|
|
15696
|
-
var player = _this2.player, hls = _this2.hls;
|
|
15697
|
-
if (hls) {
|
|
15698
|
-
var _this2$player$config, _this2$player$config$;
|
|
15699
|
-
var options = parseSwitchUrlArgs(args, _this2);
|
|
15700
|
-
player.config.url = url;
|
|
15701
|
-
hls.switchURL(url, options).then(function() {
|
|
15702
|
-
return resolve(true);
|
|
15703
|
-
}).catch(reject);
|
|
15704
|
-
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) {
|
|
15705
|
-
_this2._keepPauseStatus();
|
|
15706
|
-
}
|
|
15707
|
-
} else {
|
|
15708
|
-
reject();
|
|
15709
|
-
}
|
|
15710
|
-
});
|
|
15711
|
-
};
|
|
15712
|
-
}
|
|
15713
|
-
var onSwitchUrl = this.player.switchURL;
|
|
14787
|
+
this.player.switchURL = this._onSwitchURL;
|
|
15714
14788
|
this.player.handleSource = false;
|
|
15715
14789
|
hlsOpts.innerDegrade = hlsOpts.innerDegrade || config.innerDegrade;
|
|
15716
14790
|
if (hlsOpts.disconnectTime === null || hlsOpts.disconnectTime === void 0)
|
|
@@ -15718,7 +14792,7 @@
|
|
|
15718
14792
|
this.hls = new Hls(_objectSpread2$2({
|
|
15719
14793
|
softDecode: this.softDecode,
|
|
15720
14794
|
isLive: config.isLive,
|
|
15721
|
-
media:
|
|
14795
|
+
media: this.player.media || this.player.video,
|
|
15722
14796
|
startTime: config.startTime,
|
|
15723
14797
|
url: config.url
|
|
15724
14798
|
}, hlsOpts));
|
|
@@ -15736,7 +14810,7 @@
|
|
|
15736
14810
|
if (this.softDecode) {
|
|
15737
14811
|
this.pluginExtension = new PluginExtension(_objectSpread2$2({
|
|
15738
14812
|
isLive: config.isLive,
|
|
15739
|
-
media:
|
|
14813
|
+
media: this.player.video
|
|
15740
14814
|
}, hlsOpts), this);
|
|
15741
14815
|
this.player.forceDegradeToVideo = function() {
|
|
15742
14816
|
var _this2$pluginExtensio;
|
|
@@ -15753,8 +14827,8 @@
|
|
|
15753
14827
|
return (_this2$hls2 = _this2.hls) === null || _this2$hls2 === void 0 ? void 0 : _this2$hls2.replay();
|
|
15754
14828
|
});
|
|
15755
14829
|
}
|
|
15756
|
-
this.on(URL_CHANGE, onSwitchUrl);
|
|
15757
14830
|
this.on(SWITCH_SUBTITLE, this._onSwitchSubtitle);
|
|
14831
|
+
this.on(URL_CHANGE, this._onSwitchURL);
|
|
15758
14832
|
this.on(DESTROY, this.destroy.bind(this));
|
|
15759
14833
|
this._transError();
|
|
15760
14834
|
this._transCoreEvent(EVENT.TTFB);
|
|
@@ -15764,7 +14838,6 @@
|
|
|
15764
14838
|
this._transCoreEvent(EVENT.LOAD_RETRY);
|
|
15765
14839
|
this._transCoreEvent(EVENT.SOURCEBUFFER_CREATED);
|
|
15766
14840
|
this._transCoreEvent(EVENT.MEDIASOURCE_OPENED);
|
|
15767
|
-
this._transCoreEvent(EVENT.APPEND_BUFFER);
|
|
15768
14841
|
this._transCoreEvent(EVENT.REMOVE_BUFFER);
|
|
15769
14842
|
this._transCoreEvent(EVENT.BUFFEREOS);
|
|
15770
14843
|
this._transCoreEvent(EVENT.KEYFRAME);
|
|
@@ -15784,9 +14857,7 @@
|
|
|
15784
14857
|
this._transCoreEvent(Event$1.SUBTITLE_PLAYLIST);
|
|
15785
14858
|
this._transCoreEvent(Event$1.APPEND_COST);
|
|
15786
14859
|
if (config.url) {
|
|
15787
|
-
this.hls.load(config.url, {
|
|
15788
|
-
reuseMse: true
|
|
15789
|
-
}).catch(function(e) {
|
|
14860
|
+
this.hls.load(config.url, true).catch(function(e) {
|
|
15790
14861
|
});
|
|
15791
14862
|
}
|
|
15792
14863
|
}
|