stormcloud-video-player 0.8.43 → 0.8.44

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.
@@ -1,4 +1,4 @@
1
- import { a as StormcloudVideoPlayerConfig } from '../types-cTqIKw_D.cjs';
1
+ import { S as StormcloudVideoPlayerConfig } from '../types-iDjS8f_7.cjs';
2
2
 
3
3
  declare class StormcloudVideoPlayer {
4
4
  private readonly video;
@@ -1,4 +1,4 @@
1
- import { S as Scte35Marker } from '../types-cTqIKw_D.cjs';
1
+ import { a as Scte35Marker } from '../types-iDjS8f_7.cjs';
2
2
 
3
3
  type Scte35CueSource = "manifest" | "id3" | "ts";
4
4
  type Scte35CueReadiness = "early" | "playback";
@@ -8097,6 +8097,34 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8097
8097
  return 0;
8098
8098
  }
8099
8099
  },
8100
+ {
8101
+ key: "describeVideoState",
8102
+ value: function describeVideoState() {
8103
+ var _networkStates_v_networkState, _readyStates_v_readyState;
8104
+ var v = this.host.video;
8105
+ var networkStates = [
8106
+ "EMPTY",
8107
+ "IDLE",
8108
+ "LOADING",
8109
+ "NO_SOURCE"
8110
+ ];
8111
+ var readyStates = [
8112
+ "HAVE_NOTHING",
8113
+ "HAVE_METADATA",
8114
+ "HAVE_CURRENT_DATA",
8115
+ "HAVE_FUTURE_DATA",
8116
+ "HAVE_ENOUGH_DATA"
8117
+ ];
8118
+ var net = (_networkStates_v_networkState = networkStates[v.networkState]) !== null && _networkStates_v_networkState !== void 0 ? _networkStates_v_networkState : String(v.networkState);
8119
+ var ready = (_readyStates_v_readyState = readyStates[v.readyState]) !== null && _readyStates_v_readyState !== void 0 ? _readyStates_v_readyState : String(v.readyState);
8120
+ var err = v.error ? "code=".concat(v.error.code).concat(v.error.message ? " (".concat(v.error.message, ")") : "") : "none";
8121
+ var ranges = [];
8122
+ for(var i = 0; i < v.buffered.length; i++){
8123
+ ranges.push("[".concat(v.buffered.start(i).toFixed(2), "–").concat(v.buffered.end(i).toFixed(2), "]"));
8124
+ }
8125
+ return "t=".concat(v.currentTime.toFixed(2), "s paused=").concat(v.paused, " ended=").concat(v.ended, " seeking=").concat(v.seeking, " readyState=").concat(ready, " networkState=").concat(net, " error=").concat(err, " buffered=").concat(ranges.length ? ranges.join(",") : "none");
8126
+ }
8127
+ },
8100
8128
  {
8101
8129
  key: "monitorLiveResumeStall",
8102
8130
  value: function monitorLiveResumeStall(resumeBaseline) {
@@ -8110,18 +8138,93 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8110
8138
  var baseline = resumeBaseline;
8111
8139
  var recoveries = 0;
8112
8140
  var lastRecoveryAt = 0;
8141
+ var video = this.host.video;
8142
+ var listenersAttached = false;
8143
+ var onMediaEvent;
8144
+ var diagEvents = [
8145
+ "loadstart",
8146
+ "loadedmetadata",
8147
+ "loadeddata",
8148
+ "canplay",
8149
+ "canplaythrough",
8150
+ "play",
8151
+ "playing",
8152
+ "pause",
8153
+ "waiting",
8154
+ "stalled",
8155
+ "suspend",
8156
+ "seeking",
8157
+ "seeked",
8158
+ "emptied",
8159
+ "error",
8160
+ "ended"
8161
+ ];
8162
+ if (this.debug) {
8163
+ onMediaEvent = function onMediaEvent(e) {
8164
+ var dt = ((Date.now() - startTime) / 1e3).toFixed(1);
8165
+ console.log("[ResumeDiag] +".concat(dt, "s event=").concat(e.type, " — ").concat(_this.describeVideoState()));
8166
+ };
8167
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
8168
+ try {
8169
+ for(var _iterator = diagEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
8170
+ var name = _step.value;
8171
+ video.addEventListener(name, onMediaEvent);
8172
+ }
8173
+ } catch (err) {
8174
+ _didIteratorError = true;
8175
+ _iteratorError = err;
8176
+ } finally{
8177
+ try {
8178
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8179
+ _iterator.return();
8180
+ }
8181
+ } finally{
8182
+ if (_didIteratorError) {
8183
+ throw _iteratorError;
8184
+ }
8185
+ }
8186
+ }
8187
+ listenersAttached = true;
8188
+ console.log("[ResumeDiag] +0.0s monitor start — ".concat(this.describeVideoState()));
8189
+ }
8190
+ var cleanup = function cleanup() {
8191
+ if (listenersAttached && onMediaEvent) {
8192
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
8193
+ try {
8194
+ for(var _iterator = diagEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
8195
+ var name = _step.value;
8196
+ video.removeEventListener(name, onMediaEvent);
8197
+ }
8198
+ } catch (err) {
8199
+ _didIteratorError = true;
8200
+ _iteratorError = err;
8201
+ } finally{
8202
+ try {
8203
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8204
+ _iterator.return();
8205
+ }
8206
+ } finally{
8207
+ if (_didIteratorError) {
8208
+ throw _iteratorError;
8209
+ }
8210
+ }
8211
+ }
8212
+ listenersAttached = false;
8213
+ }
8214
+ };
8113
8215
  var poll = function poll1() {
8114
8216
  if (_this.inAdBreak) {
8217
+ cleanup();
8115
8218
  return;
8116
8219
  }
8117
- var video = _this.host.video;
8118
8220
  var currentTime = video.currentTime;
8119
8221
  var advanced = currentTime > baseline + 0.5;
8120
8222
  var playing = !video.paused && video.readyState >= 3;
8121
8223
  if (advanced && playing) {
8122
8224
  if (_this.debug) {
8123
- console.log("[StormcloudVideoPlayer] Live stream resumed successfully after ad break");
8225
+ console.log("[StormcloudVideoPlayer] Live stream resumed successfully after ad break".concat(_this.describeVideoState()));
8124
8226
  }
8227
+ cleanup();
8125
8228
  return;
8126
8229
  }
8127
8230
  if (video.paused) {
@@ -8133,8 +8236,9 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8133
8236
  var wedged = bufferedAhead < 0.5 && !advanced;
8134
8237
  if (elapsed >= maxMonitorMs) {
8135
8238
  if (_this.debug && !advanced) {
8136
- console.warn("[StormcloudVideoPlayer] Live stream failed to resume after ".concat((maxMonitorMs / 1e3).toFixed(0), "s (t=").concat(currentTime.toFixed(2), "s, buffered=").concat(bufferedAhead.toFixed(2), "s)"));
8239
+ console.warn("[StormcloudVideoPlayer] Live stream failed to resume after ".concat((maxMonitorMs / 1e3).toFixed(0), "s ").concat(_this.describeVideoState()));
8137
8240
  }
8241
+ cleanup();
8138
8242
  return;
8139
8243
  }
8140
8244
  var canRecover = wedged && elapsed >= graceMs && Date.now() - lastRecoveryAt >= recoveryCooldownMs && recoveries < maxRecoveries;
@@ -8146,7 +8250,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8146
8250
  var liveSyncPos = _this.host.getLiveSyncPosition();
8147
8251
  var reloadPos = liveSyncPos != null && liveSyncPos > currentTime ? liveSyncPos : currentTime;
8148
8252
  if (_this.debug) {
8149
- console.warn("[StormcloudVideoPlayer] Content wedged after ad break (t=".concat(currentTime.toFixed(2), "s, buffered=").concat(bufferedAhead.toFixed(2), "s) — restarting HLS load at ").concat(reloadPos.toFixed(2), "s (recovery ").concat(recoveries, "/").concat(maxRecoveries, ")"));
8253
+ console.warn("[StormcloudVideoPlayer] Content wedged after ad break — restarting HLS load at ".concat(reloadPos.toFixed(2), "s (recovery ").concat(recoveries, "/").concat(maxRecoveries, ")").concat(_this.describeVideoState()));
8150
8254
  }
8151
8255
  if (liveSyncPos != null && liveSyncPos > currentTime) {
8152
8256
  video.currentTime = liveSyncPos;
@@ -8154,7 +8258,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8154
8258
  _this.host.restartHlsLoad(reloadPos);
8155
8259
  } else {
8156
8260
  if (_this.debug) {
8157
- console.warn("[StormcloudVideoPlayer] Content still wedged after ad break (t=".concat(currentTime.toFixed(2), "s, buffered=").concat(bufferedAhead.toFixed(2), "s) — hard-reloading live stream (recovery ").concat(recoveries, "/").concat(maxRecoveries, ")"));
8261
+ console.warn("[StormcloudVideoPlayer] Content still wedged after ad break — hard-reloading live stream (recovery ".concat(recoveries, "/").concat(maxRecoveries, ")").concat(_this.describeVideoState()));
8158
8262
  }
8159
8263
  _this.host.reloadLiveStream();
8160
8264
  }