rx-player 3.33.4-dev.2024081600 → 3.33.4-dev.2024090600

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/CHANGELOG.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## v3.33.4 (upcoming)
3
+ ## Current dev build: v3.33.4-dev.2024090600
4
4
 
5
5
  ### Bug fixes
6
6
 
7
7
  - Compat: Fix autoPlay on Tizen when the content starts on a discontinuity [#1500]
8
+ - DRM/Compat: Re-create MediaKeys for each content on Philips' NETTV and `KSTB40xx`
9
+ set-top boxes [#1519, #1538]
8
10
 
9
11
  ### Other improvements
10
12
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.33.4-dev.2024081600
1
+ 3.33.4-dev.2024090600
@@ -37,8 +37,12 @@ declare let isWebOs2021: boolean;
37
37
  declare let isWebOs2022: boolean;
38
38
  /** `true` for Panasonic devices. */
39
39
  declare let isPanasonic: boolean;
40
+ /** `true` we're relying on Philips's NetTv browser. */
41
+ declare let isPhilipsNetTv: boolean;
40
42
  /** `true` for the PlayStation 5 game console. */
41
43
  declare let isPlayStation5: boolean;
42
44
  /** `true` for the Xbox game consoles. */
43
45
  declare let isXbox: boolean;
44
- export { isEdgeChromium, isIE11, isIEOrEdge, isFirefox, isPanasonic, isPlayStation5, isXbox, isSafariDesktop, isSafariMobile, isSamsungBrowser, isTizen, isWebOs, isWebOs2021, isWebOs2022, };
46
+ /** `true` for specific A1 STB: KSTB 40xx from Kaon Media. */
47
+ declare let isA1KStb40xx: boolean;
48
+ export { isEdgeChromium, isFirefox, isIE11, isIEOrEdge, isSafariDesktop, isSafariMobile, isA1KStb40xx, isPanasonic, isPhilipsNetTv, isPlayStation5, isSamsungBrowser, isTizen, isWebOs, isWebOs2021, isWebOs2022, isXbox, };
@@ -38,10 +38,14 @@ var isWebOs2021 = false;
38
38
  var isWebOs2022 = false;
39
39
  /** `true` for Panasonic devices. */
40
40
  var isPanasonic = false;
41
+ /** `true` we're relying on Philips's NetTv browser. */
42
+ var isPhilipsNetTv = false;
41
43
  /** `true` for the PlayStation 5 game console. */
42
44
  var isPlayStation5 = false;
43
45
  /** `true` for the Xbox game consoles. */
44
46
  var isXbox = false;
47
+ /** `true` for specific A1 STB: KSTB 40xx from Kaon Media. */
48
+ var isA1KStb40xx = false;
45
49
  ((function findCurrentBrowser() {
46
50
  var _a, _b, _c;
47
51
  if (isNode) {
@@ -113,11 +117,22 @@ var isXbox = false;
113
117
  isWebOs2021 = true;
114
118
  }
115
119
  }
120
+ else if (navigator.userAgent.indexOf("NETTV") !== -1 &&
121
+ navigator.userAgent.indexOf("Philips") !== -1) {
122
+ isPhilipsNetTv = true;
123
+ }
116
124
  else if (/[Pp]anasonic/.test(navigator.userAgent)) {
117
125
  isPanasonic = true;
118
126
  }
119
127
  else if (navigator.userAgent.indexOf("Xbox") !== -1) {
120
128
  isXbox = true;
121
129
  }
130
+ else if (navigator.userAgent.indexOf("Model/a1-kstb40xx")) {
131
+ isA1KStb40xx = true;
132
+ }
122
133
  })());
123
- export { isEdgeChromium, isIE11, isIEOrEdge, isFirefox, isPanasonic, isPlayStation5, isXbox, isSafariDesktop, isSafariMobile, isSamsungBrowser, isTizen, isWebOs, isWebOs2021, isWebOs2022, };
134
+ export {
135
+ // browsers
136
+ isEdgeChromium, isFirefox, isIE11, isIEOrEdge, isSafariDesktop, isSafariMobile,
137
+ // specific devices
138
+ isA1KStb40xx, isPanasonic, isPhilipsNetTv, isPlayStation5, isSamsungBrowser, isTizen, isWebOs, isWebOs2021, isWebOs2022, isXbox, };
@@ -7,6 +7,12 @@
7
7
  * - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
8
8
  * rebuffered indefinitely when loading a content already-loaded on the
9
9
  * HTMLMediaElement.
10
+ * - (2024-08-23): Seen on Philips 2024 and 2023 in:
11
+ * https://github.com/canalplus/rx-player/issues/1464
12
+ * - (2024-09-04): Another case seen on an "A1" set-top box model made by
13
+ * Kaonmedia we will call the KSTB40xx.
14
+ * It may share the problematic with other devices, but we have only seen
15
+ * the problem on this one for now.
10
16
  *
11
17
  * @returns {boolean}
12
18
  */
@@ -1,4 +1,4 @@
1
- import { isPanasonic, isWebOs, } from "./browser_detection";
1
+ import { isA1KStb40xx, isPanasonic, isPhilipsNetTv, isWebOs, } from "./browser_detection";
2
2
  /**
3
3
  * Returns `true` if a `MediaKeys` instance (the `Encrypted Media Extension`
4
4
  * concept) can be reused between contents.
@@ -8,9 +8,15 @@ import { isPanasonic, isWebOs, } from "./browser_detection";
8
8
  * - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
9
9
  * rebuffered indefinitely when loading a content already-loaded on the
10
10
  * HTMLMediaElement.
11
+ * - (2024-08-23): Seen on Philips 2024 and 2023 in:
12
+ * https://github.com/canalplus/rx-player/issues/1464
13
+ * - (2024-09-04): Another case seen on an "A1" set-top box model made by
14
+ * Kaonmedia we will call the KSTB40xx.
15
+ * It may share the problematic with other devices, but we have only seen
16
+ * the problem on this one for now.
11
17
  *
12
18
  * @returns {boolean}
13
19
  */
14
20
  export default function canReuseMediaKeys() {
15
- return !isWebOs && !isPanasonic;
21
+ return !isWebOs && !isPhilipsNetTv && !isPanasonic && !isA1KStb40xx;
16
22
  }
@@ -88,7 +88,7 @@ var Player = /** @class */ (function (_super) {
88
88
  // Workaround to support Firefox autoplay on FF 42.
89
89
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
90
90
  videoElement.preload = "auto";
91
- _this.version = /* PLAYER_VERSION */ "3.33.4-dev.2024081600";
91
+ _this.version = /* PLAYER_VERSION */ "3.33.4-dev.2024090600";
92
92
  _this.log = log;
93
93
  _this.state = "STOPPED";
94
94
  _this.videoElement = videoElement;
@@ -2511,5 +2511,5 @@ var Player = /** @class */ (function (_super) {
2511
2511
  Player._priv_currentlyUsedVideoElements = new WeakSet();
2512
2512
  return Player;
2513
2513
  }(EventEmitter));
2514
- Player.version = /* PLAYER_VERSION */ "3.33.4-dev.2024081600";
2514
+ Player.version = /* PLAYER_VERSION */ "3.33.4-dev.2024090600";
2515
2515
  export default Player;
package/dist/rx-player.js CHANGED
@@ -60,6 +60,7 @@ var READY_STATES = {
60
60
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
61
61
  /* harmony export */ A7: function() { return /* binding */ isPlayStation5; },
62
62
  /* harmony export */ Fr: function() { return /* binding */ isSafariDesktop; },
63
+ /* harmony export */ NV: function() { return /* binding */ isPhilipsNetTv; },
63
64
  /* harmony export */ P5: function() { return /* binding */ isPanasonic; },
64
65
  /* harmony export */ Pb: function() { return /* binding */ isSamsungBrowser; },
65
66
  /* harmony export */ ZN: function() { return /* binding */ isTizen; },
@@ -69,7 +70,8 @@ var READY_STATES = {
69
70
  /* harmony export */ hF: function() { return /* binding */ isWebOs; },
70
71
  /* harmony export */ lw: function() { return /* binding */ isIE11; },
71
72
  /* harmony export */ op: function() { return /* binding */ isEdgeChromium; },
72
- /* harmony export */ qe: function() { return /* binding */ isXbox; }
73
+ /* harmony export */ qe: function() { return /* binding */ isXbox; },
74
+ /* harmony export */ x1: function() { return /* binding */ isA1KStb40xx; }
73
75
  /* harmony export */ });
74
76
  /* unused harmony exports isWebOs2021, isWebOs2022 */
75
77
  /* harmony import */ var _is_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2186);
@@ -113,10 +115,14 @@ var isWebOs2021 = false;
113
115
  var isWebOs2022 = false;
114
116
  /** `true` for Panasonic devices. */
115
117
  var isPanasonic = false;
118
+ /** `true` we're relying on Philips's NetTv browser. */
119
+ var isPhilipsNetTv = false;
116
120
  /** `true` for the PlayStation 5 game console. */
117
121
  var isPlayStation5 = false;
118
122
  /** `true` for the Xbox game consoles. */
119
123
  var isXbox = false;
124
+ /** `true` for specific A1 STB: KSTB 40xx from Kaon Media. */
125
+ var isA1KStb40xx = false;
120
126
  (function findCurrentBrowser() {
121
127
  var _a, _b, _c;
122
128
  if (_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A) {
@@ -168,10 +174,14 @@ var isXbox = false;
168
174
  } else if (/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent) || /[Cc]hr[o0]me\/79/.test(navigator.userAgent)) {
169
175
  isWebOs2021 = true;
170
176
  }
177
+ } else if (navigator.userAgent.indexOf("NETTV") !== -1 && navigator.userAgent.indexOf("Philips") !== -1) {
178
+ isPhilipsNetTv = true;
171
179
  } else if (/[Pp]anasonic/.test(navigator.userAgent)) {
172
180
  isPanasonic = true;
173
181
  } else if (navigator.userAgent.indexOf("Xbox") !== -1) {
174
182
  isXbox = true;
183
+ } else if (navigator.userAgent.indexOf("Model/a1-kstb40xx")) {
184
+ isA1KStb40xx = true;
175
185
  }
176
186
  })();
