@das-fed/ui 7.1.0-dev.1 → 7.1.0-dev.10

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 (191) hide show
  1. package/esm-map.json +3 -2
  2. package/package.json +5 -5
  3. package/packages/business-components/ai-panel/{index-8yffh0Id.js → index-DMJXZM7n.js} +1067 -1056
  4. package/packages/business-components/ai-panel/index-DMJXZM7n.js.gz +0 -0
  5. package/packages/business-components/ai-panel/{index-IzGl26KU.js → index-MqhMkLo9.js} +9 -9
  6. package/packages/business-components/ai-panel/index-MqhMkLo9.js.gz +0 -0
  7. package/packages/business-components/ai-panel/{index-OwRrV6K8.js → index-_q72oKSF.js} +63 -62
  8. package/packages/business-components/ai-panel/index-_q72oKSF.js.gz +0 -0
  9. package/packages/business-components/ai-panel/index.js +1 -1
  10. package/packages/business-components/app-container/style.css +1 -1
  11. package/packages/business-components/app-container/style.css.gz +0 -0
  12. package/packages/business-components/area-phone-select/index.d.ts +23 -23
  13. package/packages/business-components/area-phone-select/src/Index.vue.d.ts +2 -2
  14. package/packages/business-components/area-phone-select/src/area-popover/index.vue.d.ts +2 -2
  15. package/packages/business-components/device-panel/i18n/index.d.ts +40 -0
  16. package/packages/business-components/device-panel/index.js +20949 -19425
  17. package/packages/business-components/device-panel/index.js.gz +0 -0
  18. package/packages/business-components/device-panel/src/components/alarmDevicePanel/hooks/use-knowledge.d.ts +6 -0
  19. package/packages/business-components/device-panel/src/components/alarmDevicePanel/knowledge/Index.vue.d.ts +6 -0
  20. package/packages/business-components/device-panel/src/components/alarmDevicePanel/knowledge/apis.d.ts +5 -0
  21. package/packages/business-components/device-panel/src/components/alarmDevicePanel/knowledge/components/use-info/Info.vue.d.ts +44 -0
  22. package/packages/business-components/device-panel/src/components/alarmDevicePanel/knowledge/components/use-info/downloadFile.d.ts +8 -0
  23. package/packages/business-components/device-panel/src/components/alarmDevicePanel/knowledge/components/use-info/info.d.ts +24 -0
  24. package/packages/business-components/device-panel/src/components/alarmDevicePanel/knowledge/utils/get-file-details.d.ts +2 -0
  25. package/packages/business-components/device-panel/src/components/devicePanelModal/hooks/use-knowledge.d.ts +6 -0
  26. package/packages/business-components/device-panel/src/components/devicePanelModal/knowledge/Index.vue.d.ts +6 -0
  27. package/packages/business-components/device-panel/src/components/devicePanelModal/knowledge/apis.d.ts +5 -0
  28. package/packages/business-components/device-panel/src/components/devicePanelModal/knowledge/components/use-info/Info.vue.d.ts +44 -0
  29. package/packages/business-components/device-panel/src/components/devicePanelModal/knowledge/components/use-info/downloadFile.d.ts +8 -0
  30. package/packages/business-components/device-panel/src/components/devicePanelModal/knowledge/components/use-info/info.d.ts +24 -0
  31. package/packages/business-components/device-panel/src/components/devicePanelModal/knowledge/utils/get-file-details.d.ts +2 -0
  32. package/packages/business-components/device-panel/style.css +1 -1
  33. package/packages/business-components/device-panel/style.css.gz +0 -0
  34. package/packages/business-components/echarts/index.js +2056 -2049
  35. package/packages/business-components/echarts/index.js.gz +0 -0
  36. package/packages/business-components/index.d.ts +1 -0
  37. package/packages/business-components/index.js +1 -0
  38. package/packages/business-components/payment/index.d.ts +9 -11
  39. package/packages/business-components/payment/index.js +122 -129
  40. package/packages/business-components/payment/index.js.gz +0 -0
  41. package/packages/business-components/payment/style.css +1 -1
  42. package/packages/business-components/payment/type.d.ts +2 -0
  43. package/packages/business-components/process-configuration/index.js +46 -46
  44. package/packages/business-components/process-configuration/index.js.gz +0 -0
  45. package/packages/business-components/process-form/index.js +675 -655
  46. package/packages/business-components/process-form/index.js.gz +0 -0
  47. package/packages/business-components/process-form/src/utils/common-methods.d.ts +6 -0
  48. package/packages/business-components/process-search-form/index.js +73 -73
  49. package/packages/business-components/process-search-form/index.js.gz +0 -0
  50. package/packages/business-components/process-table/index.js +215 -213
  51. package/packages/business-components/process-table/index.js.gz +0 -0
  52. package/packages/business-components/update-confirm-dialog/i18n/index.d.ts +23 -0
  53. package/packages/business-components/update-confirm-dialog/index.d.ts +61 -0
  54. package/packages/business-components/update-confirm-dialog/index.js +105 -0
  55. package/packages/business-components/update-confirm-dialog/index.js.gz +0 -0
  56. package/packages/business-components/update-confirm-dialog/src/App.vue.d.ts +11 -0
  57. package/packages/business-components/update-confirm-dialog/src/type.d.ts +4 -0
  58. package/packages/business-components/urgent-panel/index.js +1104 -1096
  59. package/packages/business-components/urgent-panel/index.js.gz +0 -0
  60. package/packages/business-components/user-org-dialog/index.js +243 -240
  61. package/packages/business-components/user-org-dialog/index.js.gz +0 -0
  62. package/packages/business-components/video-dialog/index.d.ts +10 -0
  63. package/packages/business-components/video-dialog/index.js +357 -337
  64. package/packages/business-components/video-dialog/index.js.gz +0 -0
  65. package/packages/business-components/video-dialog/src/api.d.ts +1 -0
  66. package/packages/business-components/video-dialog/src/component/Player/index.vue.d.ts +2 -0
  67. package/packages/business-components/video-dialog/src/hooks/use-video/PlayerProvider.d.ts +6 -0
  68. package/packages/business-components/video-dialog/src/index.vue.d.ts +2 -0
  69. package/packages/business-components/video-dialog/src/type.d.ts +7 -1
  70. package/packages/business-components/video-dialog/style.css +1 -1
  71. package/packages/business-components/video-dialog/style.css.gz +0 -0
  72. package/packages/components/autocomplete/index.d.ts +15 -15
  73. package/packages/components/autocomplete/index.js +12 -6
  74. package/packages/components/autocomplete/index.js.gz +0 -0
  75. package/packages/components/autocomplete/src/index.vue.d.ts +2 -2
  76. package/packages/components/calendar/index.js +99 -99
  77. package/packages/components/calendar/index.js.gz +0 -0
  78. package/packages/components/cascader/index.js +2 -2
  79. package/packages/components/cascader/index.js.gz +0 -0
  80. package/packages/components/checkbox/index.d.ts +15 -15
  81. package/packages/components/checkbox/index.js +30 -30
  82. package/packages/components/checkbox/index.js.gz +0 -0
  83. package/packages/components/checkbox/src/Index.vue.d.ts +2 -2
  84. package/packages/components/color-picker/index.d.ts +8 -8
  85. package/packages/components/color-picker/src/Index.vue.d.ts +2 -2
  86. package/packages/components/custom-search-item/index.d.ts +15 -15
  87. package/packages/components/custom-search-item/src/Index.vue.d.ts +2 -2
  88. package/packages/components/date-picker/index.js +212 -212
  89. package/packages/components/date-picker/index.js.gz +0 -0
  90. package/packages/components/dialog/index.d.ts +6 -3
  91. package/packages/components/dialog/index.js +281 -184
  92. package/packages/components/dialog/index.js.gz +0 -0
  93. package/packages/components/dialog/src/Index.vue.d.ts +2 -1
  94. package/packages/components/dialog/src/directives/dialogResize.d.ts +2 -0
  95. package/packages/components/dialog/src/type.d.ts +2 -0
  96. package/packages/components/dialog/style.css +1 -1
  97. package/packages/components/dialog/style.css.gz +0 -0
  98. package/packages/components/dimple-layout/index.js +77 -75
  99. package/packages/components/dimple-layout/index.js.gz +0 -0
  100. package/packages/components/dropdown/index.js +25 -24
  101. package/packages/components/dropdown/index.js.gz +0 -0
  102. package/packages/components/edit-table/index.js +398 -397
  103. package/packages/components/edit-table/index.js.gz +0 -0
  104. package/packages/components/error-overlay-model/index.js +47 -45
  105. package/packages/components/error-overlay-model/index.js.gz +0 -0
  106. package/packages/components/form-item/index.js +67 -67
  107. package/packages/components/form-item/index.js.gz +0 -0
  108. package/packages/components/hls-player/index.js +496 -485
  109. package/packages/components/hls-player/index.js.gz +0 -0
  110. package/packages/components/hls-player/src/type.d.ts +3 -0
  111. package/packages/components/hls-player/style.css +1 -1
  112. package/packages/components/hls-player/style.css.gz +0 -0
  113. package/packages/components/image-upload/index.js +147 -143
  114. package/packages/components/image-upload/index.js.gz +0 -0
  115. package/packages/components/image-viewer/index.js +297 -293
  116. package/packages/components/image-viewer/index.js.gz +0 -0
  117. package/packages/components/input/index.d.ts +5 -5
  118. package/packages/components/input/index.js +52 -52
  119. package/packages/components/input/index.js.gz +0 -0
  120. package/packages/components/input/src/index.vue.d.ts +2 -2
  121. package/packages/components/input-dialog-select/index.d.ts +2 -2
  122. package/packages/components/input-dialog-select/src/Index.vue.d.ts +2 -2
  123. package/packages/components/input-number/index.d.ts +8 -8
  124. package/packages/components/input-number/index.js +26 -26
  125. package/packages/components/input-number/index.js.gz +0 -0
  126. package/packages/components/input-number/src/App.vue.d.ts +2 -2
  127. package/packages/components/live-player/index.d.ts +2 -0
  128. package/packages/components/live-player/index.js +988 -977
  129. package/packages/components/live-player/index.js.gz +0 -0
  130. package/packages/components/live-player/src/type.d.ts +3 -0
  131. package/packages/components/live-player/style.css +1 -1
  132. package/packages/components/map/index.js +421 -415
  133. package/packages/components/map/index.js.gz +0 -0
  134. package/packages/components/menu-aside/index.js +1 -1
  135. package/packages/components/menu-aside/index.js.gz +0 -0
  136. package/packages/components/message/index.js +6 -6
  137. package/packages/components/message/index.js.gz +0 -0
  138. package/packages/components/popover/index.js +12 -12
  139. package/packages/components/popover/index.js.gz +0 -0
  140. package/packages/components/radio/index.d.ts +15 -15
  141. package/packages/components/radio/src/Index.vue.d.ts +2 -2
  142. package/packages/components/radio-tabs/index.js +34 -34
  143. package/packages/components/radio-tabs/index.js.gz +0 -0
  144. package/packages/components/rich-editor/index.d.ts +8 -8
  145. package/packages/components/rich-editor/index.js +4613 -4583
  146. package/packages/components/rich-editor/index.js.gz +0 -0
  147. package/packages/components/rich-editor/src/Index.vue.d.ts +2 -2
  148. package/packages/components/scrollbar/index.d.ts +9 -3
  149. package/packages/components/scrollbar/index.js +394 -390
  150. package/packages/components/scrollbar/index.js.gz +0 -0
  151. package/packages/components/scrollbar/src/scrollbar.vue.d.ts +3 -1
  152. package/packages/components/scrollbar/style.css +1 -1
  153. package/packages/components/scrollbar/style.css.gz +0 -0
  154. package/packages/components/search/index.d.ts +2 -2
  155. package/packages/components/search/index.js +24 -24
  156. package/packages/components/search/index.js.gz +0 -0
  157. package/packages/components/search/src/Index.vue.d.ts +2 -2
  158. package/packages/components/search-form/index.js +175 -174
  159. package/packages/components/search-form/index.js.gz +0 -0
  160. package/packages/components/search-form/style.css +1 -1
  161. package/packages/components/search-form/style.css.gz +0 -0
  162. package/packages/components/select/index.js +60 -60
  163. package/packages/components/select/index.js.gz +0 -0
  164. package/packages/components/select-list/index.js +9 -5
  165. package/packages/components/select-list/index.js.gz +0 -0
  166. package/packages/components/special-range-picker-month/index.d.ts +2 -2
  167. package/packages/components/special-range-picker-month/index.js +16 -14
  168. package/packages/components/special-range-picker-month/index.js.gz +0 -0
  169. package/packages/components/special-range-picker-month/src/Index.vue.d.ts +2 -2
  170. package/packages/components/special-range-picker-year/index.d.ts +2 -2
  171. package/packages/components/special-range-picker-year/index.js +53 -51
  172. package/packages/components/special-range-picker-year/index.js.gz +0 -0
  173. package/packages/components/special-range-picker-year/src/Index.vue.d.ts +2 -2
  174. package/packages/components/spin/index.js +33 -33
  175. package/packages/components/spin/index.js.gz +0 -0
  176. package/packages/components/split-panel/index.js +129 -128
  177. package/packages/components/split-panel/index.js.gz +0 -0
  178. package/packages/components/table/index.js +179 -178
  179. package/packages/components/table/index.js.gz +0 -0
  180. package/packages/components/time-line/index.js +1 -1
  181. package/packages/components/time-line/index.js.gz +0 -0
  182. package/packages/components/tree-select/index.js +1 -1
  183. package/packages/components/tree-select/index.js.gz +0 -0
  184. package/packages/components/tree-select/src/App.vue.d.ts +2 -2
  185. package/packages/components/tree-table/index.js +2 -2
  186. package/packages/components/tree-table/index.js.gz +0 -0
  187. package/packages/components/tree-v2/index.js +1117 -1093
  188. package/packages/components/tree-v2/index.js.gz +0 -0
  189. package/packages/business-components/ai-panel/index-8yffh0Id.js.gz +0 -0
  190. package/packages/business-components/ai-panel/index-IzGl26KU.js.gz +0 -0
  191. package/packages/business-components/ai-panel/index-OwRrV6K8.js.gz +0 -0
@@ -1,15 +1,15 @@
1
1
  import '@das-fed/ui/packages/components/hls-player/style.css';
2
- import { defineComponent as Ta, useCssVars as ya, toRefs as va, computed as Sa, ref as Se, onMounted as Aa, onBeforeUnmount as xa, createElementBlock as St, openBlock as At, Fragment as La, createCommentVNode as nt, withDirectives as Ia, unref as at, createElementVNode as ki, normalizeClass as Ra } from "vue";
2
+ import { defineComponent as Ta, useCssVars as ya, toRefs as va, ref as Ee, computed as Sa, onMounted as Aa, onBeforeUnmount as xa, createElementBlock as St, openBlock as At, Fragment as La, createCommentVNode as nt, withDirectives as Ia, unref as at, createElementVNode as ki, normalizeClass as Ra } from "vue";
3
3
  import { withInstall as ba } from "@das-fed/utils/with-install/index";
4
4
  import { t as _i, setI18nRule as Da } from "@das-fed/web/packages/i18n/index";
5
5
  import { vDasLoading as Ca } from "@das-fed/ui/packages/components/loading/index";
6
6
  import { useModelValue as Pa } from "@das-fed/utils/vue";
