rx-player 4.4.1-dev.2025101500 → 4.4.1

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 (350) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +111 -50
  3. package/VERSION +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/core/{entry → main/common}/FreezeResolver.d.ts +3 -3
  9. package/dist/commonjs/core/main/common/FreezeResolver.d.ts.map +1 -0
  10. package/dist/commonjs/core/{entry → main/common}/FreezeResolver.js +3 -3
  11. package/dist/commonjs/core/{entry → main/common}/content_time_boundaries_observer.d.ts +5 -5
  12. package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts.map +1 -0
  13. package/dist/commonjs/core/{entry → main/common}/content_time_boundaries_observer.js +6 -6
  14. package/dist/{es2017/core/entry → commonjs/core/main/common}/create_content_time_boundaries_observer.d.ts +6 -6
  15. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts.map +1 -0
  16. package/dist/commonjs/core/{entry → main/common}/create_content_time_boundaries_observer.js +1 -1
  17. package/dist/{es2017/core/entry → commonjs/core/main/common}/get_buffered_data_per_media_buffer.d.ts +4 -4
  18. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  19. package/dist/commonjs/core/{entry → main/common}/get_buffered_data_per_media_buffer.js +1 -1
  20. package/dist/{es2017/core/entry → commonjs/core/main/common}/get_thumbnail_data.d.ts +3 -3
  21. package/dist/commonjs/core/main/common/get_thumbnail_data.d.ts.map +1 -0
  22. package/dist/commonjs/core/{entry → main/common}/get_thumbnail_data.js +2 -2
  23. package/dist/{es2017/core/entry → commonjs/core/main/common}/synchronize_sinks_on_observation.d.ts +2 -2
  24. package/dist/commonjs/core/main/common/synchronize_sinks_on_observation.d.ts.map +1 -0
  25. package/dist/{es2017/core/entry → commonjs/core/main/worker}/content_preparer.d.ts +15 -22
  26. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -0
  27. package/dist/commonjs/core/{entry → main/worker}/content_preparer.js +64 -62
  28. package/dist/commonjs/core/main/worker/globals.d.ts +14 -0
  29. package/dist/commonjs/core/main/worker/globals.d.ts.map +1 -0
  30. package/dist/commonjs/core/main/worker/globals.js +26 -0
  31. package/dist/commonjs/core/main/worker/index.d.ts +3 -0
  32. package/dist/commonjs/core/main/worker/index.d.ts.map +1 -0
  33. package/dist/commonjs/core/main/worker/index.js +4 -0
  34. package/dist/commonjs/core/main/worker/send_message.d.ts +4 -0
  35. package/dist/commonjs/core/main/worker/send_message.d.ts.map +1 -0
  36. package/dist/commonjs/core/main/worker/send_message.js +23 -0
  37. package/dist/{es2017/core/entry → commonjs/core/main/worker}/track_choice_setter.d.ts +4 -4
  38. package/dist/commonjs/core/main/worker/track_choice_setter.d.ts.map +1 -0
  39. package/dist/commonjs/core/{entry → main/worker}/track_choice_setter.js +4 -4
  40. package/dist/commonjs/core/main/worker/worker_main.d.ts +2 -0
  41. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -0
  42. package/dist/commonjs/core/{entry/core_entry.js → main/worker/worker_main.js} +153 -192
  43. package/dist/commonjs/core/{entry/core_text_displayer_interface.d.ts → main/worker/worker_text_displayer_interface.d.ts} +11 -11
  44. package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts.map +1 -0
  45. package/dist/commonjs/core/{entry/core_text_displayer_interface.js → main/worker/worker_text_displayer_interface.js} +22 -22
  46. package/dist/commonjs/core/types.d.ts +1 -519
  47. package/dist/commonjs/core/types.d.ts.map +1 -1
  48. package/dist/commonjs/core/types.js +0 -1
  49. package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
  50. package/dist/commonjs/experimental/features/local.js +1 -7
  51. package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
  52. package/dist/commonjs/experimental/features/metaplaylist.js +1 -7
  53. package/dist/commonjs/experimental/features/multi_thread.d.ts.map +1 -1
  54. package/dist/commonjs/experimental/features/multi_thread.js +2 -6
  55. package/dist/commonjs/features/features_object.js +1 -1
  56. package/dist/commonjs/features/list/dash.d.ts.map +1 -1
  57. package/dist/commonjs/features/list/dash.js +1 -7
  58. package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
  59. package/dist/commonjs/features/list/dash_wasm.js +1 -7
  60. package/dist/commonjs/features/list/media_source_main.d.ts.map +1 -1
  61. package/dist/commonjs/features/list/media_source_main.js +1 -7
  62. package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
  63. package/dist/commonjs/features/list/smooth.js +1 -7
  64. package/dist/commonjs/features/types.d.ts +4 -20
  65. package/dist/commonjs/features/types.d.ts.map +1 -1
  66. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  67. package/dist/commonjs/main_thread/api/public_api.js +44 -40
  68. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +108 -166
  69. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  70. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +918 -1491
  71. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +308 -0
  72. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -0
  73. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +1713 -0
  74. package/dist/commonjs/main_thread/init/send_message.d.ts +3 -0
  75. package/dist/commonjs/main_thread/init/send_message.d.ts.map +1 -0
  76. package/dist/commonjs/main_thread/init/send_message.js +13 -0
  77. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
  78. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +1 -2
  79. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
  80. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  81. package/dist/commonjs/main_thread/types.d.ts +0 -537
  82. package/dist/commonjs/main_thread/types.d.ts.map +1 -1
  83. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  84. package/dist/commonjs/manifest/utils.js +4 -18
  85. package/dist/commonjs/mse/worker_media_source_interface.d.ts +2 -2
  86. package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
  87. package/dist/commonjs/mse/worker_media_source_interface.js +12 -12
  88. package/dist/commonjs/multithread_types.d.ts +915 -0
  89. package/dist/commonjs/multithread_types.d.ts.map +1 -0
  90. package/dist/commonjs/multithread_types.js +7 -0
  91. package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts +1 -1
  92. package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
  93. package/dist/commonjs/parsers/manifest/smooth/create_parser.js +27 -31
  94. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts +2 -3
  95. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
  96. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +7 -16
  97. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts +2 -3
  98. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
  99. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +6 -37
  100. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  101. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
  102. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts +2 -3
  103. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  104. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +5 -28
  105. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +28 -8
  106. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  107. package/dist/commonjs/playback_observer/media_element_playback_observer.js +146 -64
  108. package/dist/{es2017/playback_observer/core_playback_observer.d.ts → commonjs/playback_observer/worker_playback_observer.d.ts} +8 -8
  109. package/dist/commonjs/playback_observer/worker_playback_observer.d.ts.map +1 -0
  110. package/dist/commonjs/playback_observer/{core_playback_observer.js → worker_playback_observer.js} +13 -13
  111. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  112. package/dist/commonjs/transports/smooth/pipelines.js +3 -25
  113. package/dist/commonjs/worker_entry_point.js +2 -62
  114. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  115. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  116. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  117. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  118. package/dist/es2017/core/{entry → main/common}/FreezeResolver.d.ts +3 -3
  119. package/dist/es2017/core/main/common/FreezeResolver.d.ts.map +1 -0
  120. package/dist/es2017/core/{entry → main/common}/FreezeResolver.js +3 -3
  121. package/dist/es2017/core/{entry → main/common}/content_time_boundaries_observer.d.ts +5 -5
  122. package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts.map +1 -0
  123. package/dist/es2017/core/{entry → main/common}/content_time_boundaries_observer.js +6 -6
  124. package/dist/{commonjs/core/entry → es2017/core/main/common}/create_content_time_boundaries_observer.d.ts +6 -6
  125. package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts.map +1 -0
  126. package/dist/es2017/core/{entry → main/common}/create_content_time_boundaries_observer.js +1 -1
  127. package/dist/{commonjs/core/entry → es2017/core/main/common}/get_buffered_data_per_media_buffer.d.ts +4 -4
  128. package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  129. package/dist/es2017/core/{entry → main/common}/get_buffered_data_per_media_buffer.js +1 -1
  130. package/dist/{commonjs/core/entry → es2017/core/main/common}/get_thumbnail_data.d.ts +3 -3
  131. package/dist/es2017/core/main/common/get_thumbnail_data.d.ts.map +1 -0
  132. package/dist/es2017/core/{entry → main/common}/get_thumbnail_data.js +2 -2
  133. package/dist/{commonjs/core/entry → es2017/core/main/common}/synchronize_sinks_on_observation.d.ts +2 -2
  134. package/dist/es2017/core/main/common/synchronize_sinks_on_observation.d.ts.map +1 -0
  135. package/dist/{commonjs/core/entry → es2017/core/main/worker}/content_preparer.d.ts +15 -22
  136. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -0
  137. package/dist/es2017/core/{entry → main/worker}/content_preparer.js +55 -53
  138. package/dist/es2017/core/main/worker/globals.d.ts +14 -0
  139. package/dist/es2017/core/main/worker/globals.d.ts.map +1 -0
  140. package/dist/es2017/core/main/worker/globals.js +18 -0
  141. package/dist/es2017/core/main/worker/index.d.ts +3 -0
  142. package/dist/es2017/core/main/worker/index.d.ts.map +1 -0
  143. package/dist/es2017/core/main/worker/index.js +2 -0
  144. package/dist/es2017/core/main/worker/send_message.d.ts +4 -0
  145. package/dist/es2017/core/main/worker/send_message.d.ts.map +1 -0
  146. package/dist/es2017/core/main/worker/send_message.js +19 -0
  147. package/dist/{commonjs/core/entry → es2017/core/main/worker}/track_choice_setter.d.ts +4 -4
  148. package/dist/es2017/core/main/worker/track_choice_setter.d.ts.map +1 -0
  149. package/dist/es2017/core/{entry → main/worker}/track_choice_setter.js +4 -4
  150. package/dist/es2017/core/main/worker/worker_main.d.ts +2 -0
  151. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -0
  152. package/dist/es2017/core/{entry/core_entry.js → main/worker/worker_main.js} +114 -153
  153. package/dist/es2017/core/{entry/core_text_displayer_interface.d.ts → main/worker/worker_text_displayer_interface.d.ts} +11 -11
  154. package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts.map +1 -0
  155. package/dist/es2017/core/{entry/core_text_displayer_interface.js → main/worker/worker_text_displayer_interface.js} +10 -10
  156. package/dist/es2017/core/types.d.ts +1 -519
  157. package/dist/es2017/core/types.d.ts.map +1 -1
  158. package/dist/es2017/core/types.js +0 -1
  159. package/dist/es2017/experimental/features/local.d.ts.map +1 -1
  160. package/dist/es2017/experimental/features/local.js +1 -7
  161. package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
  162. package/dist/es2017/experimental/features/metaplaylist.js +1 -7
  163. package/dist/es2017/experimental/features/multi_thread.d.ts.map +1 -1
  164. package/dist/es2017/experimental/features/multi_thread.js +2 -6
  165. package/dist/es2017/features/features_object.js +1 -1
  166. package/dist/es2017/features/list/dash.d.ts.map +1 -1
  167. package/dist/es2017/features/list/dash.js +1 -7
  168. package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
  169. package/dist/es2017/features/list/dash_wasm.js +1 -7
  170. package/dist/es2017/features/list/media_source_main.d.ts.map +1 -1
  171. package/dist/es2017/features/list/media_source_main.js +1 -7
  172. package/dist/es2017/features/list/smooth.d.ts.map +1 -1
  173. package/dist/es2017/features/list/smooth.js +1 -7
  174. package/dist/es2017/features/types.d.ts +4 -20
  175. package/dist/es2017/features/types.d.ts.map +1 -1
  176. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  177. package/dist/es2017/main_thread/api/public_api.js +45 -41
  178. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +108 -166
  179. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  180. package/dist/es2017/main_thread/init/media_source_content_initializer.js +760 -1405
  181. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +308 -0
  182. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -0
  183. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +1559 -0
  184. package/dist/es2017/main_thread/init/send_message.d.ts +3 -0
  185. package/dist/es2017/main_thread/init/send_message.d.ts.map +1 -0
  186. package/dist/es2017/main_thread/init/send_message.js +10 -0
  187. package/dist/es2017/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
  188. package/dist/es2017/main_thread/init/utils/create_core_playback_observer.js +1 -2
  189. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
  190. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  191. package/dist/es2017/main_thread/types.d.ts +0 -537
  192. package/dist/es2017/main_thread/types.d.ts.map +1 -1
  193. package/dist/es2017/manifest/utils.d.ts.map +1 -1
  194. package/dist/es2017/manifest/utils.js +4 -16
  195. package/dist/es2017/mse/worker_media_source_interface.d.ts +2 -2
  196. package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
  197. package/dist/es2017/mse/worker_media_source_interface.js +12 -12
  198. package/dist/es2017/multithread_types.d.ts +915 -0
  199. package/dist/es2017/multithread_types.d.ts.map +1 -0
  200. package/dist/es2017/multithread_types.js +6 -0
  201. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts +1 -1
  202. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
  203. package/dist/es2017/parsers/manifest/smooth/create_parser.js +27 -31
  204. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts +2 -3
  205. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
  206. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +7 -16
  207. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts +2 -3
  208. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
  209. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +6 -15
  210. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  211. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
  212. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts +2 -3
  213. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  214. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.js +5 -6
  215. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +28 -8
  216. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  217. package/dist/es2017/playback_observer/media_element_playback_observer.js +144 -64
  218. package/dist/{commonjs/playback_observer/core_playback_observer.d.ts → es2017/playback_observer/worker_playback_observer.d.ts} +8 -8
  219. package/dist/es2017/playback_observer/worker_playback_observer.d.ts.map +1 -0
  220. package/dist/es2017/playback_observer/{core_playback_observer.js → worker_playback_observer.js} +2 -2
  221. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  222. package/dist/es2017/transports/smooth/pipelines.js +3 -25
  223. package/dist/es2017/worker_entry_point.js +2 -62
  224. package/dist/mpd-parser.wasm +0 -0
  225. package/dist/rx-player.js +19165 -21886
  226. package/dist/rx-player.min.js +20 -20
  227. package/dist/worker.js +8 -8
  228. package/eslint.config.mjs +647 -348
  229. package/package.json +6 -6
  230. package/src/README.md +198 -88
  231. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  232. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  233. package/src/core/{entry → main}/README.md +1 -1
  234. package/src/core/{entry → main/common}/FreezeResolver.ts +7 -7
  235. package/src/core/{entry → main/common}/content_time_boundaries_observer.ts +10 -10
  236. package/src/core/{entry → main/common}/create_content_time_boundaries_observer.ts +7 -7
  237. package/src/core/{entry → main/common}/get_buffered_data_per_media_buffer.ts +6 -6
  238. package/src/core/{entry → main/common}/get_thumbnail_data.ts +5 -5
  239. package/src/core/{entry → main/common}/synchronize_sinks_on_observation.ts +2 -2
  240. package/src/core/{entry → main/worker}/content_preparer.ts +76 -77
  241. package/src/core/main/worker/globals.ts +38 -0
  242. package/src/core/main/worker/index.ts +2 -0
  243. package/src/core/main/worker/send_message.ts +28 -0
  244. package/src/core/{entry → main/worker}/track_choice_setter.ts +7 -7
  245. package/src/core/{entry/core_entry.ts → main/worker/worker_main.ts} +149 -223
  246. package/src/core/{entry/core_text_displayer_interface.ts → main/worker/worker_text_displayer_interface.ts} +26 -26
  247. package/src/core/types.ts +3 -631
  248. package/src/experimental/features/__tests__/local.test.ts +2 -11
  249. package/src/experimental/features/__tests__/metaplaylist.test.ts +2 -11
  250. package/src/experimental/features/__tests__/multi_thread.test.ts +3 -8
  251. package/src/experimental/features/local.ts +1 -7
  252. package/src/experimental/features/metaplaylist.ts +1 -7
  253. package/src/experimental/features/multi_thread.ts +2 -6
  254. package/src/features/features_object.ts +1 -1
  255. package/src/features/list/__tests__/dash.test.ts +3 -12
  256. package/src/features/list/__tests__/smooth.test.ts +2 -11
  257. package/src/features/list/dash.ts +1 -7
  258. package/src/features/list/dash_wasm.ts +1 -7
  259. package/src/features/list/media_source_main.ts +1 -7
  260. package/src/features/list/smooth.ts +1 -7
  261. package/src/features/types.ts +4 -23
  262. package/src/main_thread/README.md +0 -8
  263. package/src/main_thread/api/public_api.ts +51 -47
  264. package/src/main_thread/init/media_source_content_initializer.ts +1164 -2046
  265. package/src/main_thread/init/multi_thread_content_initializer.ts +2330 -0
  266. package/src/main_thread/init/send_message.ts +15 -0
  267. package/src/main_thread/init/utils/create_core_playback_observer.ts +1 -2
  268. package/src/main_thread/init/utils/update_manifest_codec_support.ts +1 -1
  269. package/src/main_thread/types.ts +0 -610
  270. package/src/manifest/utils.ts +4 -20
  271. package/src/mse/worker_media_source_interface.ts +35 -35
  272. package/src/multithread_types.ts +1095 -0
  273. package/src/parsers/manifest/smooth/create_parser.ts +34 -40
  274. package/src/parsers/manifest/smooth/parse_C_nodes.ts +8 -19
  275. package/src/parsers/manifest/smooth/parse_protection_node.ts +9 -17
  276. package/src/parsers/manifest/smooth/utils/parseBoolean.ts +1 -1
  277. package/src/parsers/manifest/smooth/utils/reduceChildren.ts +7 -10
  278. package/src/playback_observer/media_element_playback_observer.ts +177 -73
  279. package/src/playback_observer/{core_playback_observer.ts → worker_playback_observer.ts} +13 -13
  280. package/src/transports/smooth/pipelines.ts +5 -25
  281. package/src/worker_entry_point.ts +2 -71
  282. package/dist/commonjs/core/entry/FreezeResolver.d.ts.map +0 -1
  283. package/dist/commonjs/core/entry/content_preparer.d.ts.map +0 -1
  284. package/dist/commonjs/core/entry/content_time_boundaries_observer.d.ts.map +0 -1
  285. package/dist/commonjs/core/entry/core_entry.d.ts +0 -36
  286. package/dist/commonjs/core/entry/core_entry.d.ts.map +0 -1
  287. package/dist/commonjs/core/entry/core_text_displayer_interface.d.ts.map +0 -1
  288. package/dist/commonjs/core/entry/create_content_time_boundaries_observer.d.ts.map +0 -1
  289. package/dist/commonjs/core/entry/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  290. package/dist/commonjs/core/entry/get_thumbnail_data.d.ts.map +0 -1
  291. package/dist/commonjs/core/entry/index.d.ts +0 -5
  292. package/dist/commonjs/core/entry/index.d.ts.map +0 -1
  293. package/dist/commonjs/core/entry/index.js +0 -4
  294. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  295. package/dist/commonjs/core/entry/track_choice_setter.d.ts.map +0 -1
  296. package/dist/commonjs/core/entry/utils.d.ts +0 -3
  297. package/dist/commonjs/core/entry/utils.d.ts.map +0 -1
  298. package/dist/commonjs/core/entry/utils.js +0 -11
  299. package/dist/commonjs/main_thread/core_interface/base.d.ts +0 -13
  300. package/dist/commonjs/main_thread/core_interface/base.d.ts.map +0 -1
  301. package/dist/commonjs/main_thread/core_interface/base.js +0 -32
  302. package/dist/commonjs/main_thread/core_interface/monothread.d.ts +0 -13
  303. package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +0 -1
  304. package/dist/commonjs/main_thread/core_interface/monothread.js +0 -56
  305. package/dist/commonjs/main_thread/core_interface/multithread.d.ts +0 -25
  306. package/dist/commonjs/main_thread/core_interface/multithread.d.ts.map +0 -1
  307. package/dist/commonjs/main_thread/core_interface/multithread.js +0 -67
  308. package/dist/commonjs/main_thread/core_interface/types.d.ts +0 -6
  309. package/dist/commonjs/main_thread/core_interface/types.d.ts.map +0 -1
  310. package/dist/commonjs/main_thread/core_interface/types.js +0 -2
  311. package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +0 -1
  312. package/dist/es2017/core/entry/FreezeResolver.d.ts.map +0 -1
  313. package/dist/es2017/core/entry/content_preparer.d.ts.map +0 -1
  314. package/dist/es2017/core/entry/content_time_boundaries_observer.d.ts.map +0 -1
  315. package/dist/es2017/core/entry/core_entry.d.ts +0 -36
  316. package/dist/es2017/core/entry/core_entry.d.ts.map +0 -1
  317. package/dist/es2017/core/entry/core_text_displayer_interface.d.ts.map +0 -1
  318. package/dist/es2017/core/entry/create_content_time_boundaries_observer.d.ts.map +0 -1
  319. package/dist/es2017/core/entry/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  320. package/dist/es2017/core/entry/get_thumbnail_data.d.ts.map +0 -1
  321. package/dist/es2017/core/entry/index.d.ts +0 -5
  322. package/dist/es2017/core/entry/index.d.ts.map +0 -1
  323. package/dist/es2017/core/entry/index.js +0 -2
  324. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  325. package/dist/es2017/core/entry/track_choice_setter.d.ts.map +0 -1
  326. package/dist/es2017/core/entry/utils.d.ts +0 -3
  327. package/dist/es2017/core/entry/utils.d.ts.map +0 -1
  328. package/dist/es2017/core/entry/utils.js +0 -8
  329. package/dist/es2017/main_thread/core_interface/base.d.ts +0 -13
  330. package/dist/es2017/main_thread/core_interface/base.d.ts.map +0 -1
  331. package/dist/es2017/main_thread/core_interface/base.js +0 -28
  332. package/dist/es2017/main_thread/core_interface/monothread.d.ts +0 -13
  333. package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +0 -1
  334. package/dist/es2017/main_thread/core_interface/monothread.js +0 -32
  335. package/dist/es2017/main_thread/core_interface/multithread.d.ts +0 -25
  336. package/dist/es2017/main_thread/core_interface/multithread.d.ts.map +0 -1
  337. package/dist/es2017/main_thread/core_interface/multithread.js +0 -45
  338. package/dist/es2017/main_thread/core_interface/types.d.ts +0 -6
  339. package/dist/es2017/main_thread/core_interface/types.d.ts.map +0 -1
  340. package/dist/es2017/main_thread/core_interface/types.js +0 -1
  341. package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +0 -1
  342. package/src/core/entry/index.ts +0 -4
  343. package/src/core/entry/utils.ts +0 -11
  344. package/src/main_thread/core_interface/README.md +0 -22
  345. package/src/main_thread/core_interface/base.ts +0 -36
  346. package/src/main_thread/core_interface/monothread.ts +0 -46
  347. package/src/main_thread/core_interface/multithread.ts +0 -49
  348. package/src/main_thread/core_interface/types.ts +0 -5
  349. /package/dist/commonjs/core/{entry → main/common}/synchronize_sinks_on_observation.js +0 -0
  350. /package/dist/es2017/core/{entry → main/common}/synchronize_sinks_on_observation.js +0 -0
