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
|
@@ -6401,6 +6401,10 @@ function toNumber(val) {
|
|
|
6401
6401
|
var n = typeof val === "string" ? parseFloat(val) : Number(val);
|
|
6402
6402
|
return Number.isNaN(n) ? void 0 : n;
|
|
6403
6403
|
}
|
|
6404
|
+
function getDateRangeDurationSeconds(attrs) {
|
|
6405
|
+
var _toNumber;
|
|
6406
|
+
return (_toNumber = toNumber(attrs["DURATION"])) !== null && _toNumber !== void 0 ? _toNumber : toNumber(attrs["PLANNED-DURATION"]);
|
|
6407
|
+
}
|
|
6404
6408
|
function isManifestBasedMarker(marker) {
|
|
6405
6409
|
var raw = marker.raw;
|
|
6406
6410
|
if (!raw) return false;
|
|
@@ -8766,11 +8770,13 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8766
8770
|
}
|
|
8767
8771
|
}
|
|
8768
8772
|
if (!tag) continue;
|
|
8773
|
+
if (tag.includes("EXT-X-CUE-OUT-CONT")) continue;
|
|
8769
8774
|
if (tag.includes("EXT-X-CUE-OUT") || tag.includes("EXT-X-DATERANGE")) {
|
|
8770
|
-
var
|
|
8775
|
+
var isDateRange = tag.includes("EXT-X-DATERANGE");
|
|
8776
|
+
var attrs = isDateRange ? parseAttributeList(value) : {};
|
|
8771
8777
|
var hasScteOut = tag.includes("EXT-X-CUE-OUT") || "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8772
8778
|
if (hasScteOut) {
|
|
8773
|
-
var durationSeconds = parseCueOutDuration(value);
|
|
8779
|
+
var durationSeconds = isDateRange ? getDateRangeDurationSeconds(attrs) : parseCueOutDuration(value);
|
|
8774
8780
|
var marker = _object_spread_props(_object_spread({
|
|
8775
8781
|
type: "start"
|
|
8776
8782
|
}, durationSeconds !== void 0 ? {
|
|
@@ -8944,7 +8950,7 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8944
8950
|
var hasScteOut = "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8945
8951
|
var hasScteIn = "SCTE35-IN" in attrs || attrs["SCTE35-IN"] !== void 0;
|
|
8946
8952
|
var klass = String((_attrs_CLASS = attrs["CLASS"]) !== null && _attrs_CLASS !== void 0 ? _attrs_CLASS : "");
|
|
8947
|
-
var duration =
|
|
8953
|
+
var duration = getDateRangeDurationSeconds(attrs);
|
|
8948
8954
|
if (hasScteOut || /com\.apple\.hls\.cue/i.test(klass)) {
|
|
8949
8955
|
var marker2 = _object_spread_props(_object_spread({
|
|
8950
8956
|
type: "start"
|
|
@@ -10121,7 +10127,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10121
10127
|
key: "runEdgePod",
|
|
10122
10128
|
value: function runEdgePod(requestUrl, trigger) {
|
|
10123
10129
|
return _async_to_generator(function() {
|
|
10124
|
-
var _params_get, _params_get1, epoch, generation, adPlayer, requestToken, params, _ref, _adPlayer_getPodAdCount, _adPlayer_getPodTotalDurationMs, remainingMs, remainingAds, podCount, error, errorMessage, classification, diag;
|
|
10130
|
+
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;
|
|
10125
10131
|
return _ts_generator(this, function(_state) {
|
|
10126
10132
|
switch(_state.label){
|
|
10127
10133
|
case 0:
|
|
@@ -10176,7 +10182,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10176
10182
|
}
|
|
10177
10183
|
remainingMs = this.timing.getRemainingAdMs();
|
|
10178
10184
|
remainingAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, this.adConfig.resolvePodParams().maxAds - this.timing.totalAdsInBreak));
|
|
10179
|
-
|
|
10185
|
+
overrunAllowanceMs = Math.max(0, (_this_host_config_maxAdBreakExtensionMs = this.host.config.maxAdBreakExtensionMs) !== null && _this_host_config_maxAdBreakExtensionMs !== void 0 ? _this_host_config_maxAdBreakExtensionMs : 0);
|
|
10186
|
+
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;
|
|
10180
10187
|
if (classifyEdgeVastResponse({
|
|
10181
10188
|
podAdCount: podCount
|
|
10182
10189
|
}) !== "fill") {
|
|
@@ -10186,7 +10193,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10186
10193
|
this.logOrchestratorFunnel("edge_fill", {
|
|
10187
10194
|
podAdCount: podCount,
|
|
10188
10195
|
podDurationMs: (_adPlayer_getPodTotalDurationMs = adPlayer.getPodTotalDurationMs) === null || _adPlayer_getPodTotalDurationMs === void 0 ? void 0 : _adPlayer_getPodTotalDurationMs.call(adPlayer),
|
|
10189
|
-
remainingMs: remainingMs
|
|
10196
|
+
remainingMs: remainingMs,
|
|
10197
|
+
overrunAllowanceMs: overrunAllowanceMs
|
|
10190
10198
|
});
|
|
10191
10199
|
sendAdLoadedTracking(this.host.config.licenseKey, {
|
|
10192
10200
|
source: "hls",
|
|
@@ -12575,7 +12583,7 @@ var CRITICAL_PROPS = [
|
|
|
12575
12583
|
var CONTROLS_HIDE_DELAY = 3e3;
|
|
12576
12584
|
var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
|
|
12577
12585
|
var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
12578
|
-
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, [
|
|
12586
|
+
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, [
|
|
12579
12587
|
"src",
|
|
12580
12588
|
"autoplay",
|
|
12581
12589
|
"muted",
|
|
@@ -12612,6 +12620,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
12612
12620
|
"minRemainingMsToStartAd",
|
|
12613
12621
|
"minRemainingMsToRequestAd",
|
|
12614
12622
|
"maxNoFillsPerBreak",
|
|
12623
|
+
"maxAdBreakExtensionMs",
|
|
12615
12624
|
"adFloorLadderEnabled",
|
|
12616
12625
|
"adFloorLadder",
|
|
12617
12626
|
"adFloorMinCents",
|
|
@@ -12819,6 +12828,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
12819
12828
|
if (minRemainingMsToStartAd !== void 0) cfg.minRemainingMsToStartAd = minRemainingMsToStartAd;
|
|
12820
12829
|
if (minRemainingMsToRequestAd !== void 0) cfg.minRemainingMsToRequestAd = minRemainingMsToRequestAd;
|
|
12821
12830
|
if (maxNoFillsPerBreak !== void 0) cfg.maxNoFillsPerBreak = maxNoFillsPerBreak;
|
|
12831
|
+
if (maxAdBreakExtensionMs !== void 0) cfg.maxAdBreakExtensionMs = maxAdBreakExtensionMs;
|
|
12822
12832
|
if (adFloorLadderEnabled !== void 0) cfg.adFloorLadderEnabled = adFloorLadderEnabled;
|
|
12823
12833
|
if (adFloorLadder !== void 0) cfg.adFloorLadder = adFloorLadder;
|
|
12824
12834
|
if (adFloorMinCents !== void 0) cfg.adFloorMinCents = adFloorMinCents;
|