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,14 +1,14 @@
1
- import { config } from "../../../experimental";
2
- import log from "../../../log";
3
- import type { IAdaptation, IPeriod, IRepresentation } from "../../../manifest";
1
+ import { config } from "../../experimental";
2
+ import log from "../../log";
3
+ import type { IAdaptation, IPeriod, IRepresentation } from "../../manifest";
4
4
  import type {
5
5
  IFreezingStatus,
6
6
  IRebufferingStatus,
7
7
  ObservationPosition,
8
- } from "../../../playback_observer";
9
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
10
- import type SegmentSinksStore from "../../segment_sinks";
11
- import type { IBufferedChunk } from "../../segment_sinks";
8
+ } from "../../playback_observer";
9
+ import getMonotonicTimeStamp from "../../utils/monotonic_timestamp";
10
+ import type SegmentSinksStore from "../segment_sinks";
11
+ import type { IBufferedChunk } from "../segment_sinks";
12
12
 
13
13
  /**
14
14
  * "Freezing" is a complex situation indicating that playback is not advancing
@@ -6,7 +6,7 @@
6
6
  | Multithread environment | Should be runnable in a WebWorker entirely |
7
7
 
8
8
  [1] In a Multithreading mode, no file from that directory should ever be imported by
9
- external code but the `WorkerMain` to generate the worker bundle. In a monothreading mode,
9
+ external code but the `CoreEntry` to generate the worker bundle. In a monothreading mode,
10
10
  any file may be directly imported.
11
11
 
12
12
  ## Overview
@@ -1,41 +1,34 @@
1
- import { MediaSource_ } from "../../../compat/browser_compatibility_types";
2
- import features from "../../../features";
3
- import log from "../../../log";
4
- import type { IManifest, IManifestMetadata } from "../../../manifest";
5
- import { createRepresentationFilterFromFnString } from "../../../manifest";
6
- import type Manifest from "../../../manifest/classes";
7
- import type { IMediaSourceInterface } from "../../../mse";
8
- import MainMediaSourceInterface from "../../../mse/main_media_source_interface";
9
- import WorkerMediaSourceInterface from "../../../mse/worker_media_source_interface";
10
- import type {
11
- IAttachMediaSourceWorkerMessagePayload,
12
- IContentInitializationData,
13
- } from "../../../multithread_types";
14
- import { WorkerMessageType } from "../../../multithread_types";
15
- import type { IPlayerError } from "../../../public_types";
16
- import assert from "../../../utils/assert";
17
- import idGenerator from "../../../utils/id_generator";
18
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
19
- import objectAssign from "../../../utils/object_assign";
20
- import type {
21
- CancellationError,
22
- CancellationSignal,
23
- } from "../../../utils/task_canceller";
24
- import TaskCanceller from "../../../utils/task_canceller";
25
- import type { IRepresentationEstimator } from "../../adaptive";
26
- import createAdaptiveRepresentationSelector from "../../adaptive";
27
- import CmcdDataBuilder from "../../cmcd";
28
- import type { IManifestRefreshSettings } from "../../fetchers";
29
- import { ManifestFetcher, SegmentQueueCreator } from "../../fetchers";
30
- import CdnPrioritizer from "../../fetchers/cdn_prioritizer";
31
- import createThumbnailFetcher from "../../fetchers/thumbnails/thumbnail_fetcher";
32
- import type { IThumbnailFetcher } from "../../fetchers/thumbnails/thumbnail_fetcher";
33
- import SegmentSinksStore from "../../segment_sinks";
34
- import FreezeResolver from "../common/FreezeResolver";
35
- import { limitVideoResolution, throttleVideoBitrate } from "./globals";
36
- 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 type { IContentInitializationData } from "../../main_thread/types";
5
+ import type { IManifest } from "../../manifest";
6
+ import { createRepresentationFilterFromFnString } from "../../manifest";
7
+ import type Manifest from "../../manifest/classes";
8
+ import type { IMediaSourceInterface } from "../../mse";
9
+ import MainMediaSourceInterface from "../../mse/main_media_source_interface";
10
+ import WorkerMediaSourceInterface from "../../mse/worker_media_source_interface";
11
+ import type { IPlayerError } from "../../public_types";
12
+ import idGenerator from "../../utils/id_generator";
13
+ import isNullOrUndefined from "../../utils/is_null_or_undefined";
14
+ import type { CancellationError, CancellationSignal } from "../../utils/task_canceller";
15
+ import TaskCanceller from "../../utils/task_canceller";
16
+ import type { IRepresentationEstimator } from "../adaptive";
17
+ import createAdaptiveRepresentationSelector from "../adaptive";
18
+ import type { IRepresentationEstimatorThrottlers } from "../adaptive/adaptive_representation_selector";
19
+ import CmcdDataBuilder from "../cmcd";
20
+ import type { IManifestRefreshSettings } from "../fetchers";
21
+ import { ManifestFetcher, SegmentQueueCreator } from "../fetchers";
22
+ import CdnPrioritizer from "../fetchers/cdn_prioritizer";
23
+ import createThumbnailFetcher from "../fetchers/thumbnails/thumbnail_fetcher";
24
+ import type { IThumbnailFetcher } from "../fetchers/thumbnails/thumbnail_fetcher";
25
+ import SegmentSinksStore from "../segment_sinks";
26
+ import type { IAttachMediaSourceCoreMessagePayload, ICoreMessage } from "../types";
27
+ import { CoreMessageType } from "../types";
28
+ import CoreTextDisplayerInterface from "./core_text_displayer_interface";
29
+ import FreezeResolver from "./FreezeResolver";
37
30
  import TrackChoiceSetter from "./track_choice_setter";
38
- import WorkerTextDisplayerInterface from "./worker_text_displayer_interface";
31
+ import { formatErrorForSender } from "./utils";
39
32
 
40
33
  /** Function allowing to associate a unique identifier to all created `MediaSource` */
