rx-player 4.3.0-dev.2024112900 → 4.3.0-dev.2025012900

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.
Files changed (174) hide show
  1. package/CHANGELOG.md +30 -8
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  7. package/dist/commonjs/compat/browser_compatibility_types.d.ts +7 -2
  8. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  9. package/dist/commonjs/compat/browser_compatibility_types.js +0 -1
  10. package/dist/commonjs/compat/browser_detection.js +1 -1
  11. package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
  12. package/dist/commonjs/compat/event_listeners.js +2 -4
  13. package/dist/commonjs/compat/has_mse_in_worker.d.ts.map +1 -1
  14. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  15. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +1 -2
  16. package/dist/commonjs/core/main/worker/send_message.d.ts.map +1 -1
  17. package/dist/commonjs/core/main/worker/send_message.js +0 -1
  18. package/dist/commonjs/core/main/worker/worker_main.js +1 -1
  19. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  20. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +4 -8
  21. package/dist/commonjs/core/stream/period/period_stream.js +1 -3
  22. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +1 -2
  23. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  24. package/dist/commonjs/main_thread/api/public_api.js +4 -4
  25. package/dist/commonjs/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  26. package/dist/commonjs/main_thread/decrypt/clear_on_stop.js +60 -14
  27. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  28. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +21 -9
  29. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  30. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.js +2 -18
  31. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  32. package/dist/commonjs/main_thread/decrypt/find_key_system.js +134 -68
  33. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.js +2 -2
  34. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +5 -3
  35. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  36. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +2 -2
  37. package/dist/{es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts → commonjs/main_thread/decrypt/utils/media_keys_attacher.d.ts} +31 -9
  38. package/dist/commonjs/main_thread/decrypt/utils/media_keys_attacher.d.ts.map +1 -0
  39. package/dist/commonjs/main_thread/decrypt/utils/media_keys_attacher.js +282 -0
  40. package/dist/commonjs/main_thread/init/utils/rebuffering_controller.d.ts.map +1 -1
  41. package/dist/commonjs/main_thread/init/utils/rebuffering_controller.js +20 -9
  42. package/dist/commonjs/main_thread/text_displayer/html/text_track_cues_store.js +1 -1
  43. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  44. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.js +3 -4
  45. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  46. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +1 -1
  47. package/dist/commonjs/manifest/classes/representation.d.ts +15 -1
  48. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  49. package/dist/commonjs/manifest/classes/representation.js +17 -0
  50. package/dist/commonjs/manifest/utils.d.ts +15 -0
  51. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  52. package/dist/commonjs/manifest/utils.js +28 -5
  53. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +2 -2
  54. package/dist/commonjs/playback_observer/media_element_playback_observer.js +1 -1
  55. package/dist/commonjs/public_types.d.ts +44 -0
  56. package/dist/commonjs/public_types.d.ts.map +1 -1
  57. package/dist/commonjs/utils/flat_map.d.ts +2 -2
  58. package/dist/commonjs/utils/flat_map.js +2 -2
  59. package/dist/commonjs/utils/url-utils.d.ts.map +1 -1
  60. package/dist/commonjs/utils/url-utils.js +11 -10
  61. package/dist/commonjs/utils/xml-parser.d.ts.map +1 -1
  62. package/dist/commonjs/utils/xml-parser.js +10 -8
  63. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts +1 -1
  64. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  65. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  66. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  67. package/dist/es2017/compat/browser_compatibility_types.d.ts +7 -2
  68. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  69. package/dist/es2017/compat/browser_compatibility_types.js +0 -1
  70. package/dist/es2017/compat/browser_detection.js +1 -1
  71. package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
  72. package/dist/es2017/compat/event_listeners.js +2 -4
  73. package/dist/es2017/compat/has_mse_in_worker.d.ts.map +1 -1
  74. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  75. package/dist/es2017/core/cmcd/cmcd_data_builder.js +1 -2
  76. package/dist/es2017/core/main/worker/send_message.d.ts.map +1 -1
  77. package/dist/es2017/core/main/worker/send_message.js +0 -1
  78. package/dist/es2017/core/main/worker/worker_main.js +1 -1
  79. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  80. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +4 -6
  81. package/dist/es2017/core/stream/period/period_stream.js +1 -3
  82. package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.js +1 -2
  83. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  84. package/dist/es2017/main_thread/api/public_api.js +4 -4
  85. package/dist/es2017/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  86. package/dist/es2017/main_thread/decrypt/clear_on_stop.js +3 -3
  87. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  88. package/dist/es2017/main_thread/decrypt/content_decryptor.js +21 -9
  89. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  90. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.js +2 -12
  91. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  92. package/dist/es2017/main_thread/decrypt/find_key_system.js +102 -56
  93. package/dist/es2017/main_thread/decrypt/get_key_system_configuration.js +2 -2
  94. package/dist/es2017/main_thread/decrypt/get_media_keys.js +2 -2
  95. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  96. package/dist/es2017/main_thread/decrypt/init_media_keys.js +2 -2
  97. package/dist/{commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts → es2017/main_thread/decrypt/utils/media_keys_attacher.d.ts} +31 -9
  98. package/dist/es2017/main_thread/decrypt/utils/media_keys_attacher.d.ts.map +1 -0
  99. package/dist/es2017/main_thread/decrypt/utils/media_keys_attacher.js +180 -0
  100. package/dist/es2017/main_thread/init/utils/rebuffering_controller.d.ts.map +1 -1
  101. package/dist/es2017/main_thread/init/utils/rebuffering_controller.js +20 -9
  102. package/dist/es2017/main_thread/text_displayer/html/text_track_cues_store.js +1 -1
  103. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  104. package/dist/es2017/main_thread/tracks_store/track_dispatcher.js +3 -4
  105. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  106. package/dist/es2017/main_thread/tracks_store/tracks_store.js +2 -2
  107. package/dist/es2017/manifest/classes/representation.d.ts +15 -1
  108. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  109. package/dist/es2017/manifest/classes/representation.js +17 -0
  110. package/dist/es2017/manifest/utils.d.ts +15 -0
  111. package/dist/es2017/manifest/utils.d.ts.map +1 -1
  112. package/dist/es2017/manifest/utils.js +27 -5
  113. package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +2 -2
  114. package/dist/es2017/playback_observer/media_element_playback_observer.js +1 -1
  115. package/dist/es2017/public_types.d.ts +44 -0
  116. package/dist/es2017/public_types.d.ts.map +1 -1
  117. package/dist/es2017/utils/flat_map.d.ts +2 -2
  118. package/dist/es2017/utils/flat_map.js +2 -2
  119. package/dist/es2017/utils/url-utils.d.ts.map +1 -1
  120. package/dist/es2017/utils/url-utils.js +11 -10
  121. package/dist/es2017/utils/xml-parser.d.ts.map +1 -1
  122. package/dist/es2017/utils/xml-parser.js +10 -8
  123. package/dist/rx-player.js +505 -372
  124. package/dist/rx-player.min.js +18 -18
  125. package/dist/worker.js +6 -6
  126. package/package.json +21 -19
  127. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  128. package/src/compat/browser_compatibility_types.ts +22 -4
  129. package/src/compat/browser_detection.ts +1 -1
  130. package/src/compat/event_listeners.ts +2 -4
  131. package/src/compat/has_mse_in_worker.ts +1 -1
  132. package/src/core/cmcd/cmcd_data_builder.ts +1 -4
  133. package/src/core/main/worker/send_message.ts +4 -2
  134. package/src/core/main/worker/worker_main.ts +1 -1
  135. package/src/core/stream/adaptation/adaptation_stream.ts +4 -7
  136. package/src/core/stream/period/period_stream.ts +3 -3
  137. package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +1 -2
  138. package/src/main_thread/api/public_api.ts +4 -4
  139. package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +239 -6
  140. package/src/main_thread/decrypt/__tests__/find_key_system.test.ts +325 -0
  141. package/src/main_thread/decrypt/clear_on_stop.ts +3 -3
  142. package/src/main_thread/decrypt/content_decryptor.ts +26 -8
  143. package/src/main_thread/decrypt/dispose_decryption_resources.ts +2 -13
  144. package/src/main_thread/decrypt/find_key_system.ts +120 -81
  145. package/src/main_thread/decrypt/get_key_system_configuration.ts +2 -2
  146. package/src/main_thread/decrypt/get_media_keys.ts +2 -2
  147. package/src/main_thread/decrypt/init_media_keys.ts +2 -2
  148. package/src/main_thread/decrypt/utils/media_keys_attacher.ts +284 -0
  149. package/src/main_thread/init/utils/rebuffering_controller.ts +20 -10
  150. package/src/main_thread/text_displayer/html/text_track_cues_store.ts +1 -1
  151. package/src/main_thread/tracks_store/track_dispatcher.ts +3 -6
  152. package/src/main_thread/tracks_store/tracks_store.ts +2 -1
  153. package/src/manifest/classes/representation.ts +18 -1
  154. package/src/manifest/utils.ts +30 -9
  155. package/src/parsers/manifest/dash/common/parse_representations.ts +2 -2
  156. package/src/playback_observer/media_element_playback_observer.ts +1 -1
  157. package/src/public_types.ts +45 -0
  158. package/src/utils/__tests__/flat_map.test.ts +7 -20
  159. package/src/utils/flat_map.ts +2 -2
  160. package/src/utils/url-utils.ts +11 -10
  161. package/src/utils/xml-parser.ts +13 -8
  162. package/vitest.config.mjs +9 -23
  163. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts +0 -60
  164. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts.map +0 -1
  165. package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +0 -124
  166. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +0 -1
  167. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.js +0 -45
  168. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts +0 -60
  169. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts.map +0 -1
  170. package/dist/es2017/main_thread/decrypt/attach_media_keys.js +0 -73
  171. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +0 -1
  172. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.js +0 -43
  173. package/src/main_thread/decrypt/attach_media_keys.ts +0 -125
  174. package/src/main_thread/decrypt/utils/media_keys_infos_store.ts +0 -88
