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 { S as Scte35Marker, a as StormcloudVideoPlayerConfig, A as AdController } from '../types-cTqIKw_D.cjs';
1
+ import { a as Scte35Marker, S as StormcloudVideoPlayerConfig, A as AdController } from '../types-iDjS8f_7.cjs';
2
2
  import { AdTimingService } from './AdTimingService.cjs';
3
3
  import { AdConfigManager } from './AdConfigManager.cjs';
4
4
  import { Scte35CueManager } from './Scte35CueManager.cjs';
@@ -61,6 +61,7 @@ declare class AdBreakOrchestrator {
61
61
  private showPlaceholderAndWaitForAds;
62
62
  handleAdPodComplete(): void;
63
63
  private getBufferedAhead;
64
+ private describeVideoState;
64
65
  private monitorLiveResumeStall;
65
66
  private resumeContentPlayback;
66
67
  handleAdFailure(): void;
@@ -1,4 +1,4 @@
1
- import { b as AdBreak, a as StormcloudVideoPlayerConfig, A as AdController } from '../types-cTqIKw_D.cjs';
1
+ import { b as AdBreak, S as StormcloudVideoPlayerConfig, A as AdController } from '../types-iDjS8f_7.cjs';
2
2
  import { PalNonceManager } from '../sdk/pal.cjs';
3
3
  import { VastConsentSignals } from '../utils/vastMacros.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { a as StormcloudVideoPlayerConfig, S as Scte35Marker, A as AdController } from '../types-cTqIKw_D.cjs';
1
+ import { S as StormcloudVideoPlayerConfig, a as Scte35Marker, A as AdController } from '../types-iDjS8f_7.cjs';
2
2
 
3
3
  interface AdTimingCallbacks {
4
4
  onAdStopTimerFired(): void;
@@ -1,5 +1,5 @@
1
1
  import Hls from 'hls.js';
2
- import { a as StormcloudVideoPlayerConfig, S as Scte35Marker } from '../types-cTqIKw_D.cjs';
2
+ import { S as StormcloudVideoPlayerConfig, a as Scte35Marker } from '../types-iDjS8f_7.cjs';
3
3
  import { Scte35CueContext } from './playerTypes.cjs';
4
4
  import { Scte35CueManager } from './Scte35CueManager.cjs';
5
5
  import { AdTimingService } from './AdTimingService.cjs';
@@ -1,4 +1,4 @@
1
- import { A as AdController } from '../types-cTqIKw_D.cjs';
1
+ import { A as AdController } from '../types-iDjS8f_7.cjs';
2
2
 
3
3
  declare function getAdAudioVolume(adPlayer: AdController): number;
4
4
  declare function toggleMute(video: HTMLVideoElement, adPlayer: AdController, debug: boolean): void;
@@ -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
  import { Scte35CueSource, Scte35CueReadiness, Scte35CueContext } from './playerTypes.cjs';
3
3
 
4
4
  interface Scte35CueManagerCallbacks {
@@ -1,4 +1,4 @@
1
- import { S as Scte35Marker, I as Id3TagInfo } from '../types-cTqIKw_D.cjs';
1
+ import { a as Scte35Marker, I as Id3TagInfo } from '../types-iDjS8f_7.cjs';
2
2
 
3
3
  declare function parseCueOutDuration(value: string): number | undefined;
4
4
  declare function parseCueOutCont(value: string): {
@@ -8046,6 +8046,34 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8046
8046
  return 0;
8047
8047
  }
8048
8048
  },
8049
+ {
8050
+ key: "describeVideoState",
8051
+ value: function describeVideoState() {
8052
+ var _networkStates_v_networkState, _readyStates_v_readyState;
8053
+ var v = this.host.video;
8054
+ var networkStates = [
8055
+ "EMPTY",
8056
+ "IDLE",
8057
+ "LOADING",
8058
+ "NO_SOURCE"
8059
+ ];
8060
+ var readyStates = [
8061
+ "HAVE_NOTHING",
8062
+ "HAVE_METADATA",
8063
+ "HAVE_CURRENT_DATA",
8064
+ "HAVE_FUTURE_DATA",
8065
+ "HAVE_ENOUGH_DATA"
8066
+ ];
8067
+ var net = (_networkStates_v_networkState = networkStates[v.networkState]) !== null && _networkStates_v_networkState !== void 0 ? _networkStates_v_networkState : String(v.networkState);
8068
+ var ready = (_readyStates_v_readyState = readyStates[v.readyState]) !== null && _readyStates_v_readyState !== void 0 ? _readyStates_v_readyState : String(v.readyState);
8069
+ var err = v.error ? "code=".concat(v.error.code).concat(v.error.message ? " (".concat(v.error.message, ")") : "") : "none";
8070
+ var ranges = [];
8071
+ for(var i = 0; i < v.buffered.length; i++){
8072
+ ranges.push("[".concat(v.buffered.start(i).toFixed(2), "–").concat(v.buffered.end(i).toFixed(2), "]"));
8073
+ }
8074
+ 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");
8075
+ }
8076
+ },
8049
8077
  {
8050
8078
  key: "monitorLiveResumeStall",
8051
8079
  value: function monitorLiveResumeStall(resumeBaseline) {
@@ -8059,18 +8087,93 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8059
8087
  var baseline = resumeBaseline;
8060
8088
  var recoveries = 0;
8061
8089
  var lastRecoveryAt = 0;
8090
+ var video = this.host.video;
8091
+ var listenersAttached = false;
8092
+ var onMediaEvent;
8093
+ var diagEvents = [
8094
+ "loadstart",
8095
+ "loadedmetadata",
8096
+ "loadeddata",
8097
+ "canplay",
8098
+ "canplaythrough",
8099
+ "play",
8100
+ "playing",
8101
+ "pause",
8102
+ "waiting",
8103
+ "stalled",
8104
+ "suspend",
8105
+ "seeking",
8106
+ "seeked",
8107
+ "emptied",
8108
+ "error",
8109
+ "ended"
8110
+ ];
8111
+ if (this.debug) {
8112
+ onMediaEvent = function onMediaEvent(e) {
8113
+ var dt = ((Date.now() - startTime) / 1e3).toFixed(1);
8114
+ console.log("[ResumeDiag] +".concat(dt, "s event=").concat(e.type, " — ").concat(_this.describeVideoState()));
8115
+ };
8116
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
8117
+ try {
8118
+ for(var _iterator = diagEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
8119
+ var name = _step.value;
8120
+ video.addEventListener(name, onMediaEvent);
8121
+ }
8122
+ } catch (err) {
8123
+ _didIteratorError = true;
8124
+ _iteratorError = err;
8125
+ } finally{
8126
+ try {
8127
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8128
+ _iterator.return();
8129
+ }
8130
+ } finally{
8131
+ if (_didIteratorError) {
8132
+ throw _iteratorError;
8133
+ }
8134
+ }
8135
+ }
8136
+ listenersAttached = true;
8137
+ console.log("[ResumeDiag] +0.0s monitor start — ".concat(this.describeVideoState()));
8138
+ }
8139
+ var cleanup = function cleanup() {
8140
+ if (listenersAttached && onMediaEvent) {
8141
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
8142
+ try {
8143
+ for(var _iterator = diagEvents[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
8144
+ var name = _step.value;
8145
+ video.removeEventListener(name, onMediaEvent);
8146
+ }
8147
+ } catch (err) {
8148
+ _didIteratorError = true;
8149
+ _iteratorError = err;
8150
+ } finally{
8151
+ try {
8152
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8153
+ _iterator.return();
8154
+ }
8155
+ } finally{
8156
+ if (_didIteratorError) {
8157
+ throw _iteratorError;
8158
+ }
8159
+ }
8160
+ }
8161
+ listenersAttached = false;
8162
+ }
8163
+ };
8062
8164
  var poll = function poll1() {
8063
8165
  if (_this.inAdBreak) {
8166
+ cleanup();
8064
8167
  return;
8065
8168
  }
8066
- var video = _this.host.video;
8067
8169
  var currentTime = video.currentTime;
8068
8170
  var advanced = currentTime > baseline + 0.5;
8069
8171
  var playing = !video.paused && video.readyState >= 3;
8070
8172
  if (advanced && playing) {
8071
8173
  if (_this.debug) {
8072
- console.log("[StormcloudVideoPlayer] Live stream resumed successfully after ad break");
8174
+ console.log("[StormcloudVideoPlayer] Live stream resumed successfully after ad break".concat(_this.describeVideoState()));
8073
8175
  }
8176
+ cleanup();
8074
8177
  return;
8075
8178
  }
8076
8179
  if (video.paused) {
@@ -8082,8 +8185,9 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8082
8185
  var wedged = bufferedAhead < 0.5 && !advanced;
8083
8186
  if (elapsed >= maxMonitorMs) {
8084
8187
  if (_this.debug && !advanced) {
8085
- 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)"));
8188
+ console.warn("[StormcloudVideoPlayer] Live stream failed to resume after ".concat((maxMonitorMs / 1e3).toFixed(0), "s ").concat(_this.describeVideoState()));
8086
8189
  }
8190
+ cleanup();
8087
8191
  return;
8088
8192
  }
8089
8193
  var canRecover = wedged && elapsed >= graceMs && Date.now() - lastRecoveryAt >= recoveryCooldownMs && recoveries < maxRecoveries;
@@ -8095,7 +8199,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8095
8199
  var liveSyncPos = _this.host.getLiveSyncPosition();
8096
8200
  var reloadPos = liveSyncPos != null && liveSyncPos > currentTime ? liveSyncPos : currentTime;
8097
8201
  if (_this.debug) {
8098
- 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, ")"));
8202
+ 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()));
8099
8203
  }
8100
8204
  if (liveSyncPos != null && liveSyncPos > currentTime) {
8101
8205
  video.currentTime = liveSyncPos;
@@ -8103,7 +8207,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
8103
8207
  _this.host.restartHlsLoad(reloadPos);
8104
8208
  } else {
8105
8209
  if (_this.debug) {
8106
- 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, ")"));
8210
+ console.warn("[StormcloudVideoPlayer] Content still wedged after ad break — hard-reloading live stream (recovery ".concat(recoveries, "/").concat(maxRecoveries, ")").concat(_this.describeVideoState()));
8107
8211
  }
8108
8212
  _this.host.reloadLiveStream();
8109
8213
  }