41
34
  const generateMediaSourceId = idGenerator();
@@ -111,8 +104,11 @@ export default class ContentPreparer {
111
104
  * @returns {Promise.<Object>}
112
105
  */
113
106
  public initializeNewContent(
107
+ sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void,
114
108
  context: IContentInitializationData,
115
- ): Promise<IManifestMetadata> {
109
+ /** Allows to filter which Representations can be choosen. */
110
+ throttlers: IRepresentationEstimatorThrottlers,
111
+ ): Promise<IManifest> {
116
112
  return new Promise((res, rej) => {
117
113
  this.disposeCurrentContent();
118
114
  const contentCanceller = this._contentCanceller;
@@ -128,19 +124,25 @@ export default class ContentPreparer {
128
124
  transportOptions,
129
125
  useMseInWorker,
130
126
  enableRepresentationAvoidance,
127
+ transport,
131
128
  } = context;
132
129
  let manifest: IManifest | null = null;
133
130
 
134
- // TODO better way
135
- assert(
136
- features.transports.dash !== undefined,
137
- "Multithread RxPlayer should have access to the DASH feature",
138
- );
131
+ const transportFn = features.transports[transport];
132
+ if (typeof transportFn !== "function") {
133
+ rej(
134
+ new Error(
135
+ `transport "${transport}" not supported. ` +
136
+ "Did you add the corresponding feature?",
137
+ ),
138
+ );
139
+ return;
140
+ }
139
141
  const representationFilter =
140
142
  typeof transportOptions.representationFilter === "string"
141
143
  ? createRepresentationFilterFromFnString(transportOptions.representationFilter)
142
- : undefined;
143
- const dashPipelines = features.transports.dash({
144
+ : transportOptions.representationFilter;
145
+ const transportPipelines = transportFn({
144
146
  ...transportOptions,
145
147
  representationFilter,
146
148
  });
@@ -149,7 +151,7 @@ export default class ContentPreparer {
149
151
  context.cmcd === undefined ? null : new CmcdDataBuilder(context.cmcd);
150
152
  const manifestFetcher = new ManifestFetcher(
151
153
  url === undefined ? undefined : [url],
152
- dashPipelines,
154
+ transportPipelines,
153
155
  {
154
156
  cmcdDataBuilder,
155
157
  ...context.manifestRetryOptions,
@@ -161,10 +163,7 @@ export default class ContentPreparer {
161
163
  video: context.initialVideoBitrate ?? 0,
162
164
  },
163
165
  lowLatencyMode: transportOptions.lowLatencyMode,
164
- throttlers: {
165
- limitResolution: { video: limitVideoResolution },
166
- throttleBitrate: { video: throttleVideoBitrate },
167
- },
166
+ throttlers,
168
167
  });
169
168
 
170
169
  const unbindRejectOnCancellation = currentMediaSourceCanceller.signal.register(
@@ -175,20 +174,21 @@ export default class ContentPreparer {
175
174
 
176
175
  const cdnPrioritizer = new CdnPrioritizer(contentCanceller.signal);
177
176
  const segmentQueueCreator = new SegmentQueueCreator(
178
- dashPipelines,
177
+ transportPipelines,
179
178
  cdnPrioritizer,
180
179
  cmcdDataBuilder,
181
180
  context.segmentRetryOptions,
182
181
  );
183
182
  const fetchThumbnailData = createThumbnailFetcher(
184
- dashPipelines.thumbnails,
183
+ transportPipelines.thumbnails,
185
184
  cdnPrioritizer,
186
185
  );
187
186
 
188
187
  const trackChoiceSetter = new TrackChoiceSetter();
189
188
 
190
- const [mediaSource, segmentSinksStore, workerTextSender] =
189
+ const [mediaSource, segmentSinksStore, coreTextSender] =
191
190
  createMediaSourceInterfaceAndSegmentSinksStore(
191
+ sendMessage,
192
192
  contentId,
193
193
  {
194
194
  useMseInWorker,
@@ -210,7 +210,7 @@ export default class ContentPreparer {
210
210
  segmentSinksStore,
211
211
  segmentQueueCreator,
212
212
  fetchThumbnailData,
213
- workerTextSender,
213
+ coreTextSender,
214
214
  trackChoiceSetter,
215
215
  useMseInWorker,
216
216
  };
@@ -229,7 +229,7 @@ export default class ContentPreparer {
229
229
  "warning",
230
230
  (err: IPlayerError) => {
231
231
  sendMessage({
232
- type: WorkerMessageType.Warning,
232
+ type: CoreMessageType.Warning,
233
233
  contentId,
234
234
  value: formatErrorForSender(err),
235
235
  });
@@ -255,7 +255,7 @@ export default class ContentPreparer {
255
255
  "error",
256
256
  (err: unknown) => {
257
257
  sendMessage({
258
- type: WorkerMessageType.Error,
258
+ type: CoreMessageType.Error,
259
259
  contentId,
260
260
  value: formatErrorForSender(err),
261
261
  });
@@ -274,7 +274,6 @@ export default class ContentPreparer {
274
274
  return;
275
275
  }
276
276
  updateCodecSupportInWorkerMode(manifest);
277
- const sentManifest = manifest.getMetadataSnapshot();
278
277
  manifest.addEventListener(
279
278
  "manifestUpdate",
280
279
  (updates) => {
@@ -282,22 +281,16 @@ export default class ContentPreparer {
282
281
  // TODO log warn?
283
282
  return;
284
283
  }
285
-
286
- // Remove `periods` key to reduce cost of an unnecessary manifest
287
- // clone.
288
- const snapshot = objectAssign(manifest.getMetadataSnapshot(), {
289
- periods: [],
290
- });
291
284
  sendMessage({
292
- type: WorkerMessageType.ManifestUpdate,
285
+ type: CoreMessageType.ManifestUpdate,
293
286
  contentId,
294
- value: { manifest: snapshot, updates },
287
+ value: { manifest, updates },
295
288
  });
296
289
  },
297
290
  contentCanceller.signal,
298
291
  );
299
292
  unbindRejectOnCancellation();
300
- res(sentManifest);
293
+ res(manifest);
301
294
  }
302
295
  });
303
296
  }
@@ -324,12 +317,17 @@ export default class ContentPreparer {
324
317
  }
325
318
 
326
319
  /**
327
- * Signal the ContentPreparer that the MediaSource is "reloading".
320
+ * Change the MediaSource attached for the current content.
321
+ * It is assumed that main thread is already notified that such a reload is
322
+ * happening.
328
323
  *
329
324
  * The returned Promise resolves when it restarts being ready.
325
+ * @param {Function} sendMessage
330
326
  * @returns {Promise}
331
327
  */
332
- public reloadMediaSource(): Promise<void> {
328
+ public reloadMediaSource(
329
+ sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void,
330
+ ): Promise<void> {
333
331
  this._currentMediaSourceCanceller.cancel();
334
332
  if (this._currentContent === null) {
335
333
  return Promise.reject(new Error("CP: No content anymore"));
@@ -337,20 +335,21 @@ export default class ContentPreparer {
337
335
  this._currentContent.trackChoiceSetter.reset();
338
336
  this._currentMediaSourceCanceller = new TaskCanceller();
339
337
 
340
- const [mediaSourceInterface, segmentSinksStore, workerTextSender] =
338
+ const [mediaSourceInterface, segmentSinksStore, coreTextSender] =
341
339
  createMediaSourceInterfaceAndSegmentSinksStore(
340
+ sendMessage,
342
341
  this._currentContent.contentId,
343
342
  {
344
343
  useMseInWorker: this._currentContent.useMseInWorker,
345
344
  hasVideo: this._hasVideo,
346
- hasText: this._currentContent.workerTextSender !== null,
345
+ hasText: this._currentContent.coreTextSender !== null,
347
346
  },
348
347
  this._currentMediaSourceCanceller.signal,
349
348
  );
350
349
  this._currentContent.mediaSource = mediaSourceInterface;
351
350
  this._currentContent.segmentSinksStore = segmentSinksStore;
352
351
  this._currentContent.freezeResolver = new FreezeResolver(segmentSinksStore);
353
- this._currentContent.workerTextSender = workerTextSender;
352
+ this._currentContent.coreTextSender = coreTextSender;
354
353
  return new Promise((res, rej) => {
355
354
  mediaSourceInterface.addEventListener(
356
355
  "mediaSourceOpen",
@@ -433,7 +432,7 @@ export interface IPreparedContentData {
433
432
  */
434
433
  segmentSinksStore: SegmentSinksStore;
435
434
  /** Allows to send timed text media data so it can be rendered. */
436
- workerTextSender: WorkerTextDisplayerInterface | null;
435
+ coreTextSender: CoreTextDisplayerInterface | null;
437
436
  /**
438
437
  * Allows to create `SegmentQueue` which simplifies complex media segment
439
438
  * fetching.
@@ -455,6 +454,7 @@ export interface IPreparedContentData {
455
454
  }
456
455
 
457
456
  /**
457
+ * @param {Function} sendMessage
458
458
  * @param {string} contentId
459
459
  * @param {Object} capabilities
460
460
  * @param {boolean} capabilities.useMseInWorker
@@ -464,6 +464,7 @@ export interface IPreparedContentData {
464
464
  * @returns {Array.<Object>}
465
465
  */
466
466
  function createMediaSourceInterfaceAndSegmentSinksStore(
467
+ sendMessage: (msg: ICoreMessage, transferables?: Transferable[]) => void,
467
468
  contentId: string,
468
469
  capabilities: {
469
470
  useMseInWorker: boolean;
@@ -471,13 +472,13 @@ function createMediaSourceInterfaceAndSegmentSinksStore(
471
472
  hasText: boolean;
472
473
  },
473
474
  cancelSignal: CancellationSignal,
474
- ): [IMediaSourceInterface, SegmentSinksStore, WorkerTextDisplayerInterface | null] {
475
+ ): [IMediaSourceInterface, SegmentSinksStore, CoreTextDisplayerInterface | null] {
475
476
  let mediaSourceInterface: IMediaSourceInterface;
476
477
  if (capabilities.useMseInWorker) {
477
478
  const mainMediaSource = new MainMediaSourceInterface(generateMediaSourceId());
478
479
  mediaSourceInterface = mainMediaSource;
479
480
 
480
- let sentMediaSourceLink: IAttachMediaSourceWorkerMessagePayload;
481
+ let sentMediaSourceLink: IAttachMediaSourceCoreMessagePayload;
481
482
  const handle = mainMediaSource.handle;
482
483
  if (handle.type === "handle") {
483
484
  sentMediaSourceLink = { type: "handle" as const, value: handle.value };
@@ -491,7 +492,7 @@ function createMediaSourceInterfaceAndSegmentSinksStore(
491
492
 
492
493
  sendMessage(
493
494
  {
494
- type: WorkerMessageType.AttachMediaSource,
495
+ type: CoreMessageType.AttachMediaSource,
495
496
  contentId,
496
497
  value: sentMediaSourceLink,
497
498
  mediaSourceId: mediaSourceInterface.id,
@@ -507,7 +508,7 @@ function createMediaSourceInterfaceAndSegmentSinksStore(
507
508
  }
508
509
 
509
510
  const textSender = capabilities.hasText
510
- ? new WorkerTextDisplayerInterface(contentId, sendMessage)
511
+ ? new CoreTextDisplayerInterface(contentId, sendMessage)
511
512
  : null;
512
513
  const { hasVideo } = capabilities;
513
514
  const segmentSinksStore = new SegmentSinksStore(
@@ -17,21 +17,21 @@
17
17
  import type {
18
18
  IStreamOrchestratorPlaybackObservation,
19
19
  IBufferType,
20
- } from "../../../core/types";
21
- import { MediaError } from "../../../errors";
20
+ } from "../../core/types";
21
+ import { MediaError } from "../../errors";
22
22
  import type {
23
23
  IManifest,
24
24
  IAdaptation,
25
25
  IRepresentationIndex,
26
26
  IPeriod,
27
- } from "../../../manifest";
28
- import type { IReadOnlyPlaybackObserver } from "../../../playback_observer";
29
- import type { IPlayerError } from "../../../public_types";
30
- import EventEmitter from "../../../utils/event_emitter";
31
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
32
- import queueMicrotask from "../../../utils/queue_microtask";
33
- import SortedList from "../../../utils/sorted_list";
34
- import TaskCanceller from "../../../utils/task_canceller";
27
+ } from "../../manifest";
28
+ import type { IReadOnlyPlaybackObserver } from "../../playback_observer";
29
+ import type { IPlayerError } from "../../public_types";
30
+ import EventEmitter from "../../utils/event_emitter";
31
+ import isNullOrUndefined from "../../utils/is_null_or_undefined";
32
+ import queueMicrotask from "../../utils/queue_microtask";
33
+ import SortedList from "../../utils/sorted_list";
34
+ import TaskCanceller from "../../utils/task_canceller";
35
35
 
36
36
  /**
37
37
  * Observes what's being played and take care of media events relating to time