177
187
 
@@ -4935,11 +4945,17 @@ function _createOrLoadSession() {
4935
4945
  * - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
4936
4946
  * rebuffered indefinitely when loading a content already-loaded on the
4937
4947
  * HTMLMediaElement.
4948
+ * - (2024-08-23): Seen on Philips 2024 and 2023 in:
4949
+ * https://github.com/canalplus/rx-player/issues/1464
4950
+ * - (2024-09-04): Another case seen on an "A1" set-top box model made by
4951
+ * Kaonmedia we will call the KSTB40xx.
4952
+ * It may share the problematic with other devices, but we have only seen
4953
+ * the problem on this one for now.
4938
4954
  *
4939
4955
  * @returns {boolean}
4940
4956
  */
4941
4957
  function canReuseMediaKeys() {
4942
- return !browser_detection/* isWebOs */.hF && !browser_detection/* isPanasonic */.P5;
4958
+ return !browser_detection/* isWebOs */.hF && !browser_detection/* isPhilipsNetTv */.NV && !browser_detection/* isPanasonic */.P5 && !browser_detection/* isA1KStb40xx */.x1;
4943
4959
  }
4944
4960
  ;// CONCATENATED MODULE: ./src/compat/should_renew_media_key_system_access.ts
4945
4961
  /**
@@ -53675,7 +53691,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
53675
53691
  // Workaround to support Firefox autoplay on FF 42.
53676
53692
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
53677
53693
  videoElement.preload = "auto";
53678
- _this.version = /* PLAYER_VERSION */"3.33.4-dev.2024081600";
53694
+ _this.version = /* PLAYER_VERSION */"3.33.4-dev.2024090600";
53679
53695
  _this.log = src_log/* default */.A;
53680
53696
  _this.state = "STOPPED";
53681
53697
  _this.videoElement = videoElement;
@@ -56163,7 +56179,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
56163
56179
  * Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
56164
56180
  */
56165
56181
  Player._priv_currentlyUsedVideoElements = new WeakSet();
56166
- Player.version = /* PLAYER_VERSION */"3.33.4-dev.2024081600";
56182
+ Player.version = /* PLAYER_VERSION */"3.33.4-dev.2024090600";
56167
56183
  /* harmony default export */ var public_api = (Player);
56168
56184
  ;// CONCATENATED MODULE: ./src/core/api/index.ts
56169
56185
  /**