@@ -1,51 +1,31 @@
1
- import config from "../../config";
2
- import { MediaError, OtherError } from "../../errors";
3
- import features from "../../features";
4
- import log from "../../log";
5
- import Manifest, { Adaptation, Period, Representation } from "../../manifest/classes";
6
- import { ObservationPosition } from "../../playback_observer";
7
- import CorePlaybackObserver from "../../playback_observer/core_playback_observer";
8
- import arrayFind from "../../utils/array_find";
9
- import assert, { assertUnreachable } from "../../utils/assert";
10
- import { scaleTimestamp } from "../../utils/monotonic_timestamp";
11
- import objectAssign from "../../utils/object_assign";
12
- import SharedReference from "../../utils/reference";
13
- import TaskCanceller from "../../utils/task_canceller";
14
- import StreamOrchestrator from "../stream";
1
+ import config from "../../../config";
2
+ import { MediaError, OtherError } from "../../../errors";
3
+ import features from "../../../features";
4
+ import log from "../../../log";
5
+ import Manifest, { Adaptation, Period, Representation } from "../../../manifest/classes";
6
+ import DashJsParser from "../../../parsers/manifest/dash/js-parser";
7
+ import DashWasmParser from "../../../parsers/manifest/dash/wasm-parser";
8
+ import { ObservationPosition } from "../../../playback_observer";
9
+ import WorkerPlaybackObserver from "../../../playback_observer/worker_playback_observer";
10
+ import createDashPipelines from "../../../transports/dash";
11
+ import arrayFind from "../../../utils/array_find";
12
+ import assert, { assertUnreachable } from "../../../utils/assert";
13
+ import globalScope from "../../../utils/global_scope";
14
+ import { scaleTimestamp } from "../../../utils/monotonic_timestamp";
15
+ import objectAssign from "../../../utils/object_assign";
16
+ import SharedReference from "../../../utils/reference";
17
+ import TaskCanceller from "../../../utils/task_canceller";
18
+ import StreamOrchestrator from "../../stream";
19
+ import createContentTimeBoundariesObserver from "../common/create_content_time_boundaries_observer";
20
+ import getBufferedDataPerMediaBuffer from "../common/get_buffered_data_per_media_buffer";
21
+ import getThumbnailData from "../common/get_thumbnail_data";
22
+ import synchronizeSegmentSinksOnObservation from "../common/synchronize_sinks_on_observation";
15
23
  import ContentPreparer from "./content_preparer";
