stormcloud-video-player 0.8.71 → 0.8.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/stormcloud-vp.min.js +1 -1
- package/lib/StormcloudPlayer.cjs +14 -6
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/index.cjs +17 -7
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +17 -7
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +5 -3
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/HlsEngine.cjs +9 -3
- package/lib/player/HlsEngine.cjs.map +1 -1
- package/lib/player/Scte35Parser.cjs +8 -0
- package/lib/player/Scte35Parser.cjs.map +1 -1
- package/lib/player/Scte35Parser.d.cts +2 -1
- package/lib/player/StormcloudVideoPlayer.cjs +14 -6
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.cjs +14 -6
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +14 -6
- package/lib/players/index.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +17 -7
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -6413,6 +6413,10 @@ function toNumber(val) {
|
|
|
6413
6413
|
var n = typeof val === "string" ? parseFloat(val) : Number(val);
|
|
6414
6414
|
return Number.isNaN(n) ? void 0 : n;
|
|
6415
6415
|
}
|
|
6416
|
+
function getDateRangeDurationSeconds(attrs) {
|
|
6417
|
+
var _toNumber;
|
|
6418
|
+
return (_toNumber = toNumber(attrs["DURATION"])) !== null && _toNumber !== void 0 ? _toNumber : toNumber(attrs["PLANNED-DURATION"]);
|
|
6419
|
+
}
|
|
6416
6420
|
function isManifestBasedMarker(marker) {
|
|
6417
6421
|
var raw = marker.raw;
|
|
6418
6422
|
if (!raw) return false;
|
|
@@ -8784,11 +8788,13 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8784
8788
|
}
|
|
8785
8789
|
}
|
|
8786
8790
|
if (!tag) continue;
|
|
8791
|
+
if (tag.includes("EXT-X-CUE-OUT-CONT")) continue;
|
|
8787
8792
|
if (tag.includes("EXT-X-CUE-OUT") || tag.includes("EXT-X-DATERANGE")) {
|
|
8788
|
-
var
|
|
8793
|
+
var isDateRange = tag.includes("EXT-X-DATERANGE");
|
|
8794
|
+
var attrs = isDateRange ? parseAttributeList(value) : {};
|
|
8789
8795
|
var hasScteOut = tag.includes("EXT-X-CUE-OUT") || "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8790
8796
|
if (hasScteOut) {
|
|
8791
|
-
var durationSeconds = parseCueOutDuration(value);
|
|
8797
|
+
var durationSeconds = isDateRange ? getDateRangeDurationSeconds(attrs) : parseCueOutDuration(value);
|
|
8792
8798
|
var marker = _object_spread_props(_object_spread({
|
|
8793
8799
|
type: "start"
|
|
8794
8800
|
}, durationSeconds !== void 0 ? {
|
|
@@ -8962,7 +8968,7 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8962
8968
|
var hasScteOut = "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8963
8969
|
var hasScteIn = "SCTE35-IN" in attrs || attrs["SCTE35-IN"] !== void 0;
|
|
8964
8970
|
var klass = String((_attrs_CLASS = attrs["CLASS"]) !== null && _attrs_CLASS !== void 0 ? _attrs_CLASS : "");
|
|
8965
|
-
var duration =
|
|
8971
|
+
var duration = getDateRangeDurationSeconds(attrs);
|
|
8966
8972
|
if (hasScteOut || /com\.apple\.hls\.cue/i.test(klass)) {
|
|
8967
8973
|
var marker2 = _object_spread_props(_object_spread({
|
|
8968
8974
|
type: "start"
|
|
@@ -10140,7 +10146,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10140
10146
|
key: "runEdgePod",
|
|
10141
10147
|
value: function runEdgePod(requestUrl, trigger) {
|
|
10142
10148
|
return _async_to_generator(function() {
|
|
10143
|
-
var _params_get, _params_get1, epoch, generation, adPlayer, requestToken, params, _ref, _adPlayer_getPodAdCount, _adPlayer_getPodTotalDurationMs, remainingMs, remainingAds, podCount, error, errorMessage, classification, diag;
|
|
10149
|
+
var _params_get, _params_get1, epoch, generation, adPlayer, requestToken, params, _this_host_config_maxAdBreakExtensionMs, _ref, _adPlayer_getPodAdCount, _adPlayer_getPodTotalDurationMs, remainingMs, remainingAds, overrunAllowanceMs, podCount, error, errorMessage, classification, diag;
|
|
10144
10150
|
return _ts_generator(this, function(_state) {
|
|
10145
10151
|
switch(_state.label){
|
|
10146
10152
|
case 0:
|
|
@@ -10195,7 +10201,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10195
10201
|
}
|
|
10196
10202
|
remainingMs = this.timing.getRemainingAdMs();
|
|
10197
10203
|
remainingAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, this.adConfig.resolvePodParams().maxAds - this.timing.totalAdsInBreak));
|
|
10198
|
-
|
|
10204
|
+
overrunAllowanceMs = Math.max(0, (_this_host_config_maxAdBreakExtensionMs = this.host.config.maxAdBreakExtensionMs) !== null && _this_host_config_maxAdBreakExtensionMs !== void 0 ? _this_host_config_maxAdBreakExtensionMs : 0);
|
|
10205
|
+
podCount = adPlayer.limitPodToBudget ? adPlayer.limitPodToBudget(remainingMs + overrunAllowanceMs, remainingAds) : (_ref = (_adPlayer_getPodAdCount = adPlayer.getPodAdCount) === null || _adPlayer_getPodAdCount === void 0 ? void 0 : _adPlayer_getPodAdCount.call(adPlayer)) !== null && _ref !== void 0 ? _ref : 0;
|
|
10199
10206
|
if (classifyEdgeVastResponse({
|
|
10200
10207
|
podAdCount: podCount
|
|
10201
10208
|
}) !== "fill") {
|
|
@@ -10205,7 +10212,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10205
10212
|
this.logOrchestratorFunnel("edge_fill", {
|
|
10206
10213
|
podAdCount: podCount,
|
|
10207
10214
|
podDurationMs: (_adPlayer_getPodTotalDurationMs = adPlayer.getPodTotalDurationMs) === null || _adPlayer_getPodTotalDurationMs === void 0 ? void 0 : _adPlayer_getPodTotalDurationMs.call(adPlayer),
|
|
10208
|
-
remainingMs: remainingMs
|
|
10215
|
+
remainingMs: remainingMs,
|
|
10216
|
+
overrunAllowanceMs: overrunAllowanceMs
|
|
10209
10217
|
});
|
|
10210
10218
|
sendAdLoadedTracking(this.host.config.licenseKey, {
|
|
10211
10219
|
source: "hls",
|
|
@@ -12595,7 +12603,7 @@ var CRITICAL_PROPS = [
|
|
|
12595
12603
|
var CONTROLS_HIDE_DELAY = 3e3;
|
|
12596
12604
|
var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
|
|
12597
12605
|
var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
12598
|
-
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, isLiveStream = props.isLiveStream, driftToleranceMs = props.driftToleranceMs, immediateManifestAds = props.immediateManifestAds, debugAdTiming = props.debugAdTiming, showCustomControls = props.showCustomControls, hideLoadingIndicator = props.hideLoadingIndicator, onVolumeToggle = props.onVolumeToggle, onFullscreenToggle = props.onFullscreenToggle, onControlClick = props.onControlClick, onReady = props.onReady, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, className = props.className, style = props.style, controls = props.controls, playsInline = props.playsInline, preload = props.preload, poster = props.poster, children = props.children, licenseKey = props.licenseKey, vastMode = props.vastMode, vastTagUrl = props.vastTagUrl, isVmap = props.isVmap, vmapUrl = props.vmapUrl, minSegmentsBeforePlay = props.minSegmentsBeforePlay, ctvAdRequest = props.ctvAdRequest, programTitle = props.programTitle, channelName = props.channelName, minRemainingMsToStartAd = props.minRemainingMsToStartAd, minRemainingMsToRequestAd = props.minRemainingMsToRequestAd, maxNoFillsPerBreak = props.maxNoFillsPerBreak, adFloorLadderEnabled = props.adFloorLadderEnabled, adFloorLadder = props.adFloorLadder, adFloorMinCents = props.adFloorMinCents, adFloorMaxCents = props.adFloorMaxCents, adFloorStepCents = props.adFloorStepCents, enableEdgePodRequest = props.enableEdgePodRequest, edgePodUrl = props.edgePodUrl, restVideoAttrs = _object_without_properties(props, [
|
|
12606
|
+
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, isLiveStream = props.isLiveStream, driftToleranceMs = props.driftToleranceMs, immediateManifestAds = props.immediateManifestAds, debugAdTiming = props.debugAdTiming, showCustomControls = props.showCustomControls, hideLoadingIndicator = props.hideLoadingIndicator, onVolumeToggle = props.onVolumeToggle, onFullscreenToggle = props.onFullscreenToggle, onControlClick = props.onControlClick, onReady = props.onReady, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, className = props.className, style = props.style, controls = props.controls, playsInline = props.playsInline, preload = props.preload, poster = props.poster, children = props.children, licenseKey = props.licenseKey, vastMode = props.vastMode, vastTagUrl = props.vastTagUrl, isVmap = props.isVmap, vmapUrl = props.vmapUrl, minSegmentsBeforePlay = props.minSegmentsBeforePlay, ctvAdRequest = props.ctvAdRequest, programTitle = props.programTitle, channelName = props.channelName, minRemainingMsToStartAd = props.minRemainingMsToStartAd, minRemainingMsToRequestAd = props.minRemainingMsToRequestAd, maxNoFillsPerBreak = props.maxNoFillsPerBreak, maxAdBreakExtensionMs = props.maxAdBreakExtensionMs, adFloorLadderEnabled = props.adFloorLadderEnabled, adFloorLadder = props.adFloorLadder, adFloorMinCents = props.adFloorMinCents, adFloorMaxCents = props.adFloorMaxCents, adFloorStepCents = props.adFloorStepCents, enableEdgePodRequest = props.enableEdgePodRequest, edgePodUrl = props.edgePodUrl, restVideoAttrs = _object_without_properties(props, [
|
|
12599
12607
|
"src",
|
|
12600
12608
|
"autoplay",
|
|
12601
12609
|
"muted",
|
|
@@ -12632,6 +12640,7 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
12632
12640
|
"minRemainingMsToStartAd",
|
|
12633
12641
|
"minRemainingMsToRequestAd",
|
|
12634
12642
|
"maxNoFillsPerBreak",
|
|
12643
|
+
"maxAdBreakExtensionMs",
|
|
12635
12644
|
"adFloorLadderEnabled",
|
|
12636
12645
|
"adFloorLadder",
|
|
12637
12646
|
"adFloorMinCents",
|
|
@@ -12839,6 +12848,7 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
12839
12848
|
if (minRemainingMsToStartAd !== void 0) cfg.minRemainingMsToStartAd = minRemainingMsToStartAd;
|
|
12840
12849
|
if (minRemainingMsToRequestAd !== void 0) cfg.minRemainingMsToRequestAd = minRemainingMsToRequestAd;
|
|
12841
12850
|
if (maxNoFillsPerBreak !== void 0) cfg.maxNoFillsPerBreak = maxNoFillsPerBreak;
|
|
12851
|
+
if (maxAdBreakExtensionMs !== void 0) cfg.maxAdBreakExtensionMs = maxAdBreakExtensionMs;
|
|
12842
12852
|
if (adFloorLadderEnabled !== void 0) cfg.adFloorLadderEnabled = adFloorLadderEnabled;
|
|
12843
12853
|
if (adFloorLadder !== void 0) cfg.adFloorLadder = adFloorLadder;
|
|
12844
12854
|
if (adFloorMinCents !== void 0) cfg.adFloorMinCents = adFloorMinCents;
|