rx-player 4.3.0-dev.2024111800 → 4.3.0-dev.2025011000

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 (190) hide show
  1. package/CHANGELOG.md +24 -7
  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_dash_wasm.js +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  7. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  8. package/dist/commonjs/compat/browser_compatibility_types.d.ts +7 -2
  9. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  10. package/dist/commonjs/compat/browser_compatibility_types.js +0 -1
  11. package/dist/commonjs/compat/browser_detection.js +1 -1
  12. package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
  13. package/dist/commonjs/compat/event_listeners.js +2 -4
  14. package/dist/commonjs/compat/has_mse_in_worker.d.ts.map +1 -1
  15. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  16. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +1 -2
  17. package/dist/commonjs/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  18. package/dist/commonjs/core/fetchers/utils/schedule_request.js +0 -1
  19. package/dist/commonjs/core/main/worker/send_message.d.ts.map +1 -1
  20. package/dist/commonjs/core/main/worker/send_message.js +0 -1
  21. package/dist/commonjs/core/segment_sinks/segment_sinks_store.d.ts.map +1 -1
  22. package/dist/commonjs/core/segment_sinks/segment_sinks_store.js +0 -1
  23. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  24. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +4 -8
  25. package/dist/commonjs/core/stream/period/period_stream.js +1 -5
  26. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +1 -2
  27. package/dist/commonjs/core/stream/representation/types.d.ts.map +1 -1
  28. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  29. package/dist/commonjs/main_thread/api/public_api.js +8 -8
  30. package/dist/commonjs/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  31. package/dist/commonjs/main_thread/decrypt/clear_on_stop.js +60 -14
  32. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  33. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +21 -9
  34. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  35. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.js +2 -18
  36. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  37. package/dist/commonjs/main_thread/decrypt/find_key_system.js +134 -68
  38. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.js +2 -2
  39. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +5 -3
  40. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  41. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +2 -2
  42. 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
  43. package/dist/commonjs/main_thread/decrypt/utils/media_keys_attacher.d.ts.map +1 -0
  44. package/dist/commonjs/main_thread/decrypt/utils/media_keys_attacher.js +282 -0
  45. package/dist/commonjs/main_thread/init/utils/rebuffering_controller.js +1 -1
  46. package/dist/commonjs/main_thread/text_displayer/html/text_track_cues_store.js +1 -1
  47. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  48. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.js +3 -6
  49. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  50. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +1 -1
  51. package/dist/commonjs/manifest/classes/representation.d.ts +15 -1
  52. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  53. package/dist/commonjs/manifest/classes/representation.js +17 -0
  54. package/dist/commonjs/manifest/utils.d.ts +15 -0
  55. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  56. package/dist/commonjs/manifest/utils.js +28 -5
  57. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +2 -2
  58. package/dist/commonjs/playback_observer/media_element_playback_observer.js +1 -1
  59. package/dist/commonjs/public_types.d.ts +44 -0
  60. package/dist/commonjs/public_types.d.ts.map +1 -1
  61. package/dist/commonjs/utils/flat_map.d.ts +2 -2
  62. package/dist/commonjs/utils/flat_map.js +2 -2
  63. package/dist/commonjs/utils/url-utils.d.ts.map +1 -1
  64. package/dist/commonjs/utils/url-utils.js +11 -10
  65. package/dist/commonjs/utils/xml-parser.d.ts.map +1 -1
  66. package/dist/commonjs/utils/xml-parser.js +10 -8
  67. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts +1 -1
  68. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  69. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  70. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  71. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  72. package/dist/es2017/compat/browser_compatibility_types.d.ts +7 -2
  73. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  74. package/dist/es2017/compat/browser_compatibility_types.js +0 -1
  75. package/dist/es2017/compat/browser_detection.js +1 -1
  76. package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
  77. package/dist/es2017/compat/event_listeners.js +2 -4
  78. package/dist/es2017/compat/has_mse_in_worker.d.ts.map +1 -1
  79. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  80. package/dist/es2017/core/cmcd/cmcd_data_builder.js +1 -2
  81. package/dist/es2017/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  82. package/dist/es2017/core/fetchers/utils/schedule_request.js +0 -1
  83. package/dist/es2017/core/main/worker/send_message.d.ts.map +1 -1
  84. package/dist/es2017/core/main/worker/send_message.js +0 -1
  85. package/dist/es2017/core/segment_sinks/segment_sinks_store.d.ts.map +1 -1
  86. package/dist/es2017/core/segment_sinks/segment_sinks_store.js +0 -1
  87. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  88. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +4 -6
  89. package/dist/es2017/core/stream/period/period_stream.js +1 -5
  90. package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.js +1 -2
  91. package/dist/es2017/core/stream/representation/types.d.ts.map +1 -1
  92. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  93. package/dist/es2017/main_thread/api/public_api.js +8 -8
  94. package/dist/es2017/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  95. package/dist/es2017/main_thread/decrypt/clear_on_stop.js +3 -3
  96. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  97. package/dist/es2017/main_thread/decrypt/content_decryptor.js +21 -9
  98. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  99. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.js +2 -12
  100. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  101. package/dist/es2017/main_thread/decrypt/find_key_system.js +102 -56
  102. package/dist/es2017/main_thread/decrypt/get_key_system_configuration.js +2 -2
  103. package/dist/es2017/main_thread/decrypt/get_media_keys.js +2 -2
  104. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  105. package/dist/es2017/main_thread/decrypt/init_media_keys.js +2 -2
  106. 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
  107. package/dist/es2017/main_thread/decrypt/utils/media_keys_attacher.d.ts.map +1 -0
  108. package/dist/es2017/main_thread/decrypt/utils/media_keys_attacher.js +180 -0
  109. package/dist/es2017/main_thread/init/utils/rebuffering_controller.js +1 -1
  110. package/dist/es2017/main_thread/text_displayer/html/text_track_cues_store.js +1 -1
  111. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  112. package/dist/es2017/main_thread/tracks_store/track_dispatcher.js +3 -6
  113. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  114. package/dist/es2017/main_thread/tracks_store/tracks_store.js +2 -2
  115. package/dist/es2017/manifest/classes/representation.d.ts +15 -1
  116. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  117. package/dist/es2017/manifest/classes/representation.js +17 -0
  118. package/dist/es2017/manifest/utils.d.ts +15 -0
  119. package/dist/es2017/manifest/utils.d.ts.map +1 -1
  120. package/dist/es2017/manifest/utils.js +27 -5
  121. package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +2 -2
  122. package/dist/es2017/playback_observer/media_element_playback_observer.js +1 -1
  123. package/dist/es2017/public_types.d.ts +44 -0
  124. package/dist/es2017/public_types.d.ts.map +1 -1
  125. package/dist/es2017/utils/flat_map.d.ts +2 -2
  126. package/dist/es2017/utils/flat_map.js +2 -2
  127. package/dist/es2017/utils/url-utils.d.ts.map +1 -1
  128. package/dist/es2017/utils/url-utils.js +11 -10
  129. package/dist/es2017/utils/xml-parser.d.ts.map +1 -1
  130. package/dist/es2017/utils/xml-parser.js +10 -8
  131. package/dist/mpd-parser.wasm +0 -0
  132. package/dist/rx-player.js +498 -368
  133. package/dist/rx-player.min.js +18 -18
  134. package/dist/worker.js +6 -6
  135. package/package.json +26 -24
  136. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  137. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  138. package/src/compat/browser_compatibility_types.ts +22 -4
  139. package/src/compat/browser_detection.ts +1 -1
  140. package/src/compat/event_listeners.ts +2 -4
  141. package/src/compat/has_mse_in_worker.ts +1 -1
  142. package/src/core/cmcd/cmcd_data_builder.ts +1 -4
  143. package/src/core/fetchers/utils/schedule_request.ts +0 -1
  144. package/src/core/main/worker/send_message.ts +4 -2
  145. package/src/core/segment_sinks/segment_sinks_store.ts +0 -1
  146. package/src/core/stream/adaptation/adaptation_stream.ts +4 -7
  147. package/src/core/stream/period/period_stream.ts +3 -5
  148. package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +1 -2
  149. package/src/core/stream/representation/types.ts +0 -1
  150. package/src/experimental/features/__tests__/multi_thread.test.ts +0 -1
  151. package/src/main_thread/api/__tests__/public_api.test.ts +0 -2
  152. package/src/main_thread/api/public_api.ts +8 -8
  153. package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +239 -6
  154. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +0 -2
  155. package/src/main_thread/decrypt/__tests__/find_key_system.test.ts +325 -0
  156. package/src/main_thread/decrypt/clear_on_stop.ts +3 -3
  157. package/src/main_thread/decrypt/content_decryptor.ts +26 -8
  158. package/src/main_thread/decrypt/dispose_decryption_resources.ts +2 -13
  159. package/src/main_thread/decrypt/find_key_system.ts +120 -81
  160. package/src/main_thread/decrypt/get_key_system_configuration.ts +2 -2
  161. package/src/main_thread/decrypt/get_media_keys.ts +2 -2
  162. package/src/main_thread/decrypt/init_media_keys.ts +2 -2
  163. package/src/main_thread/decrypt/utils/media_keys_attacher.ts +284 -0
  164. package/src/main_thread/init/utils/rebuffering_controller.ts +1 -1
  165. package/src/main_thread/text_displayer/html/text_track_cues_store.ts +1 -1
  166. package/src/main_thread/tracks_store/__tests__/media_element_tracks_store.test.ts +0 -1
  167. package/src/main_thread/tracks_store/track_dispatcher.ts +3 -8
  168. package/src/main_thread/tracks_store/tracks_store.ts +2 -1
  169. package/src/manifest/classes/representation.ts +18 -1
  170. package/src/manifest/utils.ts +30 -9
  171. package/src/parsers/manifest/dash/common/parse_representations.ts +2 -2
  172. package/src/playback_observer/media_element_playback_observer.ts +1 -1
  173. package/src/public_types.ts +45 -0
  174. package/src/utils/__tests__/flat_map.test.ts +7 -20
  175. package/src/utils/flat_map.ts +2 -2
  176. package/src/utils/url-utils.ts +11 -10
  177. package/src/utils/xml-parser.ts +13 -8
  178. package/vitest.config.mjs +9 -4
  179. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts +0 -60
  180. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts.map +0 -1
  181. package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +0 -124
  182. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +0 -1
  183. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.js +0 -45
  184. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts +0 -60
  185. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts.map +0 -1
  186. package/dist/es2017/main_thread/decrypt/attach_media_keys.js +0 -73
  187. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +0 -1
  188. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.js +0 -43
  189. package/src/main_thread/decrypt/attach_media_keys.ts +0 -125
  190. package/src/main_thread/decrypt/utils/media_keys_infos_store.ts +0 -88