7
- const U = Number.isFinite || function(a) {
7
+ const B = Number.isFinite || function(a) {
8
8
  return typeof a == "number" && isFinite(a);
9
9
  }, ka = Number.isSafeInteger || function(a) {
10
10
  return typeof a == "number" && Math.abs(a) <= _a;
11
11
  }, _a = Number.MAX_SAFE_INTEGER || 9007199254740991;
12
- let $ = /* @__PURE__ */ function(a) {
12
+ let V = /* @__PURE__ */ function(a) {
13
13
  return a.NETWORK_ERROR = "networkError", a.MEDIA_ERROR = "mediaError", a.KEY_SYSTEM_ERROR = "keySystemError", a.MUX_ERROR = "muxError", a.OTHER_ERROR = "otherError", a;
14
14
  }({}), b = /* @__PURE__ */ function(a) {
15
15
  return a.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", a.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", a.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", a.KEY_SYSTEM_NO_CONFIGURED_LICENSE = "keySystemNoConfiguredLicense", a.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", a.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = "keySystemServerCertificateRequestFailed", a.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = "keySystemServerCertificateUpdateFailed", a.KEY_SYSTEM_SESSION_UPDATE_FAILED = "keySystemSessionUpdateFailed", a.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = "keySystemStatusOutputRestricted", a.KEY_SYSTEM_STATUS_INTERNAL_ERROR = "keySystemStatusInternalError", a.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR = "keySystemDestroyMediaKeysError", a.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR = "keySystemDestroyCloseSessionError", a.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR = "keySystemDestroyRemoveSessionError", a.MANIFEST_LOAD_ERROR = "manifestLoadError", a.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", a.MANIFEST_PARSING_ERROR = "manifestParsingError", a.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", a.LEVEL_EMPTY_ERROR = "levelEmptyError", a.LEVEL_LOAD_ERROR = "levelLoadError", a.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", a.LEVEL_PARSING_ERROR = "levelParsingError", a.LEVEL_SWITCH_ERROR = "levelSwitchError", a.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", a.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", a.SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", a.SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", a.FRAG_LOAD_ERROR = "fragLoadError", a.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", a.FRAG_DECRYPT_ERROR = "fragDecryptError", a.FRAG_PARSING_ERROR = "fragParsingError", a.FRAG_GAP = "fragGap", a.REMUX_ALLOC_ERROR = "remuxAllocError", a.KEY_LOAD_ERROR = "keyLoadError", a.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", a.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", a.BUFFER_INCOMPATIBLE_CODECS_ERROR = "bufferIncompatibleCodecsError", a.BUFFER_APPEND_ERROR = "bufferAppendError", a.BUFFER_APPENDING_ERROR = "bufferAppendingError", a.BUFFER_STALLED_ERROR = "bufferStalledError", a.BUFFER_FULL_ERROR = "bufferFullError", a.BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", a.BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", a.ASSET_LIST_LOAD_ERROR = "assetListLoadError", a.ASSET_LIST_LOAD_TIMEOUT = "assetListLoadTimeout", a.ASSET_LIST_PARSING_ERROR = "assetListParsingError", a.INTERSTITIAL_ASSET_ITEM_ERROR = "interstitialAssetItemError", a.INTERNAL_EXCEPTION = "internalException", a.INTERNAL_ABORTED = "aborted", a.ATTACH_MEDIA_ERROR = "attachMediaError", a.UNKNOWN = "unknown", a;
@@ -430,7 +430,7 @@ class ys extends Xr {
430
430
  }
431
431
  if (this.byteRange) {
432
432
  const e = this.byteRange[0], t = this.byteRange[1];
433
- if (U(e) && U(t))
433
+ if (B(e) && B(t))
434
434
  return t - e;
435
435
  }
436
436
  return null;
@@ -465,7 +465,7 @@ class ys extends Xr {
465
465
  get endProgramDateTime() {
466
466
  if (this.programDateTime === null)
467
467
  return null;
468
- const e = U(this.duration) ? this.duration : 0;
468
+ const e = B(this.duration) ? this.duration : 0;
469
469
  return this.programDateTime + e * 1e3;
470
470
  }
471
471
  get encrypted() {
@@ -483,7 +483,7 @@ class ys extends Xr {
483
483
  return this._programDateTime === null && this.rawProgramDateTime && (this.programDateTime = Date.parse(this.rawProgramDateTime)), this._programDateTime;
484
484
  }
485
485
  set programDateTime(e) {
486
- if (!U(e)) {
486
+ if (!B(e)) {
487
487
  this._programDateTime = this.rawProgramDateTime = null;
488
488
  return;
489
489
  }
@@ -861,7 +861,7 @@ function Za(a, e, t) {
861
861
  if (u) {
862
862
  const y = u[0];
863
863
  let S = W(u, 4);
864
- y === 1 && (S === Mi ? t.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time") : (S *= Mi + 1, S += W(u, 8))), U(S) && (!U(h.start) || S < h.start) && (h.start = S);
864
+ y === 1 && (S === Mi ? t.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time") : (S *= Mi + 1, S += W(u, 8))), B(S) && (!B(h.start) || S < h.start) && (h.start = S);
865
865
  }
866
866
  const d = l.default, f = W(o, 0) | (d == null ? void 0 : d.flags);
867
867
  let g = (d == null ? void 0 : d.duration) || 0;
@@ -871,10 +871,10 @@ function Za(a, e, t) {
871
871
  for (let y = 0; y < E.length; y++) {
872
872
  const S = E[y], L = W(S, 4), C = h.sampleCount;
873
873
  h.sampleCount += L;
874
- const x = S[3] & 1, R = S[3] & 4, D = S[2] & 1, A = S[2] & 2, k = S[2] & 4, _ = S[2] & 8;
875
- let K = 8, O = L;
876
- for (x && (K += 4), R && L && (!(S[K + 1] & 1) && h.keyFrameIndex === void 0 && (h.keyFrameIndex = C), K += 4, D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), _ && (K += 4), p += v, T += v, O--); O--; )
877
- D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), k && (S[K + 1] & 1 || h.keyFrameIndex === void 0 && (h.keyFrameIndex = h.sampleCount - (O + 1), h.keyFrameStart = p), K += 4), _ && (K += 4), p += v, T += v;
874
+ const x = S[3] & 1, R = S[3] & 4, D = S[2] & 1, A = S[2] & 2, k = S[2] & 4, O = S[2] & 8;
875
+ let K = 8, U = L;
876
+ for (x && (K += 4), R && L && (!(S[K + 1] & 1) && h.keyFrameIndex === void 0 && (h.keyFrameIndex = C), K += 4, D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), O && (K += 4), p += v, T += v, U--); U--; )
877
+ D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), k && (S[K + 1] & 1 || h.keyFrameIndex === void 0 && (h.keyFrameIndex = h.sampleCount - (U + 1), h.keyFrameStart = p), K += 4), O && (K += 4), p += v, T += v;
878
878
  !T && g && (T += g * L);
879
879
  }
880
880
  h.duration += T;
@@ -890,7 +890,7 @@ function Za(a, e, t) {
890
890
  n = Math.max(n, h + l.earliestPresentationTime / l.timescale);
891
891
  }
892
892
  }
893
- n && U(n) && Object.keys(s).forEach((c) => {
893
+ n && B(n) && Object.keys(s).forEach((c) => {
894
894
  s[c].duration || (s[c].duration = n * s[c].timescale - s[c].start);
895
895
  });
896
896
  }
@@ -930,21 +930,21 @@ function Ni(a, e) {
930
930
  let x = 8;
931
931
  g === r && (p && (x += 8), T && (x += 4), v && (y = W(f, x), x += 4), S && (L = W(f, x), x += 4), C && (x += 4), e.type === "video" && (n = fs(e.codec)), z(u, ["trun"]).map((R) => {
932
932
  const D = R[0], A = W(R, 0) & 16777215, k = (A & 1) !== 0;
933
- let _ = 0;
934
- const K = (A & 4) !== 0, O = (A & 256) !== 0;
935
- let B = 0;
936
- const M = (A & 512) !== 0;
937
- let V = 0;
938
- const F = (A & 1024) !== 0, Y = (A & 2048) !== 0;
933
+ let O = 0;
934
+ const K = (A & 4) !== 0, U = (A & 256) !== 0;
935
+ let N = 0;
936
+ const _ = (A & 512) !== 0;
937
+ let $ = 0;
938
+ const w = (A & 1024) !== 0, Y = (A & 2048) !== 0;
939
939
  let H = 0;
940
- const N = W(R, 4);
941
- let w = 8;
942
- k && (_ = W(R, w), w += 4), K && (w += 4);
943
- let q = _ + l;
944
- for (let X = 0; X < N; X++) {
945
- if (O ? (B = W(R, w), w += 4) : B = y, M ? (V = W(R, w), w += 4) : V = L, F && (w += 4), Y && (D === 0 ? H = W(R, w) : H = tn(R, w), w += 4), e.type === re.VIDEO) {
940
+ const M = W(R, 4);
941
+ let F = 8;
942
+ k && (O = W(R, F), F += 4), K && (F += 4);
943
+ let q = O + l;
944
+ for (let X = 0; X < M; X++) {
945
+ if (U ? (N = W(R, F), F += 4) : N = y, _ ? ($ = W(R, F), F += 4) : $ = L, w && (F += 4), Y && (D === 0 ? H = W(R, F) : H = tn(R, F), F += 4), e.type === re.VIDEO) {
946
946
  let te = 0;
947
- for (; te < V; ) {
947
+ for (; te < $; ) {
948
948
  const Z = W(s, q);
949
949
  if (q += 4, eo(n, s[q])) {
950
950
  const ae = s.subarray(q, q + Z);
@@ -953,7 +953,7 @@ function Ni(a, e) {
953
953
  q += Z, te += Z + 4;
954
954
  }
955
955
  }
956
- a += B / i;
956
+ a += N / i;
957
957
  }
958
958
  }));
959
959
  });
@@ -1359,7 +1359,7 @@ function co(a, e, t, s, i, r) {
1359
1359
  return !0;
1360
1360
  }
1361
1361
  return n !== void 0 && // Force media capabilities check for HEVC to avoid failure on Windows
1362
- (n.split(",").some((d) => fs(d)) || a.width > 1920 && a.height > 1088 || a.height > 1920 && a.width > 1088 || a.frameRate > Math.max(s, 30) || a.videoRange !== "SDR" && a.videoRange !== t || a.bitrate > Math.max(i, 8e6)) || !!u && U(h) && Object.keys(u).some((d) => parseInt(d) > h);
1362
+ (n.split(",").some((d) => fs(d)) || a.width > 1920 && a.height > 1088 || a.height > 1920 && a.width > 1088 || a.frameRate > Math.max(s, 30) || a.videoRange !== "SDR" && a.videoRange !== t || a.bitrate > Math.max(i, 8e6)) || !!u && B(h) && Object.keys(u).some((d) => parseInt(d) > h);
1363
1363
  }
1364
1364
  function ln(a, e, t, s = {}) {
1365
1365
  const i = a.videoCodec;
@@ -1611,9 +1611,9 @@ function vo(a, e, t, s, i) {
1611
1611
  const D = a[r[R]];
1612
1612
  h || (h = D.channels[2] > 0), d = Math.min(d, D.minHeight), f = Math.min(f, D.minFramerate), g = Math.min(g, D.minBitrate), y.filter((k) => D.videoRanges[k] > 0).length > 0 && (u = !0);
1613
1613
  }
1614
- d = U(d) ? d : 0, f = U(f) ? f : 0;
1614
+ d = B(d) ? d : 0, f = B(f) ? f : 0;
1615
1615
  const S = Math.max(1080, d), L = Math.max(30, f);
1616
- g = U(g) ? g : t, t = Math.max(g, t), u || (e = void 0);
1616
+ g = B(g) ? g : t, t = Math.max(g, t), u || (e = void 0);
1617
1617
  const C = r.length > 1;
1618
1618
  return {
1619
1619
  codecSet: r.reduce((R, D) => {
@@ -1822,33 +1822,33 @@ class Io extends we {
1822
1822
  if (d <= Math.max(y, 1e3 * (u / (S * 2))))
1823
1823
  return;
1824
1824
  const L = v ? v.len / S : 0, C = h.loading.first ? h.loading.first - h.loading.start : -1, x = h.loaded && C > -1, R = this.getBwEstimate(), D = n.levels, A = D[g], k = Math.max(h.loaded, Math.round(u * (i.bitrate || A.averageBitrate) / 8));
1825
- let _ = x ? d - C : d;
1826
- _ < 1 && x && (_ = Math.min(d, h.loaded * 8 / R));
1827
- const K = x ? h.loaded * 1e3 / _ : 0, O = y / 1e3, B = K ? (k - h.loaded) / K : k * 8 / R + O;
1828
- if (B <= L)
1825
+ let O = x ? d - C : d;
1826
+ O < 1 && x && (O = Math.min(d, h.loaded * 8 / R));
1827
+ const K = x ? h.loaded * 1e3 / O : 0, U = y / 1e3, N = K ? (k - h.loaded) / K : k * 8 / R + U;
1828
+ if (N <= L)
1829
1829
  return;
1830
- const M = K ? K * 8 : R, V = ((s = (t == null ? void 0 : t.details) || this.hls.latestLevelDetails) == null ? void 0 : s.live) === !0, F = this.hls.config.abrBandWidthUpFactor;
1830
+ const _ = K ? K * 8 : R, $ = ((s = (t == null ? void 0 : t.details) || this.hls.latestLevelDetails) == null ? void 0 : s.live) === !0, w = this.hls.config.abrBandWidthUpFactor;
1831
1831
  let Y = Number.POSITIVE_INFINITY, H;
1832
1832
  for (H = g - 1; H > f; H--) {
1833
- const X = D[H].maxBitrate, te = !D[H].details || V;
1834
- if (Y = this.getTimeToLoadFrag(O, M, u * X, te), Y < Math.min(L, u + O))
1833
+ const X = D[H].maxBitrate, te = !D[H].details || $;
1834
+ if (Y = this.getTimeToLoadFrag(U, _, u * X, te), Y < Math.min(L, u + U))
1835
1835
  break;
1836
1836
  }
1837
- if (Y >= B || Y > u * 10)
1837
+ if (Y >= N || Y > u * 10)
1838
1838
  return;
1839
1839
  x ? this.bwEstimator.sample(d - Math.min(y, C), h.loaded) : this.bwEstimator.sampleTTFB(d);
1840
- const N = D[H].maxBitrate;
1841
- this.getBwEstimate() * F > N && this.resetEstimator(N);
1842
- const w = this.findBestLevel(N, f, H, 0, L, 1, 1);
1843
- w > -1 && (H = w), this.warn(`Fragment ${i.sn}${r ? " part " + r.index : ""} of level ${g} is loading too slowly;
1840
+ const M = D[H].maxBitrate;
1841
+ this.getBwEstimate() * w > M && this.resetEstimator(M);
1842
+ const F = this.findBestLevel(M, f, H, 0, L, 1, 1);
1843
+ F > -1 && (H = F), this.warn(`Fragment ${i.sn}${r ? " part " + r.index : ""} of level ${g} is loading too slowly;
1844
1844
  Fragment duration: ${i.duration.toFixed(3)}
1845
1845
  Time to underbuffer: ${L.toFixed(3)} s
1846
- Estimated load time for current fragment: ${B.toFixed(3)} s
1846
+ Estimated load time for current fragment: ${N.toFixed(3)} s
1847
1847
  Estimated load time for down switch fragment: ${Y.toFixed(3)} s
1848
1848
  TTFB estimate: ${C | 0} ms
1849
- Current BW estimate: ${U(R) ? R | 0 : "Unknown"} bps
1849
+ Current BW estimate: ${B(R) ? R | 0 : "Unknown"} bps
1850
1850
  New BW estimate: ${this.getBwEstimate() | 0} bps
1851
- Switching to level ${H} @ ${N | 0} bps`), n.nextLoadLevel = n.nextAutoLevel = H, this.clearTimer();
1851
+ Switching to level ${H} @ ${M | 0} bps`), n.nextLoadLevel = n.nextAutoLevel = H, this.clearTimer();
1852
1852
  const q = () => {
1853
1853
  if (this.clearTimer(), this.fragCurrent === i && this.hls.loadLevel === H && H > 0) {
1854
1854
  const X = this.getStarvationDelay();
@@ -1860,7 +1860,7 @@ class Io extends we {
1860
1860
  }
1861
1861
  }
1862
1862
  };
1863
- p || B > Y * 2 ? q() : this.timer = self.setInterval(q, Y * 1e3), n.trigger(m.FRAG_LOAD_EMERGENCY_ABORTED, {
1863
+ p || N > Y * 2 ? q() : this.timer = self.setInterval(q, Y * 1e3), n.trigger(m.FRAG_LOAD_EMERGENCY_ABORTED, {
1864
1864
  frag: i,
1865
1865
  part: r,
1866
1866
  stats: h
@@ -1943,7 +1943,7 @@ class Io extends we {
1943
1943
  const s = this.hls.config, {
1944
1944
  loading: i
1945
1945
  } = t.stats, r = i.end - i.first;
1946
- U(r) && (this.lastLevelLoadSec = r / 1e3), t.details.live ? this.bwEstimator.update(s.abrEwmaSlowLive, s.abrEwmaFastLive) : this.bwEstimator.update(s.abrEwmaSlowVoD, s.abrEwmaFastVoD), this.timer > -1 && this._abandonRulesCheck(t.levelInfo);
1946
+ B(r) && (this.lastLevelLoadSec = r / 1e3), t.details.live ? this.bwEstimator.update(s.abrEwmaSlowLive, s.abrEwmaFastLive) : this.bwEstimator.update(s.abrEwmaSlowVoD, s.abrEwmaFastVoD), this.timer > -1 && this._abandonRulesCheck(t.levelInfo);
1947
1947
  }
1948
1948
  onFragLoaded(e, {
1949
1949
  frag: t,
@@ -2078,51 +2078,51 @@ class Io extends we {
2078
2078
  if (S) {
2079
2079
  if (this.firstSelection !== -1)
2080
2080
  return this.firstSelection;
2081
- const V = this.codecTiers || (this.codecTiers = So(g, A, t, s)), F = vo(V, C, e, R, D), {
2081
+ const $ = this.codecTiers || (this.codecTiers = So(g, A, t, s)), w = vo($, C, e, R, D), {
2082
2082
  codecSet: Y,
2083
2083
  videoRanges: H,
2084
- minFramerate: N,
2085
- minBitrate: w,
2084
+ minFramerate: M,
2085
+ minBitrate: F,
2086
2086
  minIndex: q,
2087
2087
  preferHDR: X
2088
- } = F;
2089
- k = q, L = Y, C = X ? H[H.length - 1] : H[0], x = N, e = Math.max(e, w), this.log(`picked start tier ${ne(F)}`);
2088
+ } = w;
2089
+ k = q, L = Y, C = X ? H[H.length - 1] : H[0], x = M, e = Math.max(e, F), this.log(`picked start tier ${ne(w)}`);
2090
2090
  } else
2091
2091
  L = v == null ? void 0 : v.codecSet, C = v == null ? void 0 : v.videoRange;
2092
- const _ = f ? f.duration : d ? d.duration : 0, K = this.bwEstimator.getEstimateTTFB() / 1e3, O = [];
2093
- for (let V = s; V >= t; V--) {
2094
- var B, M;
2095
- const F = g[V], Y = V > u;
2096
- if (!F)
2092
+ const O = f ? f.duration : d ? d.duration : 0, K = this.bwEstimator.getEstimateTTFB() / 1e3, U = [];
2093
+ for (let $ = s; $ >= t; $--) {
2094
+ var N, _;
2095
+ const w = g[$], Y = $ > u;
2096
+ if (!w)
2097
2097
  continue;
2098
- if (T.useMediaCapabilities && !F.supportedResult && !F.supportedPromise) {
2098
+ if (T.useMediaCapabilities && !w.supportedResult && !w.supportedPromise) {
2099
2099
  const Z = navigator.mediaCapabilities;
2100
- typeof (Z == null ? void 0 : Z.decodingInfo) == "function" && co(F, A, C, x, e, R) ? (F.supportedPromise = ln(F, A, Z, this.supportedCache), F.supportedPromise.then((ae) => {
2100
+ typeof (Z == null ? void 0 : Z.decodingInfo) == "function" && co(w, A, C, x, e, R) ? (w.supportedPromise = ln(w, A, Z, this.supportedCache), w.supportedPromise.then((ae) => {
2101
2101
  if (!this.hls)
2102
2102
  return;
2103
- F.supportedResult = ae;
2104
- const ye = this.hls.levels, fe = ye.indexOf(F);
2105
- ae.error ? this.warn(`MediaCapabilities decodingInfo error: "${ae.error}" for level ${fe} ${ne(ae)}`) : ae.supported ? ae.decodingInfoResults.some((ve) => ve.smooth === !1 || ve.powerEfficient === !1) && this.log(`MediaCapabilities decodingInfo for level ${fe} not smooth or powerEfficient: ${ne(ae)}`) : (this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${fe} ${ne(ae)}`), fe > -1 && ye.length > 1 && (this.log(`Removing unsupported level ${fe}`), this.hls.removeLevel(fe), this.hls.loadLevel === -1 && (this.hls.nextLoadLevel = 0)));
2106
- })) : F.supportedResult = an;
2103
+ w.supportedResult = ae;
2104
+ const ve = this.hls.levels, fe = ve.indexOf(w);
2105
+ ae.error ? this.warn(`MediaCapabilities decodingInfo error: "${ae.error}" for level ${fe} ${ne(ae)}`) : ae.supported ? ae.decodingInfoResults.some((Se) => Se.smooth === !1 || Se.powerEfficient === !1) && this.log(`MediaCapabilities decodingInfo for level ${fe} not smooth or powerEfficient: ${ne(ae)}`) : (this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${fe} ${ne(ae)}`), fe > -1 && ve.length > 1 && (this.log(`Removing unsupported level ${fe}`), this.hls.removeLevel(fe), this.hls.loadLevel === -1 && (this.hls.nextLoadLevel = 0)));
2106
+ })) : w.supportedResult = an;
2107
2107
  }
2108
- if ((L && F.codecSet !== L || C && F.videoRange !== C || Y && x > F.frameRate || !Y && x > 0 && x < F.frameRate || (B = F.supportedResult) != null && (M = B.decodingInfoResults) != null && M.some((Z) => Z.smooth === !1)) && (!S || V !== k)) {
2109
- O.push(V);
2108
+ if ((L && w.codecSet !== L || C && w.videoRange !== C || Y && x > w.frameRate || !Y && x > 0 && x < w.frameRate || (N = w.supportedResult) != null && (_ = N.decodingInfoResults) != null && _.some((Z) => Z.smooth === !1)) && (!S || $ !== k)) {
2109
+ U.push($);
2110
2110
  continue;
2111
2111
  }
2112
- const H = F.details, N = (f ? H == null ? void 0 : H.partTarget : H == null ? void 0 : H.averagetargetduration) || _;
2113
- let w;
2114
- Y ? w = o * e : w = n * e;
2115
- const q = _ && i >= _ * 2 && r === 0 ? F.averageBitrate : F.maxBitrate, X = this.getTimeToLoadFrag(K, w, q * N, H === void 0);
2112
+ const H = w.details, M = (f ? H == null ? void 0 : H.partTarget : H == null ? void 0 : H.averagetargetduration) || O;
2113
+ let F;
2114
+ Y ? F = o * e : F = n * e;
2115
+ const q = O && i >= O * 2 && r === 0 ? w.averageBitrate : w.maxBitrate, X = this.getTimeToLoadFrag(K, F, q * M, H === void 0);
2116
2116
  if (
2117
2117
  // if adjusted bw is greater than level bitrate AND
2118
- w >= q && // no level change, or new level has no error history
2119
- (V === h || F.loadError === 0 && F.fragmentError === 0) && // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches
2118
+ F >= q && // no level change, or new level has no error history
2119
+ ($ === h || w.loadError === 0 && w.fragmentError === 0) && // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches
2120
2120
  // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...
2121
2121
  // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that findBestLevel will return -1
2122
- (X <= K || !U(X) || y && !this.bitrateTestDelay || X < l)
2122
+ (X <= K || !B(X) || y && !this.bitrateTestDelay || X < l)
2123
2123
  ) {
2124
2124
  const Z = this.forcedAutoLevel;
2125
- return V !== p && (Z === -1 || Z !== p) && (O.length && this.trace(`Skipped level(s) ${O.join(",")} of ${s} max with CODECS and VIDEO-RANGE:"${g[O[0]].codecs}" ${g[O[0]].videoRange}; not compatible with "${L}" ${C}`), this.info(`switch candidate:${u}->${V} adjustedbw(${Math.round(w)})-bitrate=${Math.round(w - q)} ttfb:${K.toFixed(1)} avgDuration:${N.toFixed(1)} maxFetchDuration:${l.toFixed(1)} fetchDuration:${X.toFixed(1)} firstSelection:${S} codecSet:${F.codecSet} videoRange:${F.videoRange} hls.loadLevel:${p}`)), S && (this.firstSelection = V), V;
2125
+ return $ !== p && (Z === -1 || Z !== p) && (U.length && this.trace(`Skipped level(s) ${U.join(",")} of ${s} max with CODECS and VIDEO-RANGE:"${g[U[0]].codecs}" ${g[U[0]].videoRange}; not compatible with "${L}" ${C}`), this.info(`switch candidate:${u}->${$} adjustedbw(${Math.round(F)})-bitrate=${Math.round(F - q)} ttfb:${K.toFixed(1)} avgDuration:${M.toFixed(1)} maxFetchDuration:${l.toFixed(1)} fetchDuration:${X.toFixed(1)} firstSelection:${S} codecSet:${w.codecSet} videoRange:${w.videoRange} hls.loadLevel:${p}`)), S && (this.firstSelection = $), $;
2126
2126
  }
2127
2127
  }
2128
2128
  return -1;
@@ -2171,7 +2171,7 @@ const un = {
2171
2171
  }
2172
2172
  };
2173
2173
  function Ro(a, e, t) {
2174
- if (e === null || !Array.isArray(a) || !a.length || !U(e))
2174
+ if (e === null || !Array.isArray(a) || !a.length || !B(e))
2175
2175
  return null;
2176
2176
  const s = a[0].programDateTime;
2177
2177
  if (e < (s || 0))
@@ -2373,7 +2373,7 @@ class Po extends we {
2373
2373
  t.errorAction = Pt();
2374
2374
  return;
2375
2375
  }
2376
- t.type === $.KEY_SYSTEM_ERROR && this.keySystemError(t);
2376
+ t.type === V.KEY_SYSTEM_ERROR && this.keySystemError(t);
2377
2377
  }
2378
2378
  keySystemError(e) {
2379
2379
  const t = this.getVariantLevelIndex(e.frag);
@@ -2887,12 +2887,12 @@ class Oo {
2887
2887
  const i = this.keySize + 6, r = this.invKeySchedule, n = this.invSBox, o = this.invSubMix, c = o[0], l = o[1], h = o[2], u = o[3], d = this.uint8ArrayToUint32Array_(s);
2888
2888
  let f = d[0], g = d[1], E = d[2], p = d[3];
2889
2889
  const T = new Int32Array(e), v = new Int32Array(T.length);
2890
- let y, S, L, C, x, R, D, A, k, _, K, O, B, M;
2891
- const V = this.networkToHostOrderSwap;
2890
+ let y, S, L, C, x, R, D, A, k, O, K, U, N, _;
2891
+ const $ = this.networkToHostOrderSwap;
2892
2892
  for (; t < T.length; ) {
2893
- for (k = V(T[t]), _ = V(T[t + 1]), K = V(T[t + 2]), O = V(T[t + 3]), x = k ^ r[0], R = O ^ r[1], D = K ^ r[2], A = _ ^ r[3], B = 4, M = 1; M < i; M++)
2894
- y = c[x >>> 24] ^ l[R >> 16 & 255] ^ h[D >> 8 & 255] ^ u[A & 255] ^ r[B], S = c[R >>> 24] ^ l[D >> 16 & 255] ^ h[A >> 8 & 255] ^ u[x & 255] ^ r[B + 1], L = c[D >>> 24] ^ l[A >> 16 & 255] ^ h[x >> 8 & 255] ^ u[R & 255] ^ r[B + 2], C = c[A >>> 24] ^ l[x >> 16 & 255] ^ h[R >> 8 & 255] ^ u[D & 255] ^ r[B + 3], x = y, R = S, D = L, A = C, B = B + 4;
2895
- y = n[x >>> 24] << 24 ^ n[R >> 16 & 255] << 16 ^ n[D >> 8 & 255] << 8 ^ n[A & 255] ^ r[B], S = n[R >>> 24] << 24 ^ n[D >> 16 & 255] << 16 ^ n[A >> 8 & 255] << 8 ^ n[x & 255] ^ r[B + 1], L = n[D >>> 24] << 24 ^ n[A >> 16 & 255] << 16 ^ n[x >> 8 & 255] << 8 ^ n[R & 255] ^ r[B + 2], C = n[A >>> 24] << 24 ^ n[x >> 16 & 255] << 16 ^ n[R >> 8 & 255] << 8 ^ n[D & 255] ^ r[B + 3], v[t] = V(y ^ f), v[t + 1] = V(C ^ g), v[t + 2] = V(L ^ E), v[t + 3] = V(S ^ p), f = k, g = _, E = K, p = O, t = t + 4;
2893
+ for (k = $(T[t]), O = $(T[t + 1]), K = $(T[t + 2]), U = $(T[t + 3]), x = k ^ r[0], R = U ^ r[1], D = K ^ r[2], A = O ^ r[3], N = 4, _ = 1; _ < i; _++)
2894
+ y = c[x >>> 24] ^ l[R >> 16 & 255] ^ h[D >> 8 & 255] ^ u[A & 255] ^ r[N], S = c[R >>> 24] ^ l[D >> 16 & 255] ^ h[A >> 8 & 255] ^ u[x & 255] ^ r[N + 1], L = c[D >>> 24] ^ l[A >> 16 & 255] ^ h[x >> 8 & 255] ^ u[R & 255] ^ r[N + 2], C = c[A >>> 24] ^ l[x >> 16 & 255] ^ h[R >> 8 & 255] ^ u[D & 255] ^ r[N + 3], x = y, R = S, D = L, A = C, N = N + 4;
2895
+ y = n[x >>> 24] << 24 ^ n[R >> 16 & 255] << 16 ^ n[D >> 8 & 255] << 8 ^ n[A & 255] ^ r[N], S = n[R >>> 24] << 24 ^ n[D >> 16 & 255] << 16 ^ n[A >> 8 & 255] << 8 ^ n[x & 255] ^ r[N + 1], L = n[D >>> 24] << 24 ^ n[A >> 16 & 255] << 16 ^ n[x >> 8 & 255] << 8 ^ n[R & 255] ^ r[N + 2], C = n[A >>> 24] << 24 ^ n[x >> 16 & 255] << 16 ^ n[R >> 8 & 255] << 8 ^ n[D & 255] ^ r[N + 3], v[t] = $(y ^ f), v[t + 1] = $(C ^ g), v[t + 2] = $(L ^ E), v[t + 3] = $(S ^ p), f = k, g = O, E = K, p = U, t = t + 4;
2896
2896
  }
2897
2897
  return v.buffer;
2898
2898
  }
@@ -3020,7 +3020,7 @@ class No {
3020
3020
  const s = e.url;
3021
3021
  if (!s)
3022
3022
  return Promise.reject(new Ke({
3023
- type: $.NETWORK_ERROR,
3023
+ type: V.NETWORK_ERROR,
3024
3024
  details: b.FRAG_LOAD_ERROR,
3025
3025
  fatal: !1,
3026
3026
  frag: e,
@@ -3060,7 +3060,7 @@ class No {
3060
3060
  },
3061
3061
  onError: (g, E, p, T) => {
3062
3062
  this.resetLoader(e, l), c(new Ke({
3063
- type: $.NETWORK_ERROR,
3063
+ type: V.NETWORK_ERROR,
3064
3064
  details: b.FRAG_LOAD_ERROR,
3065
3065
  fatal: !1,
3066
3066
  frag: e,
@@ -3075,7 +3075,7 @@ class No {
3075
3075
  },
3076
3076
  onAbort: (g, E, p) => {
3077
3077
  this.resetLoader(e, l), c(new Ke({
3078
- type: $.NETWORK_ERROR,
3078
+ type: V.NETWORK_ERROR,
3079
3079
  details: b.INTERNAL_ABORTED,
3080
3080
  fatal: !1,
3081
3081
  frag: e,
@@ -3086,7 +3086,7 @@ class No {
3086
3086
  },
3087
3087
  onTimeout: (g, E, p) => {
3088
3088
  this.resetLoader(e, l), c(new Ke({
3089
- type: $.NETWORK_ERROR,
3089
+ type: V.NETWORK_ERROR,
3090
3090
  details: b.FRAG_LOAD_TIMEOUT,
3091
3091
  fatal: !1,
3092
3092
  frag: e,
@@ -3135,7 +3135,7 @@ class No {
3135
3135
  },
3136
3136
  onError: (f, g, E, p) => {
3137
3137
  this.resetLoader(e, l), c(new Ke({
3138
- type: $.NETWORK_ERROR,
3138
+ type: V.NETWORK_ERROR,
3139
3139
  details: b.FRAG_LOAD_ERROR,
3140
3140
  fatal: !1,
3141
3141
  frag: e,
@@ -3151,7 +3151,7 @@ class No {
3151
3151
  },
3152
3152
  onAbort: (f, g, E) => {
3153
3153
  e.stats.aborted = t.stats.aborted, this.resetLoader(e, l), c(new Ke({
3154
- type: $.NETWORK_ERROR,
3154
+ type: V.NETWORK_ERROR,
3155
3155
  details: b.INTERNAL_ABORTED,
3156
3156
  fatal: !1,
3157
3157
  frag: e,
@@ -3163,7 +3163,7 @@ class No {
3163
3163
  },
3164
3164
  onTimeout: (f, g, E) => {
3165
3165
  this.resetLoader(e, l), c(new Ke({
3166
- type: $.NETWORK_ERROR,
3166
+ type: V.NETWORK_ERROR,
3167
3167
  details: b.FRAG_LOAD_TIMEOUT,
3168
3168
  fatal: !1,
3169
3169
  frag: e,
@@ -3200,7 +3200,7 @@ function Zi(a, e = null) {
3200
3200
  rangeStart: 0,
3201
3201
  rangeEnd: 0
3202
3202
  }, i = t.byteRangeStartOffset, r = t.byteRangeEndOffset;
3203
- if (U(i) && U(r)) {
3203
+ if (B(i) && B(r)) {
3204
3204
  var n;
3205
3205
  let o = i, c = r;
3206
3206
  if (a.sn === "initSegment" && Uo((n = a.decryptdata) == null ? void 0 : n.method)) {
@@ -3213,7 +3213,7 @@ function Zi(a, e = null) {
3213
3213
  }
3214
3214
  function Ji(a, e) {
3215
3215
  const t = new Error(`GAP ${a.gap ? "tag" : "attribute"} found`), s = {
3216
- type: $.MEDIA_ERROR,
3216
+ type: V.MEDIA_ERROR,
3217
3217
  details: b.FRAG_GAP,
3218
3218
  fatal: !1,
3219
3219
  frag: a,
@@ -3573,7 +3573,7 @@ class mn {
3573
3573
  }
3574
3574
  if (this.attr = e, t ? (this._startDate = t._startDate, this._cue = t._cue, this._endDate = t._endDate, this._dateAtEnd = t._dateAtEnd) : this._startDate = new Date(e["START-DATE"]), "END-DATE" in this.attr) {
3575
3575
  const r = (t == null ? void 0 : t.endDate) || new Date(this.attr["END-DATE"]);
3576
- U(r.getTime()) && (this._endDate = r);
3576
+ B(r.getTime()) && (this._endDate = r);
3577
3577
  }
3578
3578
  }
3579
3579
  get id() {
@@ -3609,7 +3609,7 @@ class mn {
3609
3609
  get duration() {
3610
3610
  if ("DURATION" in this.attr) {
3611
3611
  const e = this.attr.decimalFloatingPoint("DURATION");
3612
- if (U(e))
3612
+ if (B(e))
3613
3613
  return e;
3614
3614
  } else if (this._endDate)
3615
3615
  return (this._endDate.getTime() - this._startDate.getTime()) / 1e3;
@@ -3625,7 +3625,7 @@ class mn {
3625
3625
  return this.class === Ko;
3626
3626
  }
3627
3627
  get isValid() {
3628
- return !!this.id && !this._badValueForSameId && U(this.startDate.getTime()) && (this.duration === null || this.duration >= 0) && (!this.endOnNext || !!this.class) && (!this.attr.CUE || !this.cue.pre && !this.cue.post || this.cue.pre !== this.cue.post) && (!this.isInterstitial || "X-ASSET-URI" in this.attr || "X-ASSET-LIST" in this.attr);
3628
+ return !!this.id && !this._badValueForSameId && B(this.startDate.getTime()) && (this.duration === null || this.duration >= 0) && (!this.endOnNext || !!this.class) && (!this.attr.CUE || !this.cue.pre && !this.cue.post || this.cue.pre !== this.cue.post) && (!this.isInterstitial || "X-ASSET-URI" in this.attr || "X-ASSET-LIST" in this.attr);
3629
3629
  }
3630
3630
  }
3631
3631
  const Yo = 10;
@@ -3642,7 +3642,7 @@ class Wo {
3642
3642
  this.updated = this.endSN !== e.endSN || !!s || !!t || !this.live, this.advanced = this.endSN > e.endSN || t > 0 || t === 0 && s > 0, this.updated || this.advanced ? this.misses = Math.floor(e.misses * 0.6) : this.misses = e.misses + 1;
3643
3643
  }
3644
3644
  get hasProgramDateTime() {
3645
- return this.fragments.length ? U(this.fragments[this.fragments.length - 1].programDateTime) : !1;
3645
+ return this.fragments.length ? B(this.fragments[this.fragments.length - 1].programDateTime) : !1;
3646
3646
  }
3647
3647
  get levelTargetDuration() {
3648
3648
  return this.averagetargetduration || this.targetduration || Yo;
@@ -3747,7 +3747,7 @@ var le = {
3747
3747
  FAIRPLAY: "com.apple.fps",
3748
3748
  PLAYREADY: "com.microsoft.playready",
3749
3749
  WIDEVINE: "com.widevine.alpha"
3750
- }, Te = {
3750
+ }, ye = {
3751
3751
  CLEARKEY: "org.w3.clearkey",
3752
3752
  FAIRPLAY: "com.apple.streamingkeydelivery",
3753
3753
  PLAYREADY: "com.microsoft.playready",
@@ -3755,26 +3755,26 @@ var le = {
3755
3755
  };
3756
3756
  function Ws(a) {
3757
3757
  switch (a) {
3758
- case Te.FAIRPLAY:
3758
+ case ye.FAIRPLAY:
3759
3759
  return le.FAIRPLAY;
3760
- case Te.PLAYREADY:
3760
+ case ye.PLAYREADY:
3761
3761
  return le.PLAYREADY;
3762
- case Te.WIDEVINE:
3762
+ case ye.WIDEVINE:
3763
3763
  return le.WIDEVINE;
3764
- case Te.CLEARKEY:
3764
+ case ye.CLEARKEY:
3765
3765
  return le.CLEARKEY;
3766
3766
  }
3767
3767
  }
3768
3768
  function rr(a) {
3769
3769
  switch (a) {
3770
3770
  case le.FAIRPLAY:
3771
- return Te.FAIRPLAY;
3771
+ return ye.FAIRPLAY;
3772
3772
  case le.PLAYREADY:
3773
- return Te.PLAYREADY;
3773
+ return ye.PLAYREADY;
3774
3774
  case le.WIDEVINE:
3775
- return Te.WIDEVINE;
3775
+ return ye.WIDEVINE;
3776
3776
  case le.CLEARKEY:
3777
- return Te.CLEARKEY;
3777
+ return ye.CLEARKEY;
3778
3778
  }
3779
3779
  }
3780
3780
  function Xt(a) {
@@ -3857,10 +3857,10 @@ class gs {
3857
3857
  if (this.keyFormat === "identity")
3858
3858
  return this.method === "SAMPLE-AES";
3859
3859
  switch (this.keyFormat) {
3860
- case Te.FAIRPLAY:
3861
- case Te.WIDEVINE:
3862
- case Te.PLAYREADY:
3863
- case Te.CLEARKEY:
3860
+ case ye.FAIRPLAY:
3861
+ case ye.WIDEVINE:
3862
+ case ye.PLAYREADY:
3863
+ case ye.CLEARKEY:
3864
3864
  return ["ISO-23001-7", "SAMPLE-AES", "SAMPLE-AES-CENC", "SAMPLE-AES-CTR"].indexOf(this.method) !== -1;
3865
3865
  }
3866
3866
  }
@@ -3879,13 +3879,13 @@ class gs {
3879
3879
  const t = zo(this.uri);
3880
3880
  if (t)
3881
3881
  switch (this.keyFormat) {
3882
- case Te.WIDEVINE:
3882
+ case ye.WIDEVINE:
3883
3883
  if (this.pssh = t, !this.keyId && t.length >= 22) {
3884
3884
  const s = t.length - 22;
3885
3885
  this.keyId = t.subarray(s, s + 16);
3886
3886
  }
3887
3887
  break;
3888
- case Te.PLAYREADY: {
3888
+ case ye.PLAYREADY: {
3889
3889
  const s = new Uint8Array([154, 4, 240, 121, 152, 64, 66, 134, 171, 146, 230, 91, 224, 136, 95, 149]);
3890
3890
  this.pssh = io(s, null, t), this.keyId = Jo(t);
3891
3891
  break;
@@ -4054,16 +4054,16 @@ class Ne {
4054
4054
  return l.playlistParsingError = new Error("Missing format identifier #EXTM3U"), l;
4055
4055
  for (; (S = As.exec(e)) !== null; ) {
4056
4056
  R && (R = !1, y = new ys(i, c), y.playlistOffset = E, y.start = E, y.sn = f, y.cc = p, T && (y.bitrate = T), y.level = s, d && (y.initSegment = d, d.rawProgramDateTime && (y.rawProgramDateTime = d.rawProgramDateTime, d.rawProgramDateTime = null), D && (y.setByteRange(D), D = null)));
4057
- const O = S[1];
4058
- if (O) {
4059
- y.duration = parseFloat(O);
4060
- const B = (" " + S[2]).slice(1);
4061
- y.title = B || null, y.tagList.push(B ? ["INF", O, B] : ["INF", O]);
4057
+ const U = S[1];
4058
+ if (U) {
4059
+ y.duration = parseFloat(U);
4060
+ const N = (" " + S[2]).slice(1);
4061
+ y.title = N || null, y.tagList.push(N ? ["INF", U, N] : ["INF", U]);
4062
4062
  } else if (S[3]) {
4063
- if (U(y.duration)) {
4063
+ if (B(y.duration)) {
4064
4064
  y.playlistOffset = E, y.start = E, C && dr(y, C, l), y.sn = f, y.level = s, y.cc = p, h.push(y);
4065
- const B = (" " + S[3]).slice(1);
4066
- y.relurl = Hs(l, B), js(y, v, u), v = y, E += y.duration, f++, g = 0, R = !0;
4065
+ const N = (" " + S[3]).slice(1);
4066
+ y.relurl = Hs(l, N), js(y, v, u), v = y, E += y.duration, f++, g = 0, R = !0;
4067
4067
  }
4068
4068
  } else {
4069
4069
  if (S = S[0].match(sl), !S) {
@@ -4072,93 +4072,93 @@ class Ne {
4072
4072
  }
4073
4073
  for (L = 1; L < S.length && S[L] === void 0; L++)
4074
4074
  ;
4075
- const B = (" " + S[L]).slice(1), M = (" " + S[L + 1]).slice(1), V = S[L + 2] ? (" " + S[L + 2]).slice(1) : null;
4076
- switch (B) {
4075
+ const N = (" " + S[L]).slice(1), _ = (" " + S[L + 1]).slice(1), $ = S[L + 2] ? (" " + S[L + 2]).slice(1) : null;
4076
+ switch (N) {
4077
4077
  case "BYTERANGE":
4078
- v ? y.setByteRange(M, v) : y.setByteRange(M);
4078
+ v ? y.setByteRange(_, v) : y.setByteRange(_);
4079
4079
  break;
4080
4080
  case "PROGRAM-DATE-TIME":
4081
- y.rawProgramDateTime = M, y.tagList.push(["PROGRAM-DATE-TIME", M]), x === -1 && (x = h.length);
4081
+ y.rawProgramDateTime = _, y.tagList.push(["PROGRAM-DATE-TIME", _]), x === -1 && (x = h.length);
4082
4082
  break;
4083
4083
  case "PLAYLIST-TYPE":
4084
- l.type && Ge(l, B, S), l.type = M.toUpperCase();
4084
+ l.type && Ge(l, N, S), l.type = _.toUpperCase();
4085
4085
  break;
4086
4086
  case "MEDIA-SEQUENCE":
4087
- l.startSN !== 0 ? Ge(l, B, S) : h.length > 0 && fr(l, B, S), f = l.startSN = parseInt(M);
4087
+ l.startSN !== 0 ? Ge(l, N, S) : h.length > 0 && fr(l, N, S), f = l.startSN = parseInt(_);
4088
4088
  break;
4089
4089
  case "SKIP": {
4090
- l.skippedSegments && Ge(l, B, S);
4091
- const F = new oe(M, l), Y = F.decimalInteger("SKIPPED-SEGMENTS");
4092
- if (U(Y)) {
4090
+ l.skippedSegments && Ge(l, N, S);
4091
+ const w = new oe(_, l), Y = w.decimalInteger("SKIPPED-SEGMENTS");
4092
+ if (B(Y)) {
4093
4093
  l.skippedSegments += Y;
4094
- for (let N = Y; N--; )
4094
+ for (let M = Y; M--; )
4095
4095
  h.push(null);
4096
4096
  f += Y;
4097
4097
  }
4098
- const H = F.enumeratedString("RECENTLY-REMOVED-DATERANGES");
4098
+ const H = w.enumeratedString("RECENTLY-REMOVED-DATERANGES");
4099
4099
  H && (l.recentlyRemovedDateranges = (l.recentlyRemovedDateranges || []).concat(H.split(" ")));
4100
4100
  break;
4101
4101
  }
4102
4102
  case "TARGETDURATION":
4103
- l.targetduration !== 0 && Ge(l, B, S), l.targetduration = Math.max(parseInt(M), 1);
4103
+ l.targetduration !== 0 && Ge(l, N, S), l.targetduration = Math.max(parseInt(_), 1);
4104
4104
  break;
4105
4105
  case "VERSION":
4106
- l.version !== null && Ge(l, B, S), l.version = parseInt(M);
4106
+ l.version !== null && Ge(l, N, S), l.version = parseInt(_);
4107
4107
  break;
4108
4108
  case "INDEPENDENT-SEGMENTS":
4109
4109
  break;
4110
4110
  case "ENDLIST":
4111
- l.live || Ge(l, B, S), l.live = !1;
4111
+ l.live || Ge(l, N, S), l.live = !1;
4112
4112
  break;
4113
4113
  case "#":
4114
- (M || V) && y.tagList.push(V ? [M, V] : [M]);
4114
+ (_ || $) && y.tagList.push($ ? [_, $] : [_]);
4115
4115
  break;
4116
4116
  case "DISCONTINUITY":
4117
4117
  p++, y.tagList.push(["DIS"]);
4118
4118
  break;
4119
4119
  case "GAP":
4120
- y.gap = !0, y.tagList.push([B]);
4120
+ y.gap = !0, y.tagList.push([N]);
4121
4121
  break;
4122
4122
  case "BITRATE":
4123
- y.tagList.push([B, M]), T = parseInt(M) * 1e3, U(T) ? y.bitrate = T : T = 0;
4123
+ y.tagList.push([N, _]), T = parseInt(_) * 1e3, B(T) ? y.bitrate = T : T = 0;
4124
4124
  break;
4125
4125
  case "DATERANGE": {
4126
- const F = new oe(M, l), Y = new mn(F, l.dateRanges[F.ID], l.dateRangeTagCount);
4127
- l.dateRangeTagCount++, Y.isValid || l.skippedSegments ? l.dateRanges[Y.id] = Y : ee.warn(`Ignoring invalid DATERANGE tag: "${M}"`), y.tagList.push(["EXT-X-DATERANGE", M]);
4126
+ const w = new oe(_, l), Y = new mn(w, l.dateRanges[w.ID], l.dateRangeTagCount);
4127
+ l.dateRangeTagCount++, Y.isValid || l.skippedSegments ? l.dateRanges[Y.id] = Y : ee.warn(`Ignoring invalid DATERANGE tag: "${_}"`), y.tagList.push(["EXT-X-DATERANGE", _]);
4128
4128
  break;
4129
4129
  }
4130
4130
  case "DEFINE": {
4131
4131
  {
4132
- const F = new oe(M, l);
4133
- "IMPORT" in F ? Go(l, F, n) : sr(l, F, t);
4132
+ const w = new oe(_, l);
4133
+ "IMPORT" in w ? Go(l, w, n) : sr(l, w, t);
4134
4134
  }
4135
4135
  break;
4136
4136
  }
4137
4137
  case "DISCONTINUITY-SEQUENCE":
4138
- l.startCC !== 0 ? Ge(l, B, S) : h.length > 0 && fr(l, B, S), l.startCC = p = parseInt(M);
4138
+ l.startCC !== 0 ? Ge(l, N, S) : h.length > 0 && fr(l, N, S), l.startCC = p = parseInt(_);
4139
4139
  break;
4140
4140
  case "KEY": {
4141
- const F = or(M, t, l);
4142
- if (F.isSupported()) {
4143
- if (F.method === "NONE") {
4141
+ const w = or(_, t, l);
4142
+ if (w.isSupported()) {
4143
+ if (w.method === "NONE") {
4144
4144
  C = void 0;
4145
4145
  break;
4146
4146
  }
4147
4147
  C || (C = {});
4148
- const Y = C[F.keyFormat];
4149
- Y != null && Y.matches(F) || (Y && (C = se({}, C)), C[F.keyFormat] = F);
4148
+ const Y = C[w.keyFormat];
4149
+ Y != null && Y.matches(w) || (Y && (C = se({}, C)), C[w.keyFormat] = w);
4150
4150
  } else
4151
- ee.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${M}"`);
4151
+ ee.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${_}"`);
4152
4152
  break;
4153
4153
  }
4154
4154
  case "START":
4155
- l.startTimeOffset = lr(M);
4155
+ l.startTimeOffset = lr(_);
4156
4156
  break;
4157
4157
  case "MAP": {
4158
- const F = new oe(M, l);
4158
+ const w = new oe(_, l);
4159
4159
  if (y.duration) {
4160
4160
  const Y = new ys(i, c);
4161
- ur(Y, F, s, C), d = Y, y.initSegment = d, d.rawProgramDateTime && !y.rawProgramDateTime && (y.rawProgramDateTime = d.rawProgramDateTime);
4161
+ ur(Y, w, s, C), d = Y, y.initSegment = d, d.rawProgramDateTime && !y.rawProgramDateTime && (y.rawProgramDateTime = d.rawProgramDateTime);
4162
4162
  } else {
4163
4163
  const Y = y.byteRangeEndOffset;
4164
4164
  if (Y) {
@@ -4166,36 +4166,36 @@ class Ne {
4166
4166
  D = `${Y - H}@${H}`;
4167
4167
  } else
4168
4168
  D = null;
4169
- ur(y, F, s, C), d = y, R = !0;
4169
+ ur(y, w, s, C), d = y, R = !0;
4170
4170
  }
4171
4171
  d.cc = p;
4172
4172
  break;
4173
4173
  }
4174
4174
  case "SERVER-CONTROL": {
4175
- A && Ge(l, B, S), A = new oe(M), l.canBlockReload = A.bool("CAN-BLOCK-RELOAD"), l.canSkipUntil = A.optionalFloat("CAN-SKIP-UNTIL", 0), l.canSkipDateRanges = l.canSkipUntil > 0 && A.bool("CAN-SKIP-DATERANGES"), l.partHoldBack = A.optionalFloat("PART-HOLD-BACK", 0), l.holdBack = A.optionalFloat("HOLD-BACK", 0);
4175
+ A && Ge(l, N, S), A = new oe(_), l.canBlockReload = A.bool("CAN-BLOCK-RELOAD"), l.canSkipUntil = A.optionalFloat("CAN-SKIP-UNTIL", 0), l.canSkipDateRanges = l.canSkipUntil > 0 && A.bool("CAN-SKIP-DATERANGES"), l.partHoldBack = A.optionalFloat("PART-HOLD-BACK", 0), l.holdBack = A.optionalFloat("HOLD-BACK", 0);
4176
4176
  break;
4177
4177
  }
4178
4178
  case "PART-INF": {
4179
- l.partTarget && Ge(l, B, S);
4180
- const F = new oe(M);
4181
- l.partTarget = F.decimalFloatingPoint("PART-TARGET");
4179
+ l.partTarget && Ge(l, N, S);
4180
+ const w = new oe(_);
4181
+ l.partTarget = w.decimalFloatingPoint("PART-TARGET");
4182
4182
  break;
4183
4183
  }
4184
4184
  case "PART": {
4185
- let F = l.partList;
4186
- F || (F = l.partList = []);
4187
- const Y = g > 0 ? F[F.length - 1] : void 0, H = g++, N = new oe(M, l), w = new Va(N, y, c, H, Y);
4188
- F.push(w), y.duration += w.duration;
4185
+ let w = l.partList;
4186
+ w || (w = l.partList = []);
4187
+ const Y = g > 0 ? w[w.length - 1] : void 0, H = g++, M = new oe(_, l), F = new Va(M, y, c, H, Y);
4188
+ w.push(F), y.duration += F.duration;
4189
4189
  break;
4190
4190
  }
4191
4191
  case "PRELOAD-HINT": {
4192
- const F = new oe(M, l);
4193
- l.preloadHint = F;
4192
+ const w = new oe(_, l);
4193
+ l.preloadHint = w;
4194
4194
  break;
4195
4195
  }
4196
4196
  case "RENDITION-REPORT": {
4197
- const F = new oe(M, l);
4198
- l.renditionReports = l.renditionReports || [], l.renditionReports.push(F);
4197
+ const w = new oe(_, l);
4198
+ l.renditionReports = l.renditionReports || [], l.renditionReports.push(w);
4199
4199
  break;
4200
4200
  }
4201
4201
  default:
@@ -4205,14 +4205,14 @@ class Ne {
4205
4205
  }
4206
4206
  }
4207
4207
  v && !v.relurl ? (h.pop(), E -= v.duration, l.partList && (l.fragmentHint = v)) : l.partList && (js(y, v, u), y.cc = p, l.fragmentHint = y, C && dr(y, C, l)), l.targetduration || (l.playlistParsingError = new Error("#EXT-X-TARGETDURATION is required"));
4208
- const k = h.length, _ = h[0], K = h[k - 1];
4208
+ const k = h.length, O = h[0], K = h[k - 1];
4209
4209
  if (E += l.skippedSegments * l.targetduration, E > 0 && k && K) {
4210
4210
  l.averagetargetduration = E / k;
4211
- const O = K.sn;
4212
- l.endSN = O !== "initSegment" ? O : 0, l.live || (K.endList = !0), _ && l.startCC === void 0 && (l.startCC = _.cc), x > 0 && (rl(h, x), _ && u.unshift(_));
4211
+ const U = K.sn;
4212
+ l.endSN = U !== "initSegment" ? U : 0, l.live || (K.endList = !0), O && l.startCC === void 0 && (l.startCC = O.cc), x > 0 && (rl(h, x), O && u.unshift(O));
4213
4213
  } else
4214
4214
  l.endSN = 0, l.startCC = 0;
4215
- return l.fragmentHint && (E += l.fragmentHint.duration), l.totalduration = E, u.length && l.dateRangeTagCount && _ && Tn(u, l), l.endCC = p, l;
4215
+ return l.fragmentHint && (E += l.fragmentHint.duration), l.totalduration = E, u.length && l.dateRangeTagCount && O && Tn(u, l), l.endCC = p, l;
4216
4216
  }
4217
4217
  }
4218
4218
  function Tn(a, e) {
@@ -4264,7 +4264,7 @@ function or(a, e, t) {
4264
4264
  }
4265
4265
  function lr(a) {
4266
4266
  const t = new oe(a).decimalFloatingPoint("TIME-OFFSET");
4267
- return U(t) ? t : null;
4267
+ return B(t) ? t : null;
4268
4268
  }
4269
4269
  function cr(a, e) {
4270
4270
  let t = (a || "").split(/[ ,]+/).filter((s) => s);
@@ -4307,7 +4307,7 @@ function fr(a, e, t) {
4307
4307
  }
4308
4308
  function xs(a, e) {
4309
4309
  const t = e.startPTS;
4310
- if (U(t)) {
4310
+ if (B(t)) {
4311
4311
  let s = 0, i;
4312
4312
  e.sn > a.sn ? (s = t - a.start, i = a) : (s = a.start - t, i = e), i.duration !== s && i.setDuration(s);
4313
4313
  } else e.sn > a.sn ? a.cc === e.cc && a.minEndPTS ? e.setStart(a.start + (a.minEndPTS - a.start)) : e.setStart(a.start + a.duration) : e.setStart(Math.max(a.start - e.duration, 0));
@@ -4316,9 +4316,9 @@ function yn(a, e, t, s, i, r) {
4316
4316
  s - t <= 0 && (ee.warn("Fragment should have a positive duration", e), s = t + e.duration, r = i + e.duration);
4317
4317
  let o = t, c = s;
4318
4318
  const l = e.startPTS, h = e.endPTS;
4319
- if (U(l)) {
4319
+ if (B(l)) {
4320
4320
  const p = Math.abs(l - t);
4321
- U(e.deltaPTS) ? e.deltaPTS = Math.max(p, e.deltaPTS) : e.deltaPTS = p, o = Math.max(t, l), t = Math.min(t, l), i = Math.min(i, e.startDTS), c = Math.min(s, h), s = Math.max(s, h), r = Math.max(r, e.endDTS);
4321
+ B(e.deltaPTS) ? e.deltaPTS = Math.max(p, e.deltaPTS) : e.deltaPTS = p, o = Math.max(t, l), t = Math.min(t, l), i = Math.min(i, e.startDTS), c = Math.min(s, h), s = Math.max(s, h), r = Math.max(r, e.endDTS);
4322
4322
  }
4323
4323
  const u = t - e.start;
4324
4324
  e.start !== 0 && e.setStart(t), e.setDuration(s - e.start), e.startPTS = t, e.maxStartPTS = o, e.startDTS = i, e.endPTS = s, e.minEndPTS = c, e.endDTS = r;
@@ -4354,7 +4354,7 @@ function nl(a, e) {
4354
4354
  d[g].cc += f;
4355
4355
  e.endCC = d[d.length - 1].cc;
4356
4356
  }
4357
- U(l.startPTS) && U(l.endPTS) && (h.setStart(h.startPTS = l.startPTS), h.startDTS = l.startDTS, h.maxStartPTS = l.maxStartPTS, h.endPTS = l.endPTS, h.endDTS = l.endDTS, h.minEndPTS = l.minEndPTS, h.setDuration(l.endPTS - l.startPTS), h.duration && (i = h), e.PTSKnown = e.alignedSliding = !0), l.hasStreams && (h.elementaryStreams = l.elementaryStreams), h.loader = l.loader, l.hasStats && (h.stats = l.stats), l.initSegment && (h.initSegment = l.initSegment, t = l.initSegment);
4357
+ B(l.startPTS) && B(l.endPTS) && (h.setStart(h.startPTS = l.startPTS), h.startDTS = l.startDTS, h.maxStartPTS = l.maxStartPTS, h.endPTS = l.endPTS, h.endDTS = l.endDTS, h.minEndPTS = l.minEndPTS, h.setDuration(l.endPTS - l.startPTS), h.duration && (i = h), e.PTSKnown = e.alignedSliding = !0), l.hasStreams && (h.elementaryStreams = l.elementaryStreams), h.loader = l.loader, l.hasStats && (h.stats = l.stats), l.initSegment && (h.initSegment = l.initSegment, t = l.initSegment);
4358
4358
  });
4359
4359
  const r = e.fragments, n = e.fragmentHint ? r.concat(e.fragmentHint) : r;
4360
4360
  if (t && n.forEach((l) => {
@@ -4583,7 +4583,7 @@ class fi extends fn {
4583
4583
  mediaBuffer: l,
4584
4584
  state: h
4585
4585
  } = this, u = c ? c.currentTime : 0, d = j.bufferInfo(l || c, u, n.maxBufferHole), f = !d.len;
4586
- if (this.log(`Media seeking to ${U(u) ? u.toFixed(3) : u}, state: ${h}, ${f ? "out of" : "in"} buffer`), this.state === P.ENDED)
4586
+ if (this.log(`Media seeking to ${B(u) ? u.toFixed(3) : u}, state: ${h}, ${f ? "out of" : "in"} buffer`), this.state === P.ENDED)
4587
4587
  this.resetLoadingState();
4588
4588
  else if (o) {
4589
4589
  const g = n.maxFragLookUpTolerance, E = o.start - g, p = o.start + o.duration + g;
@@ -4799,7 +4799,7 @@ class fi extends fn {
4799
4799
  const c = self.performance.now();
4800
4800
  return this.decrypter.decrypt(new Uint8Array(n), o.key.buffer, o.iv.buffer, di(o.method)).catch((l) => {
4801
4801
  throw i.trigger(m.ERROR, {
4802
- type: $.MEDIA_ERROR,
4802
+ type: V.MEDIA_ERROR,
4803
4803
  details: b.FRAG_DECRYPT_ERROR,
4804
4804
  fatal: !1,
4805
4805
  error: l,
@@ -4909,7 +4909,7 @@ class fi extends fn {
4909
4909
  this.log(`LL-Part loading OFF after next part miss @${s.toFixed(2)}`), this.loadingParts = !1;
4910
4910
  else if (!e.url)
4911
4911
  return Promise.resolve(null);
4912
- this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e, !1)}) cc: ${e.cc} ${n ? "[" + n.startSN + "-" + n.endSN + "]" : ""}, target: ${parseFloat(s.toFixed(3))}`), U(e.sn) && !this.bitrateTest && (this.nextLoadPosition = e.start + e.duration), this.state = P.FRAG_LOADING;
4912
+ this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e, !1)}) cc: ${e.cc} ${n ? "[" + n.startSN + "-" + n.endSN + "]" : ""}, target: ${parseFloat(s.toFixed(3))}`), B(e.sn) && !this.bitrateTest && (this.nextLoadPosition = e.start + e.duration), this.state = P.FRAG_LOADING;
4913
4913
  const l = this.config.progressive;
4914
4914
  let h;
4915
4915
  return l && o ? h = o.then((u) => !u || this.fragContextChanged(u == null ? void 0 : u.frag) ? null : this.fragmentLoader.load(e, i)).catch((u) => this.handleFragLoadError(u)) : h = Promise.all([this.fragmentLoader.load(e, l ? i : void 0), o]).then(([u]) => (!l && u && i && i(u), u)).catch((u) => this.handleFragLoadError(u)), this.hls.trigger(m.FRAG_LOADING, {
@@ -4945,7 +4945,7 @@ class fi extends fn {
4945
4945
  e.data && t.details === b.INTERNAL_ABORTED ? this.handleFragLoadAborted(t.frag, t.part) : this.hls.trigger(m.ERROR, t);
4946
4946
  } else
4947
4947
  this.hls.trigger(m.ERROR, {
4948
- type: $.OTHER_ERROR,
4948
+ type: V.OTHER_ERROR,
4949
4949
  details: b.INTERNAL_EXCEPTION,
4950
4950
  err: e,
4951
4951
  error: e,
@@ -5042,7 +5042,7 @@ class fi extends fn {
5042
5042
  getFwdBufferInfo(e, t) {
5043
5043
  var s;
5044
5044
  const i = this.getLoadPosition();
5045
- if (!U(i))
5045
+ if (!B(i))
5046
5046
  return null;
5047
5047
  const n = this.lastCurrentTime > i || (s = this.media) != null && s.paused ? 0 : this.config.maxBufferHole;
5048
5048
  return this.getFwdBufferInfoAtPos(e, i, t, n);
@@ -5230,7 +5230,7 @@ class fi extends fn {
5230
5230
  const i = e.fragments.length;
5231
5231
  if (!i)
5232
5232
  return this.warn("No fragments in live playlist"), 0;
5233
- const r = e.fragmentStart, n = !t, o = e.alignedSliding && U(r);
5233
+ const r = e.fragmentStart, n = !t, o = e.alignedSliding && B(r);
5234
5234
  if (n || !o && !r) {
5235
5235
  hl(s, e);
5236
5236
  const c = e.fragmentStart;
@@ -5247,7 +5247,7 @@ class fi extends fn {
5247
5247
  const i = this.timelineOffset;
5248
5248
  if (s === -1) {
5249
5249
  const r = this.startTimeOffset !== null, n = r ? this.startTimeOffset : e.startTimeOffset;
5250
- n !== null && U(n) ? (s = t + n, n < 0 && (s += e.edge), s = Math.min(Math.max(t, s), t + e.totalduration), this.log(`Setting startPosition to ${s} for start time offset ${n} found in ${r ? "multivariant" : "media"} playlist`), this.startPosition = s) : e.live ? (s = this.hls.liveSyncPosition || t, this.log(`Setting startPosition to -1 to start at live edge ${s}`), this.startPosition = -1) : (this.log("setting startPosition to 0 by default"), this.startPosition = s = 0), this.lastCurrentTime = s + i;
5250
+ n !== null && B(n) ? (s = t + n, n < 0 && (s += e.edge), s = Math.min(Math.max(t, s), t + e.totalduration), this.log(`Setting startPosition to ${s} for start time offset ${n} found in ${r ? "multivariant" : "media"} playlist`), this.startPosition = s) : e.live ? (s = this.hls.liveSyncPosition || t, this.log(`Setting startPosition to -1 to start at live edge ${s}`), this.startPosition = -1) : (this.log("setting startPosition to 0 by default"), this.startPosition = s = 0), this.lastCurrentTime = s + i;
5251
5251
  }
5252
5252
  this.nextLoadPosition = s + i;
5253
5253
  }
@@ -5365,7 +5365,7 @@ class fi extends fn {
5365
5365
  if (s.fragmentError === 0 && this.treatAsGap(e, s), ((o = this.transmuxer) == null ? void 0 : o.error) === null) {
5366
5366
  const c = new Error(`Found no media in fragment ${e.sn} of ${this.playlistLabel()} ${e.level} resetting transmuxer to fallback to playlist timing`);
5367
5367
  if (this.warn(c.message), this.hls.trigger(m.ERROR, {
5368
- type: $.MEDIA_ERROR,
5368
+ type: V.MEDIA_ERROR,
5369
5369
  details: b.FRAG_PARSING_ERROR,
5370
5370
  fatal: !1,
5371
5371
  error: c,
@@ -5612,7 +5612,7 @@ function yl(a, e, t, s) {
5612
5612
  if (n > 12) {
5613
5613
  const f = new Error(`invalid ADTS sampling index:${n}`);
5614
5614
  a.emit(m.ERROR, m.ERROR, {
5615
- type: $.MEDIA_ERROR,
5615
+ type: V.MEDIA_ERROR,
5616
5616
  details: b.FRAG_PARSING_ERROR,
5617
5617
  fatal: !0,
5618
5618
  error: f,
@@ -5745,8 +5745,12 @@ function Cl(a) {
5745
5745
  mimeType: null,
5746
5746
  pictureType: null
5747
5747
  }, t = 3;
5748
- if (a.size < 2 || a.data[0] !== t)
5748
+ if (a.size < 2)
5749
+ return;
5750
+ if (a.data[0] !== t) {
5751
+ console.log("Ignore frame with unrecognized character encoding");
5749
5752
  return;
5753
+ }
5750
5754
  const s = a.data.subarray(1).indexOf(0);
5751
5755
  if (s === -1)
5752
5756
  return;
@@ -5899,7 +5903,7 @@ class Ti {
5899
5903
  this.cachedData && (e = De(this.cachedData, e), this.cachedData = null);
5900
5904
  let s = _t(e, 0), i = s ? s.length : 0, r;
5901
5905
  const n = this._audioTrack, o = this._id3Track, c = s ? Ei(s) : void 0, l = e.length;
5902
- for ((this.basePTS === null || this.frameIndex === 0 && U(c)) && (this.basePTS = Bl(c, t, this.initPTS), this.lastPTS = this.basePTS), this.lastPTS === null && (this.lastPTS = this.basePTS), s && s.length > 0 && o.samples.push({
5906
+ for ((this.basePTS === null || this.frameIndex === 0 && B(c)) && (this.basePTS = Bl(c, t, this.initPTS), this.lastPTS = this.basePTS), this.lastPTS === null && (this.lastPTS = this.basePTS), s && s.length > 0 && o.samples.push({
5903
5907
  pts: this.lastPTS,
5904
5908
  dts: this.lastPTS,
5905
5909
  data: s,
@@ -5945,7 +5949,7 @@ class Ti {
5945
5949
  }
5946
5950
  }
5947
5951
  const Bl = (a, e, t) => {
5948
- if (U(a))
5952
+ if (B(a))
5949
5953
  return a * 90;
5950
5954
  const s = t ? t.baseTime * 9e4 / t.timescale : 0;
5951
5955
  return e * 9e4 + s;
@@ -6316,7 +6320,7 @@ class jl {
6316
6320
  }
6317
6321
  }
6318
6322
  function yr(a, e) {
6319
- return U(a.presentationTime) ? a.presentationTime / a.timeScale : e + a.presentationTimeDelta / a.timeScale;
6323
+ return B(a.presentationTime) ? a.presentationTime / a.timeScale : e + a.presentationTimeDelta / a.timeScale;
6320
6324
  }
6321
6325
  class ql {
6322
6326
  constructor(e, t, s) {
@@ -6836,8 +6840,8 @@ class Sr extends Kn {
6836
6840
  const L = t.readUEG(), C = t.readUEG(), x = t.readBoolean();
6837
6841
  let R = 0, D = 0, A = 0, k = 0;
6838
6842
  x && (R += t.readUEG(), D += t.readUEG(), A += t.readUEG(), k += t.readUEG());
6839
- const _ = t.readUEG(), K = t.readUEG(), O = t.readUEG(), B = t.readBoolean();
6840
- for (let J = B ? 0 : s; J <= s; J++)
6843
+ const O = t.readUEG(), K = t.readUEG(), U = t.readUEG(), N = t.readBoolean();
6844
+ for (let J = N ? 0 : s; J <= s; J++)
6841
6845
  t.skipUEG(), t.skipUEG(), t.skipUEG();
6842
6846
  if (t.skipUEG(), t.skipUEG(), t.skipUEG(), t.skipUEG(), t.skipUEG(), t.skipUEG(), t.readBoolean() && t.readBoolean())
6843
6847
  for (let ge = 0; ge < 4; ge++)
@@ -6851,12 +6855,12 @@ class Sr extends Kn {
6851
6855
  t.readEG();
6852
6856
  }
6853
6857
  t.readBoolean(), t.readBoolean(), t.readBoolean() && (t.readUByte(), t.skipUEG(), t.skipUEG(), t.readBoolean());
6854
- const F = t.readUEG();
6858
+ const w = t.readUEG();
6855
6859
  let Y = 0;
6856
- for (let J = 0; J < F; J++) {
6860
+ for (let J = 0; J < w; J++) {
6857
6861
  let ge = !1;
6858
6862
  if (J !== 0 && (ge = t.readBoolean()), ge) {
6859
- J === F && t.readUEG(), t.readBoolean(), t.readUEG();
6863
+ J === w && t.readUEG(), t.readBoolean(), t.readUEG();
6860
6864
  let Le = 0;
6861
6865
  for (let Xe = 0; Xe <= Y; Xe++) {
6862
6866
  const Ce = t.readBoolean();
@@ -6876,18 +6880,18 @@ class Sr extends Kn {
6876
6880
  if (t.readBoolean()) {
6877
6881
  const J = t.readUEG();
6878
6882
  for (let ge = 0; ge < J; ge++) {
6879
- for (let Le = 0; Le < O + 4; Le++)
6883
+ for (let Le = 0; Le < U + 4; Le++)
6880
6884
  t.readBits(1);
6881
6885
  t.readBits(1);
6882
6886
  }
6883
6887
  }
6884
- let N = 0, w = 1, q = 1, X = !0, te = 1, Z = 0;
6888
+ let M = 0, F = 1, q = 1, X = !0, te = 1, Z = 0;
6885
6889
  t.readBoolean(), t.readBoolean();
6886
6890
  let ae = !1;
6887
6891
  if (t.readBoolean()) {
6888
6892
  if (t.readBoolean()) {
6889
6893
  const Ze = t.readUByte(), Ri = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2], Ft = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];
6890
- Ze > 0 && Ze < 16 ? (w = Ri[Ze - 1], q = Ft[Ze - 1]) : Ze === 255 && (w = t.readBits(16), q = t.readBits(16));
6894
+ Ze > 0 && Ze < 16 ? (F = Ri[Ze - 1], q = Ft[Ze - 1]) : Ze === 255 && (F = t.readBits(16), q = t.readBits(16));
6891
6895
  }
6892
6896
  if (t.readBoolean() && t.readBoolean(), t.readBoolean() && (t.readBits(3), t.readBoolean(), t.readBoolean() && (t.readUByte(), t.readUByte(), t.readUByte())), t.readBoolean() && (t.readUEG(), t.readUEG()), t.readBoolean(), t.readBoolean(), t.readBoolean(), ae = t.readBoolean(), ae && (R += t.readUEG(), D += t.readUEG(), A += t.readUEG(), k += t.readUEG()), t.readBoolean() && (te = t.readBits(32), Z = t.readBits(32), t.readBoolean() && t.readUEG(), t.readBoolean())) {
6893
6897
  const Ft = t.readBoolean(), bi = t.readBoolean();
@@ -6907,12 +6911,12 @@ class Sr extends Kn {
6907
6911
  t.readUEG(), t.readUEG(), yt && (t.readUEG(), t.readUEG()), t.skipBits(1);
6908
6912
  }
6909
6913
  }
6910
- t.readBoolean() && (t.readBoolean(), t.readBoolean(), t.readBoolean(), N = t.readUEG());
6914
+ t.readBoolean() && (t.readBoolean(), t.readBoolean(), t.readBoolean(), M = t.readUEG());
6911
6915
  }
6912
- let fe = L, ve = C;
6916
+ let fe = L, Se = C;
6913
6917
  if (x || ae) {
6914
6918
  let J = 1, ge = 1;
6915
- S === 1 ? J = ge = 2 : S == 2 && (J = 2), fe = L - J * D - J * R, ve = C - ge * k - ge * A;
6919
+ S === 1 ? J = ge = 2 : S == 2 && (J = 2), fe = L - J * D - J * R, Se = C - ge * k - ge * A;
6916
6920
  }
6917
6921
  const Qe = i ? ["A", "B", "C"][i] : "", pa = o << 24 | c << 16 | l << 8 | h;
6918
6922
  let ps = 0;
@@ -6928,10 +6932,10 @@ class Sr extends Kn {
6928
6932
  general_profile_compatibility_flags: [o, c, l, h],
6929
6933
  general_constraint_indicator_flags: [u, d, f, g, E, p],
6930
6934
  general_level_idc: T,
6931
- bit_depth: _ + 8,
6932
- bit_depth_luma_minus8: _,
6935
+ bit_depth: O + 8,
6936
+ bit_depth_luma_minus8: O,
6933
6937
  bit_depth_chroma_minus8: K,
6934
- min_spatial_segmentation_idc: N,
6938
+ min_spatial_segmentation_idc: M,
6935
6939
  chroma_format_idc: S,
6936
6940
  frame_rate: {
6937
6941
  fixed: X,
@@ -6939,8 +6943,8 @@ class Sr extends Kn {
6939
6943
  }
6940
6944
  },
6941
6945
  width: fe,
6942
- height: ve,
6943
- pixelRatio: [w, q]
6946
+ height: Se,
6947
+ pixelRatio: [F, q]
6944
6948
  };
6945
6949
  }
6946
6950
  readPPS(e) {
@@ -7094,8 +7098,8 @@ class je {
7094
7098
  break;
7095
7099
  case v: {
7096
7100
  R && (k += e[k] + 1);
7097
- const _ = Ql(e, k, this.typeSupported, s, this.observer, this.logger);
7098
- h = _.videoPid, h > 0 && (n.pid = h, n.segmentCodec = _.segmentVideoCodec), d = _.audioPid, d > 0 && (o.pid = d, o.segmentCodec = _.segmentAudioCodec), f = _.id3Pid, f > 0 && (c.pid = f), p !== null && !T && (this.logger.warn(`MPEG-TS PMT found at ${x} after unknown PID '${p}'. Backtracking to sync byte @${S} to parse all TS packets.`), p = null, x = S - 188), T = this.pmtParsed = !0;
7101
+ const O = Ql(e, k, this.typeSupported, s, this.observer, this.logger);
7102
+ h = O.videoPid, h > 0 && (n.pid = h, n.segmentCodec = O.segmentVideoCodec), d = O.audioPid, d > 0 && (o.pid = d, o.segmentCodec = O.segmentAudioCodec), f = O.id3Pid, f > 0 && (c.pid = f), p !== null && !T && (this.logger.warn(`MPEG-TS PMT found at ${x} after unknown PID '${p}'. Backtracking to sync byte @${S} to parse all TS packets.`), p = null, x = S - 188), T = this.pmtParsed = !0;
7099
7103
  break;
7100
7104
  }
7101
7105
  case 17:
@@ -7350,7 +7354,7 @@ function Ql(a, e, t, s, i, r) {
7350
7354
  }
7351
7355
  function Qs(a, e, t, s) {
7352
7356
  s.warn(`parsing error: ${e.message}`), a.emit(m.ERROR, m.ERROR, {
7353
- type: $.MEDIA_ERROR,
7357
+ type: V.MEDIA_ERROR,
7354
7358
  details: b.FRAG_PARSING_ERROR,
7355
7359
  fatal: !1,
7356
7360
  levelRetry: t,
@@ -8677,30 +8681,30 @@ class Zt extends we {
8677
8681
  if ((!T || S) && (!v || L) || this.ISGenerated || o) {
8678
8682
  if (this.ISGenerated) {
8679
8683
  var x, R, D, A;
8680
- const O = this.videoTrackConfig;
8681
- (O && (t.width !== O.width || t.height !== O.height || ((x = t.pixelRatio) == null ? void 0 : x[0]) !== ((R = O.pixelRatio) == null ? void 0 : R[0]) || ((D = t.pixelRatio) == null ? void 0 : D[1]) !== ((A = O.pixelRatio) == null ? void 0 : A[1])) || !O && L || this.nextAudioTs === null && S) && this.resetInitSegment();
8684
+ const U = this.videoTrackConfig;
8685
+ (U && (t.width !== U.width || t.height !== U.height || ((x = t.pixelRatio) == null ? void 0 : x[0]) !== ((R = U.pixelRatio) == null ? void 0 : R[0]) || ((D = t.pixelRatio) == null ? void 0 : D[1]) !== ((A = U.pixelRatio) == null ? void 0 : A[1])) || !U && L || this.nextAudioTs === null && S) && this.resetInitSegment();
8682
8686
  }
8683
8687
  this.ISGenerated || (u = this.generateIS(e, t, r, n));
8684
8688
  const k = this.isVideoContiguous;
8685
- let _ = -1, K;
8686
- if (L && (_ = rc(t.samples), !k && this.config.forceKeyFrameOnDiscontinuity))
8687
- if (g = !0, _ > 0) {
8688
- this.warn(`Dropped ${_} out of ${y} video samples due to a missing keyframe`);
8689
- const O = this.getVideoStartPts(t.samples);
8690
- t.samples = t.samples.slice(_), t.dropped += _, p += (t.samples[0].pts - O) / t.inputTimeScale, K = p;
8691
- } else _ === -1 && (this.warn(`No keyframe found out of ${y} video samples`), g = !1);
8689
+ let O = -1, K;
8690
+ if (L && (O = rc(t.samples), !k && this.config.forceKeyFrameOnDiscontinuity))
8691
+ if (g = !0, O > 0) {
8692
+ this.warn(`Dropped ${O} out of ${y} video samples due to a missing keyframe`);
8693
+ const U = this.getVideoStartPts(t.samples);
8694
+ t.samples = t.samples.slice(O), t.dropped += O, p += (t.samples[0].pts - U) / t.inputTimeScale, K = p;
8695
+ } else O === -1 && (this.warn(`No keyframe found out of ${y} video samples`), g = !1);
8692
8696
  if (this.ISGenerated) {
8693
8697
  if (S && L) {
8694
- const O = this.getVideoStartPts(t.samples), M = (Re(e.samples[0].pts, O) - O) / t.inputTimeScale;
8695
- E += Math.max(0, M), p += Math.max(0, -M);
8698
+ const U = this.getVideoStartPts(t.samples), _ = (Re(e.samples[0].pts, U) - U) / t.inputTimeScale;
8699
+ E += Math.max(0, _), p += Math.max(0, -_);
8696
8700
  }
8697
8701
  if (S) {
8698
8702
  if (e.samplerate || (this.warn("regenerate InitSegment as audio detected"), u = this.generateIS(e, t, r, n)), h = this.remuxAudio(e, E, this.isAudioContiguous, n, v || L || c === G.AUDIO ? p : void 0), L) {
8699
- const O = h ? h.endPTS - h.startPTS : 0;
8700
- t.inputTimeScale || (this.warn("regenerate InitSegment as video detected"), u = this.generateIS(e, t, r, n)), l = this.remuxVideo(t, p, k, O);
8703
+ const U = h ? h.endPTS - h.startPTS : 0;
8704
+ t.inputTimeScale || (this.warn("regenerate InitSegment as video detected"), u = this.generateIS(e, t, r, n)), l = this.remuxVideo(t, p, k, U);
8701
8705
  }
8702
8706
  } else L && (l = this.remuxVideo(t, p, k, 0));
8703
- l && (l.firstKeyFrame = _, l.independent = _ !== -1, l.firstKeyFramePTS = K);
8707
+ l && (l.firstKeyFrame = O, l.independent = O !== -1, l.firstKeyFramePTS = K);
8704
8708
  }
8705
8709
  }
8706
8710
  return this.ISGenerated && this._initPTS && this._initDTS && (s.samples.length && (f = Hn(s, r, this._initPTS, this._initDTS)), i.samples.length && (d = Yn(i, r, this._initPTS))), {
@@ -8774,59 +8778,59 @@ class Zt extends we {
8774
8778
  const r = e.inputTimeScale, n = e.samples, o = [], c = n.length, l = this._initPTS, h = l.baseTime * r / l.timescale;
8775
8779
  let u = this.nextVideoTs, d = 8, f = this.videoSampleDuration, g, E, p = Number.POSITIVE_INFINITY, T = Number.NEGATIVE_INFINITY, v = !1;
8776
8780
  if (!s || u === null) {
8777
- const N = h + t * r, w = n[0].pts - Re(n[0].dts, n[0].pts);
8778
- ht && u !== null && Math.abs(N - w - (u + h)) < 15e3 ? s = !0 : u = N - w - h;
8781
+ const M = h + t * r, F = n[0].pts - Re(n[0].dts, n[0].pts);
8782
+ ht && u !== null && Math.abs(M - F - (u + h)) < 15e3 ? s = !0 : u = M - F - h;
8779
8783
  }
8780
8784
  const y = u + h;
8781
- for (let N = 0; N < c; N++) {
8782
- const w = n[N];
8783
- w.pts = Re(w.pts, y), w.dts = Re(w.dts, y), w.dts < n[N > 0 ? N - 1 : N].dts && (v = !0);
8785
+ for (let M = 0; M < c; M++) {
8786
+ const F = n[M];
8787
+ F.pts = Re(F.pts, y), F.dts = Re(F.dts, y), F.dts < n[M > 0 ? M - 1 : M].dts && (v = !0);
8784
8788
  }
8785
- v && n.sort(function(N, w) {
8786
- const q = N.dts - w.dts, X = N.pts - w.pts;
8789
+ v && n.sort(function(M, F) {
8790
+ const q = M.dts - F.dts, X = M.pts - F.pts;
8787
8791
  return q || X;
8788
8792
  }), g = n[0].dts, E = n[n.length - 1].dts;
8789
8793
  const S = E - g, L = S ? Math.round(S / (c - 1)) : f || e.inputTimeScale / 30;
8790
8794
  if (s) {
8791
- const N = g - y, w = N > L, q = N < -1;
8792
- if ((w || q) && (w ? this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(N, !0)} ms (${N}dts) hole between fragments detected at ${t.toFixed(3)}`) : this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(-N, !0)} ms (${N}dts) overlapping between fragments detected at ${t.toFixed(3)}`), !q || y >= n[0].pts || ht)) {
8795
+ const M = g - y, F = M > L, q = M < -1;
8796
+ if ((F || q) && (F ? this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(M, !0)} ms (${M}dts) hole between fragments detected at ${t.toFixed(3)}`) : this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(-M, !0)} ms (${M}dts) overlapping between fragments detected at ${t.toFixed(3)}`), !q || y >= n[0].pts || ht)) {
8793
8797
  g = y;
8794
- const X = n[0].pts - N;
8795
- if (w)
8798
+ const X = n[0].pts - M;
8799
+ if (F)
8796
8800
  n[0].dts = g, n[0].pts = X;
8797
8801
  else {
8798
8802
  let te = !0;
8799
8803
  for (let Z = 0; Z < n.length && !(n[Z].dts > X && te); Z++) {
8800
8804
  const ae = n[Z].pts;
8801
- if (n[Z].dts -= N, n[Z].pts -= N, Z < n.length - 1) {
8802
- const ye = n[Z + 1].pts, fe = n[Z].pts, ve = ye <= fe, Qe = ye <= ae;
8803
- te = ve == Qe;
8805
+ if (n[Z].dts -= M, n[Z].pts -= M, Z < n.length - 1) {
8806
+ const ve = n[Z + 1].pts, fe = n[Z].pts, Se = ve <= fe, Qe = ve <= ae;
8807
+ te = Se == Qe;
8804
8808
  }
8805
8809
  }
8806
8810
  }
8807
- this.log(`Video: Initial PTS/DTS adjusted: ${xt(X, !0)}/${xt(g, !0)}, delta: ${xt(N, !0)} ms`);
8811
+ this.log(`Video: Initial PTS/DTS adjusted: ${xt(X, !0)}/${xt(g, !0)}, delta: ${xt(M, !0)} ms`);
8808
8812
  }
8809
8813
  }
8810
8814
  g = Math.max(0, g);
8811
8815
  let C = 0, x = 0, R = g;
8812
- for (let N = 0; N < c; N++) {
8813
- const w = n[N], q = w.units, X = q.length;
8816
+ for (let M = 0; M < c; M++) {
8817
+ const F = n[M], q = F.units, X = q.length;
8814
8818
  let te = 0;
8815
8819
  for (let Z = 0; Z < X; Z++)
8816
8820
  te += q[Z].data.length;
8817
- x += te, C += X, w.length = te, w.dts < R ? (w.dts = R, R += L / 4 | 0 || 1) : R = w.dts, p = Math.min(w.pts, p), T = Math.max(w.pts, T);
8821
+ x += te, C += X, F.length = te, F.dts < R ? (F.dts = R, R += L / 4 | 0 || 1) : R = F.dts, p = Math.min(F.pts, p), T = Math.max(F.pts, T);
8818
8822
  }
8819
8823
  E = n[c - 1].dts;
8820
8824
  const D = x + 4 * C + 8;
8821
8825
  let A;
8822
8826
  try {
8823
8827
  A = new Uint8Array(D);
8824
- } catch (N) {
8828
+ } catch (M) {
8825
8829
  this.observer.emit(m.ERROR, m.ERROR, {
8826
- type: $.MUX_ERROR,
8830
+ type: V.MUX_ERROR,
8827
8831
  details: b.REMUX_ALLOC_ERROR,
8828
8832
  fatal: !1,
8829
- error: N,
8833
+ error: M,
8830
8834
  bytes: D,
8831
8835
  reason: `fail allocating video mdat ${D}`
8832
8836
  });
@@ -8834,51 +8838,51 @@ class Zt extends we {
8834
8838
  }
8835
8839
  const k = new DataView(A.buffer);
8836
8840
  k.setUint32(0, D), A.set(I.types.mdat, 4);
8837
- let _ = !1, K = Number.POSITIVE_INFINITY, O = Number.POSITIVE_INFINITY, B = Number.NEGATIVE_INFINITY, M = Number.NEGATIVE_INFINITY;
8838
- for (let N = 0; N < c; N++) {
8839
- const w = n[N], q = w.units;
8841
+ let O = !1, K = Number.POSITIVE_INFINITY, U = Number.POSITIVE_INFINITY, N = Number.NEGATIVE_INFINITY, _ = Number.NEGATIVE_INFINITY;
8842
+ for (let M = 0; M < c; M++) {
8843
+ const F = n[M], q = F.units;
8840
8844
  let X = 0;
8841
- for (let ae = 0, ye = q.length; ae < ye; ae++) {
8842
- const fe = q[ae], ve = fe.data, Qe = fe.data.byteLength;
8843
- k.setUint32(d, Qe), d += 4, A.set(ve, d), d += Qe, X += 4 + Qe;
8845
+ for (let ae = 0, ve = q.length; ae < ve; ae++) {
8846
+ const fe = q[ae], Se = fe.data, Qe = fe.data.byteLength;
8847
+ k.setUint32(d, Qe), d += 4, A.set(Se, d), d += Qe, X += 4 + Qe;
8844
8848
  }
8845
8849
  let te;
8846
- if (N < c - 1)
8847
- f = n[N + 1].dts - w.dts, te = n[N + 1].pts - w.pts;
8850
+ if (M < c - 1)
8851
+ f = n[M + 1].dts - F.dts, te = n[M + 1].pts - F.pts;
8848
8852
  else {
8849
- const ae = this.config, ye = N > 0 ? w.dts - n[N - 1].dts : L;
8850
- if (te = N > 0 ? w.pts - n[N - 1].pts : L, ae.stretchShortVideoTrack && this.nextAudioTs !== null) {
8851
- const fe = Math.floor(ae.maxBufferHole * r), ve = (i ? p + i * r : this.nextAudioTs + h) - w.pts;
8852
- ve > fe ? (f = ve - ye, f < 0 ? f = ye : _ = !0, this.log(`It is approximately ${ve / 90} ms to the next segment; using duration ${f / 90} ms for the last video frame.`)) : f = ye;
8853
+ const ae = this.config, ve = M > 0 ? F.dts - n[M - 1].dts : L;
8854
+ if (te = M > 0 ? F.pts - n[M - 1].pts : L, ae.stretchShortVideoTrack && this.nextAudioTs !== null) {
8855
+ const fe = Math.floor(ae.maxBufferHole * r), Se = (i ? p + i * r : this.nextAudioTs + h) - F.pts;
8856
+ Se > fe ? (f = Se - ve, f < 0 ? f = ve : O = !0, this.log(`It is approximately ${Se / 90} ms to the next segment; using duration ${f / 90} ms for the last video frame.`)) : f = ve;
8853
8857
  } else
8854
- f = ye;
8858
+ f = ve;
8855
8859
  }
8856
- const Z = Math.round(w.pts - w.dts);
8857
- K = Math.min(K, f), B = Math.max(B, f), O = Math.min(O, te), M = Math.max(M, te), o.push(Ar(w.key, f, X, Z));
8860
+ const Z = Math.round(F.pts - F.dts);
8861
+ K = Math.min(K, f), N = Math.max(N, f), U = Math.min(U, te), _ = Math.max(_, te), o.push(Ar(F.key, f, X, Z));
8858
8862
  }
8859
8863
  if (o.length) {
8860
8864
  if (ht) {
8861
8865
  if (ht < 70) {
8862
- const N = o[0].flags;
8863
- N.dependsOn = 2, N.isNonSync = 0;
8866
+ const M = o[0].flags;
8867
+ M.dependsOn = 2, M.isNonSync = 0;
8864
8868
  }
8865
- } else if (bs && M - O < B - K && L / B < 0.025 && o[0].cts === 0) {
8869
+ } else if (bs && _ - U < N - K && L / N < 0.025 && o[0].cts === 0) {
8866
8870
  this.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");
8867
- let N = g;
8868
- for (let w = 0, q = o.length; w < q; w++) {
8869
- const X = N + o[w].duration, te = N + o[w].cts;
8870
- if (w < q - 1) {
8871
- const Z = X + o[w + 1].cts;
8872
- o[w].duration = Z - te;
8871
+ let M = g;
8872
+ for (let F = 0, q = o.length; F < q; F++) {
8873
+ const X = M + o[F].duration, te = M + o[F].cts;
8874
+ if (F < q - 1) {
8875
+ const Z = X + o[F + 1].cts;
8876
+ o[F].duration = Z - te;
8873
8877
  } else
8874
- o[w].duration = w ? o[w - 1].duration : L;
8875
- o[w].cts = 0, N = X;
8878
+ o[F].duration = F ? o[F - 1].duration : L;
8879
+ o[F].cts = 0, M = X;
8876
8880
  }
8877
8881
  }
8878
8882
  }
8879
- f = _ || !f ? L : f;
8880
- const V = E + f;
8881
- this.nextVideoTs = u = V - h, this.videoSampleDuration = f, this.isVideoContiguous = !0;
8883
+ f = O || !f ? L : f;
8884
+ const $ = E + f;
8885
+ this.nextVideoTs = u = $ - h, this.videoSampleDuration = f, this.isVideoContiguous = !0;
8882
8886
  const H = {
8883
8887
  data1: I.moof(e.sequenceNumber++, g, se(e, {
8884
8888
  samples: o
@@ -8910,54 +8914,54 @@ class Zt extends we {
8910
8914
  const n = e.inputTimeScale, o = e.samplerate ? e.samplerate : n, c = n / o, l = this.getSamplesPerFrame(e), h = l * c, u = this._initPTS, d = e.segmentCodec === "mp3" && this.typeSupported.mpeg, f = [], g = r !== void 0;
8911
8915
  let E = e.samples, p = d ? 0 : 8, T = this.nextAudioTs || -1;
8912
8916
  const v = u.baseTime * n / u.timescale, y = v + t * n;
8913
- if (this.isAudioContiguous = s = s || E.length && T > 0 && (i && Math.abs(y - (T + v)) < 9e3 || Math.abs(Re(E[0].pts, y) - (T + v)) < 20 * h), E.forEach(function(M) {
8914
- M.pts = Re(M.pts, y);
8917
+ if (this.isAudioContiguous = s = s || E.length && T > 0 && (i && Math.abs(y - (T + v)) < 9e3 || Math.abs(Re(E[0].pts, y) - (T + v)) < 20 * h), E.forEach(function(_) {
8918
+ _.pts = Re(_.pts, y);
8915
8919
  }), !s || T < 0) {
8916
- if (E = E.filter((M) => M.pts >= 0), !E.length)
8920
+ if (E = E.filter((_) => _.pts >= 0), !E.length)
8917
8921
  return;
8918
8922
  r === 0 ? T = 0 : i && !g ? T = Math.max(0, y - v) : T = E[0].pts - v;
8919
8923
  }
8920
8924
  if (e.segmentCodec === "aac") {
8921
- const M = this.config.maxAudioFramesDrift;
8922
- for (let V = 0, F = T + v; V < E.length; V++) {
8923
- const Y = E[V], H = Y.pts, N = H - F, w = Math.abs(1e3 * N / n);
8924
- if (N <= -M * h && g)
8925
- V === 0 && (this.warn(`Audio frame @ ${(H / n).toFixed(3)}s overlaps marker by ${Math.round(1e3 * N / n)} ms.`), this.nextAudioTs = T = H - v, F = H);
8926
- else if (N >= M * h && w < ec && g) {
8927
- let q = Math.round(N / h);
8928
- for (F = H - q * h; F < 0 && q && h; )
8929
- q--, F += h;
8930
- V === 0 && (this.nextAudioTs = T = F - v), this.warn(`Injecting ${q} audio frames @ ${((F - v) / n).toFixed(3)}s due to ${Math.round(1e3 * N / n)} ms gap.`);
8925
+ const _ = this.config.maxAudioFramesDrift;
8926
+ for (let $ = 0, w = T + v; $ < E.length; $++) {
8927
+ const Y = E[$], H = Y.pts, M = H - w, F = Math.abs(1e3 * M / n);
8928
+ if (M <= -_ * h && g)
8929
+ $ === 0 && (this.warn(`Audio frame @ ${(H / n).toFixed(3)}s overlaps marker by ${Math.round(1e3 * M / n)} ms.`), this.nextAudioTs = T = H - v, w = H);
8930
+ else if (M >= _ * h && F < ec && g) {
8931
+ let q = Math.round(M / h);
8932
+ for (w = H - q * h; w < 0 && q && h; )
8933
+ q--, w += h;
8934
+ $ === 0 && (this.nextAudioTs = T = w - v), this.warn(`Injecting ${q} audio frames @ ${((w - v) / n).toFixed(3)}s due to ${Math.round(1e3 * M / n)} ms gap.`);
8931
8935
  for (let X = 0; X < q; X++) {
8932
8936
  let te = Xl.getSilentFrame(e.parsedCodec || e.manifestCodec || e.codec, e.channelCount);
8933
- te || (this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."), te = Y.unit.subarray()), E.splice(V, 0, {
8937
+ te || (this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."), te = Y.unit.subarray()), E.splice($, 0, {
8934
8938
  unit: te,
8935
- pts: F
8936
- }), F += h, V++;
8939
+ pts: w
8940
+ }), w += h, $++;
8937
8941
  }
8938
8942
  }
8939
- Y.pts = F, F += h;
8943
+ Y.pts = w, w += h;
8940
8944
  }
8941
8945
  }
8942
8946
  let S = null, L = null, C, x = 0, R = E.length;
8943
8947
  for (; R--; )
8944
8948
  x += E[R].unit.byteLength;
8945
- for (let M = 0, V = E.length; M < V; M++) {
8946
- const F = E[M], Y = F.unit;
8947
- let H = F.pts;
8949
+ for (let _ = 0, $ = E.length; _ < $; _++) {
8950
+ const w = E[_], Y = w.unit;
8951
+ let H = w.pts;
8948
8952
  if (L !== null) {
8949
- const w = f[M - 1];
8950
- w.duration = Math.round((H - L) / c);
8953
+ const F = f[_ - 1];
8954
+ F.duration = Math.round((H - L) / c);
8951
8955
  } else if (s && e.segmentCodec === "aac" && (H = T + v), S = H, x > 0) {
8952
8956
  x += p;
8953
8957
  try {
8954
8958
  C = new Uint8Array(x);
8955
- } catch (w) {
8959
+ } catch (F) {
8956
8960
  this.observer.emit(m.ERROR, m.ERROR, {
8957
- type: $.MUX_ERROR,
8961
+ type: V.MUX_ERROR,
8958
8962
  details: b.REMUX_ALLOC_ERROR,
8959
8963
  fatal: !1,
8960
- error: w,
8964
+ error: F,
8961
8965
  bytes: x,
8962
8966
  reason: `fail allocating audio mdat ${x}`
8963
8967
  });
@@ -8967,8 +8971,8 @@ class Zt extends we {
8967
8971
  } else
8968
8972
  return;
8969
8973
  C.set(Y, p);
8970
- const N = Y.byteLength;
8971
- p += N, f.push(Ar(!0, l, N, 0)), L = H;
8974
+ const M = Y.byteLength;
8975
+ p += M, f.push(Ar(!0, l, M, 0)), L = H;
8972
8976
  }
8973
8977
  const D = f.length;
8974
8978
  if (!D)
@@ -8979,19 +8983,19 @@ class Zt extends we {
8979
8983
  samples: f
8980
8984
  }));
8981
8985
  e.samples = [];
8982
- const _ = (S - v) / n, K = T / n, B = {
8986
+ const O = (S - v) / n, K = T / n, N = {
8983
8987
  data1: k,
8984
8988
  data2: C,
8985
- startPTS: _,
8989
+ startPTS: O,
8986
8990
  endPTS: K,
8987
- startDTS: _,
8991
+ startDTS: O,
8988
8992
  endDTS: K,
8989
8993
  type: "audio",
8990
8994
  hasAudio: !0,
8991
8995
  hasVideo: !1,
8992
8996
  nb: D
8993
8997
  };
8994
- return this.isAudioContiguous = !0, B;
8998
+ return this.isAudioContiguous = !0, N;
8995
8999
  }
8996
9000
  }
8997
9001
  function Re(a, e) {
@@ -9098,7 +9102,7 @@ class nc extends we {
9098
9102
  id3: s,
9099
9103
  initSegment: void 0
9100
9104
  };
9101
- U(h) || (h = this.lastEndTime = r || 0);
9105
+ B(h) || (h = this.lastEndTime = r || 0);
9102
9106
  const d = t.samples;
9103
9107
  if (!(d != null && d.length))
9104
9108
  return u;
@@ -9114,10 +9118,10 @@ class nc extends we {
9114
9118
  const E = Za(d, g, this), p = g.audio ? E[g.audio.id] : null, T = g.video ? E[g.video.id] : null, v = Vt(T, 1 / 0), y = Vt(p, 1 / 0), S = Vt(T, 0, !0), L = Vt(p, 0, !0);
9115
9119
  let C, x = r, R = 0;
9116
9120
  if (p && (!T || !l && y < v || l && l.trackId === g.audio.id) ? (f.trackId = g.audio.id, C = p, R = L - y) : T && (f.trackId = g.video.id, C = T, R = S - v), C) {
9117
- const M = C.timescale;
9118
- x = C.start / M, f.initPTS = C.start - r * M, f.timescale = M, l || (this.initPTS = l = {
9121
+ const _ = C.timescale;
9122
+ x = C.start / _, f.initPTS = C.start - r * _, f.timescale = _, l || (this.initPTS = l = {
9119
9123
  baseTime: f.initPTS,
9120
- timescale: M,
9124
+ timescale: _,
9121
9125
  trackId: f.trackId
9122
9126
  });
9123
9127
  }
@@ -9127,10 +9131,10 @@ class nc extends we {
9127
9131
  });
9128
9132
  const D = e ? x - l.baseTime / l.timescale : h, A = D + R;
9129
9133
  R > 0 ? this.lastEndTime = A : (this.warn("Duration parsed from mp4 should be greater than zero"), this.resetNextTimestamp());
9130
- const k = !!g.audio, _ = !!g.video;
9134
+ const k = !!g.audio, O = !!g.video;
9131
9135
  let K = "";
9132
- k && (K += "audio"), _ && (K += "video");
9133
- const O = {
9136
+ k && (K += "audio"), O && (K += "video");
9137
+ const U = {
9134
9138
  data1: d,
9135
9139
  startPTS: D,
9136
9140
  startDTS: D,
@@ -9138,15 +9142,15 @@ class nc extends we {
9138
9142
  endDTS: A,
9139
9143
  type: K,
9140
9144
  hasAudio: k,
9141
- hasVideo: _,
9145
+ hasVideo: O,
9142
9146
  nb: 1,
9143
9147
  dropped: 0
9144
9148
  };
9145
- u.audio = k && !_ ? O : void 0, u.video = _ ? O : void 0;
9146
- const B = T == null ? void 0 : T.sampleCount;
9147
- if (B) {
9148
- const M = T.keyFrameIndex, V = M !== -1;
9149
- O.nb = B, O.dropped = M === 0 || this.isVideoContiguous ? 0 : V ? M : B, O.independent = V, O.firstKeyFrame = M, V && T.keyFrameStart && (O.firstKeyFramePTS = (T.keyFrameStart - l.baseTime) / l.timescale), this.isVideoContiguous || (u.independent = V), this.isVideoContiguous || (this.isVideoContiguous = V), O.dropped && this.warn(`fmp4 does not start with IDR: firstIDR ${M}/${B} dropped: ${O.dropped} start: ${O.firstKeyFramePTS || "NA"}`);
9149
+ u.audio = k && !O ? U : void 0, u.video = O ? U : void 0;
9150
+ const N = T == null ? void 0 : T.sampleCount;
9151
+ if (N) {
9152
+ const _ = T.keyFrameIndex, $ = _ !== -1;
9153
+ U.nb = N, U.dropped = _ === 0 || this.isVideoContiguous ? 0 : $ ? _ : N, U.independent = $, U.firstKeyFrame = _, $ && T.keyFrameStart && (U.firstKeyFramePTS = (T.keyFrameStart - l.baseTime) / l.timescale), this.isVideoContiguous || (u.independent = $), this.isVideoContiguous || (this.isVideoContiguous = $), U.dropped && this.warn(`fmp4 does not start with IDR: firstIDR ${_}/${N} dropped: ${U.dropped} start: ${U.firstKeyFramePTS || "NA"}`);
9150
9154
  }
9151
9155
  return u.initSegment = f, u.id3 = Hn(s, r, l, l), i.samples.length && (u.text = Yn(i, r, l)), u;
9152
9156
  }
@@ -9222,8 +9226,8 @@ class Lr {
9222
9226
  if (R.isSync()) {
9223
9227
  let A = R.softwareDecrypt(n, S.key.buffer, S.iv.buffer, D);
9224
9228
  if (s.part > -1) {
9225
- const _ = R.flush();
9226
- A = _ && _.buffer;
9229
+ const O = R.flush();
9230
+ A = O && O.buffer;
9227
9231
  }
9228
9232
  if (!A)
9229
9233
  return r.executeEnd = Ve(), Ds(s);
@@ -9239,7 +9243,7 @@ class Lr {
9239
9243
  const R = this.configureTransmuxer(n);
9240
9244
  if (R)
9241
9245
  return this.logger.warn(`[transmuxer] ${R.message}`), this.observer.emit(m.ERROR, m.ERROR, {
9242
- type: $.MEDIA_ERROR,
9246
+ type: V.MEDIA_ERROR,
9243
9247
  details: b.FRAG_PARSING_ERROR,
9244
9248
  fatal: !1,
9245
9249
  error: R,
@@ -9428,7 +9432,7 @@ class Wn {
9428
9432
  return;
9429
9433
  const l = new Error(`${c.message} (${c.filename}:${c.lineno})`);
9430
9434
  this.hls.config.enableWorker = !1, this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`), this.hls.trigger(m.ERROR, {
9431
- type: $.OTHER_ERROR,
9435
+ type: V.OTHER_ERROR,
9432
9436
  details: b.INTERNAL_EXCEPTION,
9433
9437
  fatal: !1,
9434
9438
  event: "demuxerWorker",
@@ -9529,10 +9533,10 @@ class Wn {
9529
9533
  }, e instanceof ArrayBuffer ? [e] : []);
9530
9534
  else if (g) {
9531
9535
  const k = g.push(e, p, l, A);
9532
- wt(k) ? k.then((_) => {
9533
- this.handleTransmuxComplete(_);
9534
- }).catch((_) => {
9535
- this.transmuxerError(_, l, "transmuxer-interface push error");
9536
+ wt(k) ? k.then((O) => {
9537
+ this.handleTransmuxComplete(O);
9538
+ }).catch((O) => {
9539
+ this.transmuxerError(O, l, "transmuxer-interface push error");
9536
9540
  }) : this.handleTransmuxComplete(k);
9537
9541
  }
9538
9542
  }
@@ -9559,7 +9563,7 @@ class Wn {
9559
9563
  }
9560
9564
  transmuxerError(e, t, s) {
9561
9565
  this.hls && (this.error = e, this.hls.trigger(m.ERROR, {
9562
- type: $.MEDIA_ERROR,
9566
+ type: V.MEDIA_ERROR,
9563
9567
  details: b.FRAG_PARSING_ERROR,
9564
9568
  chunkMeta: t,
9565
9569
  frag: this.frag || void 0,
@@ -10181,7 +10185,7 @@ class Si extends we {
10181
10185
  networkDetails: S
10182
10186
  } = t;
10183
10187
  y.trigger(m.ERROR, {
10184
- type: $.NETWORK_ERROR,
10188
+ type: V.NETWORK_ERROR,
10185
10189
  details: b.LEVEL_PARSING_ERROR,
10186
10190
  fatal: !1,
10187
10191
  url: i.url,
@@ -10215,8 +10219,8 @@ class Si extends we {
10215
10219
  else {
10216
10220
  const k = Math.floor(A / i.targetduration);
10217
10221
  if (p += k, T !== void 0) {
10218
- const _ = Math.round(A % i.targetduration / i.partTarget);
10219
- T += _;
10222
+ const O = Math.round(A % i.targetduration / i.partTarget);
10223
+ T += O;
10220
10224
  }
10221
10225
  this.log(`CDN Tune-in age: ${i.ageHeader}s last advanced ${R.toFixed(2)}s goal: ${A} skip sn ${k} to part ${T}`);
10222
10226
  }
@@ -10368,7 +10372,7 @@ class uc extends Si {
10368
10372
  var n;
10369
10373
  const d = new Error(`No audio track selected for current audio group-ID(s): ${(n = this.groupIds) == null ? void 0 : n.join(",")} track count: ${o.length}`);
10370
10374
  this.warn(d.message), this.hls.trigger(m.ERROR, {
10371
- type: $.MEDIA_ERROR,
10375
+ type: V.MEDIA_ERROR,
10372
10376
  details: b.AUDIO_TRACK_LOAD_ERROR,
10373
10377
  fatal: !0,
10374
10378
  error: d
@@ -10948,8 +10952,8 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
10948
10952
  if (S && d !== "initSegment") {
10949
10953
  const x = c || o, R = this.blockedAudioAppend;
10950
10954
  if (r === "audio" && n !== "main" && !this.blockedAudioAppend) {
10951
- const A = x.start + x.duration * 0.05, k = S.buffered, _ = this.currentOp("video");
10952
- !k.length && !_ ? this.blockAudio(x) : !_ && !j.isBuffered(S, A) && this.lastVideoAppendEnd < A && this.blockAudio(x);
10955
+ const A = x.start + x.duration * 0.05, k = S.buffered, O = this.currentOp("video");
10956
+ !k.length && !O ? this.blockAudio(x) : !O && !j.isBuffered(S, A) && this.lastVideoAppendEnd < A && this.blockAudio(x);
10953
10957
  } else if (r === "video") {
10954
10958
  const D = x.end;
10955
10959
  if (R) {
@@ -10965,7 +10969,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
10965
10969
  var x;
10966
10970
  u.executeStart = self.performance.now();
10967
10971
  const R = (x = this.tracks[r]) == null ? void 0 : x.buffer;
10968
- R && (v ? this.updateTimestampOffset(R, L, 0.1, r, d, f) : h !== void 0 && U(h) && this.updateTimestampOffset(R, h, 1e-6, r, d, f)), this.appendExecutor(i, r);
10972
+ R && (v ? this.updateTimestampOffset(R, L, 0.1, r, d, f) : h !== void 0 && B(h) && this.updateTimestampOffset(R, h, 1e-6, r, d, f)), this.appendExecutor(i, r);
10969
10973
  },
10970
10974
  onStart: () => {
10971
10975
  },
@@ -10987,7 +10991,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
10987
10991
  onError: (x) => {
10988
10992
  var R;
10989
10993
  const D = {
10990
- type: $.MEDIA_ERROR,
10994
+ type: V.MEDIA_ERROR,
10991
10995
  parent: o.type,
10992
10996
  details: b.BUFFER_APPEND_ERROR,
10993
10997
  sourceBufferName: r,
@@ -11120,7 +11124,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11120
11124
  if (t.details === b.BUFFER_APPEND_ERROR && t.frag) {
11121
11125
  var s;
11122
11126
  const i = (s = t.errorAction) == null ? void 0 : s.nextAutoLevel;
11123
- U(i) && i !== t.frag.level && this.resetAppendErrors();
11127
+ B(i) && i !== t.frag.level && this.resetAppendErrors();
11124
11128
  }
11125
11129
  }
11126
11130
  resetAppendErrors() {
@@ -11139,11 +11143,11 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11139
11143
  if (!s || t === null || !this.sourceBufferCount)
11140
11144
  return;
11141
11145
  const i = e.config, r = s.currentTime, n = t.levelTargetDuration, o = t.live && i.liveBackBufferLength !== null ? i.liveBackBufferLength : i.backBufferLength;
11142
- if (U(o) && o >= 0) {
11146
+ if (B(o) && o >= 0) {
11143
11147
  const c = Math.max(o, n), l = Math.floor(r / n) * n - c;
11144
11148
  this.flushBackBuffer(r, n, l);
11145
11149
  }
11146
- if (U(i.frontBufferFlushThreshold) && i.frontBufferFlushThreshold > 0) {
11150
+ if (B(i.frontBufferFlushThreshold) && i.frontBufferFlushThreshold > 0) {
11147
11151
  const c = Math.max(i.maxBufferLength, i.frontBufferFlushThreshold), l = Math.max(c, n), h = Math.floor(r / n) * n + l;
11148
11152
  this.flushFrontBuffer(r, n, h);
11149
11153
  }
@@ -11221,11 +11225,11 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11221
11225
  }
11222
11226
  const r = (e = this.overrides) == null ? void 0 : e.duration;
11223
11227
  if (r)
11224
- return U(r) ? {
11228
+ return B(r) ? {
11225
11229
  duration: r
11226
11230
  } : null;
11227
- const n = this.media.duration, o = U(s.duration) ? s.duration : 0;
11228
- return i > o && i > n || !U(n) ? {
11231
+ const n = this.media.duration, o = B(s.duration) ? s.duration : 0;
11232
+ return i > o && i > n || !B(n) ? {
11229
11233
  duration: i
11230
11234
  } : null;
11231
11235
  }
@@ -11235,7 +11239,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11235
11239
  end: s
11236
11240
  }) {
11237
11241
  const i = this.mediaSource;
11238
- !this.media || !i || i.readyState !== "open" || (i.duration !== e && (U(e) && this.log(`Updating MediaSource duration to ${e.toFixed(3)}`), i.duration = e), t !== void 0 && s !== void 0 && (this.log(`MediaSource duration is set to ${i.duration}. Setting seekable range to ${t}-${s}.`), i.setLiveSeekableRange(t, s)));
11242
+ !this.media || !i || i.readyState !== "open" || (i.duration !== e && (B(e) && this.log(`Updating MediaSource duration to ${e.toFixed(3)}`), i.duration = e), t !== void 0 && s !== void 0 && (this.log(`MediaSource duration is set to ${i.duration}. Setting seekable range to ${t}-${s}.`), i.setLiveSeekableRange(t, s)));
11239
11243
  }
11240
11244
  get tracksReady() {
11241
11245
  const e = this.pendingTrackCount;
@@ -11277,7 +11281,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11277
11281
  } else {
11278
11282
  const e = new Error("could not create source buffer for media codec(s)");
11279
11283
  this.hls.trigger(m.ERROR, {
11280
- type: $.MEDIA_ERROR,
11284
+ type: V.MEDIA_ERROR,
11281
11285
  details: b.BUFFER_INCOMPATIBLE_CODECS_ERROR,
11282
11286
  fatal: !0,
11283
11287
  error: e,
@@ -11304,7 +11308,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11304
11308
  } catch (h) {
11305
11309
  var i;
11306
11310
  this.error(`error while trying to add sourceBuffer: ${h.message}`), this.shiftAndExecuteNext(n), (i = this.operationQueue) == null || i.removeBlockers(), delete this.tracks[n], this.hls.trigger(m.ERROR, {
11307
- type: $.MEDIA_ERROR,
11311
+ type: V.MEDIA_ERROR,
11308
11312
  details: b.BUFFER_ADD_CODEC_ERROR,
11309
11313
  fatal: !1,
11310
11314
  error: h,
@@ -11369,7 +11373,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11369
11373
  var s;
11370
11374
  const i = new Error(`${e} SourceBuffer error. MediaSource readyState: ${(s = this.mediaSource) == null ? void 0 : s.readyState}`);
11371
11375
  this.error(`${i}`, t), this.hls.trigger(m.ERROR, {
11372
- type: $.MEDIA_ERROR,
11376
+ type: V.MEDIA_ERROR,
11373
11377
  details: b.BUFFER_APPENDING_ERROR,
11374
11378
  sourceBufferName: e,
11375
11379
  error: i,
@@ -11392,7 +11396,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11392
11396
  this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`), this.shiftAndExecuteNext(e);
11393
11397
  return;
11394
11398
  }
11395
- const c = U(i.duration) ? i.duration : 1 / 0, l = U(r.duration) ? r.duration : 1 / 0, h = Math.max(0, t), u = Math.min(s, c, l);
11399
+ const c = B(i.duration) ? i.duration : 1 / 0, l = B(r.duration) ? r.duration : 1 / 0, h = Math.max(0, t), u = Math.min(s, c, l);
11396
11400
  u > h && (!n.ending || n.ended) ? (n.ended = !1, this.log(`Removing [${h},${u}] from the ${e} SourceBuffer`), o.remove(h, u)) : this.shiftAndExecuteNext(e);
11397
11401
  }
11398
11402
  // This method must result in an updateend event; if append is not called, onSBUpdateEnd must be called manually
@@ -11542,7 +11546,7 @@ class Ai {
11542
11546
  this.restrictedLevels = [], this.firstLevel = t.firstLevel, s.config.capLevelToPlayerSize && t.video && this.startCapping();
11543
11547
  }
11544
11548
  onLevelsUpdated(e, t) {
11545
- this.timer && U(this.autoLevelCapping) && this.detectPlayerSize();
11549
+ this.timer && B(this.autoLevelCapping) && this.detectPlayerSize();
11546
11550
  }
11547
11551
  // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted
11548
11552
  // to the first level
@@ -11779,7 +11783,7 @@ function Pr(a) {
11779
11783
  function Zs(a) {
11780
11784
  switch (typeof a) {
11781
11785
  case "number":
11782
- if (!U(a))
11786
+ if (!B(a))
11783
11787
  throw Ue(a, Cr);
11784
11788
  return Number.isInteger(a) ? Qn(a) : Mc(a);
11785
11789
  case "string":
@@ -11833,7 +11837,7 @@ function Wc(a) {
11833
11837
  return ["ot", "sf", "st", "e", "sta"].includes(a);
11834
11838
  }
11835
11839
  function jc(a) {
11836
- return typeof a == "number" ? U(a) : a != null && a !== "" && a !== !1;
11840
+ return typeof a == "number" ? B(a) : a != null && a !== "" && a !== !1;
11837
11841
  }
11838
11842
  function qc(a, e) {
11839
11843
  const t = new URL(a), s = new URL(e);
@@ -12461,7 +12465,7 @@ class gt extends we {
12461
12465
  mediaKeys: u
12462
12466
  })).catch((u) => {
12463
12467
  l.length ? c(l) : u instanceof Ie ? o(u) : o(new Ie({
12464
- type: $.KEY_SYSTEM_ERROR,
12468
+ type: V.KEY_SYSTEM_ERROR,
12465
12469
  details: b.KEY_SYSTEM_NO_ACCESS,
12466
12470
  error: u,
12467
12471
  fatal: !0
@@ -12592,7 +12596,7 @@ class gt extends we {
12592
12596
  }
12593
12597
  handleError(e) {
12594
12598
  this.hls && (this.error(e.message), e instanceof Ie ? this.hls.trigger(m.ERROR, e.data) : this.hls.trigger(m.ERROR, {
12595
- type: $.KEY_SYSTEM_ERROR,
12599
+ type: V.KEY_SYSTEM_ERROR,
12596
12600
  details: b.KEY_SYSTEM_NO_KEYS,
12597
12601
  error: e,
12598
12602
  fatal: !0
@@ -12609,7 +12613,7 @@ class gt extends we {
12609
12613
  getKeySystemSelectionPromise(e) {
12610
12614
  if (e.length || (e = Xt(this.config)), e.length === 0)
12611
12615
  throw new Ie({
12612
- type: $.KEY_SYSTEM_ERROR,
12616
+ type: V.KEY_SYSTEM_ERROR,
12613
12617
  details: b.KEY_SYSTEM_NO_CONFIGURED_LICENSE,
12614
12618
  fatal: !0
12615
12619
  }, `Missing key-system license configuration options ${ne({
@@ -12675,11 +12679,11 @@ class gt extends we {
12675
12679
  const f = new Promise((g, E) => {
12676
12680
  h.on("error", E), h.on("keyStatus", (p) => {
12677
12681
  p.startsWith("usable") ? g() : p === "output-restricted" ? E(new Ie({
12678
- type: $.KEY_SYSTEM_ERROR,
12682
+ type: V.KEY_SYSTEM_ERROR,
12679
12683
  details: b.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,
12680
12684
  fatal: !1
12681
12685
  }, "HDCP level output restricted")) : p === "internal-error" ? E(new Ie({
12682
- type: $.KEY_SYSTEM_ERROR,
12686
+ type: V.KEY_SYSTEM_ERROR,
12683
12687
  details: b.KEY_SYSTEM_STATUS_INTERNAL_ERROR,
12684
12688
  fatal: !0
12685
12689
  }, `key status changed to "${p}"`)) : p === "expired" ? E(new Error("key expired while generating request")) : this.warn(`unhandled key status change "${p}"`);
@@ -12690,7 +12694,7 @@ class gt extends we {
12690
12694
  this.log(`Request generated for key-session "${(g = e.mediaKeysSession) == null ? void 0 : g.sessionId}" keyId: ${l}`);
12691
12695
  }).catch((g) => {
12692
12696
  throw new Ie({
12693
- type: $.KEY_SYSTEM_ERROR,
12697
+ type: V.KEY_SYSTEM_ERROR,
12694
12698
  details: b.KEY_SYSTEM_NO_SESSION,
12695
12699
  error: g,
12696
12700
  fatal: !1
@@ -12726,7 +12730,7 @@ class gt extends we {
12726
12730
  },
12727
12731
  onError: (d, f, g, E) => {
12728
12732
  o(new Ie({
12729
- type: $.KEY_SYSTEM_ERROR,
12733
+ type: V.KEY_SYSTEM_ERROR,
12730
12734
  details: b.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,
12731
12735
  fatal: !0,
12732
12736
  networkDetails: g,
@@ -12738,7 +12742,7 @@ class gt extends we {
12738
12742
  },
12739
12743
  onTimeout: (d, f, g) => {
12740
12744
  o(new Ie({
12741
- type: $.KEY_SYSTEM_ERROR,
12745
+ type: V.KEY_SYSTEM_ERROR,
12742
12746
  details: b.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,
12743
12747
  fatal: !0,
12744
12748
  networkDetails: g,
@@ -12761,7 +12765,7 @@ class gt extends we {
12761
12765
  this.log(`setServerCertificate ${n ? "success" : "not supported by CDM"} (${s == null ? void 0 : s.byteLength}) on "${t}"`), i(e);
12762
12766
  }).catch((n) => {
12763
12767
  r(new Ie({
12764
- type: $.KEY_SYSTEM_ERROR,
12768
+ type: V.KEY_SYSTEM_ERROR,
12765
12769
  details: b.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,
12766
12770
  error: n,
12767
12771
  fatal: !0
@@ -12772,7 +12776,7 @@ class gt extends we {
12772
12776
  renewLicense(e, t) {
12773
12777
  return this.requestLicense(e, new Uint8Array(t)).then((s) => this.updateKeySession(e, new Uint8Array(s)).catch((i) => {
12774
12778
  throw new Ie({
12775
- type: $.KEY_SYSTEM_ERROR,
12779
+ type: V.KEY_SYSTEM_ERROR,
12776
12780
  details: b.KEY_SYSTEM_SESSION_UPDATE_FAILED,
12777
12781
  error: i,
12778
12782
  fatal: !0
@@ -12842,7 +12846,7 @@ class gt extends we {
12842
12846
  const c = s.errorRetry, l = c ? c.maxNumRetry : 0;
12843
12847
  if (this._requestLicenseFailureCount++, this._requestLicenseFailureCount > l || o.status >= 400 && o.status < 500)
12844
12848
  r(new Ie({
12845
- type: $.KEY_SYSTEM_ERROR,
12849
+ type: V.KEY_SYSTEM_ERROR,
12846
12850
  details: b.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
12847
12851
  fatal: !0,
12848
12852
  networkDetails: o,
@@ -12889,7 +12893,7 @@ class gt extends we {
12889
12893
  gt.CDMCleanupPromise = Promise.all(s.map((r) => this.removeSession(r)).concat(t == null || (e = t.setMediaKeys(null)) == null ? void 0 : e.catch((r) => {
12890
12894
  var n;
12891
12895
  this.log(`Could not clear media keys: ${r}`), (n = this.hls) == null || n.trigger(m.ERROR, {
12892
- type: $.OTHER_ERROR,
12896
+ type: V.OTHER_ERROR,
12893
12897
  details: b.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,
12894
12898
  fatal: !1,
12895
12899
  error: new Error(`Could not clear media keys: ${r}`)
@@ -12897,7 +12901,7 @@ class gt extends we {
12897
12901
  }))).catch((r) => {
12898
12902
  var n;
12899
12903
  this.log(`Could not close sessions and clear media keys: ${r}`), (n = this.hls) == null || n.trigger(m.ERROR, {
12900
- type: $.OTHER_ERROR,
12904
+ type: V.OTHER_ERROR,
12901
12905
  details: b.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,
12902
12906
  fatal: !1,
12903
12907
  error: new Error(`Could not close sessions and clear media keys: ${r}`)
@@ -12934,7 +12938,7 @@ class gt extends we {
12934
12938
  }) : Promise.resolve()).catch((o) => {
12935
12939
  var c;
12936
12940
  this.log(`Could not remove session: ${o}`), (c = this.hls) == null || c.trigger(m.ERROR, {
12937
- type: $.OTHER_ERROR,
12941
+ type: V.OTHER_ERROR,
12938
12942
  details: b.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,
12939
12943
  fatal: !1,
12940
12944
  error: new Error(`Could not remove session: ${o}`)
@@ -12942,7 +12946,7 @@ class gt extends we {
12942
12946
  }).then(() => t.close()).catch((o) => {
12943
12947
  var c;
12944
12948
  this.log(`Could not close session: ${o}`), (c = this.hls) == null || c.trigger(m.ERROR, {
12945
- type: $.OTHER_ERROR,
12949
+ type: V.OTHER_ERROR,
12946
12950
  details: b.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,
12947
12951
  fatal: !1,
12948
12952
  error: new Error(`Could not close session: ${o}`)
@@ -13328,7 +13332,7 @@ class ch extends Si {
13328
13332
  this.queuedDefaultTrack = e;
13329
13333
  return;
13330
13334
  }
13331
- if (e < -1 || e >= t.length || !U(e)) {
13335
+ if (e < -1 || e >= t.length || !B(e)) {
13332
13336
  this.warn(`Invalid subtitle track id: ${e}`);
13333
13337
  return;
13334
13338
  }
@@ -13447,7 +13451,7 @@ class dh {
13447
13451
  return !1;
13448
13452
  }
13449
13453
  get resumptionOffset() {
13450
- const e = this.resumeOffset, t = U(e) ? e : this.duration;
13454
+ const e = this.resumeOffset, t = B(e) ? e : this.duration;
13451
13455
  return this.cumulativeDuration + t;
13452
13456
  }
13453
13457
  get resumeTime() {
@@ -13850,11 +13854,11 @@ class mh extends we {
13850
13854
  if (!S) {
13851
13855
  const A = p - c;
13852
13856
  if (A > wr) {
13853
- const k = c, _ = l;
13857
+ const k = c, O = l;
13854
13858
  l += A;
13855
13859
  const K = n;
13856
13860
  n += A;
13857
- const O = {
13861
+ const U = {
13858
13862
  previousEvent: e[u - 1] || null,
13859
13863
  nextEvent: h,
13860
13864
  start: k,
@@ -13864,11 +13868,11 @@ class mh extends we {
13864
13868
  end: n
13865
13869
  },
13866
13870
  integrated: {
13867
- start: _,
13871
+ start: O,
13868
13872
  end: l
13869
13873
  }
13870
13874
  };
13871
- s.push(O);
13875
+ s.push(U);
13872
13876
  } else A > 0 && g && (g.cumulativeDuration += A, s[s.length - 1].end = p);
13873
13877
  }
13874
13878
  f && (C = L), h.timelineStart = L;
@@ -13943,7 +13947,7 @@ class mh extends we {
13943
13947
  e.forEach((o, c) => {
13944
13948
  const l = o.cue.pre, h = o.cue.post, u = l ? 0 : h ? i : o.startTime;
13945
13949
  this.updateAssetDurations(o), n === u ? o.cumulativeDuration = r : (r = 0, n = u), !h && o.snapOptions.in && (o.resumeAnchor = it(null, s.fragments, o.startOffset + o.resumptionOffset, 0, 0) || void 0), o.appendInPlace && !o.appendInPlaceStarted && (this.primaryCanResumeInPlaceAt(o, t) || (o.appendInPlace = !1)), !o.appendInPlace && c + 1 < e.length && e[c + 1].startTime - e[c].resumeTime < wr && (e[c + 1].appendInPlace = !1, e[c + 1].appendInPlace && this.warn(`Could not change append strategy for abutting event ${o}`));
13946
- const f = U(o.resumeOffset) ? o.resumeOffset : o.duration;
13950
+ const f = B(o.resumeOffset) ? o.resumeOffset : o.duration;
13947
13951
  r += f;
13948
13952
  });
13949
13953
  }
@@ -14035,7 +14039,7 @@ class ph {
14035
14039
  }
14036
14040
  assignAssetListError(e, t, s, i, r, n) {
14037
14041
  return e.error = s, {
14038
- type: $.NETWORK_ERROR,
14042
+ type: V.NETWORK_ERROR,
14039
14043
  details: t,
14040
14044
  fatal: !1,
14041
14045
  interstitial: e,
@@ -14262,9 +14266,9 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14262
14266
  if (p && (L || C)) {
14263
14267
  const R = s(e.playingAsset), D = (R == null ? void 0 : R.media) || e.primaryMedia;
14264
14268
  if (D) {
14265
- const A = d === "primary" ? D.currentTime : i(p, d, e.playingAsset, "timelinePos", "currentTime"), k = u - A, _ = (L ? A : D.currentTime) + k;
14266
- if (_ >= 0 && (!R || L || _ <= R.duration)) {
14267
- D.currentTime = _;
14269
+ const A = d === "primary" ? D.currentTime : i(p, d, e.playingAsset, "timelinePos", "currentTime"), k = u - A, O = (L ? A : D.currentTime) + k;
14270
+ if (O >= 0 && (!R || L || O <= R.duration)) {
14271
+ D.currentTime = O;
14268
14272
  return;
14269
14273
  }
14270
14274
  }
@@ -14282,9 +14286,9 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14282
14286
  } else if (p) {
14283
14287
  const A = e.findItemIndex(p);
14284
14288
  if (T > A) {
14285
- const _ = e.schedule.findJumpRestrictedIndex(A + 1, T);
14286
- if (_ > A) {
14287
- e.setSchedulePosition(_);
14289
+ const O = e.schedule.findJumpRestrictedIndex(A + 1, T);
14290
+ if (O > A) {
14291
+ e.setSchedulePosition(O);
14288
14292
  return;
14289
14293
  }
14290
14294
  }
@@ -14293,13 +14297,13 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14293
14297
  e.timelinePos = R, e.checkBuffer();
14294
14298
  else {
14295
14299
  var x;
14296
- const _ = v == null || (x = v.event) == null ? void 0 : x.assetList;
14297
- if (_) {
14300
+ const O = v == null || (x = v.event) == null ? void 0 : x.assetList;
14301
+ if (O) {
14298
14302
  const K = u - (v[d] || v).start;
14299
- for (let O = _.length; O--; ) {
14300
- const B = _[O];
14301
- if (B.duration && K >= B.startOffset && K < B.startOffset + B.duration) {
14302
- k = O;
14303
+ for (let U = O.length; U--; ) {
14304
+ const N = O[U];
14305
+ if (N.duration && K >= N.startOffset && K < N.startOffset + N.duration) {
14306
+ k = U;
14303
14307
  break;
14304
14308
  }
14305
14309
  }
@@ -14454,7 +14458,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14454
14458
  let r = this.media;
14455
14459
  !r && (e = this.bufferingItem) != null && (t = e.event) != null && t.appendInPlace && (r = this.primaryMedia);
14456
14460
  const n = (s = r) == null ? void 0 : s.currentTime;
14457
- if (!(n === void 0 || !U(n)))
14461
+ if (!(n === void 0 || !B(n)))
14458
14462
  return n;
14459
14463
  }
14460
14464
  get primaryMedia() {
@@ -15027,7 +15031,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
15027
15031
  if (y.live) {
15028
15032
  const C = new Error(`Interstitials MUST be VOD assets ${e}`), x = {
15029
15033
  fatal: !0,
15030
- type: $.OTHER_ERROR,
15034
+ type: V.OTHER_ERROR,
15031
15035
  details: b.INTERSTITIAL_ASSET_ITEM_ERROR,
15032
15036
  error: C
15033
15037
  };
@@ -15091,7 +15095,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
15091
15095
  return;
15092
15096
  const S = new Error(`Asset player destroyed unexpectedly ${u}`), L = {
15093
15097
  fatal: !0,
15094
- type: $.OTHER_ERROR,
15098
+ type: V.OTHER_ERROR,
15095
15099
  details: b.INTERSTITIAL_ASSET_ITEM_ERROR,
15096
15100
  error: S
15097
15101
  };
@@ -15167,7 +15171,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
15167
15171
  if (u && !zr(u, e.tracks)) {
15168
15172
  const d = new Error(`Asset ${ut(n)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(u)}')`), f = {
15169
15173
  fatal: !0,
15170
- type: $.OTHER_ERROR,
15174
+ type: V.OTHER_ERROR,
15171
15175
  details: b.INTERSTITIAL_ASSET_ITEM_ERROR,
15172
15176
  error: d
15173
15177
  }, g = r.findAssetIndex(n);
@@ -15422,7 +15426,7 @@ class Th extends fi {
15422
15426
  const n = performance.now();
15423
15427
  this.decrypter.decrypt(new Uint8Array(s), i.key.buffer, i.iv.buffer, di(i.method)).catch((o) => {
15424
15428
  throw r.trigger(m.ERROR, {
15425
- type: $.MEDIA_ERROR,
15429
+ type: V.MEDIA_ERROR,
15426
15430
  details: b.FRAG_DECRYPT_ERROR,
15427
15431
  fatal: !1,
15428
15432
  error: o,
@@ -16636,7 +16640,7 @@ const Fh = /\r\n|\n\r|\n|\r/g, ws = function(e, t, s = 0) {
16636
16640
  }, Mh = function(e) {
16637
16641
  let t = parseInt(e.slice(-3));
16638
16642
  const s = parseInt(e.slice(-6, -4)), i = parseInt(e.slice(-9, -7)), r = e.length > 9 ? parseInt(e.substring(0, e.indexOf(":"))) : 0;
16639
- if (!U(t) || !U(s) || !U(i) || !U(r))
16643
+ if (!B(t) || !B(s) || !B(i) || !B(r))
16640
16644
  throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);
16641
16645
  return t += 1e3 * s, t += 60 * 1e3 * i, t += 60 * 60 * 1e3 * r, t;
16642
16646
  };
@@ -17299,7 +17303,7 @@ class Vr {
17299
17303
  maxTimeToFirstByteMs: c,
17300
17304
  maxLoadTimeMs: l
17301
17305
  } = t.loadPolicy;
17302
- this.context = e, this.config = t, this.callbacks = s, this.request = this.fetchSetup(e, r), self.clearTimeout(this.requestTimeout), t.timeout = c && U(c) ? c : l, this.requestTimeout = self.setTimeout(() => {
17306
+ this.context = e, this.config = t, this.callbacks = s, this.request = this.fetchSetup(e, r), self.clearTimeout(this.requestTimeout), t.timeout = c && B(c) ? c : l, this.requestTimeout = self.setTimeout(() => {
17303
17307
  this.callbacks && (this.abortInternal(), this.callbacks.onTimeout(i, e, this.response));
17304
17308
  }, t.timeout), (wt(this.request) ? this.request.then(self.fetch) : self.fetch(this.request)).then((u) => {
17305
17309
  var d;
@@ -17316,7 +17320,7 @@ class Vr {
17316
17320
  }
17317
17321
  i.loading.first = f, i.total = Zh(u.headers) || i.total;
17318
17322
  const g = (d = this.callbacks) == null ? void 0 : d.onProgress;
17319
- return g && U(t.highWaterMark) ? this.loadProgressively(u, i, e, t.highWaterMark, g) : n ? u.arrayBuffer() : e.responseType === "json" ? u.json() : u.text();
17323
+ return g && B(t.highWaterMark) ? this.loadProgressively(u, i, e, t.highWaterMark, g) : n ? u.arrayBuffer() : e.responseType === "json" ? u.json() : u.text();
17320
17324
  }).then((u) => {
17321
17325
  var d, f;
17322
17326
  const g = this.response;
@@ -17330,7 +17334,7 @@ class Vr {
17330
17334
  data: u,
17331
17335
  code: g.status
17332
17336
  }, T = (d = this.callbacks) == null ? void 0 : d.onProgress;
17333
- T && !U(t.highWaterMark) && T(i, e, u, g), (f = this.callbacks) == null || f.onSuccess(p, i, e, g);
17337
+ T && !B(t.highWaterMark) && T(i, e, u, g), (f = this.callbacks) == null || f.onSuccess(p, i, e, g);
17334
17338
  }).catch((u) => {
17335
17339
  var d;
17336
17340
  if (self.clearTimeout(this.requestTimeout), i.aborted)
@@ -17382,7 +17386,7 @@ function Zh(a) {
17382
17386
  const e = a.get("Content-Range");
17383
17387
  if (e) {
17384
17388
  const s = Xh(e);
17385
- if (U(s))
17389
+ if (B(s))
17386
17390
  return s;
17387
17391
  }
17388
17392
  const t = a.get("Content-Length");
@@ -17453,7 +17457,7 @@ class fa {
17453
17457
  if (i)
17454
17458
  for (const o in i)
17455
17459
  e.setRequestHeader(o, i[o]);
17456
- t.rangeEnd && e.setRequestHeader("Range", "bytes=" + t.rangeStart + "-" + (t.rangeEnd - 1)), e.onreadystatechange = this.readystatechange.bind(this), e.onprogress = this.loadprogress.bind(this), e.responseType = t.responseType, self.clearTimeout(this.requestTimeout), s.timeout = r && U(r) ? r : n, this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), s.timeout), e.send();
17460
+ t.rangeEnd && e.setRequestHeader("Range", "bytes=" + t.rangeStart + "-" + (t.rangeEnd - 1)), e.onreadystatechange = this.readystatechange.bind(this), e.onprogress = this.loadprogress.bind(this), e.responseType = t.responseType, self.clearTimeout(this.requestTimeout), s.timeout = r && B(r) ? r : n, this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), s.timeout), e.send();
17457
17461
  }
17458
17462
  readystatechange() {
17459
17463
  const {
@@ -18050,7 +18054,7 @@ class hu extends fn {
18050
18054
  this.warn(u.message), this.media.currentTime += 1e-6;
18051
18055
  const d = this.fragmentTracker.getPartialFragment(e) || void 0, f = j.bufferInfo(this.media, e, 0);
18052
18056
  this.hls.trigger(m.ERROR, {
18053
- type: $.MEDIA_ERROR,
18057
+ type: V.MEDIA_ERROR,
18054
18058
  details: b.BUFFER_SEEK_OVER_HOLE,
18055
18059
  fatal: !1,
18056
18060
  error: u,
@@ -18109,7 +18113,7 @@ class hu extends fn {
18109
18113
  this.stallReported = !0;
18110
18114
  const n = new Error(`Playback stalling at @${s.currentTime} due to low buffer (${ne(e)})`);
18111
18115
  this.warn(n.message), t.trigger(m.ERROR, {
18112
- type: $.MEDIA_ERROR,
18116
+ type: V.MEDIA_ERROR,
18113
18117
  details: b.BUFFER_STALLED_ERROR,
18114
18118
  fatal: !1,
18115
18119
  error: n,
@@ -18169,7 +18173,7 @@ class hu extends fn {
18169
18173
  if (this.warn(`skipping hole, adjusting currentTime from ${n} to ${f}`), this.moved = !0, i.currentTime = f, !(e != null && e.gap)) {
18170
18174
  const g = new Error(`fragment loaded with buffer holes, seeking from ${n} to ${f}`);
18171
18175
  this.hls.trigger(m.ERROR, {
18172
- type: $.MEDIA_ERROR,
18176
+ type: V.MEDIA_ERROR,
18173
18177
  details: b.BUFFER_SEEK_OVER_HOLE,
18174
18178
  fatal: !1,
18175
18179
  error: g,
@@ -18200,7 +18204,7 @@ class hu extends fn {
18200
18204
  if (this.nudgeRetry++, i < r.nudgeMaxRetry) {
18201
18205
  const o = n + (i + 1) * r.nudgeOffset, c = new Error(`Nudging 'currentTime' from ${n} to ${o}`);
18202
18206
  this.warn(c.message), s.currentTime = o, t.trigger(m.ERROR, {
18203
- type: $.MEDIA_ERROR,
18207
+ type: V.MEDIA_ERROR,
18204
18208
  details: b.BUFFER_NUDGE_ON_STALL,
18205
18209
  error: c,
18206
18210
  fatal: !1,
@@ -18210,7 +18214,7 @@ class hu extends fn {
18210
18214
  } else {
18211
18215
  const o = new Error(`Playhead still not moving while enough data buffered @${n} after ${r.nudgeMaxRetry} nudges`);
18212
18216
  this.error(o.message), t.trigger(m.ERROR, {
18213
- type: $.MEDIA_ERROR,
18217
+ type: V.MEDIA_ERROR,
18214
18218
  details: b.BUFFER_STALLED_ERROR,
18215
18219
  error: o,
18216
18220
  fatal: !0,
@@ -18419,7 +18423,7 @@ class du {
18419
18423
  n = this.dateRangeCuesAppended = {};
18420
18424
  }
18421
18425
  const c = e.fragments[e.fragments.length - 1];
18422
- if (r.length === 0 || !U(c == null ? void 0 : c.programDateTime))
18426
+ if (r.length === 0 || !B(c == null ? void 0 : c.programDateTime))
18423
18427
  return;
18424
18428
  this.id3Track || (this.id3Track = this.createTrack(this.media));
18425
18429
  const l = ii();
@@ -18716,7 +18720,7 @@ class gu extends Si {
18716
18720
  t.levels.length && (T = `one or more CODECS in variant not supported: ${ne(t.levels.map((y) => y.attrs.CODECS).filter((y, S, L) => L.indexOf(y) === S))}`, this.warn(T), p += ` (${T})`);
18717
18721
  const v = new Error(p);
18718
18722
  this.hls.trigger(m.ERROR, {
18719
- type: $.MEDIA_ERROR,
18723
+ type: V.MEDIA_ERROR,
18720
18724
  details: b.MANIFEST_INCOMPATIBLE_CODECS_ERROR,
18721
18725
  fatal: !0,
18722
18726
  url: t.url,
@@ -18800,7 +18804,7 @@ class gu extends Si {
18800
18804
  if (e < 0 || e >= t.length) {
18801
18805
  const h = new Error("invalid level idx"), u = e < 0;
18802
18806
  if (this.hls.trigger(m.ERROR, {
18803
- type: $.OTHER_ERROR,
18807
+ type: V.OTHER_ERROR,
18804
18808
  details: b.LEVEL_SWITCH_ERROR,
18805
18809
  level: e,
18806
18810
  fatal: u,
@@ -19004,7 +19008,7 @@ class Tu extends fi {
19004
19008
  this.tick();
19005
19009
  }, this.onMediaSeeked = () => {
19006
19010
  const i = this.media, r = i ? i.currentTime : null;
19007
- if (r === null || !U(r) || (this.log(`Media seeked to ${r.toFixed(3)}`), !this.getBufferedFrag(r)))
19011
+ if (r === null || !B(r) || (this.log(`Media seeked to ${r.toFixed(3)}`), !this.getBufferedFrag(r)))
19008
19012
  return;
19009
19013
  const n = this.getFwdBufferInfoAtPos(i, r, G.MAIN, 0);
19010
19014
  if (n === null || n.len === 0) {
@@ -19518,7 +19522,7 @@ class Tu extends fi {
19518
19522
  });
19519
19523
  }
19520
19524
  const T = g.initPTS, v = g.timescale, y = this.initPTS[c.cc];
19521
- U(T) && (!y || y.baseTime !== T || y.timescale !== v) && (this.initPTS[c.cc] = {
19525
+ B(T) && (!y || y.baseTime !== T || y.timescale !== v) && (this.initPTS[c.cc] = {
19522
19526
  baseTime: T,
19523
19527
  timescale: v
19524
19528
  }, i.trigger(m.INIT_PTS_FOUND, {
@@ -19694,12 +19698,12 @@ class Tu extends fi {
19694
19698
  if (this.fragPlaying)
19695
19699
  return this.fragPlaying;
19696
19700
  const t = ((e = this.media) == null ? void 0 : e.currentTime) || this.lastCurrentTime;
19697
- return U(t) ? this.getAppendedFrag(t) : null;
19701
+ return B(t) ? this.getAppendedFrag(t) : null;
19698
19702
  }
19699
19703
  get currentProgramDateTime() {
19700
19704
  var e;
19701
19705
  const t = ((e = this.media) == null ? void 0 : e.currentTime) || this.lastCurrentTime;
19702
- if (U(t)) {
19706
+ if (B(t)) {
19703
19707
  const s = this.getLevelDetails(), i = this.currentFrag || (s ? it(null, s.fragments, t) : null);
19704
19708
  if (i) {
19705
19709
  const r = i.programDateTime;
@@ -19754,7 +19758,7 @@ class yu {
19754
19758
  }
19755
19759
  createKeyLoadError(e, t = b.KEY_LOAD_ERROR, s, i, r) {
19756
19760
  return new Ke({
19757
- type: $.NETWORK_ERROR,
19761
+ type: V.NETWORK_ERROR,
19758
19762
  details: t,
19759
19763
  fatal: !1,
19760
19764
  frag: e,
@@ -20063,7 +20067,7 @@ class vu {
20063
20067
  if (e.type === Q.MANIFEST ? r = s.manifestLoadPolicy.default : r = se({}, s.playlistLoadPolicy.default, {
20064
20068
  timeoutRetry: null,
20065
20069
  errorRetry: null
20066
- }), i = this.createInternalLoader(e), U((t = e.deliveryDirectives) == null ? void 0 : t.part)) {
20070
+ }), i = this.createInternalLoader(e), B((t = e.deliveryDirectives) == null ? void 0 : t.part)) {
20067
20071
  let l;
20068
20072
  if (e.type === Q.LEVEL && e.level !== null ? l = this.hls.levels[e.level].details : e.type === Q.AUDIO_TRACK && e.id !== null ? l = this.hls.audioTracks[e.id].details : e.type === Q.SUBTITLE_TRACK && e.id !== null && (l = this.hls.subtitleTracks[e.id].details), l) {
20069
20073
  const h = l.partTarget, u = l.targetduration;
@@ -20165,7 +20169,7 @@ class vu {
20165
20169
  id: o,
20166
20170
  level: c,
20167
20171
  type: l
20168
- } = s, h = Ns(e, s), u = U(c) ? c : U(o) ? o : 0, d = qr(s), f = Ne.parseLevelPlaylist(e.data, h, u, d, 0, this.variableList);
20172
+ } = s, h = Ns(e, s), u = B(c) ? c : B(o) ? o : 0, d = qr(s), f = Ne.parseLevelPlaylist(e.data, h, u, d, 0, this.variableList);
20169
20173
  if (l === Q.MANIFEST) {
20170
20174
  const g = {
20171
20175
  attrs: new oe({}),
@@ -20191,7 +20195,7 @@ class vu {
20191
20195
  }
20192
20196
  handleManifestParsingError(e, t, s, i, r) {
20193
20197
  this.hls.trigger(m.ERROR, {
20194
- type: $.NETWORK_ERROR,
20198
+ type: V.NETWORK_ERROR,
20195
20199
  details: b.MANIFEST_PARSING_ERROR,
20196
20200
  fatal: t.type === Q.MANIFEST,
20197
20201
  url: e.url,
@@ -20227,7 +20231,7 @@ class vu {
20227
20231
  }
20228
20232
  h && this.resetInternalLoader(e.type);
20229
20233
  const u = {
20230
- type: $.NETWORK_ERROR,
20234
+ type: V.NETWORK_ERROR,
20231
20235
  details: c,
20232
20236
  fatal: l,
20233
20237
  url: e.url,
@@ -20257,7 +20261,7 @@ class vu {
20257
20261
  if (!e.fragments.length) {
20258
20262
  const T = e.playlistParsingError = new Error("No Segments found in Playlist");
20259
20263
  o.trigger(m.ERROR, {
20260
- type: $.NETWORK_ERROR,
20264
+ type: V.NETWORK_ERROR,
20261
20265
  details: b.LEVEL_EMPTY_ERROR,
20262
20266
  fatal: !1,
20263
20267
  url: f,
@@ -20277,7 +20281,7 @@ class vu {
20277
20281
  if (p) {
20278
20282
  if (this.hls.logger.warn(p), !o.config.ignorePlaylistParsingErrors) {
20279
20283
  o.trigger(m.ERROR, {
20280
- type: $.NETWORK_ERROR,
20284
+ type: V.NETWORK_ERROR,
20281
20285
  details: b.LEVEL_PARSING_ERROR,
20282
20286
  fatal: !1,
20283
20287
  url: f,
@@ -20333,7 +20337,7 @@ class vu {
20333
20337
  }
20334
20338
  }
20335
20339
  }
20336
- class Ee {
20340
+ class Te {
20337
20341
  /**
20338
20342
  * Get the video-dev/hls.js package version.
20339
20343
  */
@@ -20365,7 +20369,7 @@ class Ee {
20365
20369
  return Ae;
20366
20370
  }
20367
20371
  static get ErrorTypes() {
20368
- return $;
20372
+ return V;
20369
20373
  }
20370
20374
  static get ErrorDetails() {
20371
20375
  return b;
@@ -20374,13 +20378,13 @@ class Ee {
20374
20378
  * Get the default configuration applied to new instances.
20375
20379
  */
20376
20380
  static get DefaultConfig() {
20377
- return Ee.defaultConfig ? Ee.defaultConfig : iu;
20381
+ return Te.defaultConfig ? Te.defaultConfig : iu;
20378
20382
  }
20379
20383
  /**
20380
20384
  * Replace the default configuration applied to new instances.
20381
20385
  */
20382
20386
  static set DefaultConfig(e) {
20383
- Ee.defaultConfig = e;
20387
+ Te.defaultConfig = e;
20384
20388
  }
20385
20389
  /**
20386
20390
  * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.
@@ -20388,7 +20392,7 @@ class Ee {
20388
20392
  */
20389
20393
  constructor(e = {}) {
20390
20394
  this.config = void 0, this.userConfig = void 0, this.logger = void 0, this.coreComponents = void 0, this.networkControllers = void 0, this._emitter = new gi(), this._autoLevelCapping = -1, this._maxHdcpLevel = null, this.abrController = void 0, this.bufferController = void 0, this.capLevelController = void 0, this.latencyController = void 0, this.levelController = void 0, this.streamController = void 0, this.audioStreamController = void 0, this.subtititleStreamController = void 0, this.audioTrackController = void 0, this.subtitleTrackController = void 0, this.interstitialsController = void 0, this.gapController = void 0, this.emeController = void 0, this.cmcdController = void 0, this._media = null, this._url = null, this._sessionId = void 0, this.triggeringException = void 0, this.started = !1;
20391
- const t = this.logger = Ua(e.debug || !1, "Hls instance", e.assetPlayerId), s = this.config = nu(Ee.DefaultConfig, e, t);
20395
+ const t = this.logger = Ua(e.debug || !1, "Hls instance", e.assetPlayerId), s = this.config = nu(Te.DefaultConfig, e, t);
20392
20396
  this.userConfig = e, s.progressive && au(s, t);
20393
20397
  const {
20394
20398
  abrController: i,
@@ -20396,7 +20400,7 @@ class Ee {
20396
20400
  capLevelController: n,
20397
20401
  errorController: o,
20398
20402
  fpsController: c
20399
- } = s, l = new o(this), h = this.abrController = new i(this), u = new ko(this), d = s.interstitialsController, f = d ? this.interstitialsController = new d(this, Ee) : null, g = this.bufferController = new r(this, u), E = this.capLevelController = new n(this), p = new c(this), T = new vu(this), v = s.contentSteeringController, y = v ? new v(this) : null, S = this.levelController = new gu(this, y), L = new du(this), C = new yu(this.config), x = this.streamController = new Tu(this, u, C), R = this.gapController = new hu(this, u);
20403
+ } = s, l = new o(this), h = this.abrController = new i(this), u = new ko(this), d = s.interstitialsController, f = d ? this.interstitialsController = new d(this, Te) : null, g = this.bufferController = new r(this, u), E = this.capLevelController = new n(this), p = new c(this), T = new vu(this), v = s.contentSteeringController, y = v ? new v(this) : null, S = this.levelController = new gu(this, y), L = new du(this), C = new yu(this.config), x = this.streamController = new Tu(this, u, C), R = this.gapController = new hu(this, u);
20400
20404
  E.setStreamController(x), p.setStreamController(x);
20401
20405
  const D = [T, S, x];
20402
20406
  f && D.splice(1, 0, f), y && D.splice(1, 0, y), this.networkControllers = D;
@@ -20404,8 +20408,8 @@ class Ee {
20404
20408
  this.audioTrackController = this.createController(s.audioTrackController, D);
20405
20409
  const k = s.audioStreamController;
20406
20410
  k && D.push(this.audioStreamController = new k(this, u, C)), this.subtitleTrackController = this.createController(s.subtitleTrackController, D);
20407
- const _ = s.subtitleStreamController;
20408
- _ && D.push(this.subtititleStreamController = new _(this, u, C)), this.createController(s.timelineController, A), C.emeController = this.emeController = this.createController(s.emeController, A), this.cmcdController = this.createController(s.cmcdController, A), this.latencyController = this.createController(fu, A), this.coreComponents = A, D.push(l);
20411
+ const O = s.subtitleStreamController;
20412
+ O && D.push(this.subtititleStreamController = new O(this, u, C)), this.createController(s.timelineController, A), C.emeController = this.emeController = this.createController(s.emeController, A), this.cmcdController = this.createController(s.cmcdController, A), this.latencyController = this.createController(fu, A), this.coreComponents = A, D.push(l);
20409
20413
  const K = l.onErrorOut;
20410
20414
  typeof K == "function" && this.on(m.ERROR, K, l), this.on(m.MANIFEST_LOADED, T.onManifestLoaded, T);
20411
20415
  }
@@ -20445,7 +20449,7 @@ class Ee {
20445
20449
  this.triggeringException = !0;
20446
20450
  const i = e === m.ERROR;
20447
20451
  this.trigger(m.ERROR, {
20448
- type: $.OTHER_ERROR,
20452
+ type: V.OTHER_ERROR,
20449
20453
  details: b.INTERNAL_EXCEPTION,
20450
20454
  fatal: i,
20451
20455
  event: e,
@@ -20473,7 +20477,7 @@ class Ee {
20473
20477
  if (!e || "media" in e && !e.media) {
20474
20478
  const r = new Error(`attachMedia failed: invalid argument (${e})`);
20475
20479
  this.trigger(m.ERROR, {
20476
- type: $.OTHER_ERROR,
20480
+ type: V.OTHER_ERROR,
20477
20481
  details: b.ATTACH_MEDIA_ERROR,
20478
20482
  fatal: !0,
20479
20483
  error: r
@@ -21039,7 +21043,7 @@ class Ee {
21039
21043
  return ln(e, s, navigator.mediaCapabilities);
21040
21044
  }
21041
21045
  }
21042
- Ee.defaultConfig = void 0;
21046
+ Te.defaultConfig = void 0;
21043
21047
  const Su = "data:image/png;base64,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", Au = "data:image/png;base64,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", xu = ["das-loading-text"], Lu = ["src"], Iu = ["src"], Ru = ["objectFit", "controls"], bu = ["src", "objectFit"], Du = /* @__PURE__ */ Ta({
21044
21048
  __name: "das-hls-player",
21045
21049
  props: {
@@ -21050,35 +21054,41 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21050
21054
  loadingText: {},
21051
21055
  error: { type: Boolean },
21052
21056
  errorText: {},
21053
- retryTime: {}
21057
+ retryTime: {},
21058
+ errorTime: {}
21054
21059
  },
21055
21060
  emits: ["loaded", "errorClick", "error"],
21056
21061
  setup(a, { expose: e, emit: t }) {
21057
- ya((O) => ({
21058
- "42a695fa": O.loadingBackground
21062
+ ya((_) => ({
21063
+ "88cc9cc6": _.loadingBackground
21059
21064
  }));
21060
21065
  const s = a, i = t, {
21061
21066
  fit: r,
21062
21067
  loadingText: n = _i("加载中"),
21063
21068
  loading: o = !1,
21064
21069
  errorText: c = _i("das-ui-hls-player-videoLoadFailedRetry")
21065
- } = va(s), l = Sa(() => s.src || "");
21070
+ } = va(s), l = Ee(s.errorTime || 10), h = (_) => {
21071
+ if (l.value === 0) return;
21072
+ l.value = l.value - 1;
21073
+ const $ = _.target;
21074
+ console.log("Video error:", $.error), K();
21075
+ }, u = Sa(() => s.src || "");
21066
21076
  Pa(s, "videoError");
21067
- const h = Se(!0), u = Se(null), d = Se(null);
21068
- Se(!1);
21069
- const f = Se(""), g = Se(null), E = Se(), p = Se(!1), T = Se(!1), v = () => new Promise((O) => {
21070
- const B = () => {
21071
- if (u != null && u.value) return O();
21072
- setTimeout(() => B(), 50);
21077
+ const d = Ee(!0), f = Ee(null), g = Ee(null);
21078
+ Ee(!1);
21079
+ const E = Ee(""), p = Ee(null), T = Ee(), v = Ee(!1), y = Ee(!1), S = () => new Promise((_) => {
21080
+ const $ = () => {
21081
+ if (f != null && f.value) return _();
21082
+ setTimeout(() => $(), 50);
21073
21083
  };
21074
- B();
21075
- }), y = Se(!1);
21076
- Se();
21077
- const S = async () => {
21078
- if (!l.value)
21079
- return f.value = "视频URL为空";
21080
- if (await v(), D(), h.value = !p.value, Ee.isSupported()) {
21081
- const O = {
21084
+ $();
21085
+ }), L = Ee(!1);
21086
+ Ee();
21087
+ const C = async () => {
21088
+ if (!u.value)
21089
+ return E.value = "视频URL为空";
21090
+ if (await S(), k(), d.value = !v.value, Te.isSupported()) {
21091
+ const _ = {
21082
21092
  debug: !1,
21083
21093
  // 生产环境关闭调试
21084
21094
  enableWorker: !0,
@@ -21112,65 +21122,65 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21112
21122
  fragLoadingTimeOut: 1e4
21113
21123
  // 分片加载超时
21114
21124
  };
21115
- d.value = new Ee(O), d.value.loadSource(l.value), d.value.autoLevelCapping = -1, d.value.attachMedia(u.value), d.value.on(Ee.Events.MANIFEST_PARSED, () => {
21116
- g.value && clearTimeout(g.value), g.value = setTimeout(() => {
21117
- u.value.play().catch(() => {
21118
- }), i("loaded", u.value);
21125
+ g.value = new Te(_), g.value.loadSource(u.value), g.value.autoLevelCapping = -1, g.value.attachMedia(f.value), g.value.on(Te.Events.MANIFEST_PARSED, () => {
21126
+ console.log("HLS 流加载成功,尝试播放..."), p.value && clearTimeout(p.value), p.value = setTimeout(() => {
21127
+ f.value.play().catch(() => {
21128
+ }), i("loaded", f.value);
21119
21129
  }, 300);
21120
- }), d.value.on(Ee.Events.ERROR, (B, M) => {
21121
- A(M);
21130
+ }), g.value.on(Te.Events.ERROR, ($, w) => {
21131
+ O(w);
21122
21132
  });
21123
- } else u.value.canPlayType("application/vnd.apple.mpegurl") || A({ type: "UNSUPPORTED" });
21124
- u.value.addEventListener("playing", L), u.value.addEventListener("waiting", x);
21125
- }, L = () => {
21126
- h.value = !1, f.value = "", E.value = "";
21127
- }, C = () => {
21128
- h.value = !0, T.value = !1;
21133
+ } else f.value.canPlayType("application/vnd.apple.mpegurl") ? console.log("ios用原生播放") : O({ type: "UNSUPPORTED" });
21134
+ f.value.addEventListener("playing", x), f.value.addEventListener("waiting", D);
21129
21135
  }, x = () => {
21130
- f.value = "视频缓冲中...";
21136
+ console.log("视频开始播放"), d.value = !1, E.value = "", T.value = "";
21131
21137
  }, R = () => {
21132
- var O, B, M;
21133
- (O = u.value) == null || O.removeEventListener("playing", L), (B = u.value) == null || B.removeEventListener("play", C), (M = u.value) == null || M.removeEventListener("waiting", x);
21138
+ d.value = !0, y.value = !1;
21134
21139
  }, D = () => {
21135
- d.value && (d.value.destroy(), d.value = null);
21136
- }, A = (O) => {
21137
- var B, M;
21138
- if (f.value = "视频加载失败", E.value = JSON.stringify(O), O.fatal)
21139
- switch (O.type) {
21140
- case Ee.ErrorTypes.NETWORK_ERROR:
21141
- f.value = "网络错误或视频流404,正在加载中...", (B = d.value) == null || B.startLoad(), k();
21140
+ console.log("视频缓冲中..."), E.value = "视频缓冲中...";
21141
+ }, A = () => {
21142
+ var _, $, w;
21143
+ (_ = f.value) == null || _.removeEventListener("playing", x), ($ = f.value) == null || $.removeEventListener("play", R), (w = f.value) == null || w.removeEventListener("waiting", D);
21144
+ }, k = () => {
21145
+ g.value && (g.value.destroy(), g.value = null);
21146
+ }, O = (_) => {
21147
+ var $, w;
21148
+ if (E.value = "视频加载失败", T.value = JSON.stringify(_), console.log(_, "============dadta"), _.fatal)
21149
+ switch (_.type) {
21150
+ case Te.ErrorTypes.NETWORK_ERROR:
21151
+ E.value = "网络错误或视频流404,正在加载中...", ($ = g.value) == null || $.startLoad(), K();
21142
21152
  break;
21143
- case Ee.ErrorTypes.MEDIA_ERROR:
21144
- f.value = "媒体错误,正在加载中...", (M = d.value) == null || M.recoverMediaError(), k();
21153
+ case Te.ErrorTypes.MEDIA_ERROR:
21154
+ E.value = "媒体错误,正在加载中...", (w = g.value) == null || w.recoverMediaError(), K();
21145
21155
  break;
21146
21156
  default:
21147
- f.value = "播放错误,正在尝试重新初始化...", k();
21157
+ E.value = "播放错误,正在尝试重新初始化...", K();
21148
21158
  break;
21149
21159
  }
21150
21160
  else
21151
- f.value = `非致命错误详情: ${O.details}`;
21152
- }, k = () => {
21153
- f.value = "重试中...", D(), setTimeout(() => {
21154
- S();
21161
+ E.value = `非致命错误详情: ${_.details}`;
21162
+ }, K = () => {
21163
+ E.value = "重试中...", k(), setTimeout(() => {
21164
+ C();
21155
21165
  }, 1e3);
21156
- }, _ = () => {
21157
- S();
21166
+ }, U = () => {
21167
+ C();
21158
21168
  };
21159
- Se(!1);
21160
- const K = () => {
21161
- T.value = !1, h.value = !0, S();
21169
+ Ee(!1);
21170
+ const N = () => {
21171
+ y.value = !1, d.value = !0, C();
21162
21172
  };
21163
21173
  return Aa(() => {
21164
- if (p.value = /MicroMessenger/i.test(navigator.userAgent), T.value = p.value, y.value = !Ee.isSupported(), p.value) {
21165
- h.value = !1, y.value && (u.value.addEventListener("play", C), u.value.addEventListener("playing", L));
21174
+ if (v.value = /MicroMessenger/i.test(navigator.userAgent), y.value = v.value, L.value = !Te.isSupported(), v.value) {
21175
+ d.value = !1, L.value && (f.value.addEventListener("play", R), f.value.addEventListener("playing", x));
21166
21176
  return;
21167
21177
  }
21168
- _();
21178
+ U();
21169
21179
  }), xa(() => {
21170
- g.value && clearTimeout(g.value), R(), D();
21180
+ p.value && clearTimeout(p.value), A(), k();
21171
21181
  }), e({
21172
- video: u
21173
- }), (O, B) => (At(), St(
21182
+ video: f
21183
+ }), (_, $) => (At(), St(
21174
21184
  La,
21175
21185
  null,
21176
21186
  [
@@ -21183,22 +21193,22 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21183
21193
  "das-loading-text": at(n),
21184
21194
  "das-loading-type": "component"
21185
21195
  }, [
21186
- p.value && T.value ? (At(), St(
21196
+ v.value && y.value ? (At(), St(
21187
21197
  "div",
21188
21198
  {
21189
21199
  key: 0,
21190
- class: Ra(["fake-gif", { native: y.value }])
21200
+ class: Ra(["fake-gif", { native: L.value }])
21191
21201
  },
21192
21202
  [
21193
21203
  ki("img", {
21194
21204
  class: "preview-img",
21195
21205
  src: at(Su)
21196
21206
  }, null, 8, Lu),
21197
- y.value ? nt("v-if", !0) : (At(), St("img", {
21207
+ L.value ? nt("v-if", !0) : (At(), St("img", {
21198
21208
  key: 0,
21199
21209
  class: "player-btn",
21200
21210
  src: at(Au),
21201
- onClick: K
21211
+ onClick: N
21202
21212
  }, null, 8, Iu))
21203
21213
  ],
21204
21214
  2
@@ -21216,7 +21226,7 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21216
21226
  `),
21217
21227
  ki("video", {
21218
21228
  ref_key: "videoEl",
21219
- ref: u,
21229
+ ref: f,
21220
21230
  "x-webkit-airplay": "true",
21221
21231
  preload: "auto",
21222
21232
  playsinline: "",
@@ -21228,17 +21238,18 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21228
21238
  muted: "",
21229
21239
  class: "player",
21230
21240
  controlsList: "nodownload nofullscreen noplaybackrate",
21231
- controls: y.value
21241
+ controls: L.value,
21242
+ onError: h
21232
21243
  }, [
21233
- y.value ? (At(), St("source", {
21244
+ L.value ? (At(), St("source", {
21234
21245
  key: 0,
21235
- src: l.value,
21246
+ src: u.value,
21236
21247
  objectFit: at(r),
21237
21248
  type: "application/vnd.apple.mpegurl"
21238
21249
  }, null, 8, bu)) : nt("v-if", !0)
21239
- ], 8, Ru)
21250
+ ], 40, Ru)
21240
21251
  ], 8, xu)), [
21241
- [at(Ca), h.value]
21252
+ [at(Ca), d.value]
21242
21253
  ]),
21243
21254
  nt(" </div> ")
21244
21255
  ],
@@ -21251,7 +21262,7 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21251
21262
  for (const [s, i] of e)
21252
21263
  t[s] = i;
21253
21264
  return t;
21254
- }, Pu = /* @__PURE__ */ Cu(Du, [["__scopeId", "data-v-0df9b6ba"]]), ku = {
21265
+ }, Pu = /* @__PURE__ */ Cu(Du, [["__scopeId", "data-v-9ee6e2c0"]]), ku = {
21255
21266
  加载中: { "zh-CN": "加载中", en: "Loading", _appCode: "framework" },
21256
21267
  "das-ui-hls-player-videoLoadFailedRetry": {
21257
21268
  "zh-CN": "视频加载失败,请点击重试",
@@ -21260,7 +21271,7 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21260
21271
  }
21261
21272
  };
21262
21273
  Da(ku);
21263
- const Gu = ba(Pu), $u = () => Se(null);
21274
+ const Gu = ba(Pu), $u = () => Ee(null);
21264
21275
  export {
21265
21276
  Gu as DasHlsPlayer,
21266
21277
  $u as getDasHlsPlayerRef