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
package/src/core/types.ts CHANGED
@@ -1,8 +1,26 @@
1
+ // NOTE: Only types and const enums should be exported by this file
2
+
3
+ import type {
4
+ ISerializedMediaError,
5
+ ISerializedNetworkError,
6
+ ISerializedEncryptedMediaError,
7
+ ISerializedOtherError,
8
+ } from "../errors";
9
+ import type { IContentProtection, ITextDisplayerData } from "../main_thread/types";
10
+ import type { IManifestMetadata, IPeriodsUpdateResult } from "../manifest";
11
+ import type {
12
+ ISourceBufferInterfaceAppendBufferParameters,
13
+ SourceBufferType,
14
+ } from "../mse";
15
+ import type { ITrackType } from "../public_types";
16
+ import type { IThumbnailResponse } from "../transports";
17
+ import type { ILoggerLevel, ILogNamespace } from "../utils/logger";
1
18
  import type {
2
19
  IAdaptiveRepresentationSelectorArguments,
3
20
  IABRThrottlers,
4
21
  IResolutionInfo,
5
22
  } from "./adaptive";
23
+ import type { IMessageReceiverCallback } from "./entry";
6
24
  import type {
7
25
  IManifestFetcherSettings,
8
26
  ISegmentQueueCreatorBackoffOptions,
@@ -13,6 +31,7 @@ import type {
13
31
  ITextDisplayerInterface,
14
32
  } from "./segment_sinks";
15
33
  import type SegmentSinksStore from "./segment_sinks";
34
+ import type { ISegmentSinkMetrics } from "./segment_sinks/segment_sinks_store";
16
35
  import type {
17
36
  IAdaptationChoice,
18
37
  IPausedPlaybackObservation,
@@ -22,9 +41,6 @@ import type {
22
41
  ITrackSwitchingMode,
23
42
  } from "./stream";
24
43
 
25
- // NOTE: Only types should be exported by this file: Importing it should
26
- // not increase a JavaScript bundle's size
27
-
28
44
  /** Type of an `SegmentSinksStore` class. */
29
45
  export type ISegmentSinksStore = SegmentSinksStore;
30
46
 
@@ -33,6 +49,7 @@ export type {
33
49
  IAdaptiveRepresentationSelectorArguments,
34
50
  IABRThrottlers,
35
51
  IResolutionInfo,
52
+
36
53
  // Fetchers Metadata
37
54
  IManifestFetcherSettings,
38
55
  ISegmentQueueCreatorBackoffOptions,
@@ -41,6 +58,7 @@ export type {
41
58
  IBufferType,
42
59
  IBufferedChunk,
43
60
  ITextDisplayerInterface,
61
+
44
62
  // Stream Metadata
45
63
  IAdaptationChoice,
46
64
  IInbandEvent,
@@ -48,4 +66,614 @@ export type {
48
66
  IStreamOrchestratorPlaybackObservation,
49
67
  IRepresentationsChoice,
50
68
  ITrackSwitchingMode,
69
+
70
+ // CoreEntry
71
+ IMessageReceiverCallback,
51
72
  };
73
+
74
+ /**
75
+ * Format of an RxPlayer error that has been serialized to be able to be
76
+ * easily cloned and be communicated through the `postMessage` API if
77
+ * needed.
78
+ */
79
+ export type ISentError =
80
+ | ISerializedNetworkError
81
+ | ISerializedMediaError
82
+ | ISerializedEncryptedMediaError
83
+ | ISerializedOtherError;
84
+
85
+ /**
86
+ * Message sent by the Core when its initialization finished succesfully.
87
+ *
88
+ * Once that message has been received, you can ensure that no
89
+ * `IInitErrorCoreMessage` will ever be received for that same core instance.
90
+ *
91
+ * Note that receiving this message is not a requirement before preparing and
92
+ * loading a content, both initialization and content loading can be started in
93
+ * parallel.
94
+ */
95
+ export interface IInitSuccessCoreMessage {
96
+ type: CoreMessageType.InitSuccess;
97
+ value: null;
98
+ }
99
+
100
+ /**
101
+ * Message sent by the Core when its initialization finished with an error.
102
+ *
103
+ * Once that message has been received, you can ensure that no
104
+ * `IInitErrorCoreMessage` will ever be received for the same core instance.
105
+ *
106
+ * Note that you may received this message while preparing and/or loading a
107
+ * content, both initialization and content loading can be started in
108
+ * parallel.
109
+ * As such, this message may be coupled with a content error.
110
+ */
111
+ export interface IInitErrorCoreMessage {
112
+ type: CoreMessageType.InitError;
113
+ value: {
114
+ /** A string describing the error encountered. */
115
+ errorMessage: string;
116
+
117
+ kind: "dashWasmInitialization";
118
+ };
119
+ }
120
+
121
+ /**
122
+ * Message sent by the Core when it want the low-level buffers to be "flushed".
123
+ *
124
+ * A "flush" is an operation which tries to "refresh" the content of low-level
125
+ * media buffers, either to ensure an update to it has been taken into account
126
+ * or to fix a problematic situation.
127
+ *
128
+ * NOTE: This message should not be sent if you want to flush the buffer due to
129
+ * a new decipherability context (e.g. pushed data just became un-decipherable).
130
+ * For that special situation, a specific message,
131
+ * `INeedsDecipherabilityFlushCoreMessage` should be relied on instead.
132
+ *
133
+ * This is most often done via a very small seek.
134
+ */
135
+ export interface INeedsBufferFlushCoreMessage {
136
+ /** Identify an `INeedsBufferFlushCoreMessage`. */
137
+ type: CoreMessageType.NeedsBufferFlush;
138
+ /** The `contentId` linked to the content that has asked for this flush. */
139
+ contentId: string;
140
+ value:
141
+ | {
142
+ /**
143
+ * The position, relative to the current one in seconds, we should
144
+ * restart playback from after the flush.
145
+ * If set to `0`, we should keep the exact same position. If set to `1`,
146
+ * we should restart playback one second later etc.
147
+ */
148
+ relativeResumingPosition: number;
149
+ /**
150
+ * If `true`, `relativeResumingPosition` is just a default value
151
+ * proposed as an hint by default by the RxPlayer and can be ignored if
152
+ * not practical in the current context.
153
+ *
154
+ * If `false`, the `relativeResumingPosition` has been explicitly set
155
+ * and should thus be respected.
156
+ */
157
+ relativePosHasBeenDefaulted: boolean;
158
+ }
159
+ | undefined;
160
+ }
161
+
162
+ /**
163
+ * Message sent by the Core when an Error that did not interrupt playback just
164
+ * arised.
165
+ *
166
+ * This can for example be minor request errors.
167
+ */
168
+ export interface IWarningCoreMessage {
169
+ /** Identify an `IWarningCoreMessage`. */
170
+ type: CoreMessageType.Warning;
171
+ /** Identifier of the content linked to that warning. */
172
+ contentId: string | undefined;
173
+ /** Serialized format for that error. */
174
+ value: ISentError;
175
+ }
176
+
177
+ /**
178
+ * Message sent by the Core when an Error that interrupted playback of the
179
+ * current content just happened.
180
+ *
181
+ * It should be assumed that the content is not playing anymore once this
182
+ * message has been sent.
183
+ */
184
+ export interface IErrorCoreMessage {
185
+ /** Identify an `IErrorCoreMessage`. */
186
+ type: CoreMessageType.Error;
187
+ /** Identifier of the content linked to that error. */
188
+ contentId: string | undefined;
189
+ /** Serialized format for that error. */
190
+ value: ISentError;
191
+ }
192
+
193
+ /**
194
+ * Message sent by the Core when it created the `MediaSource` itself and ask it
195
+ * to be attached by the main thread to the media element.
196
+ *
197
+ * This is one of the two ways a `MediaSource` can be created by the RxPlayer,
198
+ * the other one being through an `ICreateMediaSourceCoreMessage` (in which case
199
+ * the `MediaSource` would be created by `Main Thread`, not `Core`). Choosing
200
+ * one or the other depends on browser capabilities and settings.
201
+ *
202
+ * When an `IAttachMediaSourceCoreMessage` is sent, it is understood by the main
203
+ * thread that the role of managing the `MediaSource` itself is handled by the
204
+ * `Core` for the current content, and as such `Core` won't send any
205
+ * `IAddSourceBufferCoreMessage`, `IAppendBufferCoreMessage`,
206
+ * `IRemoveBufferCoreMessage`, `IAbortBufferCoreMessage`,
207
+ * `IUpdateMediaSourceDurationCoreMessage` and other such events that imply a
208
+ * side effect on `MediaSource`-linked API. All those actions should instead be
209
+ * taken by `Core` directly in this scenario.
210
+ */
211
+ export interface IAttachMediaSourceCoreMessage {
212
+ /** Identify an `IAttachMediaSourceCoreMessage`. */
213
+ type: CoreMessageType.AttachMediaSource;
214
+ /** The `contentId` linked to the current content. */
215
+ contentId: string | undefined;
216
+ /**
217
+ * A unique identifier linked to that `MediaSource`.
218
+ * Will be used to be able to ensure the right `MediaSource` is referred to
219
+ * in future messages.
220
+ */
221
+ mediaSourceId: string;
222
+ /** Information on the `MediaSource` to attach to the media element. */
223
+ value: IAttachMediaSourceCoreMessagePayload;
224
+ }
225
+
226
+ /** Payload sent alongside an `IAttachMediaSourceCoreMessage` */
227
+ export type IAttachMediaSourceCoreMessagePayload =
228
+ | {
229
+ /**
230
+ * Identifies a `MediaSource` of the type "handle", in which case the
231
+ * `MediaSource` can be linked to the media element as an object directly.
232
+ */
233
+ type: "handle";
234
+ /** The corresponding object that should be linked to the media element. */
235
+ value: MediaProvider;
236
+ }
237
+ | {
238
+ /**
239
+ * Identifies a `MediaSource` of the type "url", in which case the `value`
240
+ * will communicate an "object url" that has to be linked to the media
241
+ * element.
242
+ */
243
+ type: "url";
244
+ /** The object URL that refers to the created `MediaSource`. */
245
+ value: string;
246
+ };
247
+
248
+ export interface ICreateMediaSourceCoreMessage {
249
+ type: CoreMessageType.CreateMediaSource;
250
+ mediaSourceId: string;
251
+ contentId: string;
252
+ }
253
+
254
+ export interface IAddSourceBufferCoreMessage {
255
+ type: CoreMessageType.AddSourceBuffer;
256
+ mediaSourceId: string;
257
+ value: {
258
+ sourceBufferType: SourceBufferType;
259
+ codec: string;
260
+ };
261
+ }
262
+
263
+ export interface IAppendBufferCoreMessage {
264
+ type: CoreMessageType.SourceBufferAppend;
265
+ mediaSourceId: string;
266
+ sourceBufferType: SourceBufferType;
267
+ operationId: string;
268
+ value: {
269
+ data: BufferSource;
270
+ params: ISourceBufferInterfaceAppendBufferParameters;
271
+ };
272
+ }
273
+
274
+ export interface IRemoveBufferCoreMessage {
275
+ type: CoreMessageType.SourceBufferRemove;
276
+ mediaSourceId: string;
277
+ sourceBufferType: SourceBufferType;
278
+ operationId: string;
279
+ value: {
280
+ /** Start time we should remove data from, in seconds. */
281
+ start: number;
282
+ /** End time we should remove data at, in seconds. */
283
+ end: number;
284
+ };
285
+ }
286
+
287
+ export interface IAbortBufferCoreMessage {
288
+ type: CoreMessageType.AbortSourceBuffer;
289
+ mediaSourceId: string;
290
+ sourceBufferType: SourceBufferType;
291
+ value: null;
292
+ }
293
+
294
+ export interface IUpdateMediaSourceDurationCoreMessage {
295
+ type: CoreMessageType.UpdateMediaSourceDuration;
296
+ mediaSourceId: string;
297
+ value: {
298
+ duration: number;
299
+ isRealEndKnown: boolean;
300
+ };
301
+ }
302
+
303
+ export interface IInterruptMediaSourceDurationCoreMessage {
304
+ type: CoreMessageType.InterruptMediaSourceDurationUpdate;
305
+ mediaSourceId: string;
306
+ value: null;
307
+ }
308
+
309
+ export interface IEndOfStreamCoreMessage {
310
+ type: CoreMessageType.EndOfStream;
311
+ mediaSourceId: string;
312
+ value: null;
313
+ }
314
+
315
+ export interface IStopEndOfStreamCoreMessage {
316
+ type: CoreMessageType.InterruptEndOfStream;
317
+ mediaSourceId: string;
318
+ value: null;
319
+ }
320
+
321
+ export interface IDisposeMediaSourceCoreMessage {
322
+ type: CoreMessageType.DisposeMediaSource;
323
+ mediaSourceId: string;
324
+ value: null;
325
+ }
326
+
327
+ export interface IActivePeriodChangedCoreMessage {
328
+ type: CoreMessageType.ActivePeriodChanged;
329
+ contentId: string;
330
+ value: {
331
+ periodId: string;
332
+ };
333
+ }
334
+
335
+ export interface IAdaptationChangeCoreMessage {
336
+ type: CoreMessageType.AdaptationChanged;
337
+ contentId: string;
338
+ value: {
339
+ adaptationId: string | null;
340
+ periodId: string;
341
+ type: ITrackType;
342
+ };
343
+ }
344
+
345
+ export interface IRepresentationChangeCoreMessage {
346
+ type: CoreMessageType.RepresentationChanged;
347
+ contentId: string;
348
+ value: {
349
+ adaptationId: string;
350
+ representationId: string | null;
351
+ periodId: string;
352
+ type: ITrackType;
353
+ };
354
+ }
355
+
356
+ /** Message sent by the Core when the Manifest is first loaded. */
357
+ export interface IManifestReadyCoreMessage {
358
+ /** Identify this particular message. */
359
+ type: CoreMessageType.ManifestReady;
360
+ /** The `contentId` linked to this Manifest. */
361
+ contentId: string;
362
+ value: {
363
+ /**
364
+ * The actual `Manifest` loaded.
365
+ *
366
+ * When possible, this should be a `Manifest` instance.
367
+ *
368
+ * Only if this is not possible (e.g. because the `Manifest` cannot be
369
+ * communicated as is between both core and main_thread) might you convert
370
+ * it to another object also respecting the `IManifestMetadata` interface.
371
+ *
372
+ * However doing this might lead to some loss of performance and minor
373
+ * features.
374
+ */
375
+ manifest: IManifestMetadata;
376
+ };
377
+ }
378
+
379
+ /** Message sent by the Core everytime the Manifest is updated. */
380
+ export interface IManifestUpdateCoreMessage {
381
+ /** Identify this particular message. */
382
+ type: CoreMessageType.ManifestUpdate;
383
+ /** The `contentId` linked to this Manifest. */
384
+ contentId: string | undefined;
385
+ value: {
386
+ /**
387
+ * The new manifest once updated.
388
+ *
389
+ * When possible, this should be a `Manifest` instance to improve
390
+ * performance and allow some advanced features.
391
+ *
392
+ * Only if this is not possible (e.g. because the `Manifest` cannot be
393
+ * communicated as is between both core and main_thread) might you convert
394
+ * it to another object also respecting the `IManifestMetadata` interface.
395
+ * In that last case, you're also authorized to reset the `periods` property
396
+ * of that `IManifestMetadata` to an empty array to save up message-passing
397
+ * performance.
398
+ */
399
+ manifest: IManifestMetadata;
400
+ /**
401
+ * Object describing what has changed in this update.
402
+ */
403
+ updates: IPeriodsUpdateResult;
404
+ };
405
+ }
406
+
407
+ export interface IEncryptionDataEncounteredCoreMessage {
408
+ type: CoreMessageType.EncryptionDataEncountered;
409
+ contentId: string | undefined;
410
+ value: IContentProtection;
411
+ }
412
+
413
+ export interface IUpdatePlaybackRateCoreMessage {
414
+ type: CoreMessageType.UpdatePlaybackRate;
415
+ contentId: string | undefined;
416
+ value: number;
417
+ }
418
+
419
+ export interface IReloadingMediaSourceCoreMessage {
420
+ type: CoreMessageType.ReloadingMediaSource;
421
+ /** Identify the MediaSource concerned by this message. */
422
+ mediaSourceId: string;
423
+ value: {
424
+ timeOffset: number;
425
+ minimumPosition?: number | undefined;
426
+ maximumPosition?: number | undefined;
427
+ };
428
+ }
429
+
430
+ /**
431
+ * Message sent by the Core when it want the low-level buffers to be "flushed"
432
+ * with the important caveat that this is linked to a change in decipherability
433
+ * matters (e.g. content just became un-decipherable).
434
+ *
435
+ * A "flush" is an operation which tries to "refresh" the content of low-level
436
+ * media buffers, either to ensure an update to it has been taken into account
437
+ * or to fix a problematic situation.
438
+ *
439
+ * Flush asked in this scenario may lead to aggressive strategies such as
440
+ * switching the `MediaSource` - as the less disruptive scenarios (seeking,
441
+ * play/pause etc.) are often not enough when decipherability is involved.
442
+ *
443
+ * In any case, the `Core` shouldn't care what strategy is chosen to flush. The
444
+ * usual main thread's messages will be enough to handle any scenario without any
445
+ * special effort from Core.
446
+ */
447
+ export interface INeedsDecipherabilityFlushCoreMessage {
448
+ /** Identify an `INeedsDecipherabilityFlushCoreMessage`. */
449
+ type: CoreMessageType.NeedsDecipherabilityFlush;
450
+ /** The `contentId` linked to the content that has asked for this flush. */
451
+ contentId: string;
452
+ value: null;
453
+ }
454
+
455
+ export interface ILockedStreamCoreMessage {
456
+ type: CoreMessageType.LockedStream;
457
+ contentId: string;
458
+ value: {
459
+ /** Period concerned. */
460
+ periodId: string;
461
+ /** Buffer type concerned. */
462
+ bufferType: ITrackType;
463
+ };
464
+ }
465
+
466
+ export interface IBitrateEstimateChangeCoreMessage {
467
+ type: CoreMessageType.BitrateEstimateChange;
468
+ contentId: string;
469
+ value: {
470
+ bitrate: number | undefined;
471
+ bufferType: ITrackType;
472
+ };
473
+ }
474
+
475
+ export interface IInbandEventCoreMessage {
476
+ type: CoreMessageType.InbandEvent;
477
+ contentId: string;
478
+ value: IInbandEvent[];
479
+ }
480
+
481
+ export interface IPeriodStreamReadyCoreMessage {
482
+ type: CoreMessageType.PeriodStreamReady;
483
+ contentId: string;
484
+ value: {
485
+ /** Period concerned. */
486
+ periodId: string;
487
+ /** Buffer type concerned. */
488
+ bufferType: ITrackType;
489
+ };
490
+ }
491
+
492
+ export interface IPeriodStreamClearedCoreMessage {
493
+ type: CoreMessageType.PeriodStreamCleared;
494
+ contentId: string;
495
+ value: {
496
+ /** `id` of the Period concerned. */
497
+ periodId: string;
498
+ /** Buffer type concerned. */
499
+ bufferType: ITrackType;
500
+ };
501
+ }
502
+
503
+ export interface IPushTextDataCoreMessage {
504
+ type: CoreMessageType.PushTextData;
505
+ contentId: string;
506
+ value: ITextDisplayerData;
507
+ }
508
+
509
+ export interface IRemoveTextDataCoreMessage {
510
+ type: CoreMessageType.RemoveTextData;
511
+ contentId: string;
512
+ value: {
513
+ start: number;
514
+ end: number;
515
+ };
516
+ }
517
+
518
+ export interface IStopTextDisplayerCoreMessage {
519
+ type: CoreMessageType.StopTextDisplayer;
520
+ contentId: string;
521
+ value: null;
522
+ }
523
+
524
+ export interface IResetTextDisplayerCoreMessage {
525
+ type: CoreMessageType.ResetTextDisplayer;
526
+ contentId: string;
527
+ value: null;
528
+ }
529
+
530
+ type ISentLogValueBase = boolean | string | number | null | undefined;
531
+
532
+ export type ISentLogValue =
533
+ | ISentLogValueBase
534
+ | ISentError
535
+ | Partial<Record<string, ISentLogValueBase>>;
536
+
537
+ export interface ILogMessageCoreMessage {
538
+ type: CoreMessageType.LogMessage;
539
+ value: {
540
+ namespace: ILogNamespace;
541
+ logLevel: ILoggerLevel;
542
+ logs: ISentLogValue[];
543
+ };
544
+ }
545
+
546
+ export interface IDiscontinuityUpdateCoreMessage {
547
+ type: CoreMessageType.DiscontinuityUpdate;
548
+ contentId: string;
549
+ value: IDiscontinuityUpdateCoreMessagePayload;
550
+ }
551
+
552
+ export interface IDiscontinuityUpdateCoreMessagePayload {
553
+ periodId: string;
554
+ bufferType: ITrackType;
555
+ discontinuity: IDiscontinuityTimeInfo | null;
556
+ position: number;
557
+ }
558
+
559
+ /** Information on a found discontinuity. */
560
+ export interface IDiscontinuityTimeInfo {
561
+ /**
562
+ * Start time of the discontinuity.
563
+ * `undefined` for when the start is unknown but the discontinuity was
564
+ * currently encountered at the position we were in when this event was
565
+ * created.
566
+ */
567
+ start: number | undefined;
568
+ /**
569
+ * End time of the discontinuity, in seconds.
570
+ * If `null`, no further segment can be loaded for the corresponding Period.
571
+ */
572
+ end: number | null;
573
+ }
574
+
575
+ export interface ISegmentSinkStoreUpdateMessage {
576
+ type: CoreMessageType.SegmentSinkStoreUpdate;
577
+ contentId: string;
578
+ value: {
579
+ segmentSinkMetrics: ISegmentSinkMetrics;
580
+ requestId: number;
581
+ };
582
+ }
583
+
584
+ export interface IThumbnailDataResponseCoreMessage {
585
+ type: CoreMessageType.ThumbnailDataResponse;
586
+ contentId: string;
587
+ value:
588
+ | {
589
+ status: "error";
590
+ requestId: number;
591
+ error: ISentError;
592
+ }
593
+ | {
594
+ status: "success";
595
+ requestId: number;
596
+ data: IThumbnailResponse;
597
+ };
598
+ }
599
+
600
+ export const enum CoreMessageType {
601
+ AbortSourceBuffer = "abort-source-buffer",
602
+ ActivePeriodChanged = "active-period-changed",
603
+ AdaptationChanged = "adaptation-changed",
604
+ AddSourceBuffer = "add-source-buffer",
605
+ AttachMediaSource = "attach-media-source",
606
+ BitrateEstimateChange = "bitrate-estimate-change",
607
+ CreateMediaSource = "create-media-source",
608
+ DiscontinuityUpdate = "discontinuity-update",
609
+ DisposeMediaSource = "dispose-media-source",
610
+ EncryptionDataEncountered = "encryption-data-encountered",
611
+ EndOfStream = "end-of-stream",
612
+ Error = "error",
613
+ InbandEvent = "inband-event",
614
+ InitError = "init-error",
615
+ InitSuccess = "init-success",
616
+ InterruptEndOfStream = "stop-end-of-stream",
617
+ InterruptMediaSourceDurationUpdate = "stop-media-source-duration",
618
+ LockedStream = "locked-stream",
619
+ LogMessage = "log",
620
+ ManifestReady = "manifest-ready",
621
+ ManifestUpdate = "manifest-update",
622
+ NeedsBufferFlush = "needs-buffer-flush",
623
+ NeedsDecipherabilityFlush = "needs-decipherability-flush",
624
+ PeriodStreamCleared = "period-stream-cleared",
625
+ PeriodStreamReady = "period-stream-ready",
626
+ PushTextData = "push-text-data",
627
+ ReloadingMediaSource = "reloading-media-source",
628
+ RemoveTextData = "remove-text-data",
629
+ RepresentationChanged = "representation-changed",
630
+ ResetTextDisplayer = "reset-text-displayer",
631
+ SourceBufferAppend = "source-buffer-append",
632
+ SourceBufferRemove = "source-buffer-remove",
633
+ StopTextDisplayer = "stop-text-displayer",
634
+ UpdateMediaSourceDuration = "update-media-source-duration",
635
+ UpdatePlaybackRate = "update-playback-rate",
636
+ Warning = "warning",
637
+ SegmentSinkStoreUpdate = "segment-sink-store-update",
638
+ ThumbnailDataResponse = "thumbnail-response",
639
+ }
640
+
641
+ export type ICoreMessage =
642
+ | IAbortBufferCoreMessage
643
+ | IActivePeriodChangedCoreMessage
644
+ | IAdaptationChangeCoreMessage
645
+ | IAddSourceBufferCoreMessage
646
+ | IPushTextDataCoreMessage
647
+ | IAppendBufferCoreMessage
648
+ | IAttachMediaSourceCoreMessage
649
+ | IBitrateEstimateChangeCoreMessage
650
+ | ICreateMediaSourceCoreMessage
651
+ | IDiscontinuityUpdateCoreMessage
652
+ | IDisposeMediaSourceCoreMessage
653
+ | IEncryptionDataEncounteredCoreMessage
654
+ | IEndOfStreamCoreMessage
655
+ | IErrorCoreMessage
656
+ | IInbandEventCoreMessage
657
+ | IInitSuccessCoreMessage
658
+ | IInitErrorCoreMessage
659
+ | IInterruptMediaSourceDurationCoreMessage
660
+ | ILockedStreamCoreMessage
661
+ | ILogMessageCoreMessage
662
+ | IManifestReadyCoreMessage
663
+ | IManifestUpdateCoreMessage
664
+ | INeedsBufferFlushCoreMessage
665
+ | INeedsDecipherabilityFlushCoreMessage
666
+ | IPeriodStreamClearedCoreMessage
667
+ | IPeriodStreamReadyCoreMessage
668
+ | IReloadingMediaSourceCoreMessage
669
+ | IRemoveBufferCoreMessage
670
+ | IRemoveTextDataCoreMessage
671
+ | IRepresentationChangeCoreMessage
672
+ | IResetTextDisplayerCoreMessage
673
+ | IStopEndOfStreamCoreMessage
674
+ | IStopTextDisplayerCoreMessage
675
+ | IUpdateMediaSourceDurationCoreMessage
676
+ | IUpdatePlaybackRateCoreMessage
677
+ | IWarningCoreMessage
678
+ | ISegmentSinkStoreUpdateMessage
679
+ | IThumbnailDataResponseCoreMessage;
@@ -1,5 +1,7 @@
1
1
  import { describe, it, expect } from "vitest";
2
+ import initializeCoreEntry from "../../../core/entry";
2
3
  import type { IFeaturesObject } from "../../../features/types";
4
+ import { MonoThreadCoreInterface } from "../../../main_thread/core_interface/monothread";
3
5
  import MediaSourceContentInitializer from "../../../main_thread/init/media_source_content_initializer";
4
6
  import local from "../../../transports/local";
5
7
  import addLocalManifestFeature from "../local";
@@ -10,9 +12,16 @@ describe("Features list - LOCAL_MANIFEST", () => {
10
12
  addLocalManifestFeature(featureObject);
11
13
  expect(featureObject).toEqual({
12
14
  transports: { local },
13
- mainThreadMediaSourceInit: MediaSourceContentInitializer,
15
+ monothread: {
16
+ init: MediaSourceContentInitializer,
17
+ coreInterface: MonoThreadCoreInterface,
18
+ initializeCoreEntry,
19
+ },
14
20
  });
15
21
  expect(featureObject.transports.local).toBe(local);
16
- expect(featureObject.mainThreadMediaSourceInit).toBe(MediaSourceContentInitializer);
22
+ expect(featureObject.monothread).not.toBe(null);
23
+ expect(featureObject.monothread?.init).toBe(MediaSourceContentInitializer);
24
+ expect(featureObject.monothread?.coreInterface).toBe(MonoThreadCoreInterface);
25
+ expect(featureObject.monothread?.initializeCoreEntry).toBe(initializeCoreEntry);
17
26
  });
18
27
  });