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.cjs
CHANGED
|
@@ -6624,6 +6624,10 @@ function toNumber(val) {
|
|
|
6624
6624
|
var n = typeof val === "string" ? parseFloat(val) : Number(val);
|
|
6625
6625
|
return Number.isNaN(n) ? void 0 : n;
|
|
6626
6626
|
}
|
|
6627
|
+
function getDateRangeDurationSeconds(attrs) {
|
|
6628
|
+
var _toNumber;
|
|
6629
|
+
return (_toNumber = toNumber(attrs["DURATION"])) !== null && _toNumber !== void 0 ? _toNumber : toNumber(attrs["PLANNED-DURATION"]);
|
|
6630
|
+
}
|
|
6627
6631
|
function isManifestBasedMarker(marker) {
|
|
6628
6632
|
var raw = marker.raw;
|
|
6629
6633
|
if (!raw) return false;
|
|
@@ -8989,11 +8993,13 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
8989
8993
|
}
|
|
8990
8994
|
}
|
|
8991
8995
|
if (!tag) continue;
|
|
8996
|
+
if (tag.includes("EXT-X-CUE-OUT-CONT")) continue;
|
|
8992
8997
|
if (tag.includes("EXT-X-CUE-OUT") || tag.includes("EXT-X-DATERANGE")) {
|
|
8993
|
-
var
|
|
8998
|
+
var isDateRange = tag.includes("EXT-X-DATERANGE");
|
|
8999
|
+
var attrs = isDateRange ? parseAttributeList(value) : {};
|
|
8994
9000
|
var hasScteOut = tag.includes("EXT-X-CUE-OUT") || "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
8995
9001
|
if (hasScteOut) {
|
|
8996
|
-
var durationSeconds = parseCueOutDuration(value);
|
|
9002
|
+
var durationSeconds = isDateRange ? getDateRangeDurationSeconds(attrs) : parseCueOutDuration(value);
|
|
8997
9003
|
var marker = _object_spread_props(_object_spread({
|
|
8998
9004
|
type: "start"
|
|
8999
9005
|
}, durationSeconds !== void 0 ? {
|
|
@@ -9167,7 +9173,7 @@ var HlsEngine = /*#__PURE__*/ function() {
|
|
|
9167
9173
|
var hasScteOut = "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
|
|
9168
9174
|
var hasScteIn = "SCTE35-IN" in attrs || attrs["SCTE35-IN"] !== void 0;
|
|
9169
9175
|
var klass = String((_attrs_CLASS = attrs["CLASS"]) !== null && _attrs_CLASS !== void 0 ? _attrs_CLASS : "");
|
|
9170
|
-
var duration =
|
|
9176
|
+
var duration = getDateRangeDurationSeconds(attrs);
|
|
9171
9177
|
if (hasScteOut || /com\.apple\.hls\.cue/i.test(klass)) {
|
|
9172
9178
|
var marker2 = _object_spread_props(_object_spread({
|
|
9173
9179
|
type: "start"
|
|
@@ -10344,7 +10350,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10344
10350
|
key: "runEdgePod",
|
|
10345
10351
|
value: function runEdgePod(requestUrl, trigger) {
|
|
10346
10352
|
return _async_to_generator(function() {
|
|
10347
|
-
var _params_get, _params_get1, epoch, generation, adPlayer, requestToken, params, _ref, _adPlayer_getPodAdCount, _adPlayer_getPodTotalDurationMs, remainingMs, remainingAds, podCount, error, errorMessage, classification, diag;
|
|
10353
|
+
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;
|
|
10348
10354
|
return _ts_generator(this, function(_state) {
|
|
10349
10355
|
switch(_state.label){
|
|
10350
10356
|
case 0:
|
|
@@ -10399,7 +10405,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10399
10405
|
}
|
|
10400
10406
|
remainingMs = this.timing.getRemainingAdMs();
|
|
10401
10407
|
remainingAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, this.adConfig.resolvePodParams().maxAds - this.timing.totalAdsInBreak));
|
|
10402
|
-
|
|
10408
|
+
overrunAllowanceMs = Math.max(0, (_this_host_config_maxAdBreakExtensionMs = this.host.config.maxAdBreakExtensionMs) !== null && _this_host_config_maxAdBreakExtensionMs !== void 0 ? _this_host_config_maxAdBreakExtensionMs : 0);
|
|
10409
|
+
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;
|
|
10403
10410
|
if (classifyEdgeVastResponse({
|
|
10404
10411
|
podAdCount: podCount
|
|
10405
10412
|
}) !== "fill") {
|
|
@@ -10409,7 +10416,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10409
10416
|
this.logOrchestratorFunnel("edge_fill", {
|
|
10410
10417
|
podAdCount: podCount,
|
|
10411
10418
|
podDurationMs: (_adPlayer_getPodTotalDurationMs = adPlayer.getPodTotalDurationMs) === null || _adPlayer_getPodTotalDurationMs === void 0 ? void 0 : _adPlayer_getPodTotalDurationMs.call(adPlayer),
|
|
10412
|
-
remainingMs: remainingMs
|
|
10419
|
+
remainingMs: remainingMs,
|
|
10420
|
+
overrunAllowanceMs: overrunAllowanceMs
|
|
10413
10421
|
});
|
|
10414
10422
|
sendAdLoadedTracking(this.host.config.licenseKey, {
|
|
10415
10423
|
source: "hls",
|
|
@@ -12798,7 +12806,7 @@ var CRITICAL_PROPS = [
|
|
|
12798
12806
|
var CONTROLS_HIDE_DELAY = 3e3;
|
|
12799
12807
|
var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
|
|
12800
12808
|
var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
12801
|
-
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, [
|
|
12809
|
+
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, [
|
|
12802
12810
|
"src",
|
|
12803
12811
|
"autoplay",
|
|
12804
12812
|
"muted",
|
|
@@ -12835,6 +12843,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
12835
12843
|
"minRemainingMsToStartAd",
|
|
12836
12844
|
"minRemainingMsToRequestAd",
|
|
12837
12845
|
"maxNoFillsPerBreak",
|
|
12846
|
+
"maxAdBreakExtensionMs",
|
|
12838
12847
|
"adFloorLadderEnabled",
|
|
12839
12848
|
"adFloorLadder",
|
|
12840
12849
|
"adFloorMinCents",
|
|
@@ -13042,6 +13051,7 @@ var StormcloudVideoPlayerComponent = import_react.default.memo(function(props) {
|
|
|
13042
13051
|
if (minRemainingMsToStartAd !== void 0) cfg.minRemainingMsToStartAd = minRemainingMsToStartAd;
|
|
13043
13052
|
if (minRemainingMsToRequestAd !== void 0) cfg.minRemainingMsToRequestAd = minRemainingMsToRequestAd;
|
|
13044
13053
|
if (maxNoFillsPerBreak !== void 0) cfg.maxNoFillsPerBreak = maxNoFillsPerBreak;
|
|
13054
|
+
if (maxAdBreakExtensionMs !== void 0) cfg.maxAdBreakExtensionMs = maxAdBreakExtensionMs;
|
|
13045
13055
|
if (adFloorLadderEnabled !== void 0) cfg.adFloorLadderEnabled = adFloorLadderEnabled;
|
|
13046
13056
|
if (adFloorLadder !== void 0) cfg.adFloorLadder = adFloorLadder;
|
|
13047
13057
|
if (adFloorMinCents !== void 0) cfg.adFloorMinCents = adFloorMinCents;
|