stormcloud-video-player 0.8.39 → 0.8.41

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/lib/index.js CHANGED
@@ -1966,10 +1966,19 @@ function openConnection() {
1966
1966
  password: mqttConfig.password,
1967
1967
  keepalive: KEEPALIVE_SECONDS,
1968
1968
  clean: true,
1969
+ // Disable MQTT.js internal reconnect; we manage reconnection ourselves.
1969
1970
  reconnectPeriod: 0,
1970
1971
  connectTimeout: CONNECT_TIMEOUT_MS,
1971
1972
  queueQoSZero: false,
1972
- reschedulePings: true
1973
+ reschedulePings: true,
1974
+ // Root-cause fix for the Tizen 4.0 "Keepalive timeout" loop: MQTT.js's
1975
+ // default timerVariant "auto" runs the keepalive interval inside a
1976
+ // Blob-URL Web Worker (via worker-timers). On Samsung Tizen 4.0 (old
1977
+ // WebKit) served from a file:// origin that worker can't tick reliably,
1978
+ // so the keepalive counter trips onKeepaliveTimeout almost immediately
1979
+ // after connect. Force the native setInterval timer instead; the main
1980
+ // thread is free because video is decoded by the native AVPlay pipeline.
1981
+ timerVariant: "native"
1973
1982
  });
1974
1983
  } catch (err) {
1975
1984
  status = "error";
@@ -8804,12 +8813,10 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
8804
8813
  ];
8805
8814
  case 3:
8806
8815
  error = _state.sent();
8807
- this.adBreak.adPodQueue = [];
8808
- this.adBreak.inAdBreak = false;
8809
- this.adBreak.showAds = false;
8810
8816
  if (this.debug) {
8811
8817
  console.warn("[StormcloudVideoPlayer] VMAP ad request failed:", error);
8812
8818
  }
8819
+ this.adBreak.handleAdPodComplete();
8813
8820
  return [
8814
8821
  3,
8815
8822
  4
@@ -8977,8 +8984,66 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
8977
8984
  return StormcloudVideoPlayer;
8978
8985
  }();
8979
8986
  // src/ui/StormcloudVideoPlayer.tsx
8980
- import { FaPlay, FaPause, FaVolumeUp, FaVolumeMute, FaVolumeDown, FaExpand, FaCompress } from "react-icons/fa";
8987
+ import { FaPlay, FaPause, FaVolumeUp, FaVolumeMute, FaVolumeDown } from "react-icons/fa";
8981
8988
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8989
+ var ExpandIcon = function ExpandIcon(param) {
8990
+ var _param_size = param.size, size = _param_size === void 0 ? 18 : _param_size;
8991
+ return /* @__PURE__ */ jsxs("svg", {
8992
+ width: size,
8993
+ height: size,
8994
+ viewBox: "0 0 24 24",
8995
+ fill: "none",
8996
+ stroke: "currentColor",
8997
+ strokeWidth: 2,
8998
+ strokeLinecap: "round",
8999
+ strokeLinejoin: "round",
9000
+ "aria-hidden": "true",
9001
+ focusable: "false",
9002
+ children: [
9003
+ /* @__PURE__ */ jsx("path", {
9004
+ d: "M9 4H4v5"
9005
+ }),
9006
+ /* @__PURE__ */ jsx("path", {
9007
+ d: "M20 9V4h-5"
9008
+ }),
9009
+ /* @__PURE__ */ jsx("path", {
9010
+ d: "M15 20h5v-5"
9011
+ }),
9012
+ /* @__PURE__ */ jsx("path", {
9013
+ d: "M4 15v5h5"
9014
+ })
9015
+ ]
9016
+ });
9017
+ };
9018
+ var CompressIcon = function CompressIcon(param) {
9019
+ var _param_size = param.size, size = _param_size === void 0 ? 18 : _param_size;
9020
+ return /* @__PURE__ */ jsxs("svg", {
9021
+ width: size,
9022
+ height: size,
9023
+ viewBox: "0 0 24 24",
9024
+ fill: "none",
9025
+ stroke: "currentColor",
9026
+ strokeWidth: 2,
9027
+ strokeLinecap: "round",
9028
+ strokeLinejoin: "round",
9029
+ "aria-hidden": "true",
9030
+ focusable: "false",
9031
+ children: [
9032
+ /* @__PURE__ */ jsx("path", {
9033
+ d: "M4 9h5V4"
9034
+ }),
9035
+ /* @__PURE__ */ jsx("path", {
9036
+ d: "M15 4v5h5"
9037
+ }),
9038
+ /* @__PURE__ */ jsx("path", {
9039
+ d: "M20 15h-5v5"
9040
+ }),
9041
+ /* @__PURE__ */ jsx("path", {
9042
+ d: "M9 20v-5H4"
9043
+ })
9044
+ ]
9045
+ });
9046
+ };
8982
9047
  var CRITICAL_PROPS = [
8983
9048
  "src",
8984
9049
  "allowNativeHls",
@@ -10016,9 +10081,9 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
10016
10081
  minHeight: "".concat(36 * responsiveScale, "px")
10017
10082
  },
10018
10083
  title: isFullscreen2 ? "Exit Fullscreen" : "Enter Fullscreen",
10019
- children: isFullscreen2 ? /* @__PURE__ */ jsx(FaCompress, {
10084
+ children: isFullscreen2 ? /* @__PURE__ */ jsx(CompressIcon, {
10020
10085
  size: Math.max(14, 18 * responsiveScale)
10021
- }) : /* @__PURE__ */ jsx(FaExpand, {
10086
+ }) : /* @__PURE__ */ jsx(ExpandIcon, {
10022
10087
  size: Math.max(14, 18 * responsiveScale)
10023
10088
  })
10024
10089
  })
@@ -10217,9 +10282,9 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
10217
10282
  background: "rgba(0, 0, 0, 0.6)"
10218
10283
  },
10219
10284
  title: isFullscreen2 ? "Exit Fullscreen" : "Enter Fullscreen",
10220
- children: isFullscreen2 ? /* @__PURE__ */ jsx(FaCompress, {
10285
+ children: isFullscreen2 ? /* @__PURE__ */ jsx(CompressIcon, {
10221
10286
  size: Math.max(14, 18 * responsiveScale)
10222
- }) : /* @__PURE__ */ jsx(FaExpand, {
10287
+ }) : /* @__PURE__ */ jsx(ExpandIcon, {
10223
10288
  size: Math.max(14, 18 * responsiveScale)
10224
10289
  })
10225
10290
  })