package/CHANGELOG.md CHANGED
@@ -1,17 +1,28 @@
1
1
  # Changelog
2
2
 
3
- ## Current dev build: v4.3.0-dev.2024112900
3
+ ## Current dev build: v4.3.0-dev.2025012900
4
4
 
5
5
  ### Features
6
6
 
7
7
  - Add the possibility to rely on `ManagedMediaSource` on iOS devices [#1562]
8
+ - DRM: Add `keySystems[].wantedSessionTypes` `loadVideo` option to also initialize a
9
+ config for future contents, not just the current one [#1604]
8
10
 
9
11
  ### Bug fixes
10
12
 
11
- - tracks API should not returned unplayable representations by default [#1599]
13
+ - Tracks API do not return unplayable representations by default [#1599]
12
14
  - MULTI_THREAD: Fix `onmessageerror` being undefined on older devices [#1585]
13
15
  - Compat: On "FREEZING" try to un-freeze regardless of if the wanted position was reached
14
16
  to fix a remaining Tizen (Samsung) infinite rebuffering issue [#1586]
17
+ - DRM: fix typo which prevented `MediaKeys` reusage on some devices including desktop
18
+ browsers [#1615]
19
+ - DRM: Only ask for `"persistent-license"` `MediaKeySession` (and not also for
20
+ `"temporary"` license) when only a `keySystems[].persistentLicenseConfig` is
21
+ communicated [#1604]
22
+ - DRM: Fix reusage of some `keySystems[]` option changing when reusing a
23
+ `MediaKeySystemAccess` with a different `keySystems[]` configuration [#1616]
24
+ - On Tizen, fix infinite loading that may occur in some condition if both the audio and
25
+ video segments have a gap at the expected initial position [#1637]
15
26
 
16
27
  ### Other improvements
17
28
 
@@ -19,8 +30,13 @@
19
30
  before seeking ourselves over a discontinuity [#1587]
20
31
  - DRM: Only reuse cached `MediaKeySystemAccess` if none is more wanted for the current
21
32
  content [#1591]
33
+ - MULTI_THREAD: Some `LOADING` and `RELOADING` attempts may have taken more time than
34
+ necessary due to a wrong "initial Period prediction", this is fixed [#1628]
35
+ - DRM: Reuse cache even if key system type given in API is not the same [#1611]
22
36
  - DEBUG_ELEMENT: Add buffer size estimate to debug buffer content graph [#1558]
23
37
  - DEBUG_ELEMENT: Add `hdr` information to video Representation [#1583]
38
+ - tests: Our performance-regression tests now run on all RxPlayer updates to better
39
+ protect against performance regressions [#1630]
24
40
 
25
41
  ## v4.2.0 (2024-10-17)
26
42
 
@@ -48,7 +64,8 @@
48
64
  - Fix rare cases where the active Period would not be advertised by the RxPlayer [#1502]
49
65
  - Actually trigger a `BUFFER_FULL_ERROR` when `QuotaExceededError` mitigations after
50
66
  `appendBuffer` MSE calls don't work #1546
51
- - Fix issues when handling a `QuotaExceededError` after an `appendBuffer` MSE call [#1546, #1559]
67
+ - Fix issues when handling a `QuotaExceededError` after an `appendBuffer` MSE call [#1546,
68
+ #1559]
52
69
  - Directfile/Compat: Fix `startAt.fromLastPosition` handling on Safari when playing
53
70
  directfile contents [#1548]
54
71
  - DRM/Compat: Re-create MediaKeys for each content on Philips' NETTV, and `KSTB40XX`
@@ -94,7 +111,8 @@
94
111
 
95
112
  ### Bug fixes
96
113
 
97
- - DASH: support absolute path in URL resolution with RFC 3986 implementation [#1443, #1440]
114
+ - DASH: support absolute path in URL resolution with RFC 3986 implementation [#1443,
115
+ #1440]
98
116
  - DASH: fix cases of blinking subtitles [#1416, #1424]
99
117
  - Fix precision issues of the `maxVideoBufferSize` API [#1421]
100
118
  - DASH: Prevent multiple loading of the same segment for some DASH low-latency contents
@@ -108,7 +126,8 @@
108
126
  - MULTI_THREAD: Perform several actions so that our `MULTI_THREAD` experimental feature
109
127
  now works on older browser and on the Playstation 4 [#1401, #1402]
110
128
  - Directfile/Compat: On safari on iOS no longer stay stuck in buffering when `autoPlay` is
111
- set to `false` or not set and the video element has the attribute "playsinline" [#1408, #1390]
129
+ set to `false` or not set and the video element has the attribute "playsinline" [#1408,
130
+ #1390]
112
131
  - Directfile/compat: On safari mobile in directfile mode, do not stay in an infinite
113
132
  `LOADING` state if the `duration` is set to `NaN` (rare issue in a normally-unsupported
114
133
  multiple RxPlayer-per-media-element scenario) [#1393]
@@ -747,7 +766,8 @@
747
766
  - TypeScript: Add IBitrateEstimate, IPositionUpdate and IPlayerState types to the exported
748
767
  types [#1084]
749
768
  - Remove dependency on pinkie's promise ponyfill [#1058, #1090]
750
- - tests: add performance tests, to better catch and avoid performance regressions [#1053, #1062]
769
+ - tests: add performance tests, to better catch and avoid performance regressions [#1053,
770
+ #1062]
751
771
  - DRM: Refactor DRM logic for better maintainability. DRM-linked logs are now prefixed by
752
772
  `DRM:` instead of `EME:` like previously [#1042]
753
773
 
@@ -891,7 +911,8 @@
891
911
  - Update used RxJS version to 7.0.0, which might bring with it a smaller size and better
892
912
  performances [#954]
893
913
  - demo: remove Chart.js dependency (we found that its new API documentation and errors
894
- were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955, #957]
914
+ were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955,
915
+ #957]
895
916
 
896
917
  ## v3.24.0 (2021-04-01)
897
918
 
@@ -899,7 +920,8 @@
899
920
 
900
921
  - Add `inbandEvent` event for when an event is encountered in a media segment [#892]
901
922
  - DRM: Add `singleLicensePer` `keySystems` option to be able to signal in advance that the
902
- current content has a single license, even if it has multiple encryption keys [#863, #904]
923
+ current content has a single license, even if it has multiple encryption keys [#863,
924
+ #904]
903
925
  - DRM: Add `keySystems[].licenseStorage.disableRetroCompatibility` boolean to unlock
904
926
  optimizations when compatibility with EME sessions persisted in older RxPlayer versions
905
927
  is not important [#919]
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.3.0-dev.2024112900
1
+ 4.3.0-dev.2025012900
@@ -1,4 +1,4 @@
1
- declare const wasmArrayBuffer: ArrayBufferLike;
1
+ declare const wasmArrayBuffer: ArrayBuffer;
2
2
  export { wasmArrayBuffer as EMBEDDED_DASH_WASM };
3
3
  export default wasmArrayBuffer;
4
4
  //# sourceMappingURL=embedded_dash_wasm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_dash_wasm.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_dash_wasm.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,iBAAg2tV,CAAC;AACt3tV,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;AACjD,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"embedded_dash_wasm.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_dash_wasm.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,aAAg2tV,CAAC;AACt3tV,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;AACjD,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAAy1tT,CAAC;AACp2tT,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAAy5tT,CAAC;AACp6tT,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}