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"}
@@ -11,9 +11,9 @@ var __values = (this && this.__values) || function(o) {
11
11
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- var experimental_1 = require("../../../experimental");
15
- var log_1 = require("../../../log");
16
- var monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
14
+ var experimental_1 = require("../../experimental");
15
+ var log_1 = require("../../log");
16
+ var monotonic_timestamp_1 = require("../../utils/monotonic_timestamp");
17
17
  /**
18
18
  * "Freezing" is a complex situation indicating that playback is not advancing
19
19
  * 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"}
@@ -47,28 +47,25 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
47
47
  return to.concat(ar || Array.prototype.slice.call(from));
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- var browser_compatibility_types_1 = require("../../../compat/browser_compatibility_types");
51
- var features_1 = require("../../../features");
52
- var log_1 = require("../../../log");
53
- var manifest_1 = require("../../../manifest");
54
- var main_media_source_interface_1 = require("../../../mse/main_media_source_interface");
55
- var worker_media_source_interface_1 = require("../../../mse/worker_media_source_interface");
56
- var assert_1 = require("../../../utils/assert");
57
- var id_generator_1 = require("../../../utils/id_generator");
58
- var is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
59
- var object_assign_1 = require("../../../utils/object_assign");
60
- var task_canceller_1 = require("../../../utils/task_canceller");
61
- var adaptive_1 = require("../../adaptive");
62
- var cmcd_1 = require("../../cmcd");
63
- var fetchers_1 = require("../../fetchers");
64
- var cdn_prioritizer_1 = require("../../fetchers/cdn_prioritizer");
65
- var thumbnail_fetcher_1 = require("../../fetchers/thumbnails/thumbnail_fetcher");
66
- var segment_sinks_1 = require("../../segment_sinks");
67
- var FreezeResolver_1 = require("../common/FreezeResolver");
68
- var globals_1 = require("./globals");
69
- var send_message_1 = require("./send_message");
50
+ var browser_compatibility_types_1 = require("../../compat/browser_compatibility_types");
51
+ var features_1 = require("../../features");
52
+ var log_1 = require("../../log");
53
+ var manifest_1 = require("../../manifest");
54
+ var main_media_source_interface_1 = require("../../mse/main_media_source_interface");
55
+ var worker_media_source_interface_1 = require("../../mse/worker_media_source_interface");
56
+ var id_generator_1 = require("../../utils/id_generator");
57
+ var is_null_or_undefined_1 = require("../../utils/is_null_or_undefined");
58
+ var task_canceller_1 = require("../../utils/task_canceller");
59
+ var adaptive_1 = require("../adaptive");
60
+ var cmcd_1 = require("../cmcd");
61
+ var fetchers_1 = require("../fetchers");
62
+ var cdn_prioritizer_1 = require("../fetchers/cdn_prioritizer");
63
+ var thumbnail_fetcher_1 = require("../fetchers/thumbnails/thumbnail_fetcher");
64
+ var segment_sinks_1 = require("../segment_sinks");
65
+ var core_text_displayer_interface_1 = require("./core_text_displayer_interface");
66
+ var FreezeResolver_1 = require("./FreezeResolver");
70
67
  var track_choice_setter_1 = require("./track_choice_setter");
71
- var worker_text_displayer_interface_1 = require("./worker_text_displayer_interface");
68
+ var utils_1 = require("./utils");
72
69
  /** Function allowing to associate a unique identifier to all created `MediaSource` */
73
70
  var generateMediaSourceId = (0, id_generator_1.default)();
74
71
  /**
@@ -120,7 +117,9 @@ var ContentPreparer = /** @class */ (function () {
120
117
  * initialized.
121
118
  * @returns {Promise.<Object>}
122
119
  */
123
- ContentPreparer.prototype.initializeNewContent = function (context) {
120
+ ContentPreparer.prototype.initializeNewContent = function (sendMessage, context,
121
+ /** Allows to filter which Representations can be choosen. */
122
+ throttlers) {
124
123
  var _this = this;
125
124
  return new Promise(function (res, rej) {
126
125
  var _a, _b;
@@ -129,39 +128,40 @@ var ContentPreparer = /** @class */ (function () {
129
128
  var currentMediaSourceCanceller = new task_canceller_1.default();
130
129
  _this._currentMediaSourceCanceller = currentMediaSourceCanceller;
131
130
  currentMediaSourceCanceller.linkToSignal(contentCanceller.signal);
132
- var contentId = context.contentId, url = context.url, hasText = context.hasText, transportOptions = context.transportOptions, useMseInWorker = context.useMseInWorker, enableRepresentationAvoidance = context.enableRepresentationAvoidance;
131
+ var contentId = context.contentId, url = context.url, hasText = context.hasText, transportOptions = context.transportOptions, useMseInWorker = context.useMseInWorker, enableRepresentationAvoidance = context.enableRepresentationAvoidance, transport = context.transport;
133
132
  var manifest = null;
134
- // TODO better way
135
- (0, assert_1.default)(features_1.default.transports.dash !== undefined, "Multithread RxPlayer should have access to the DASH feature");
133
+ var transportFn = features_1.default.transports[transport];
134
+ if (typeof transportFn !== "function") {
135
+ rej(new Error("transport \"".concat(transport, "\" not supported. ") +
136
+ "Did you add the corresponding feature?"));
137
+ return;
138
+ }
136
139
  var representationFilter = typeof transportOptions.representationFilter === "string"
137
140
  ? (0, manifest_1.createRepresentationFilterFromFnString)(transportOptions.representationFilter)
138
- : undefined;
139
- var dashPipelines = features_1.default.transports.dash(__assign(__assign({}, transportOptions), { representationFilter: representationFilter }));
141
+ : transportOptions.representationFilter;
142
+ var transportPipelines = transportFn(__assign(__assign({}, transportOptions), { representationFilter: representationFilter }));
140
143
  var cmcdDataBuilder = context.cmcd === undefined ? null : new cmcd_1.default(context.cmcd);
141
- var manifestFetcher = new fetchers_1.ManifestFetcher(url === undefined ? undefined : [url], dashPipelines, __assign({ cmcdDataBuilder: cmcdDataBuilder }, context.manifestRetryOptions));
144
+ var manifestFetcher = new fetchers_1.ManifestFetcher(url === undefined ? undefined : [url], transportPipelines, __assign({ cmcdDataBuilder: cmcdDataBuilder }, context.manifestRetryOptions));
142
145
  var representationEstimator = (0, adaptive_1.default)({
143
146
  initialBitrates: {
144
147
  audio: (_a = context.initialAudioBitrate) !== null && _a !== void 0 ? _a : 0,
145
148
  video: (_b = context.initialVideoBitrate) !== null && _b !== void 0 ? _b : 0,
146
149
  },
147
150
  lowLatencyMode: transportOptions.lowLatencyMode,
148
- throttlers: {
149
- limitResolution: { video: globals_1.limitVideoResolution },
150
- throttleBitrate: { video: globals_1.throttleVideoBitrate },
151
- },
151
+ throttlers: throttlers,
152
152
  });
153
153
  var unbindRejectOnCancellation = currentMediaSourceCanceller.signal.register(function (error) {
154
154
  rej(error);
155
155
  });
156
156
  var cdnPrioritizer = new cdn_prioritizer_1.default(contentCanceller.signal);
157
- var segmentQueueCreator = new fetchers_1.SegmentQueueCreator(dashPipelines, cdnPrioritizer, cmcdDataBuilder, context.segmentRetryOptions);
158
- var fetchThumbnailData = (0, thumbnail_fetcher_1.default)(dashPipelines.thumbnails, cdnPrioritizer);
157
+ var segmentQueueCreator = new fetchers_1.SegmentQueueCreator(transportPipelines, cdnPrioritizer, cmcdDataBuilder, context.segmentRetryOptions);
158
+ var fetchThumbnailData = (0, thumbnail_fetcher_1.default)(transportPipelines.thumbnails, cdnPrioritizer);
159
159
  var trackChoiceSetter = new track_choice_setter_1.default();
160
- var _c = __read(createMediaSourceInterfaceAndSegmentSinksStore(contentId, {
160
+ var _c = __read(createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, contentId, {
161
161
  useMseInWorker: useMseInWorker,
162
162
  hasVideo: _this._hasVideo,
163
163
  hasText: hasText,
164
- }, currentMediaSourceCanceller.signal), 3), mediaSource = _c[0], segmentSinksStore = _c[1], workerTextSender = _c[2];
164
+ }, currentMediaSourceCanceller.signal), 3), mediaSource = _c[0], segmentSinksStore = _c[1], coreTextSender = _c[2];
165
165
  var freezeResolver = new FreezeResolver_1.default(segmentSinksStore);
166
166
  _this._currentContent = {
167
167
  cmcdDataBuilder: cmcdDataBuilder,
@@ -175,7 +175,7 @@ var ContentPreparer = /** @class */ (function () {
175
175
  segmentSinksStore: segmentSinksStore,
176
176
  segmentQueueCreator: segmentQueueCreator,
177
177
  fetchThumbnailData: fetchThumbnailData,
178
- workerTextSender: workerTextSender,
178
+ coreTextSender: coreTextSender,
179
179
  trackChoiceSetter: trackChoiceSetter,
180
180
  useMseInWorker: useMseInWorker,
181
181
  };
@@ -186,10 +186,10 @@ var ContentPreparer = /** @class */ (function () {
186
186
  manifestFetcher.dispose();
187
187
  });
188
188
  manifestFetcher.addEventListener("warning", function (err) {
189
- (0, send_message_1.default)({
190
- type: "warning" /* WorkerMessageType.Warning */,
189
+ sendMessage({
190
+ type: "warning" /* CoreMessageType.Warning */,
191
191
  contentId: contentId,
192
- value: (0, send_message_1.formatErrorForSender)(err),
192
+ value: (0, utils_1.formatErrorForSender)(err),
193
193
  });
194
194
  }, contentCanceller.signal);
195
195
  manifestFetcher.addEventListener("manifestReady", function (man) {
@@ -204,10 +204,10 @@ var ContentPreparer = /** @class */ (function () {
204
204
  checkIfReadyAndValidate();
205
205
  }, currentMediaSourceCanceller.signal);
206
206
  manifestFetcher.addEventListener("error", function (err) {
207
- (0, send_message_1.default)({
208
- type: "error" /* WorkerMessageType.Error */,
207
+ sendMessage({
208
+ type: "error" /* CoreMessageType.Error */,
209
209
  contentId: contentId,
210
- value: (0, send_message_1.formatErrorForSender)(err),
210
+ value: (0, utils_1.formatErrorForSender)(err),
211
211
  });
212
212
  rej(err);
213
213
  }, contentCanceller.signal);
@@ -219,25 +219,19 @@ var ContentPreparer = /** @class */ (function () {
219
219
  return;
220
220
  }
221
221
  updateCodecSupportInWorkerMode(manifest);
222
- var sentManifest = manifest.getMetadataSnapshot();
223
222
  manifest.addEventListener("manifestUpdate", function (updates) {
224
223
  if (manifest === null) {
225
224
  // TODO log warn?
226
225
  return;
227
226
  }
228
- // Remove `periods` key to reduce cost of an unnecessary manifest
229
- // clone.
230
- var snapshot = (0, object_assign_1.default)(manifest.getMetadataSnapshot(), {
231
- periods: [],
232
- });
233
- (0, send_message_1.default)({
234
- type: "manifest-update" /* WorkerMessageType.ManifestUpdate */,
227
+ sendMessage({
228
+ type: "manifest-update" /* CoreMessageType.ManifestUpdate */,
235
229
  contentId: contentId,
236
- value: { manifest: snapshot, updates: updates },
230
+ value: { manifest: manifest, updates: updates },
237
231
  });
238
232
  }, contentCanceller.signal);
239
233
  unbindRejectOnCancellation();
240
- res(sentManifest);
234
+ res(manifest);
241
235
  }
242
236
  });
243
237
  };
@@ -262,12 +256,15 @@ var ContentPreparer = /** @class */ (function () {
262
256
  (_a = this._currentContent) === null || _a === void 0 ? void 0 : _a.manifestFetcher.scheduleManualRefresh(settings);
263
257
  };
264
258
  /**
265
- * Signal the ContentPreparer that the MediaSource is "reloading".
259
+ * Change the MediaSource attached for the current content.
260
+ * It is assumed that main thread is already notified that such a reload is
261
+ * happening.
266
262
  *
267
263
  * The returned Promise resolves when it restarts being ready.
264
+ * @param {Function} sendMessage
268
265
  * @returns {Promise}
269
266
  */
270
- ContentPreparer.prototype.reloadMediaSource = function () {
267
+ ContentPreparer.prototype.reloadMediaSource = function (sendMessage) {
271
268
  var _this = this;
272
269
  this._currentMediaSourceCanceller.cancel();
273
270
  if (this._currentContent === null) {
@@ -275,15 +272,15 @@ var ContentPreparer = /** @class */ (function () {
275
272
  }
276
273
  this._currentContent.trackChoiceSetter.reset();
277
274
  this._currentMediaSourceCanceller = new task_canceller_1.default();
278
- var _a = __read(createMediaSourceInterfaceAndSegmentSinksStore(this._currentContent.contentId, {
275
+ var _a = __read(createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, this._currentContent.contentId, {
279
276
  useMseInWorker: this._currentContent.useMseInWorker,
280
277
  hasVideo: this._hasVideo,
281
- hasText: this._currentContent.workerTextSender !== null,
282
- }, this._currentMediaSourceCanceller.signal), 3), mediaSourceInterface = _a[0], segmentSinksStore = _a[1], workerTextSender = _a[2];
278
+ hasText: this._currentContent.coreTextSender !== null,
279
+ }, this._currentMediaSourceCanceller.signal), 3), mediaSourceInterface = _a[0], segmentSinksStore = _a[1], coreTextSender = _a[2];
283
280
  this._currentContent.mediaSource = mediaSourceInterface;
284
281
  this._currentContent.segmentSinksStore = segmentSinksStore;
285
282
  this._currentContent.freezeResolver = new FreezeResolver_1.default(segmentSinksStore);
286
- this._currentContent.workerTextSender = workerTextSender;
283
+ this._currentContent.coreTextSender = coreTextSender;
287
284
  return new Promise(function (res, rej) {
288
285
  mediaSourceInterface.addEventListener("mediaSourceOpen", function () {
289
286
  res();
@@ -308,6 +305,7 @@ var ContentPreparer = /** @class */ (function () {
308
305
  }());
309
306
  exports.default = ContentPreparer;
310
307
  /**
308
+ * @param {Function} sendMessage
311
309
  * @param {string} contentId
312
310
  * @param {Object} capabilities
313
311
  * @param {boolean} capabilities.useMseInWorker
@@ -316,7 +314,7 @@ exports.default = ContentPreparer;
316
314
  * @param {Object} cancelSignal
317
315
  * @returns {Array.<Object>}
318
316
  */
319
- function createMediaSourceInterfaceAndSegmentSinksStore(contentId, capabilities, cancelSignal) {
317
+ function createMediaSourceInterfaceAndSegmentSinksStore(sendMessage, contentId, capabilities, cancelSignal) {
320
318
  var mediaSourceInterface;
321
319
  if (capabilities.useMseInWorker) {
322
320
  var mainMediaSource = new main_media_source_interface_1.default(generateMediaSourceId());
@@ -333,18 +331,18 @@ function createMediaSourceInterfaceAndSegmentSinksStore(contentId, capabilities,
333
331
  URL.revokeObjectURL(url_1);
334
332
  });
335
333
  }
336
- (0, send_message_1.default)({
337
- type: "attach-media-source" /* WorkerMessageType.AttachMediaSource */,
334
+ sendMessage({
335
+ type: "attach-media-source" /* CoreMessageType.AttachMediaSource */,
338
336
  contentId: contentId,
339
337
  value: sentMediaSourceLink,
340
338
  mediaSourceId: mediaSourceInterface.id,
341
339
  }, [handle.value]);
342
340
  }
343
341
  else {
344
- mediaSourceInterface = new worker_media_source_interface_1.default(generateMediaSourceId(), contentId, send_message_1.default);
342
+ mediaSourceInterface = new worker_media_source_interface_1.default(generateMediaSourceId(), contentId, sendMessage);
345
343
  }
346
344
  var textSender = capabilities.hasText
347
- ? new worker_text_displayer_interface_1.default(contentId, send_message_1.default)
345
+ ? new core_text_displayer_interface_1.default(contentId, sendMessage)
348
346
  : null;
349
347
  var hasVideo = capabilities.hasVideo;
350
348
  var segmentSinksStore = new segment_sinks_1.default(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"}
@@ -41,12 +41,12 @@ var __values = (this && this.__values) || function(o) {
41
41
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
42
42
  };
43
43
  Object.defineProperty(exports, "__esModule", { value: true });
44
- var errors_1 = require("../../../errors");
45
- var event_emitter_1 = require("../../../utils/event_emitter");
46
- var is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
47
- var queue_microtask_1 = require("../../../utils/queue_microtask");
48
- var sorted_list_1 = require("../../../utils/sorted_list");
49
- var task_canceller_1 = require("../../../utils/task_canceller");
44
+ var errors_1 = require("../../errors");
45
+ var event_emitter_1 = require("../../utils/event_emitter");
46
+ var is_null_or_undefined_1 = require("../../utils/is_null_or_undefined");
47
+ var queue_microtask_1 = require("../../utils/queue_microtask");
48
+ var sorted_list_1 = require("../../utils/sorted_list");
49
+ var task_canceller_1 = require("../../utils/task_canceller");
50
50
  /**
51
51
  * Observes what's being played and take care of media events relating to time
52
52
  * 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"}