rx-player 4.4.0 → 4.4.1-dev.2025101500

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 (341) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +52 -113
  3. package/VERSION +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  6. package/dist/commonjs/core/{main/common → entry}/FreezeResolver.d.ts +3 -3
  7. package/dist/commonjs/core/entry/FreezeResolver.d.ts.map +1 -0
  8. package/dist/commonjs/core/{main/common → entry}/FreezeResolver.js +3 -3
  9. package/dist/{es2017/core/main/worker → commonjs/core/entry}/content_preparer.d.ts +22 -15
  10. package/dist/commonjs/core/entry/content_preparer.d.ts.map +1 -0
  11. package/dist/commonjs/core/{main/worker → entry}/content_preparer.js +62 -64
  12. package/dist/{es2017/core/main/common → commonjs/core/entry}/content_time_boundaries_observer.d.ts +5 -5
  13. package/dist/commonjs/core/entry/content_time_boundaries_observer.d.ts.map +1 -0
  14. package/dist/commonjs/core/{main/common → entry}/content_time_boundaries_observer.js +6 -6
  15. package/dist/commonjs/core/entry/core_entry.d.ts +36 -0
  16. package/dist/commonjs/core/entry/core_entry.d.ts.map +1 -0
  17. package/dist/commonjs/core/{main/worker/worker_main.js → entry/core_entry.js} +192 -153
  18. package/dist/commonjs/core/{main/worker/worker_text_displayer_interface.d.ts → entry/core_text_displayer_interface.d.ts} +11 -11
  19. package/dist/commonjs/core/entry/core_text_displayer_interface.d.ts.map +1 -0
  20. package/dist/commonjs/core/{main/worker/worker_text_displayer_interface.js → entry/core_text_displayer_interface.js} +22 -22
  21. package/dist/commonjs/core/{main/common → entry}/create_content_time_boundaries_observer.d.ts +6 -6
  22. package/dist/commonjs/core/entry/create_content_time_boundaries_observer.d.ts.map +1 -0
  23. package/dist/commonjs/core/{main/common → entry}/create_content_time_boundaries_observer.js +1 -1
  24. package/dist/commonjs/core/{main/common → entry}/get_buffered_data_per_media_buffer.d.ts +4 -4
  25. package/dist/commonjs/core/entry/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  26. package/dist/commonjs/core/{main/common → entry}/get_buffered_data_per_media_buffer.js +1 -1
  27. package/dist/{es2017/core/main/common → commonjs/core/entry}/get_thumbnail_data.d.ts +3 -3
  28. package/dist/commonjs/core/entry/get_thumbnail_data.d.ts.map +1 -0
  29. package/dist/commonjs/core/{main/common → entry}/get_thumbnail_data.js +2 -2
  30. package/dist/commonjs/core/entry/index.d.ts +5 -0
  31. package/dist/commonjs/core/entry/index.d.ts.map +1 -0
  32. package/dist/commonjs/core/entry/index.js +4 -0
  33. package/dist/{es2017/core/main/common → commonjs/core/entry}/synchronize_sinks_on_observation.d.ts +2 -2
  34. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +1 -0
  35. package/dist/commonjs/core/{main/worker → entry}/track_choice_setter.d.ts +4 -4
  36. package/dist/commonjs/core/entry/track_choice_setter.d.ts.map +1 -0
  37. package/dist/commonjs/core/{main/worker → entry}/track_choice_setter.js +4 -4
  38. package/dist/commonjs/core/entry/utils.d.ts +3 -0
  39. package/dist/commonjs/core/entry/utils.d.ts.map +1 -0
  40. package/dist/commonjs/core/entry/utils.js +11 -0
  41. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  42. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +17 -0
  43. package/dist/commonjs/core/types.d.ts +519 -1
  44. package/dist/commonjs/core/types.d.ts.map +1 -1
  45. package/dist/commonjs/core/types.js +1 -0
  46. package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
  47. package/dist/commonjs/experimental/features/local.js +7 -1
  48. package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
  49. package/dist/commonjs/experimental/features/metaplaylist.js +7 -1
  50. package/dist/commonjs/experimental/features/multi_thread.d.ts.map +1 -1
  51. package/dist/commonjs/experimental/features/multi_thread.js +6 -2
  52. package/dist/commonjs/features/features_object.js +1 -1
  53. package/dist/commonjs/features/list/dash.d.ts.map +1 -1
  54. package/dist/commonjs/features/list/dash.js +7 -1
  55. package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
  56. package/dist/commonjs/features/list/dash_wasm.js +7 -1
  57. package/dist/commonjs/features/list/media_source_main.d.ts.map +1 -1
  58. package/dist/commonjs/features/list/media_source_main.js +7 -1
  59. package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
  60. package/dist/commonjs/features/list/smooth.js +7 -1
  61. package/dist/commonjs/features/types.d.ts +20 -4
  62. package/dist/commonjs/features/types.d.ts.map +1 -1
  63. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  64. package/dist/commonjs/main_thread/api/public_api.js +39 -42
  65. package/dist/commonjs/main_thread/core_interface/base.d.ts +13 -0
  66. package/dist/commonjs/main_thread/core_interface/base.d.ts.map +1 -0
  67. package/dist/commonjs/main_thread/core_interface/base.js +32 -0
  68. package/dist/commonjs/main_thread/core_interface/monothread.d.ts +13 -0
  69. package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +1 -0
  70. package/dist/commonjs/main_thread/core_interface/monothread.js +56 -0
  71. package/dist/commonjs/main_thread/core_interface/multithread.d.ts +25 -0
  72. package/dist/commonjs/main_thread/core_interface/multithread.d.ts.map +1 -0
  73. package/dist/commonjs/main_thread/core_interface/multithread.js +67 -0
  74. package/dist/commonjs/main_thread/core_interface/types.d.ts +6 -0
  75. package/dist/commonjs/main_thread/core_interface/types.d.ts.map +1 -0
  76. package/dist/commonjs/main_thread/core_interface/types.js +2 -0
  77. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +166 -108
  78. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  79. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +1492 -919
  80. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
  81. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +2 -1
  82. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
  83. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  84. package/dist/commonjs/main_thread/types.d.ts +537 -0
  85. package/dist/commonjs/main_thread/types.d.ts.map +1 -1
  86. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  87. package/dist/commonjs/manifest/utils.js +18 -4
  88. package/dist/commonjs/mse/worker_media_source_interface.d.ts +2 -2
  89. package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
  90. package/dist/commonjs/mse/worker_media_source_interface.js +12 -12
  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 +31 -27
  94. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts +3 -2
  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 +16 -7
  97. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts +3 -2
  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 +37 -6
  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 +3 -2
  103. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  104. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +28 -5
  105. package/dist/{es2017/playback_observer/worker_playback_observer.d.ts → commonjs/playback_observer/core_playback_observer.d.ts} +8 -8
  106. package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +1 -0
  107. package/dist/commonjs/playback_observer/{worker_playback_observer.js → core_playback_observer.js} +13 -13
  108. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  109. package/dist/commonjs/transports/smooth/pipelines.js +25 -3
  110. package/dist/commonjs/worker_entry_point.js +62 -2
  111. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  112. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  113. package/dist/es2017/core/{main/common → entry}/FreezeResolver.d.ts +3 -3
  114. package/dist/es2017/core/entry/FreezeResolver.d.ts.map +1 -0
  115. package/dist/es2017/core/{main/common → entry}/FreezeResolver.js +3 -3
  116. package/dist/{commonjs/core/main/worker → es2017/core/entry}/content_preparer.d.ts +22 -15
  117. package/dist/es2017/core/entry/content_preparer.d.ts.map +1 -0
  118. package/dist/es2017/core/{main/worker → entry}/content_preparer.js +53 -55
  119. package/dist/{commonjs/core/main/common → es2017/core/entry}/content_time_boundaries_observer.d.ts +5 -5
  120. package/dist/es2017/core/entry/content_time_boundaries_observer.d.ts.map +1 -0
  121. package/dist/es2017/core/{main/common → entry}/content_time_boundaries_observer.js +6 -6
  122. package/dist/es2017/core/entry/core_entry.d.ts +36 -0
  123. package/dist/es2017/core/entry/core_entry.d.ts.map +1 -0
  124. package/dist/es2017/core/{main/worker/worker_main.js → entry/core_entry.js} +153 -114
  125. package/dist/es2017/core/{main/worker/worker_text_displayer_interface.d.ts → entry/core_text_displayer_interface.d.ts} +11 -11
  126. package/dist/es2017/core/entry/core_text_displayer_interface.d.ts.map +1 -0
  127. package/dist/es2017/core/{main/worker/worker_text_displayer_interface.js → entry/core_text_displayer_interface.js} +10 -10
  128. package/dist/es2017/core/{main/common → entry}/create_content_time_boundaries_observer.d.ts +6 -6
  129. package/dist/es2017/core/entry/create_content_time_boundaries_observer.d.ts.map +1 -0
  130. package/dist/es2017/core/{main/common → entry}/create_content_time_boundaries_observer.js +1 -1
  131. package/dist/es2017/core/{main/common → entry}/get_buffered_data_per_media_buffer.d.ts +4 -4
  132. package/dist/es2017/core/entry/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  133. package/dist/es2017/core/{main/common → entry}/get_buffered_data_per_media_buffer.js +1 -1
  134. package/dist/{commonjs/core/main/common → es2017/core/entry}/get_thumbnail_data.d.ts +3 -3
  135. package/dist/es2017/core/entry/get_thumbnail_data.d.ts.map +1 -0
  136. package/dist/es2017/core/{main/common → entry}/get_thumbnail_data.js +2 -2
  137. package/dist/es2017/core/entry/index.d.ts +5 -0
  138. package/dist/es2017/core/entry/index.d.ts.map +1 -0
  139. package/dist/es2017/core/entry/index.js +2 -0
  140. package/dist/{commonjs/core/main/common → es2017/core/entry}/synchronize_sinks_on_observation.d.ts +2 -2
  141. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +1 -0
  142. package/dist/es2017/core/{main/worker → entry}/track_choice_setter.d.ts +4 -4
  143. package/dist/es2017/core/entry/track_choice_setter.d.ts.map +1 -0
  144. package/dist/es2017/core/{main/worker → entry}/track_choice_setter.js +4 -4
  145. package/dist/es2017/core/entry/utils.d.ts +3 -0
  146. package/dist/es2017/core/entry/utils.d.ts.map +1 -0
  147. package/dist/es2017/core/entry/utils.js +8 -0
  148. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  149. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +18 -1
  150. package/dist/es2017/core/types.d.ts +519 -1
  151. package/dist/es2017/core/types.d.ts.map +1 -1
  152. package/dist/es2017/core/types.js +1 -0
  153. package/dist/es2017/experimental/features/local.d.ts.map +1 -1
  154. package/dist/es2017/experimental/features/local.js +7 -1
  155. package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
  156. package/dist/es2017/experimental/features/metaplaylist.js +7 -1
  157. package/dist/es2017/experimental/features/multi_thread.d.ts.map +1 -1
  158. package/dist/es2017/experimental/features/multi_thread.js +6 -2
  159. package/dist/es2017/features/features_object.js +1 -1
  160. package/dist/es2017/features/list/dash.d.ts.map +1 -1
  161. package/dist/es2017/features/list/dash.js +7 -1
  162. package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
  163. package/dist/es2017/features/list/dash_wasm.js +7 -1
  164. package/dist/es2017/features/list/media_source_main.d.ts.map +1 -1
  165. package/dist/es2017/features/list/media_source_main.js +7 -1
  166. package/dist/es2017/features/list/smooth.d.ts.map +1 -1
  167. package/dist/es2017/features/list/smooth.js +7 -1
  168. package/dist/es2017/features/types.d.ts +20 -4
  169. package/dist/es2017/features/types.d.ts.map +1 -1
  170. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  171. package/dist/es2017/main_thread/api/public_api.js +40 -43
  172. package/dist/es2017/main_thread/core_interface/base.d.ts +13 -0
  173. package/dist/es2017/main_thread/core_interface/base.d.ts.map +1 -0
  174. package/dist/es2017/main_thread/core_interface/base.js +28 -0
  175. package/dist/es2017/main_thread/core_interface/monothread.d.ts +13 -0
  176. package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +1 -0
  177. package/dist/es2017/main_thread/core_interface/monothread.js +32 -0
  178. package/dist/es2017/main_thread/core_interface/multithread.d.ts +25 -0
  179. package/dist/es2017/main_thread/core_interface/multithread.d.ts.map +1 -0
  180. package/dist/es2017/main_thread/core_interface/multithread.js +45 -0
  181. package/dist/es2017/main_thread/core_interface/types.d.ts +6 -0
  182. package/dist/es2017/main_thread/core_interface/types.d.ts.map +1 -0
  183. package/dist/es2017/main_thread/core_interface/types.js +1 -0
  184. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +166 -108
  185. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  186. package/dist/es2017/main_thread/init/media_source_content_initializer.js +1405 -760
  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 +2 -1
  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 +537 -0
  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 +16 -4
  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/parsers/manifest/smooth/create_parser.d.ts +1 -1
  199. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
  200. package/dist/es2017/parsers/manifest/smooth/create_parser.js +31 -27
  201. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts +3 -2
  202. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
  203. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +16 -7
  204. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts +3 -2
  205. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
  206. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +15 -6
  207. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  208. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
  209. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts +3 -2
  210. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  211. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.js +6 -5
  212. package/dist/{commonjs/playback_observer/worker_playback_observer.d.ts → es2017/playback_observer/core_playback_observer.d.ts} +8 -8
  213. package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +1 -0
  214. package/dist/es2017/playback_observer/{worker_playback_observer.js → core_playback_observer.js} +2 -2
  215. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  216. package/dist/es2017/transports/smooth/pipelines.js +25 -3
  217. package/dist/es2017/worker_entry_point.js +62 -2
  218. package/dist/rx-player.js +21882 -19021
  219. package/dist/rx-player.min.js +20 -20
  220. package/dist/worker.js +8 -8
  221. package/package.json +1 -1
  222. package/src/README.md +88 -198
  223. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  224. package/src/core/{main/common → entry}/FreezeResolver.ts +7 -7
  225. package/src/core/{main → entry}/README.md +1 -1
  226. package/src/core/{main/worker → entry}/content_preparer.ts +77 -76
  227. package/src/core/{main/common → entry}/content_time_boundaries_observer.ts +10 -10
  228. package/src/core/{main/worker/worker_main.ts → entry/core_entry.ts} +223 -149
  229. package/src/core/{main/worker/worker_text_displayer_interface.ts → entry/core_text_displayer_interface.ts} +26 -26
  230. package/src/core/{main/common → entry}/create_content_time_boundaries_observer.ts +7 -7
  231. package/src/core/{main/common → entry}/get_buffered_data_per_media_buffer.ts +6 -6
  232. package/src/core/{main/common → entry}/get_thumbnail_data.ts +5 -5
  233. package/src/core/entry/index.ts +4 -0
  234. package/src/core/{main/common → entry}/synchronize_sinks_on_observation.ts +2 -2
  235. package/src/core/{main/worker → entry}/track_choice_setter.ts +7 -7
  236. package/src/core/entry/utils.ts +11 -0
  237. package/src/core/stream/orchestrator/stream_orchestrator.ts +26 -1
  238. package/src/core/types.ts +631 -3
  239. package/src/experimental/features/__tests__/local.test.ts +11 -2
  240. package/src/experimental/features/__tests__/metaplaylist.test.ts +11 -2
  241. package/src/experimental/features/__tests__/multi_thread.test.ts +8 -3
  242. package/src/experimental/features/local.ts +7 -1
  243. package/src/experimental/features/metaplaylist.ts +7 -1
  244. package/src/experimental/features/multi_thread.ts +6 -2
  245. package/src/features/features_object.ts +1 -1
  246. package/src/features/list/__tests__/dash.test.ts +12 -3
  247. package/src/features/list/__tests__/smooth.test.ts +11 -2
  248. package/src/features/list/dash.ts +7 -1
  249. package/src/features/list/dash_wasm.ts +7 -1
  250. package/src/features/list/media_source_main.ts +7 -1
  251. package/src/features/list/smooth.ts +7 -1
  252. package/src/features/types.ts +23 -4
  253. package/src/main_thread/README.md +8 -0
  254. package/src/main_thread/api/public_api.ts +46 -48
  255. package/src/main_thread/core_interface/README.md +22 -0
  256. package/src/main_thread/core_interface/base.ts +36 -0
  257. package/src/main_thread/core_interface/monothread.ts +46 -0
  258. package/src/main_thread/core_interface/multithread.ts +49 -0
  259. package/src/main_thread/core_interface/types.ts +5 -0
  260. package/src/main_thread/init/media_source_content_initializer.ts +2034 -1152
  261. package/src/main_thread/init/utils/create_core_playback_observer.ts +2 -1
  262. package/src/main_thread/init/utils/update_manifest_codec_support.ts +1 -1
  263. package/src/main_thread/types.ts +610 -0
  264. package/src/manifest/utils.ts +20 -4
  265. package/src/mse/worker_media_source_interface.ts +35 -35
  266. package/src/parsers/manifest/smooth/create_parser.ts +40 -34
  267. package/src/parsers/manifest/smooth/parse_C_nodes.ts +19 -8
  268. package/src/parsers/manifest/smooth/parse_protection_node.ts +17 -9
  269. package/src/parsers/manifest/smooth/utils/parseBoolean.ts +1 -1
  270. package/src/parsers/manifest/smooth/utils/reduceChildren.ts +10 -7
  271. package/src/playback_observer/{worker_playback_observer.ts → core_playback_observer.ts} +13 -13
  272. package/src/transports/smooth/pipelines.ts +25 -5
  273. package/src/worker_entry_point.ts +71 -2
  274. package/dist/commonjs/core/main/common/FreezeResolver.d.ts.map +0 -1
  275. package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts.map +0 -1
  276. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts.map +0 -1
  277. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  278. package/dist/commonjs/core/main/common/get_thumbnail_data.d.ts.map +0 -1
  279. package/dist/commonjs/core/main/common/synchronize_sinks_on_observation.d.ts.map +0 -1
  280. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +0 -1
  281. package/dist/commonjs/core/main/worker/globals.d.ts +0 -14
  282. package/dist/commonjs/core/main/worker/globals.d.ts.map +0 -1
  283. package/dist/commonjs/core/main/worker/globals.js +0 -26
  284. package/dist/commonjs/core/main/worker/index.d.ts +0 -3
  285. package/dist/commonjs/core/main/worker/index.d.ts.map +0 -1
  286. package/dist/commonjs/core/main/worker/index.js +0 -4
  287. package/dist/commonjs/core/main/worker/send_message.d.ts +0 -4
  288. package/dist/commonjs/core/main/worker/send_message.d.ts.map +0 -1
  289. package/dist/commonjs/core/main/worker/send_message.js +0 -23
  290. package/dist/commonjs/core/main/worker/track_choice_setter.d.ts.map +0 -1
  291. package/dist/commonjs/core/main/worker/worker_main.d.ts +0 -2
  292. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +0 -1
  293. package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts.map +0 -1
  294. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +0 -308
  295. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +0 -1
  296. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +0 -1713
  297. package/dist/commonjs/main_thread/init/send_message.d.ts +0 -3
  298. package/dist/commonjs/main_thread/init/send_message.d.ts.map +0 -1
  299. package/dist/commonjs/main_thread/init/send_message.js +0 -13
  300. package/dist/commonjs/multithread_types.d.ts +0 -915
  301. package/dist/commonjs/multithread_types.d.ts.map +0 -1
  302. package/dist/commonjs/multithread_types.js +0 -7
  303. package/dist/commonjs/playback_observer/worker_playback_observer.d.ts.map +0 -1
  304. package/dist/es2017/core/main/common/FreezeResolver.d.ts.map +0 -1
  305. package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts.map +0 -1
  306. package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts.map +0 -1
  307. package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  308. package/dist/es2017/core/main/common/get_thumbnail_data.d.ts.map +0 -1
  309. package/dist/es2017/core/main/common/synchronize_sinks_on_observation.d.ts.map +0 -1
  310. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +0 -1
  311. package/dist/es2017/core/main/worker/globals.d.ts +0 -14
  312. package/dist/es2017/core/main/worker/globals.d.ts.map +0 -1
  313. package/dist/es2017/core/main/worker/globals.js +0 -18
  314. package/dist/es2017/core/main/worker/index.d.ts +0 -3
  315. package/dist/es2017/core/main/worker/index.d.ts.map +0 -1
  316. package/dist/es2017/core/main/worker/index.js +0 -2
  317. package/dist/es2017/core/main/worker/send_message.d.ts +0 -4
  318. package/dist/es2017/core/main/worker/send_message.d.ts.map +0 -1
  319. package/dist/es2017/core/main/worker/send_message.js +0 -19
  320. package/dist/es2017/core/main/worker/track_choice_setter.d.ts.map +0 -1
  321. package/dist/es2017/core/main/worker/worker_main.d.ts +0 -2
  322. package/dist/es2017/core/main/worker/worker_main.d.ts.map +0 -1
  323. package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts.map +0 -1
  324. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +0 -308
  325. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +0 -1
  326. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +0 -1559
  327. package/dist/es2017/main_thread/init/send_message.d.ts +0 -3
  328. package/dist/es2017/main_thread/init/send_message.d.ts.map +0 -1
  329. package/dist/es2017/main_thread/init/send_message.js +0 -10
  330. package/dist/es2017/multithread_types.d.ts +0 -915
  331. package/dist/es2017/multithread_types.d.ts.map +0 -1
  332. package/dist/es2017/multithread_types.js +0 -6
  333. package/dist/es2017/playback_observer/worker_playback_observer.d.ts.map +0 -1
  334. package/src/core/main/worker/globals.ts +0 -38
  335. package/src/core/main/worker/index.ts +0 -2
  336. package/src/core/main/worker/send_message.ts +0 -28
  337. package/src/main_thread/init/multi_thread_content_initializer.ts +0 -2330
  338. package/src/main_thread/init/send_message.ts +0 -15
  339. package/src/multithread_types.ts +0 -1095
  340. /package/dist/commonjs/core/{main/common → entry}/synchronize_sinks_on_observation.js +0 -0
  341. /package/dist/es2017/core/{main/common → entry}/synchronize_sinks_on_observation.js +0 -0