package/CHANGELOG.md CHANGED
@@ -1,16 +1,26 @@
1
1
  # Changelog
2
2
 
3
- ## Current dev build: v4.3.0-dev.2024111800
3
+ ## Current dev build: v4.3.0-dev.2025011000
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
 
13
+ - Tracks API do not return unplayable representations by default [#1599]
11
14
  - MULTI_THREAD: Fix `onmessageerror` being undefined on older devices [#1585]
12
15
  - Compat: On "FREEZING" try to un-freeze regardless of if the wanted position was reached
13
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]
14
24
 
15
25
  ### Other improvements
16
26
 
@@ -18,6 +28,7 @@
18
28
  before seeking ourselves over a discontinuity [#1587]
19
29
  - DRM: Only reuse cached `MediaKeySystemAccess` if none is more wanted for the current
20
30
  content [#1591]
31
+ - DRM: Reuse cache even if key system type given in API is not the same [#1611]
21
32
  - DEBUG_ELEMENT: Add buffer size estimate to debug buffer content graph [#1558]
22
33
  - DEBUG_ELEMENT: Add `hdr` information to video Representation [#1583]
23
34
 
@@ -47,7 +58,8 @@
47
58
  - Fix rare cases where the active Period would not be advertised by the RxPlayer [#1502]
48
59
  - Actually trigger a `BUFFER_FULL_ERROR` when `QuotaExceededError` mitigations after
49
60
  `appendBuffer` MSE calls don't work #1546
50
- - Fix issues when handling a `QuotaExceededError` after an `appendBuffer` MSE call [#1546, #1559]
61
+ - Fix issues when handling a `QuotaExceededError` after an `appendBuffer` MSE call [#1546,
62
+ #1559]
51
63
  - Directfile/Compat: Fix `startAt.fromLastPosition` handling on Safari when playing
52
64
  directfile contents [#1548]
53
65
  - DRM/Compat: Re-create MediaKeys for each content on Philips' NETTV, and `KSTB40XX`
@@ -93,7 +105,8 @@
93
105
 
94
106
  ### Bug fixes
95
107
 
96
- - DASH: support absolute path in URL resolution with RFC 3986 implementation [#1443, #1440]
108
+ - DASH: support absolute path in URL resolution with RFC 3986 implementation [#1443,
109
+ #1440]
97
110
  - DASH: fix cases of blinking subtitles [#1416, #1424]
98
111
  - Fix precision issues of the `maxVideoBufferSize` API [#1421]
99
112
  - DASH: Prevent multiple loading of the same segment for some DASH low-latency contents
@@ -107,7 +120,8 @@
107
120
  - MULTI_THREAD: Perform several actions so that our `MULTI_THREAD` experimental feature
108
121
  now works on older browser and on the Playstation 4 [#1401, #1402]
109
122
  - Directfile/Compat: On safari on iOS no longer stay stuck in buffering when `autoPlay` is
110
- set to `false` or not set and the video element has the attribute "playsinline" [#1408, #1390]
123
+ set to `false` or not set and the video element has the attribute "playsinline" [#1408,
124
+ #1390]
111
125
  - Directfile/compat: On safari mobile in directfile mode, do not stay in an infinite
112
126
  `LOADING` state if the `duration` is set to `NaN` (rare issue in a normally-unsupported
113
127
  multiple RxPlayer-per-media-element scenario) [#1393]
@@ -746,7 +760,8 @@
746
760
  - TypeScript: Add IBitrateEstimate, IPositionUpdate and IPlayerState types to the exported
747
761
  types [#1084]
748
762
  - Remove dependency on pinkie's promise ponyfill [#1058, #1090]
749
- - tests: add performance tests, to better catch and avoid performance regressions [#1053, #1062]
763
+ - tests: add performance tests, to better catch and avoid performance regressions [#1053,
764
+ #1062]
750
765
  - DRM: Refactor DRM logic for better maintainability. DRM-linked logs are now prefixed by
751
766
  `DRM:` instead of `EME:` like previously [#1042]
752
767
 
@@ -890,7 +905,8 @@
890
905
  - Update used RxJS version to 7.0.0, which might bring with it a smaller size and better
891
906
  performances [#954]
892
907
  - demo: remove Chart.js dependency (we found that its new API documentation and errors
893
- were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955, #957]
908
+ were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955,
909
+ #957]
894
910
 
895
911
  ## v3.24.0 (2021-04-01)
896
912
 
@@ -898,7 +914,8 @@
898
914
 
899
915
  - Add `inbandEvent` event for when an event is encountered in a media segment [#892]
900
916
  - DRM: Add `singleLicensePer` `keySystems` option to be able to signal in advance that the
901
- current content has a single license, even if it has multiple encryption keys [#863, #904]
917
+ current content has a single license, even if it has multiple encryption keys [#863,
918
+ #904]
902
919
  - DRM: Add `keySystems[].licenseStorage.disableRetroCompatibility` boolean to unlock
903
920
  optimizations when compatibility with EME sessions persisted in older RxPlayer versions
904
921
  is not important [#919]
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.3.0-dev.2024111800
1
+ 4.3.0-dev.2025011000
@@ -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,iBAAkruV,CAAC;AACxsuV,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"}