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