@@ -1,6 +1,6 @@
1
- import type { IAdaptation, IPeriod, IRepresentation } from "../../../manifest";
2
- import type { IFreezingStatus, IRebufferingStatus, ObservationPosition } from "../../../playback_observer";
3
- import type SegmentSinksStore from "../../segment_sinks";
1
+ import type { IAdaptation, IPeriod, IRepresentation } from "../../manifest";
2
+ import type { IFreezingStatus, IRebufferingStatus, ObservationPosition } from "../../playback_observer";
3
+ import type SegmentSinksStore from "../segment_sinks";
4
4
  /**
5
5
  * Set when there is a freeze which seems to be specifically linked to a,
6
6
  * or multiple, content's `Representation` despite no attribute of it
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FreezeResolver.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/FreezeResolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,iBAAiB,MAAM,kBAAkB,CAAC;AAiDtD;;;;;;GAMG;AACH,MAAM,WAAW,wCAAwC;IACvD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC;QACX,UAAU,EAAE,WAAW,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC;QAChB,cAAc,EAAE,eAAe,CAAC;KACjC,CAAC,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL;;;WAGG;QACH,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,IAAI,CAAC;CACb;AAED,mEAAmE;AACnE,MAAM,MAAM,iBAAiB,GACzB,wCAAwC,GACxC,sBAAsB,GACtB,uBAAuB,CAAC;AAE5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,qEAAqE;IACrE,OAAO,CAAC,kBAAkB,CAAoB;IAE9C,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAKtB;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB,CAAgB;IAE1C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAKhB;IAET;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,uCAAuC,CAAgB;gBAEnD,iBAAiB,EAAE,iBAAiB;IAWhD;;;;;;;;;;;;OAYG;IACI,gBAAgB,CACrB,WAAW,EAAE,0BAA0B,GACtC,iBAAiB,GAAG,IAAI;IAqF3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,qCAAqC;IAwD7C;;;;;;;;;OASG;IACH,OAAO,CAAC,2BAA2B;IA0GnC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;CA4C9B;AA4ED,2DAA2D;AAC3D,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -1,6 +1,6 @@
1
- import { config } from "../../../experimental";
2
- import log from "../../../log";
3
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
1
+ import { config } from "../../experimental";
2
+ import log from "../../log";
3
+ import getMonotonicTimeStamp from "../../utils/monotonic_timestamp";
4
4
  /**
5
5
  * "Freezing" is a complex situation indicating that playback is not advancing
6
6
  * despite no valid reason for it not to.
@@ -1,15 +1,17 @@
1
- import type { IManifest, IManifestMetadata } from "../../../manifest";
2
- import type { IMediaSourceInterface } from "../../../mse";
3
- import type { IContentInitializationData } from "../../../multithread_types";
4
- import type { IRepresentationEstimator } from "../../adaptive";
5
- import CmcdDataBuilder from "../../cmcd";
6
- import type { IManifestRefreshSettings } from "../../fetchers";
7
- import { ManifestFetcher, SegmentQueueCreator } from "../../fetchers";
8
- import type { IThumbnailFetcher } from "../../fetchers/thumbnails/thumbnail_fetcher";
9
- import SegmentSinksStore from "../../segment_sinks";
10
- import FreezeResolver from "../common/FreezeResolver";
1
+ import type { IContentInitializationData } from "../../main_thread/types";
2
+ import type { IManifest } from "../../manifest";
3
+ import type { IMediaSourceInterface } from "../../mse";
4
+ import type { IRepresentationEstimator } from "../adaptive";
5
+ import type { IRepresentationEstimatorThrottlers } from "../adaptive/adaptive_representation_selector";
6
+ import CmcdDataBuilder from "../cmcd";
7
+ import type { IManifestRefreshSettings } from "../fetchers";
8
+ import { ManifestFetcher, SegmentQueueCreator } from "../fetchers";
9
+ import type { IThumbnailFetcher } from "../fetchers/thumbnails/thumbnail_fetcher";
10
+ import SegmentSinksStore from "../segment_sinks";
11
+ import type { ICoreMessage } from "../types";
12
+ import CoreTextDisplayerInterface from "./core_text_displayer_interface";
13
+ import FreezeResolver from "./FreezeResolver";
11
14
  import TrackChoiceSetter from "./track_choice_setter";
12
- import WorkerTextDisplayerInterface from "./worker_text_displayer_interface";
13
15
  /**
14
16
  * Class facilitating the workflows behind loading a new content for the
15
17
  * RxPlayer Core:
@@ -73,7 +75,9 @@ export default class ContentPreparer {
73
75
  * initialized.
74
76
  * @returns {Promise.<Object>}
75
77
  */