16
- import createContentTimeBoundariesObserver from "./create_content_time_boundaries_observer";
17
- import getBufferedDataPerMediaBuffer from "./get_buffered_data_per_media_buffer";
18
- import getThumbnailData from "./get_thumbnail_data";
19
- import synchronizeSegmentSinksOnObservation from "./synchronize_sinks_on_observation";
20
- import { formatErrorForSender } from "./utils";
21
- /**
22
- * Initialize a `CoreEntry`, which is the part of the RxPlayer acting as an
23
- * entry point to all its "core" code.
24
- *
25
- * Its role is to receive and react to messages coming from "main thead", which
26
- * may include loading and playing a content, and to send back messages for the main
27
- * thread.
28
- * @param {Function} setMessageReceiver - Declares the function that will
29
- * receive messages coming from the "main thread" part of the RxPlayer logic.
30
- * @param {Function} sendMessage - Function allowing to send messages to the
31
- * "main thread" part of the RxPlayer logic.
32
- */
33
- export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
34
- const { DEFAULT_WANTED_BUFFER_AHEAD, DEFAULT_MAX_VIDEO_BUFFER_SIZE, DEFAULT_MAX_BUFFER_AHEAD, DEFAULT_MAX_BUFFER_BEHIND, } = config.getCurrent();
35
- const refs = {
36
- wantedBufferAhead: new SharedReference(DEFAULT_WANTED_BUFFER_AHEAD),
37
- maxVideoBufferSize: new SharedReference(DEFAULT_MAX_VIDEO_BUFFER_SIZE),
38
- maxBufferAhead: new SharedReference(DEFAULT_MAX_BUFFER_AHEAD),
39
- maxBufferBehind: new SharedReference(DEFAULT_MAX_BUFFER_BEHIND),
40
- limitVideoResolution: new SharedReference({
41
- height: undefined,
42
- width: undefined,
43
- pixelRatio: 1,
44
- }),
45
- throttleVideoBitrate: new SharedReference(Infinity),
46
- };
24
+ import { limitVideoResolution, maxBufferAhead, maxBufferBehind, maxVideoBufferSize, throttleVideoBitrate, wantedBufferAhead, } from "./globals";
25
+ import sendMessage, { formatErrorForSender } from "./send_message";
26
+ export default function initializeWorkerMain() {
47
27
  /**
48
- * `true` once the CoreEntry has been initialized.
28
+ * `true` once the worker has been initialized.
49
29
  * Allow to enforce the fact that it is only initialized once.
50
30
  */
51
31
  let isInitialized = false;
@@ -61,42 +41,46 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
61
41
  * `null` if there's no content loaded currently.
62
42
  */
63
43
  let currentContentHandle = null;
44
+ // Initialize Manually a `DashWasmParser` and add the feature.
45
+ // TODO allow worker-side feature-switching? Not sure how
46
+ const dashWasmParser = new DashWasmParser();
47
+ features.dashParsers.wasm = dashWasmParser;
48
+ features.dashParsers.js = DashJsParser;
49
+ features.transports.dash = createDashPipelines;
64
50
  /**
65
51
  * When set, emit playback observation made on the main thread.
66
52
  */
67
53
  let playbackObservationRef = null;
68
- setMessageReceiver((e) => {
54
+ globalScope.onmessageerror = (_msg) => {
55
+ log.error("Core", "Error when receiving message from main thread.");
56
+ };
57
+ onmessage = function (e) {
69
58
  var _a, _b;
70
59
  log.debug("Core", "received message", { name: e.data.type });
71
60
  const msg = e.data;
72
61
  switch (msg.type) {
73
62
  case "init" /* MainThreadMessageType.Init */:
74
- {
75
- assert(!isInitialized);
76
- isInitialized = true;
77
- scaleTimestamp(msg.value);
78
- updateLoggerLevel(msg.value.logLevel, msg.value.logFormat, msg.value.sendBackLogs);
79
- const dashWasmParser = features.dashParsers.wasm;
80
- if (dashWasmParser !== null &&
81
- msg.value.dashWasmUrl !== undefined &&
82
- dashWasmParser.isCompatible()) {
83
- dashWasmParser.initialize({ wasmUrl: msg.value.dashWasmUrl }).catch((err) => {
84
- const error = err instanceof Error ? err.toString() : "Unknown Error";
85
- log.error("Core", "Could not initialize DASH_WASM parser", error);
86
- });
87
- }
88
- if (!msg.value.hasVideo) {
89
- contentPreparer.disposeCurrentContent();
90
- contentPreparer = new ContentPreparer({ hasVideo: msg.value.hasVideo });
91
- }
92
- sendMessage({ type: "init-success" /* CoreMessageType.InitSuccess */, value: null });
63
+ assert(!isInitialized);
64
+ isInitialized = true;
65
+ scaleTimestamp(msg.value);
66
+ updateLoggerLevel(msg.value.logLevel, msg.value.logFormat, msg.value.sendBackLogs);
67
+ if (msg.value.dashWasmUrl !== undefined && dashWasmParser.isCompatible()) {
68
+ dashWasmParser.initialize({ wasmUrl: msg.value.dashWasmUrl }).catch((err) => {
69
+ const error = err instanceof Error ? err.toString() : "Unknown Error";
70
+ log.error("Core", "Could not initialize DASH_WASM parser", error);
71
+ });
72
+ }
73
+ if (!msg.value.hasVideo) {
74
+ contentPreparer.disposeCurrentContent();
75
+ contentPreparer = new ContentPreparer({ hasVideo: msg.value.hasVideo });
93
76
  }
77
+ sendMessage({ type: "init-success" /* WorkerMessageType.InitSuccess */, value: null });
94
78
  break;
95
79
  case "log-level-update" /* MainThreadMessageType.LogLevelUpdate */:
96
80
  updateLoggerLevel(msg.value.logLevel, msg.value.logFormat, msg.value.sendBackLogs);
97
81
  break;
98
82
  case "prepare" /* MainThreadMessageType.PrepareContent */:
99
- prepareNewContent(sendMessage, contentPreparer, msg.value, refs);
83
+ prepareNewContent(contentPreparer, msg.value);
100
84
  break;
101
85
  case "start" /* MainThreadMessageType.StartPreparedContent */: {
102
86
  const preparedContent = contentPreparer.getCurrentContent();
@@ -109,7 +93,7 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
109
93
  position: new ObservationPosition(...msg.value.initialObservation.position),
110
94
  }));
111
95
  playbackObservationRef = currentContentObservationRef;
112
- currentContentHandle = loadPreparedContent(sendMessage, msg.value, contentPreparer, currentContentObservationRef, refs);
96
+ currentContentHandle = loadPreparedContent(msg.value, contentPreparer, currentContentObservationRef);
113
97
  break;
114
98
  }
115
99
  case "observation" /* MainThreadMessageType.PlaybackObservation */: {
@@ -132,7 +116,7 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
132
116
  break;
133
117
  }
134
118
  case "ref-update" /* MainThreadMessageType.ReferenceUpdate */:
135
- updateCoreReference(msg, refs);
119
+ updateGlobalReference(msg);
136
120
  break;
137
121
  case "stop" /* MainThreadMessageType.StopContent */:
138
122
  if (msg.contentId !== ((_a = contentPreparer.getCurrentContent()) === null || _a === void 0 ? void 0 : _a.contentId)) {
@@ -236,7 +220,7 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
236
220
  const warning = preparedContent.manifest.updateCodecSupport(newEvaluatedCodecs);
237
221
  if (warning !== null) {
238
222
  sendMessage({
239
- type: "warning" /* CoreMessageType.Warning */,
223
+ type: "warning" /* WorkerMessageType.Warning */,
240
224
  contentId: preparedContent.contentId,
241
225
  value: formatErrorForSender(warning),
242
226
  });
@@ -244,7 +228,7 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
244
228
  }
245
229
  catch (err) {
246
230
  sendMessage({
247
- type: "error" /* CoreMessageType.Error */,
231
+ type: "error" /* WorkerMessageType.Error */,
248
232
  contentId: preparedContent.contentId,
249
233
  value: formatErrorForSender(err),
250
234
  });
@@ -280,11 +264,11 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
280
264
  if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
281
265
  return;
282
266
  }
283
- if (preparedContent.coreTextSender === null) {
267
+ if (preparedContent.workerTextSender === null) {
284
268
  log.error("Core", "Added text track but text track aren't enabled");
285
269
  return;
286
270
  }
287
- preparedContent.coreTextSender.onPushedTrackSuccess(msg.value.ranges);
271
+ preparedContent.workerTextSender.onPushedTrackSuccess(msg.value.ranges);
288
272
  break;
289
273
  }
290
274
  case "push-text-error" /* MainThreadMessageType.PushTextDataError */: {
@@ -292,11 +276,11 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
292
276
  if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
293
277
  return;
294
278
  }
295
- if (preparedContent.coreTextSender === null) {
279
+ if (preparedContent.workerTextSender === null) {
296
280
  log.error("Core", "Added text track but text track aren't enabled");
297
281
  return;
298
282
  }
299
- preparedContent.coreTextSender.onPushedTrackError(new Error(msg.value.message));
283
+ preparedContent.workerTextSender.onPushedTrackError(new Error(msg.value.message));
300
284
  break;
301
285
  }
302
286
  case "remove-text-success" /* MainThreadMessageType.RemoveTextDataSuccess */: {
@@ -304,11 +288,11 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
304
288
  if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
305
289
  return;
306
290
  }
307
- if (preparedContent.coreTextSender === null) {
291
+ if (preparedContent.workerTextSender === null) {
308
292
  log.error("Core", "Removed text track but text track aren't enabled");
309
293
  return;
310
294
  }
311
- preparedContent.coreTextSender.onRemoveSuccess(msg.value.ranges);
295
+ preparedContent.workerTextSender.onRemoveSuccess(msg.value.ranges);
312
296
  break;
313
297
  }
314
298
  case "remove-text-error" /* MainThreadMessageType.RemoveTextDataError */: {
@@ -316,19 +300,19 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
316
300
  if (preparedContent === null || preparedContent.contentId !== msg.contentId) {
317
301
  return;
318
302
  }
319
- if (preparedContent.coreTextSender === null) {
303
+ if (preparedContent.workerTextSender === null) {
320
304
  log.error("Core", "Removed text track but text track aren't enabled");
321
305
  return;
322
306
  }
323
- preparedContent.coreTextSender.onRemoveError(new Error(msg.value.message));
307
+ preparedContent.workerTextSender.onRemoveError(new Error(msg.value.message));
324
308
  break;
325
309
  }
326
310
  case "pull-segment-sink-store-infos" /* MainThreadMessageType.PullSegmentSinkStoreInfos */: {
327
- sendSegmentSinksStoreInfos(sendMessage, contentPreparer, msg.value.requestId);
311
+ sendSegmentSinksStoreInfos(contentPreparer, msg.value.requestId);
328
312
  break;
329
313
  }
330
314
  case "thumbnail-request" /* MainThreadMessageType.ThumbnailDataRequest */: {
331
- sendThumbnailData(sendMessage, contentPreparer, msg);
315
+ sendThumbnailData(contentPreparer, msg);
332
316
  break;
333
317
  }
334
318
  case "config-update" /* MainThreadMessageType.ConfigUpdate */: {
@@ -338,68 +322,48 @@ export default function initializeCoreEntry(setMessageReceiver, sendMessage) {
338
322
  default:
339
323
  assertUnreachable(msg);
340
324
  }
341
- });
325
+ };
342
326
  }
343
- /**
344
- * Performs steps needed to prepare a future content to be played:
345
- * - Load its Manifest file
346
- * - Create MSE `MediaSource` for that content.
347
- * - Initialize all modules that will follow that content
348
- * - etc.
349
- * @param {Function} sendMessage - Function allowing to send messages to the
350
- * "main thread" part of the RxPlayer logic.
351
- * @param {ContentPreparer} contentPreparer
352
- * @param {Object} contentInitData - Configuration wanted for the content to
353
- * load.
354
- * @param {Object} refs - Collection of so-called "references": values
355
- * configuring playback that may be updated at any time and that the
356
- * CoreEntry should react on.
357
- */
358
- function prepareNewContent(sendMessage, contentPreparer, contentInitData, refs) {
359
- contentPreparer
360
- .initializeNewContent(sendMessage, contentInitData, {
361
- limitResolution: { video: refs.limitVideoResolution },
362
- throttleBitrate: { video: refs.throttleVideoBitrate },
363
- })
364
- .then((manifest) => {
327
+ function prepareNewContent(contentPreparer, contentInitData) {
328
+ contentPreparer.initializeNewContent(contentInitData).then((manifest) => {
365
329
  sendMessage({
366
- type: "manifest-ready" /* CoreMessageType.ManifestReady */,
330
+ type: "manifest-ready" /* WorkerMessageType.ManifestReady */,
367
331
  contentId: contentInitData.contentId,
368
332
  value: { manifest },
369
333
  });
370
334
  }, (err) => {
371
335
  sendMessage({
372
- type: "error" /* CoreMessageType.Error */,
336
+ type: "error" /* WorkerMessageType.Error */,
373
337
  contentId: contentInitData.contentId,
374
338
  value: formatErrorForSender(err),
375
339
  });
376
340
  });
377
341
  }
378
- function updateCoreReference(msg, refs) {
342
+ function updateGlobalReference(msg) {
379
343
  switch (msg.value.name) {
380
344
  case "wantedBufferAhead":
381
- refs.wantedBufferAhead.setValueIfChanged(msg.value.newVal);
345
+ wantedBufferAhead.setValueIfChanged(msg.value.newVal);
382
346
  break;
383
347
  case "maxVideoBufferSize":
384
- refs.maxVideoBufferSize.setValueIfChanged(msg.value.newVal);
348
+ maxVideoBufferSize.setValueIfChanged(msg.value.newVal);
385
349
  break;
386
350
  case "maxBufferBehind":
387
- refs.maxBufferBehind.setValueIfChanged(msg.value.newVal);
351
+ maxBufferBehind.setValueIfChanged(msg.value.newVal);
388
352
  break;
389
353
  case "maxBufferAhead":
390
- refs.maxBufferAhead.setValueIfChanged(msg.value.newVal);
354
+ maxBufferAhead.setValueIfChanged(msg.value.newVal);
391
355
  break;
392
356
  case "limitVideoResolution":
393
- refs.limitVideoResolution.setValueIfChanged(msg.value.newVal);
357
+ limitVideoResolution.setValueIfChanged(msg.value.newVal);
394
358
  break;
395
359
  case "throttleVideoBitrate":
396
- refs.throttleVideoBitrate.setValueIfChanged(msg.value.newVal);
360
+ throttleVideoBitrate.setValueIfChanged(msg.value.newVal);
397
361
  break;
398
362
  default:
399
363
  assertUnreachable(msg.value);
400
364
  }
401
365
  }
402
- function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservationRef, refs) {
366
+ function loadPreparedContent(val, contentPreparer, playbackObservationRef) {
403
367
  log.debug("Core", "Loading pepared content.");
404
368
  const contentCanceller = new TaskCanceller();
405
369
  let currentLoadCanceller = null;
@@ -418,7 +382,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
418
382
  currentLoadCanceller = new TaskCanceller();
419
383
  currentLoadCanceller.linkToSignal(contentCanceller.signal);
420
384
  /**
421
- * Stores last discontinuity update sent to the Core for each Period and type
385
+ * Stores last discontinuity update sent to the worker for each Period and type
422
386
  * combinations, at least until the corresponding `PeriodStreamCleared`
423
387
  * message.
424
388
  *
@@ -430,7 +394,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
430
394
  if (preparedContent === null || preparedContent.manifest === null) {
431
395
  const error = new OtherError("NONE", "Loading content when none is prepared");
432
396
  sendMessage({
433
- type: "error" /* CoreMessageType.Error */,
397
+ type: "error" /* WorkerMessageType.Error */,
434
398
  contentId: undefined,
435
399
  value: formatErrorForSender(error),
436
400
  });
@@ -442,7 +406,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
442
406
  synchronizeSegmentSinksOnObservation(observation, segmentSinksStore);
443
407
  const freezeResolution = preparedContent.freezeResolver.onNewObservation(observation);
444
408
  if (freezeResolution !== null) {
445
- handleFreezeResolution(sendMessage, freezeResolution, {
409
+ handleFreezeResolution(freezeResolution, {
446
410
  contentId,
447
411
  manifest,
448
412
  handleMediaSourceReload: performMediaSourceReload,
@@ -454,36 +418,36 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
454
418
  if (initialPeriod === undefined) {
455
419
  const error = new MediaError("MEDIA_STARTING_TIME_NOT_FOUND", "Wanted starting time not found in the Manifest.");
456
420
  sendMessage({
457
- type: "error" /* CoreMessageType.Error */,
421
+ type: "error" /* WorkerMessageType.Error */,
458
422
  contentId,
459
423
  value: formatErrorForSender(error),
460
424
  });
461
425
  throw error;
462
426
  }
463
- const playbackObserver = new CorePlaybackObserver(playbackObservationRef, contentId, sendMessage, currentLoadCanceller.signal);
427
+ const playbackObserver = new WorkerPlaybackObserver(playbackObservationRef, contentId, sendMessage, currentLoadCanceller.signal);
464
428
  cmcdDataBuilder === null || cmcdDataBuilder === void 0 ? void 0 : cmcdDataBuilder.startMonitoringPlayback(playbackObserver);
465
429
  currentLoadCanceller.signal.register(() => {
466
430
  cmcdDataBuilder === null || cmcdDataBuilder === void 0 ? void 0 : cmcdDataBuilder.stopMonitoringPlayback();
467
431
  });
468
432
  const contentTimeBoundariesObserver = createContentTimeBoundariesObserver(manifest, mediaSource, playbackObserver, segmentSinksStore, {
469
433
  onWarning: (err) => sendMessage({
470
- type: "warning" /* CoreMessageType.Warning */,
434
+ type: "warning" /* WorkerMessageType.Warning */,
471
435
  contentId,
472
436
  value: formatErrorForSender(err),
473
437
  }),
474
438
  onPeriodChanged: (period) => {
475
439
  sendMessage({
476
- type: "active-period-changed" /* CoreMessageType.ActivePeriodChanged */,
440
+ type: "active-period-changed" /* WorkerMessageType.ActivePeriodChanged */,
477
441
  contentId,
478
442
  value: { periodId: period.id },
479
443
  });
480
444
  },
481
445
  }, currentLoadCanceller.signal);
482
446
  StreamOrchestrator({ initialPeriod, manifest }, playbackObserver, representationEstimator, segmentSinksStore, segmentQueueCreator, {
483
- wantedBufferAhead: refs.wantedBufferAhead,
484
- maxVideoBufferSize: refs.maxVideoBufferSize,
485
- maxBufferAhead: refs.maxBufferAhead,
486
- maxBufferBehind: refs.maxBufferBehind,
447
+ wantedBufferAhead,
448
+ maxVideoBufferSize,
449
+ maxBufferAhead,
450
+ maxBufferBehind,
487
451
  drmSystemId,
488
452
  enableFastSwitching,
489
453
  onCodecSwitch,
@@ -497,7 +461,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
497
461
  return {
498
462
  needsBufferFlush(payload) {
499
463
  sendMessage({
500
- type: "needs-buffer-flush" /* CoreMessageType.NeedsBufferFlush */,
464
+ type: "needs-buffer-flush" /* WorkerMessageType.NeedsBufferFlush */,
501
465
  contentId,
502
466
  value: payload,
503
467
  });
@@ -534,7 +498,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
534
498
  },
535
499
  lockedStream(payload) {
536
500
  sendMessage({
537
- type: "locked-stream" /* CoreMessageType.LockedStream */,
501
+ type: "locked-stream" /* WorkerMessageType.LockedStream */,
538
502
  contentId,
539
503
  value: {
540
504
  periodId: payload.period.id,
@@ -550,7 +514,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
550
514
  return;
551
515
  }
552
516
  sendMessage({
553
- type: "adaptation-changed" /* CoreMessageType.AdaptationChanged */,
517
+ type: "adaptation-changed" /* WorkerMessageType.AdaptationChanged */,
554
518
  contentId,
555
519
  value: {
556
520
  adaptationId: (_b = (_a = value.adaptation) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null,
@@ -567,7 +531,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
567
531
  return;
568
532
  }
569
533
  sendMessage({
570
- type: "representation-changed" /* CoreMessageType.RepresentationChanged */,
534
+ type: "representation-changed" /* WorkerMessageType.RepresentationChanged */,
571
535
  contentId,
572
536
  value: {
573
537
  adaptationId: value.adaptation.id,
@@ -579,14 +543,14 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
579
543
  },
580
544
  inbandEvent(value) {
581
545
  sendMessage({
582
- type: "inband-event" /* CoreMessageType.InbandEvent */,
546
+ type: "inband-event" /* WorkerMessageType.InbandEvent */,
583
547
  contentId,
584
548
  value,
585
549
  });
586
550
  },
587
551
  warning(value) {
588
552
  sendMessage({
589
- type: "warning" /* CoreMessageType.Warning */,
553
+ type: "warning" /* WorkerMessageType.Warning */,
590
554
  contentId,
591
555
  value: formatErrorForSender(value),
592
556
  });
@@ -597,7 +561,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
597
561
  }
598
562
  preparedContent.trackChoiceSetter.addTrackSetter(value.period.id, value.type, value.adaptationRef);
599
563
  sendMessage({
600
- type: "period-stream-ready" /* CoreMessageType.PeriodStreamReady */,
564
+ type: "period-stream-ready" /* WorkerMessageType.PeriodStreamReady */,
601
565
  contentId,
602
566
  value: { periodId: value.period.id, bufferType: value.type },
603
567
  });
@@ -616,7 +580,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
616
580
  contentTimeBoundariesObserver.onPeriodCleared(value.type, value.period);
617
581
  preparedContent.trackChoiceSetter.removeTrackSetter(value.period.id, value.type);
618
582
  sendMessage({
619
- type: "period-stream-cleared" /* CoreMessageType.PeriodStreamCleared */,
583
+ type: "period-stream-cleared" /* WorkerMessageType.PeriodStreamCleared */,
620
584
  contentId,
621
585
  value: { periodId: value.period.id, bufferType: value.type },
622
586
  });
@@ -630,7 +594,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
630
594
  // Considering this is only for an unimportant undocumented API, we may
631
595
  // throttle such messages. (e.g. max one per 2 seconds for each type?).
632
596
  sendMessage({
633
- type: "bitrate-estimate-change" /* CoreMessageType.BitrateEstimateChange */,
597
+ type: "bitrate-estimate-change" /* WorkerMessageType.BitrateEstimateChange */,
634
598
  contentId,
635
599
  value: {
636
600
  bitrate: payload.bitrate,
@@ -643,7 +607,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
643
607
  },
644
608
  needsDecipherabilityFlush() {
645
609
  sendMessage({
646
- type: "needs-decipherability-flush" /* CoreMessageType.NeedsDecipherabilityFlush */,
610
+ type: "needs-decipherability-flush" /* WorkerMessageType.NeedsDecipherabilityFlush */,
647
611
  contentId,
648
612
  value: null,
649
613
  });
@@ -665,7 +629,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
665
629
  content.representation = content.representation.getMetadataSnapshot();
666
630
  }
667
631
  sendMessage({
668
- type: "encryption-data-encountered" /* CoreMessageType.EncryptionDataEncountered */,
632
+ type: "encryption-data-encountered" /* WorkerMessageType.EncryptionDataEncountered */,
669
633
  contentId,
670
634
  value: {
671
635
  keyIds: value.keyIds,
@@ -678,7 +642,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
678
642
  },
679
643
  error(error) {
680
644
  sendMessage({
681
- type: "error" /* CoreMessageType.Error */,
645
+ type: "error" /* WorkerMessageType.Error */,
682
646
  contentId,
683
647
  value: formatErrorForSender(error),
684
648
  });
@@ -713,7 +677,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
713
677
  };
714
678
  periodMap.set(value.bufferType, msgObj);
715
679
  sendMessage({
716
- type: "discontinuity-update" /* CoreMessageType.DiscontinuityUpdate */,
680
+ type: "discontinuity-update" /* WorkerMessageType.DiscontinuityUpdate */,
717
681
  contentId,
718
682
  value: msgObj,
719
683
  });
@@ -736,7 +700,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
736
700
  maximumPosition: payload.maximumPosition,
737
701
  });
738
702
  sendMessage({
739
- type: "reloading-media-source" /* CoreMessageType.ReloadingMediaSource */,
703
+ type: "reloading-media-source" /* WorkerMessageType.ReloadingMediaSource */,
740
704
  mediaSourceId,
741
705
  value: payload,
742
706
  }, []);
@@ -752,7 +716,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
752
716
  currentLoadCanceller = null;
753
717
  }
754
718
  const contentId = (_a = contentPreparer.getCurrentContent()) === null || _a === void 0 ? void 0 : _a.contentId;
755
- contentPreparer.reloadMediaSource(sendMessage).then(() => {
719
+ contentPreparer.reloadMediaSource().then(() => {
756
720
  log.info("Core", "MediaSource Reloaded, loading content again", {
757
721
  newInitialTime,
758
722
  });
@@ -763,7 +727,7 @@ function loadPreparedContent(sendMessage, val, contentPreparer, playbackObservat
763
727
  return;
764
728
  }
765
729
  sendMessage({
766
- type: "error" /* CoreMessageType.Error */,
730
+ type: "error" /* WorkerMessageType.Error */,
767
731
  contentId,
768
732
  value: formatErrorForSender(err),
769
733
  });
@@ -786,7 +750,7 @@ function updateLoggerLevel(logLevel, logFormat, sendBackLogs) {
786
750
  });
787
751
  // Not relying on `sendMessage` as it also logs
788
752
  postMessage({
789
- type: "log" /* CoreMessageType.LogMessage */,
753
+ type: "log" /* WorkerMessageType.LogMessage */,
790
754
  value: {
791
755
  namespace,
792
756
  logLevel: levelStr,
@@ -799,26 +763,23 @@ function updateLoggerLevel(logLevel, logFormat, sendBackLogs) {
799
763
  /**
800
764
  * Send a message `SegmentSinkStoreUpdate` to the main thread with
801
765
  * a serialized object that represents the segmentSinksStore state.
802
- * @param {Function} sendMessage - Function allowing to send messages to the
803
- * "main thread" part of the RxPlayer logic.
804
766
  * @param {ContentPreparer} contentPreparer
767
+ * @returns {void}
805
768
  */
806
- function sendSegmentSinksStoreInfos(sendMessage, contentPreparer, requestId) {
769
+ function sendSegmentSinksStoreInfos(contentPreparer, requestId) {
807
770
  const currentContent = contentPreparer.getCurrentContent();
808
771
  if (currentContent === null) {
809
772
  return;
810
773
  }
811
774
  const segmentSinksMetrics = currentContent.segmentSinksStore.getSegmentSinksMetrics();
812
775
  sendMessage({
813
- type: "segment-sink-store-update" /* CoreMessageType.SegmentSinkStoreUpdate */,
776
+ type: "segment-sink-store-update" /* WorkerMessageType.SegmentSinkStoreUpdate */,
814
777
  contentId: currentContent.contentId,
815
778
  value: { segmentSinkMetrics: segmentSinksMetrics, requestId },
816
779
  });
817
780
  }
818
781
  /**
819
782
  * Handle accordingly an `IFreezeResolution` object.
820
- * @param {Function} sendMessage - Function allowing to send messages to the
821
- * "main thread" part of the RxPlayer logic.
822
783
  * @param {Object|null} freezeResolution - The `IFreezeResolution` suggested.
823
784
  * @param {Object} param - Parameters that might be needed to implement the
824
785
  * resolution.
@@ -831,7 +792,7 @@ function sendSegmentSinksStoreInfos(sendMessage, contentPreparer, requestId) {
831
792
  * function is authorized to mark `Representation` as "to avoid" if the
832
793
  * `IFreezeResolution` object suggest it.
833
794
  */
834
- function handleFreezeResolution(sendMessage, freezeResolution, { contentId, manifest, handleMediaSourceReload, enableRepresentationAvoidance, }) {
795
+ function handleFreezeResolution(freezeResolution, { contentId, manifest, handleMediaSourceReload, enableRepresentationAvoidance, }) {
835
796
  switch (freezeResolution.type) {
836
797
  case "reload": {
837
798
  log.info("Core", "Planning reload due to freeze");
@@ -845,7 +806,7 @@ function handleFreezeResolution(sendMessage, freezeResolution, { contentId, mani
845
806
  case "flush": {
846
807
  log.info("Core", "Flushing buffer due to freeze");
847
808
  sendMessage({
848
- type: "needs-buffer-flush" /* CoreMessageType.NeedsBufferFlush */,
809
+ type: "needs-buffer-flush" /* WorkerMessageType.NeedsBufferFlush */,
849
810
  contentId,
850
811
  value: {
851
812
  relativeResumingPosition: freezeResolution.value.relativeSeek,
@@ -876,11 +837,11 @@ function handleFreezeResolution(sendMessage, freezeResolution, { contentId, mani
876
837
  * @param {ContentPreparer} contentPreparer
877
838
  * @returns {void}
878
839
  */
879
- function sendThumbnailData(sendMessage, contentPreparer, msg) {
840
+ function sendThumbnailData(contentPreparer, msg) {
880
841
  const preparedContent = contentPreparer.getCurrentContent();
881
842
  const respondWithError = (err) => {
882
843
  sendMessage({
883
- type: "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */,
844
+ type: "thumbnail-response" /* WorkerMessageType.ThumbnailDataResponse */,
884
845
  contentId: msg.contentId,
885
846
  value: {
886
847
  status: "error",
@@ -896,7 +857,7 @@ function sendThumbnailData(sendMessage, contentPreparer, msg) {
896
857
  }
897
858
  getThumbnailData(preparedContent.fetchThumbnailData, preparedContent.manifest, msg.value.periodId, msg.value.thumbnailTrackId, msg.value.time).then((result) => {
898
859
  sendMessage({
899
- type: "thumbnail-response" /* CoreMessageType.ThumbnailDataResponse */,
860
+ type: "thumbnail-response" /* WorkerMessageType.ThumbnailDataResponse */,
900
861
  contentId: msg.contentId,
901
862
  value: {
902
863
  status: "success",