76
- initializeNewContent(context: IContentInitializationData): Promise<IManifestMetadata>;
78
+ initializeNewContent(sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void, context: IContentInitializationData,
79
+ /** Allows to filter which Representations can be choosen. */
80
+ throttlers: IRepresentationEstimatorThrottlers): Promise<IManifest>;
77
81
  /**
78
82
  * Get information on the current content prepared through the
79
83
  * `initializeNewContent` method, or `null` if no content is currently
@@ -90,12 +94,15 @@ export default class ContentPreparer {
90
94
  */
91
95
  scheduleManifestRefresh(settings: IManifestRefreshSettings): void;
92
96
  /**
93
- * Signal the ContentPreparer that the MediaSource is "reloading".
97
+ * Change the MediaSource attached for the current content.
98
+ * It is assumed that main thread is already notified that such a reload is
99
+ * happening.
94
100
  *
95
101
  * The returned Promise resolves when it restarts being ready.
102
+ * @param {Function} sendMessage
96
103
  * @returns {Promise}
97
104
  */
98
- reloadMediaSource(): Promise<void>;
105
+ reloadMediaSource(sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void): Promise<void>;
99
106
  /**
100
107
  * Dispose all resources linked to the currently preopared content if one and
101
108
  * stop linking it to this `ContentPreparer`.
@@ -153,7 +160,7 @@ export interface IPreparedContentData {
153
160
  */
154
161
  segmentSinksStore: SegmentSinksStore;
155
162
  /** Allows to send timed text media data so it can be rendered. */
156
- workerTextSender: WorkerTextDisplayerInterface | null;
163
+ coreTextSender: CoreTextDisplayerInterface | null;
157
164
  /**
158
165
  * Allows to create `SegmentQueue` which simplifies complex media segment
159
166
  * fetching.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content_preparer.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/content_preparer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAQvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AACvG,OAAO,eAAe,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,iBAAiB,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAwC,YAAY,EAAE,MAAM,UAAU,CAAC;AAEnF,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AAMtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAA8B;IACrD;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAgB;IACzC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B,CAAgB;IAEpD,uBAAuB;IACvB,OAAO,CAAC,SAAS,CAAU;IAE3B;;;;;;;;OAQG;gBACS,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE;IAQ/C;;;;;;;;;;;OAWG;IACI,oBAAoB,CACzB,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,EACxE,OAAO,EAAE,0BAA0B;IACnC,6DAA6D;IAC7D,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAAC,SAAS,CAAC;IA2LrB;;;;;OAKG;IACI,iBAAiB,IAAI,oBAAoB,GAAG,IAAI;IAIvD;;;;;;OAMG;IACI,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAIxE;;;;;;;;OAQG;IACI,iBAAiB,CACtB,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,GACvE,OAAO,CAAC,IAAI,CAAC;IA4ChB;;;OAGG;IACI,qBAAqB;CAI7B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC;;;;OAIG;IACH,6BAA6B,EAAE,OAAO,CAAC;IACvC;;;OAGG;IACH,WAAW,EAAE,qBAAqB,CAAC;IACnC,0DAA0D;IAC1D,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC;IAC/B;;;OAGG;IACH,uBAAuB,EAAE,wBAAwB,CAAC;IAClD;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,kEAAkE;IAClE,cAAc,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAClD;;;OAGG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,uCAAuC;IACvC,kBAAkB,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,iBAAiB,EAAE,iBAAiB,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB"}
@@ -1,25 +1,22 @@
1
- import { MediaSource_ } from "../../../compat/browser_compatibility_types";
2
- import features from "../../../features";
3
- import log from "../../../log";
4
- import { createRepresentationFilterFromFnString } from "../../../manifest";
5
- import MainMediaSourceInterface from "../../../mse/main_media_source_interface";
6
- import WorkerMediaSourceInterface from "../../../mse/worker_media_source_interface";
7
- import assert from "../../../utils/assert";
8
- import idGenerator from "../../../utils/id_generator";
9
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
10
- import objectAssign from "../../../utils/object_assign";
11
- import TaskCanceller from "../../../utils/task_canceller";
12
- import createAdaptiveRepresentationSelector from "../../adaptive";
13
- import CmcdDataBuilder from "../../cmcd";
14
- import { ManifestFetcher, SegmentQueueCreator } from "../../fetchers";
15
- import CdnPrioritizer from "../../fetchers/cdn_prioritizer";
16
- import createThumbnailFetcher from "../../fetchers/thumbnails/thumbnail_fetcher";
17
- import SegmentSinksStore from "../../segment_sinks";
18
- import FreezeResolver from "../common/FreezeResolver";
19
- import { limitVideoResolution, throttleVideoBitrate } from "./globals";
20
- import sendMessage, { formatErrorForSender } from "./send_message";
1
+ import { MediaSource_ } from "../../compat/browser_compatibility_types";
2
+ import features from "../../features";
3
+ import log from "../../log";
4
+ import { createRepresentationFilterFromFnString } from "../../manifest";
5
+ import MainMediaSourceInterface from "../../mse/main_media_source_interface";
6
+ import WorkerMediaSourceInterface from "../../mse/worker_media_source_interface";
7
+ import idGenerator from "../../utils/id_generator";
8
+ import isNullOrUndefined from "../../utils/is_null_or_undefined";
9
+ import TaskCanceller from "../../utils/task_canceller";
10
+ import createAdaptiveRepresentationSelector from "../adaptive";
11
+ import CmcdDataBuilder from "../cmcd";
12
+ import { ManifestFetcher, SegmentQueueCreator } from "../fetchers";
13
+ import CdnPrioritizer from "../fetchers/cdn_prioritizer";
14
+ import createThumbnailFetcher from "../fetchers/thumbnails/thumbnail_fetcher";
15
+ import SegmentSinksStore from "../segment_sinks";
16
+ import CoreTextDisplayerInterface from "./core_text_displayer_interface";
17
+ import FreezeResolver from "./FreezeResolver";
21
18
  import TrackChoiceSetter from "./track_choice_setter";
22
- import WorkerTextDisplayerInterface from "./worker_text_displayer_interface";
19
+ import { formatErrorForSender } from "./utils";
23
20
  /** Function allowing to associate a unique identifier to all created `MediaSource` */
24
21
  const generateMediaSourceId = idGenerator();
25
22
  /**
@@ -70,7 +67,9 @@ export default class ContentPreparer {
70
67
  * initialized.
71
68
  * @returns {Promise.<Object>}
72
69
  */
73
- initializeNewContent(context) {
70
+ initializeNewContent(sendMessage, context,
71
+ /** Allows to filter which Representations can be choosen. */
72
+ throttlers) {
74
73
  return new Promise((res, rej) => {
75
74
  var _a, _b;
76
75
  this.disposeCurrentContent();
@@ -78,35 +77,36 @@ export default class ContentPreparer {
78
77
  const currentMediaSourceCanceller = new TaskCanceller();
79
78
  this._currentMediaSourceCanceller = currentMediaSourceCanceller;
80
79
  currentMediaSourceCanceller.linkToSignal(contentCanceller.signal);
81
- const { contentId, url, hasText, transportOptions, useMseInWorker, enableRepresentationAvoidance, } = context;
80
+ const { contentId, url, hasText, transportOptions, useMseInWorker, enableRepresentationAvoidance, transport, } = context;
82
81
  let manifest = null;
83
- // TODO better way
84
- assert(features.transports.dash !== undefined, "Multithread RxPlayer should have access to the DASH feature");
82
+ const transportFn = features.transports[transport];
83
+ if (typeof transportFn !== "function") {
84
+ rej(new Error(`transport "${transport}" not supported. ` +
85
+ "Did you add the corresponding feature?"));
86
+ return;
87
+ }
85
88
  const representationFilter = typeof transportOptions.representationFilter === "string"
86
89
  ? createRepresentationFilterFromFnString(transportOptions.representationFilter)
87
- : undefined;
88
- const dashPipelines = features.transports.dash(Object.assign(Object.assign({}, transportOptions), { representationFilter }));
90
+ : transportOptions.representationFilter;
91
+ const transportPipelines = transportFn(Object.assign(Object.assign({}, transportOptions), { representationFilter }));
89
92
  const cmcdDataBuilder = context.cmcd === undefined ? null : new CmcdDataBuilder(context.cmcd);
90
- const manifestFetcher = new ManifestFetcher(url === undefined ? undefined : [url], dashPipelines, Object.assign({ cmcdDataBuilder }, context.manifestRetryOptions));
93
+ const manifestFetcher = new ManifestFetcher(url === undefined ? undefined : [url], transportPipelines, Object.assign({ cmcdDataBuilder }, context.manifestRetryOptions));
91
94
  const representationEstimator = createAdaptiveRepresentationSelector({
92
95
  initialBitrates: {
93
96
  audio: (_a = context.initialAudioBitrate) !== null && _a !== void 0 ? _a : 0,
94
97
  video: (_b = context.initialVideoBitrate) !== null && _b !== void 0 ? _b : 0,
95
98
  },
96
99
  lowLatencyMode: transportOptions.lowLatencyMode,
97
- throttlers: {
98
- limitResolution: { video: limitVideoResolution },
99
- throttleBitrate: { video: throttleVideoBitrate },
100
- },
100
+ throttlers,
101
101
  });
102
102
  const unbindRejectOnCancellation = currentMediaSourceCanceller.signal.register((error) => {
103
103
  rej(error);
104
104
  });
105
105
  const cdnPrioritizer = new CdnPrioritizer(contentCanceller.signal);
106
- const segmentQueueCreator = new SegmentQueueCreator(dashPipelines, cdnPrioritizer, cmcdDataBuilder, context.segmentRetryOptions);
107
- const fetchThumbnailData = createThumbnailFetcher(dashPipelines.thumbnails, cdnPrioritizer);
106
+ const segmentQueueCreator = new SegmentQueueCreator(transportPipelines, cdnPrioritizer, cmcdDataBuilder, context.segmentRetryOptions);
107
+ const fetchThumbnailData = createThumbnailFetcher(transportPipelines.thumbnails, cdnPrioritizer);
108
108
  const trackChoiceSetter = new TrackChoiceSetter();
109
- const [mediaSource, segmentSinksStore, workerTextSender] = createMediaSourceInterfaceAndSegmentSinksStore(contentId, {
109
+ const [mediaSource, segmentSinksStore, coreTextSender] = createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, contentId, {
110
110
  useMseInWorker,
111
111
  hasVideo: this._hasVideo,
112
112
  hasText,
@@ -124,7 +124,7 @@ export default class ContentPreparer {
124
124
  segmentSinksStore,
125
125
  segmentQueueCreator,
126
126
  fetchThumbnailData,
127
- workerTextSender,
127
+ coreTextSender,
128
128
  trackChoiceSetter,
129
129
  useMseInWorker,
130
130
  };
@@ -136,7 +136,7 @@ export default class ContentPreparer {
136
136
  });
137
137
  manifestFetcher.addEventListener("warning", (err) => {
138
138
  sendMessage({
139
- type: "warning" /* WorkerMessageType.Warning */,
139
+ type: "warning" /* CoreMessageType.Warning */,
140
140
  contentId,
141
141
  value: formatErrorForSender(err),
142
142
  });
@@ -154,7 +154,7 @@ export default class ContentPreparer {
154
154
  }, currentMediaSourceCanceller.signal);
155
155
  manifestFetcher.addEventListener("error", (err) => {
156
156
  sendMessage({
157
- type: "error" /* WorkerMessageType.Error */,
157
+ type: "error" /* CoreMessageType.Error */,
158
158
  contentId,
159
159
  value: formatErrorForSender(err),
160
160
  });
@@ -168,25 +168,19 @@ export default class ContentPreparer {
168
168
  return;
169
169
  }
170
170
  updateCodecSupportInWorkerMode(manifest);
171
- const sentManifest = manifest.getMetadataSnapshot();
172
171
  manifest.addEventListener("manifestUpdate", (updates) => {
173
172
  if (manifest === null) {
174
173
  // TODO log warn?
175
174
  return;
176
175
  }
177
- // Remove `periods` key to reduce cost of an unnecessary manifest
178
- // clone.
179
- const snapshot = objectAssign(manifest.getMetadataSnapshot(), {
180
- periods: [],
181
- });
182
176
  sendMessage({
183
- type: "manifest-update" /* WorkerMessageType.ManifestUpdate */,
177
+ type: "manifest-update" /* CoreMessageType.ManifestUpdate */,
184
178
  contentId,
185
- value: { manifest: snapshot, updates },
179
+ value: { manifest, updates },
186
180
  });
187
181
  }, contentCanceller.signal);
188
182
  unbindRejectOnCancellation();
189
- res(sentManifest);
183
+ res(manifest);
190
184
  }
191
185
  });
192
186
  }
@@ -211,27 +205,30 @@ export default class ContentPreparer {
211
205
  (_a = this._currentContent) === null || _a === void 0 ? void 0 : _a.manifestFetcher.scheduleManualRefresh(settings);
212
206
  }
213
207
  /**
214
- * Signal the ContentPreparer that the MediaSource is "reloading".
208
+ * Change the MediaSource attached for the current content.
209
+ * It is assumed that main thread is already notified that such a reload is
210
+ * happening.
215
211
  *
216
212
  * The returned Promise resolves when it restarts being ready.
213
+ * @param {Function} sendMessage
217
214
  * @returns {Promise}
218
215
  */
219
- reloadMediaSource() {
216
+ reloadMediaSource(sendMessage) {
220
217
  this._currentMediaSourceCanceller.cancel();
221
218
  if (this._currentContent === null) {
222
219
  return Promise.reject(new Error("CP: No content anymore"));
223
220
  }
224
221
  this._currentContent.trackChoiceSetter.reset();
225
222
  this._currentMediaSourceCanceller = new TaskCanceller();
226
- const [mediaSourceInterface, segmentSinksStore, workerTextSender] = createMediaSourceInterfaceAndSegmentSinksStore(this._currentContent.contentId, {
223
+ const [mediaSourceInterface, segmentSinksStore, coreTextSender] = createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, this._currentContent.contentId, {
227
224
  useMseInWorker: this._currentContent.useMseInWorker,
228
225
  hasVideo: this._hasVideo,
229
- hasText: this._currentContent.workerTextSender !== null,
226
+ hasText: this._currentContent.coreTextSender !== null,
230
227
  }, this._currentMediaSourceCanceller.signal);
231
228
  this._currentContent.mediaSource = mediaSourceInterface;
232
229
  this._currentContent.segmentSinksStore = segmentSinksStore;
233
230
  this._currentContent.freezeResolver = new FreezeResolver(segmentSinksStore);
234
- this._currentContent.workerTextSender = workerTextSender;
231
+ this._currentContent.coreTextSender = coreTextSender;
235
232
  return new Promise((res, rej) => {
236
233
  mediaSourceInterface.addEventListener("mediaSourceOpen", function () {
237
234
  res();
@@ -254,6 +251,7 @@ export default class ContentPreparer {
254
251
  }
255
252
  }
256
253
  /**
254
+ * @param {Function} sendMessage
257
255
  * @param {string} contentId
258
256
  * @param {Object} capabilities
259
257
  * @param {boolean} capabilities.useMseInWorker
@@ -262,7 +260,7 @@ export default class ContentPreparer {
262
260
  * @param {Object} cancelSignal
263
261
  * @returns {Array.<Object>}
264
262
  */
265
- function createMediaSourceInterfaceAndSegmentSinksStore(contentId, capabilities, cancelSignal) {
263
+ function createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, contentId, capabilities, cancelSignal) {
266
264
  let mediaSourceInterface;
267
265
  if (capabilities.useMseInWorker) {
268
266
  const mainMediaSource = new MainMediaSourceInterface(generateMediaSourceId());
@@ -280,7 +278,7 @@ function createMediaSourceInterfaceAndSegmentSinksStore(contentId, capabilities,
280
278
  });
281
279
  }
282
280
  sendMessage({
283
- type: "attach-media-source" /* WorkerMessageType.AttachMediaSource */,
281
+ type: "attach-media-source" /* CoreMessageType.AttachMediaSource */,
284
282
  contentId,
285
283
  value: sentMediaSourceLink,
286
284
  mediaSourceId: mediaSourceInterface.id,
@@ -290,7 +288,7 @@ function createMediaSourceInterfaceAndSegmentSinksStore(contentId, capabilities,
290
288
  mediaSourceInterface = new WorkerMediaSourceInterface(generateMediaSourceId(), contentId, sendMessage);
291
289
  }
292
290
  const textSender = capabilities.hasText
293
- ? new WorkerTextDisplayerInterface(contentId, sendMessage)
291
+ ? new CoreTextDisplayerInterface(contentId, sendMessage)
294
292
  : null;
295
293
  const { hasVideo } = capabilities;
296
294
  const segmentSinksStore = new SegmentSinksStore(mediaSourceInterface, hasVideo, textSender);
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IStreamOrchestratorPlaybackObservation, IBufferType } from "../../../core/types";
17
- import type { IManifest, IAdaptation, IPeriod } from "../../../manifest";
18
- import type { IReadOnlyPlaybackObserver } from "../../../playback_observer";
19
- import type { IPlayerError } from "../../../public_types";
20
- import EventEmitter from "../../../utils/event_emitter";
16
+ import type { IStreamOrchestratorPlaybackObservation, IBufferType } from "../../core/types";
17
+ import type { IManifest, IAdaptation, IPeriod } from "../../manifest";
18
+ import type { IReadOnlyPlaybackObserver } from "../../playback_observer";
19
+ import type { IPlayerError } from "../../public_types";
20
+ import EventEmitter from "../../utils/event_emitter";
21
21
  /**
22
22
  * Observes what's being played and take care of media events relating to time
23
23
  * boundaries:
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content_time_boundaries_observer.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/content_time_boundaries_observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,sCAAsC,EACtC,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EAEX,OAAO,EACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAMrD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,YAAY,CAAC,mCAAmC,CAAC;IAC1G,mFAAmF;IACnF,OAAO,CAAC,UAAU,CAAgB;IAElC,oDAAoD;IACpD,OAAO,CAAC,cAAc,CAAuC;IAE7D,2DAA2D;IAC3D,OAAO,CAAC,SAAS,CAAY;IAE7B,uEAAuE;IACvE,OAAO,CAAC,0BAA0B,CAA4B;IAE9D,kEAAkE;IAClE,OAAO,CAAC,eAAe,CAAgB;IAEvC;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB,CAAgB;IAE5C;;;OAGG;gBAED,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,yBAAyB,CAAC,sCAAsC,CAAC,EACnF,WAAW,EAAE,WAAW,EAAE;IA6D5B;;;;OAIG;IACI,oBAAoB,IAAI,0BAA0B;IAIzD;;;;;;;;;;;;OAYG;IACI,kBAAkB,CACvB,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,WAAW,GAAG,IAAI,GAC7B,IAAI;IA+BP;;;;;;;;;OASG;IACI,sBAAsB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAI7E;;;;;;;;;OASG;IACI,eAAe,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAItE;;;;;;;;OAQG;IACI,4BAA4B,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAQlE;;;;;;;;;;OAUG;IACI,0BAA0B,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAQhE;;;OAGG;IACI,OAAO;IAKd,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,iBAAiB;CAc1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,mDAAmD;IACnD,OAAO,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,oBAAoB,EAAE,0BAA0B,CAAC;IACjD;;;;;;;;;OASG;IACH,WAAW,EAAE,IAAI,CAAC;IAClB;;;;;;;;;OASG;IACH,YAAY,EAAE,IAAI,CAAC;CACpB;AAgPD,MAAM,MAAM,uCAAuC,GAAG,IAAI,CACxD,sCAAsC,EACtC,UAAU,CACX,CAAC"}
@@ -13,12 +13,12 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { MediaError } from "../../../errors";
17
- import EventEmitter from "../../../utils/event_emitter";
18
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
19
- import queueMicrotask from "../../../utils/queue_microtask";
20
- import SortedList from "../../../utils/sorted_list";
21
- import TaskCanceller from "../../../utils/task_canceller";
16
+ import { MediaError } from "../../errors";
17
+ import EventEmitter from "../../utils/event_emitter";
18
+ import isNullOrUndefined from "../../utils/is_null_or_undefined";
19
+ import queueMicrotask from "../../utils/queue_microtask";
20
+ import SortedList from "../../utils/sorted_list";
21
+ import TaskCanceller from "../../utils/task_canceller";
22
22
  /**
23
23
  * Observes what's being played and take care of media events relating to time
24
24
  * boundaries:
@@ -0,0 +1,36 @@
1
+ import type { IMainThreadMessage } from "../../main_thread/types";
2
+ import SharedReference from "../../utils/reference";
3
+ import type { ICoreMessage, IResolutionInfo } from "../types";
4
+ export type IMessageReceiverCallback = (evt: {
5
+ data: IMainThreadMessage;
6
+ }) => void;
7
+ /**
8
+ * Initialize a `CoreEntry`, which is the part of the RxPlayer acting as an
9
+ * entry point to all its "core" code.
10
+ *
11
+ * Its role is to receive and react to messages coming from "main thead", which
12
+ * may include loading and playing a content, and to send back messages for the main
13
+ * thread.
14
+ * @param {Function} setMessageReceiver - Declares the function that will
15
+ * receive messages coming from the "main thread" part of the RxPlayer logic.
16
+ * @param {Function} sendMessage - Function allowing to send messages to the
17
+ * "main thread" part of the RxPlayer logic.
18
+ */
19
+ export default function initializeCoreEntry(setMessageReceiver: (cb: IMessageReceiverCallback) => void, sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void): void;
20
+ /**
21
+ * Collection of so-called "references": values configuring playback that may
22
+ * be updated at any time and that the CoreEntry should react on.
23
+ */
24
+ export interface ICoreReferences {
25
+ limitVideoResolution: SharedReference<IResolutionInfo>;
26
+ /** Max buffer size after the current position, in seconds (we GC further up). */
27
+ maxBufferAhead: SharedReference<number>;
28
+ /** Max buffer size before the current position, in seconds (we GC further down). */
29
+ maxBufferBehind: SharedReference<number>;
30
+ /** Buffer maximum size in kiloBytes at which we stop downloading */
31
+ maxVideoBufferSize: SharedReference<number>;
32
+ throttleVideoBitrate: SharedReference<number>;
33
+ /** Buffer "goal" at which we stop downloading new segments. */
34
+ wantedBufferAhead: SharedReference<number>;
35
+ }
36
+ //# sourceMappingURL=core_entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core_entry.d.ts","sourceRoot":"","sources":["../../../../src/core/entry/core_entry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,kBAAkB,EAGnB,MAAM,yBAAyB,CAAC;AAajC,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAQpD,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAChB,MAAM,UAAU,CAAC;AAUlB,MAAM,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,KAAK,IAAI,CAAC;AAEnF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,kBAAkB,EAAE,CAAC,EAAE,EAAE,wBAAwB,KAAK,IAAI,EAC1D,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,GACvE,IAAI,CA6YN;AA2vBD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACvD,iFAAiF;IACjF,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,oFAAoF;IACpF,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACzC,oEAAoE;IACpE,kBAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9C,+DAA+D;IAC/D,iBAAiB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CAC5C"}