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,1095 +0,0 @@
1
- /**
2
- * This file regroups TypeScript types and enums only needed when running the
3
- * RxPlayer in a
4
- * multithread situation.
5
- */
6
-
7
- import type { ISegmentSinkMetrics } from "./core/segment_sinks/segment_sinks_store";
8
- import type {
9
- IResolutionInfo,
10
- IManifestFetcherSettings,
11
- ISegmentQueueCreatorBackoffOptions,
12
- IInbandEvent,
13
- IPausedPlaybackObservation,
14
- IRepresentationsChoice,
15
- ITrackSwitchingMode,
16
- } from "./core/types";
17
- import type { IDefaultConfig } from "./default_config";
18
- import type {
19
- ISerializedMediaError,
20
- ISerializedNetworkError,
21
- ISerializedEncryptedMediaError,
22
- ISerializedOtherError,
23
- } from "./errors";
24
- import type { ISerializedSourceBufferError } from "./errors/source_buffer_error";
25
- import type { IContentProtection, ITextDisplayerData } from "./main_thread/types";
26
- import type { IManifestMetadata, IPeriodsUpdateResult } from "./manifest";
27
- import type {
28
- ISourceBufferInterfaceAppendBufferParameters,
29
- SourceBufferType,
30
- } from "./mse";
31
- import type { IFreezingStatus, IRebufferingStatus } from "./playback_observer";
32
- import type { ICmcdOptions, ITrackType } from "./public_types";
33
- import type { IThumbnailResponse, ITransportOptions } from "./transports";
34
- import type { ILogFormat, ILoggerLevel, ILogNamespace } from "./utils/logger";
35
- import type { IRange } from "./utils/ranges";
36
-
37
- /**
38
- * First message sent by the main thread to the WebWorker.
39
- * A WebWorker should only receive one `IInitMessage` at most and it should be
40
- * always the first message received.
41
- *
42
- * Allows for WebWorker initialization.
43
- */
44
- export interface IInitMessage {
45
- type: MainThreadMessageType.Init;
46
- value: {
47
- /** Link to the DASH_WASM's feature WebAssembly file to parse DASH MPDs. */
48
- dashWasmUrl: string | undefined;
49
- /**
50
- * If `true` the final element on the current page displaying the content
51
- * can display video content.
52
- *
53
- * If `false`, it cannot, but it can be assumed to be able to play audio
54
- * content.
55
- * An example where it would be set to `false` is for `HTMLAudioElement`
56
- * elements (`<audio>` tags).
57
- */
58
- hasVideo: boolean;
59
- /** Initial logging level that should be set. */
60
- logLevel: ILoggerLevel;
61
- /** Intitial logger's log format that should be set. */
62
- logFormat: ILogFormat;
63
- /**
64
- * If `true`, logs should be sent back to the main thread, through a
65
- * `ILogMessageWorkerMessage` message.
66
- */
67
- sendBackLogs: boolean;
68
- /**
69
- * Value of `Date.now()` at the time the `timestamp` property was generated.
70
- *
71
- * This is mostly useful for timestamp synchronization: by calling both
72
- * `performance.now` (the same call on the main thread made to calculate
73
- * `timestamp` - but which is not synchronized initially to the WebWorker's)
74
- * and `Date.now()` both on the main thread and on the WebWorker,
75
- * calculating the difference between the two and comparing both the main
76
- * thread's difference and the WebWorker's difference, you're able to
77
- * produce a relatively-synchronized timestamp between the two.
78
- */
79
- date: number;
80
- /**
81
- * Value returned by `performance.now()` at the same time `date` was
82
- * calculated.
83
- *
84
- * Allows for timestamp synchronization.
85
- * @see date property.
86
- */
87
- timestamp: number;
88
- };
89
- }
90
-
91
- /** Options needed when initializing a new content. */
92
- export interface IContentInitializationData {
93
- /**
94
- * Identifier uniquely identifying a specific content.
95
- *
96
- * Protects against all kind of race conditions or asynchronous issues.
97
- */
98
- contentId: string;
99
- /**
100
- * When set to an object, enable "Common Media Client Data", or "CMCD".
101
- */
102
- cmcd?: ICmcdOptions | undefined;
103
- /**
104
- * If `true`, the RxPlayer can enable its "Representation avoidance"
105
- * mechanism, where it avoid loading Representation that it suspect
106
- * have issues being decoded on the current device.
107
- */
108
- enableRepresentationAvoidance: boolean;
109
- /**
110
- * URL at which the content's Manifest is accessible.
111
- * `undefined` if unknown.
112
- */
113
- url?: string | undefined;
114
- /** If `true`, text buffer (e.g. for subtitles) is enabled. */
115
- hasText: boolean;
116
- /**
117
- * Options relative to the streaming protocol.
118
- *
119
- * Options not yet supported in a WebWorker environment are omitted.
120
- */
121
- transportOptions: Omit<
122
- ITransportOptions,
123
- "manifestLoader" | "segmentLoader" | "representationFilter"
124
- > & {
125
- // Unsupported features have to be disabled explicitely
126
- // TODO support them
127
- manifestLoader: undefined;
128
- segmentLoader: undefined;
129
-
130
- // Option which has to be set as a Funtion string to work.
131
- representationFilter: string | undefined;
132
- };
133
- /** Initial video bitrate on which the adaptive logic will base itself. */
134
- initialVideoBitrate?: number | undefined;
135
- /** Initial audio bitrate on which the adaptive logic will base itself. */
136
- initialAudioBitrate?: number | undefined;
137
- /**
138
- * Options relative to the fetching and refreshing of the Manifest.
139
- */
140
- manifestRetryOptions: Omit<IManifestFetcherSettings, "cmcdDataBuilder">;
141
- /** Options relative to the fetching of media segments. */
142
- segmentRetryOptions: ISegmentQueueCreatorBackoffOptions;
143
- /**
144
- * If `true`, MSE API should be used in the core part of the RxPlayer (in the
145
- * WebWorker).
146
- * If `false`, they should be relied on on main thread.
147
- *
148
- * This might depend on both browser capabilities and preferences. It is
149
- * assumed that the caller perform all those checks, the core won't check
150
- * again the validity of this value.
151
- */
152
- useMseInWorker: boolean;
153
- }
154
-
155
- export interface ILogLevelUpdateMessage {
156
- type: MainThreadMessageType.LogLevelUpdate;
157
- value: {
158
- /** The new logger level that should be set. */
159
- logLevel: ILoggerLevel;
160
- /** Intitial logger's log format that should be set. */
161
- logFormat: ILogFormat;
162
- /**
163
- * If `true`, logs should be sent back to the main thread, through a
164
- * `ILogMessageWorkerMessage` message.
165
- */
166
- sendBackLogs: boolean;
167
- };
168
- }
169
-
170
- /** Message sent by the main thread to update the Worker's global config. */
171
- export interface IConfigUpdateMessage {
172
- type: MainThreadMessageType.ConfigUpdate;
173
- value: Partial<IDefaultConfig>;
174
- }
175
-
176
- /**
177
- * Message sent by the main thread when a new content should be "prepared".
178
- *
179
- * You can begin performing operarions which do not interrupt the previous
180
- * content, like fetching its Manifest.
181
- *
182
- * Note that on the receivings-side, you only need to prepare one content at
183
- * most. Meaning that if multiple `IPrepareContentMessage` arrive in a row, you
184
- * can stop the preparation of previous contents.
185
- */
186
- export interface IPrepareContentMessage {
187
- type: MainThreadMessageType.PrepareContent;
188
- value: IContentInitializationData;
189
- }
190
-
191
- /**
192
- * Message sent by the main thread to stop playback of the last prepared content
193
- * (through a `IPrepareContentMessage`) - if it was playing - and dispose all
194
- * associated resources.
195
- */
196
- export interface IStopContentMessage {
197
- type: MainThreadMessageType.StopContent;
198
- /**
199
- * Same `contentId` than for the corresponding `IPrepareContentMessage` message.
200
- *
201
- * Allows to ensure no race condition lead to actually stopping another content
202
- * than the one meant by the main thread.
203
- */
204
- contentId: string;
205
- value: null;
206
- }
207
-
208
- /**
209
- * Message sent by the main thread to start playback of the last prepared content
210
- * (through a `IPrepareContentMessage`).
211
- */
212
- export interface IStartPreparedContentMessage {
213
- type: MainThreadMessageType.StartPreparedContent;
214
- /**
215
- * Same `contentId` than for the corresponding `IPrepareContentMessage` message.
216
- *
217
- * Allows to ensure no race condition lead to starting another content than
218
- * the one meant by the main thread.
219
- */
220
- contentId: string;
221
- value: IStartPreparedContentMessageValue;
222
- }
223
-
224
- /** Options needed when starting a new content. */
225
- export interface IStartPreparedContentMessageValue {
226
- /** The start time at which we should play, in seconds. */
227
- initialTime: number;
228
- /** The current playback observation. */
229
- initialObservation: ISerializedPlaybackObservation;
230
- /**
231
- * Hex-encoded string identifying the key system used.
232
- * May be cross-referenced with the content's metadata when performing
233
- * optimizations.
234
- */
235
- drmSystemId: string | undefined;
236
- /**
237
- * Enable/Disable fastSwitching: allow to replace lower-quality segments by
238
- * higher-quality ones to have a faster transition.
239
- */
240
- enableFastSwitching: boolean;
241
- /** Behavior when a new video and/or audio codec is encountered. */
242
- onCodecSwitch: "continue" | "reload";
243
-
244
- // TODO prepare chosen Adaptations here?
245
- // In which case the Period's `id` should probably be given instead of the
246
- // `initialTime`
247
- }
248
-
249
- /**
250
- * Message sent by the main thread when it has updated its list of supported
251
- * codecs and has reasons to think that the WebWorker is not aware of it
252
- * (e.g. their support was not set in a Manifest).
253
- */
254
- export interface ICodecSupportUpdateMessage {
255
- type: MainThreadMessageType.CodecSupportUpdate;
256
- value: ICodecSupportInfo[];
257
- }
258
-
259
- export interface ICodecSupportInfo {
260
- mimeType: string;
261
- codec: string;
262
- supported?: boolean | undefined;
263
- supportedIfEncrypted?: boolean | undefined;
264
- }
265
-
266
- /**
267
- * Message sent by the main thread to the WebWorker regularly after an
268
- * `IPrepareContentMessage` to provide various media-related metadata
269
- * only obtainable on the main thread.
270
- *
271
- * Those messages are sent until the `IStopContentMessage` for that same
272
- * `contentId`.
273
- */
274
- export interface IPlaybackObservationMessage {
275
- type: MainThreadMessageType.PlaybackObservation;
276
- /**
277
- * Same `contentId` than for the corresponding `IPrepareContentMessage` message.
278
- * Allows to prevent race conditions.
279
- */
280
- contentId: string;
281
- /** The media-related metadata that has just been observed now. */
282
- value: ISerializedPlaybackObservation;
283
- }
284
-
285
- /**
286
- * Message sent by the main thread when at least one of the `Representation` of
287
- * the current content just had a change of decipherability status.
288
- *
289
- * That is if one of the Representation either:
290
- * - became undecipherable
291
- * - became decipherable
292
- * - had its decipherability status transition from being known to unknown
293
- */
294
- export interface IDecipherabilityStatusChangedMessage {
295
- type: MainThreadMessageType.DecipherabilityStatusUpdate;
296
- /**
297
- * Same `contentId` than for the corresponding `IPrepareContentMessage` message.
298
- * Allows to prevent race conditions.
299
- */
300
- contentId: string;
301
- /** List of the `Representation` which had their decipherability status updated. */
302
- value: IDecipherabilityStatusChangedPayload[];
303
- }
304
-
305
- /** Object describing the new decipherability status of a `Representation`. */
306
- export interface IDecipherabilityStatusChangedPayload {
307
- /** `uniqueId` for the concerned `Representation`. */
308
- representationUniqueId: string;
309
- /**
310
- * If set to `true`, the `Representation` became decipherable.
311
- *
312
- * If set to `false`, the `Representation` became undecipherable.
313
- *
314
- * If set to `undefined`, the `Representation`'s decipherability status became
315
- * unknown.
316
- */
317
- decipherable: boolean | undefined;
318
- }
319
-
320
- /** Message allowing to update the URL of the content being played. */
321
- export interface IUpdateContentUrlsMessage {
322
- type: MainThreadMessageType.ContentUrlsUpdate;
323
- /**
324
- * Same `contentId` than for the corresponding `IPrepareContentMessage` message.
325
- * Allows to prevent race conditions.
326
- */
327
- contentId: string;
328
- /** Information on the new URL to set. */
329
- value: IUpdateContentUrlsMessageValue;
330
- }
331
-
332
- /** Payload of an `IUpdateContentUrlsMessage`. */
333
- export interface IUpdateContentUrlsMessageValue {
334
- /**
335
- * URLs to reach that Manifest from the most prioritized URL to the least
336
- * prioritized URL.
337
- */
338
- urls: string[] | undefined;
339
- /**
340
- * If `true` the resource in question (e.g. DASH's MPD) will be refreshed
341
- * immediately.
342
- */
343
- refreshNow: boolean;
344
- }
345
-
346
- export interface ITrackUpdateMessage {
347
- type: MainThreadMessageType.TrackUpdate;
348
- contentId: string;
349
- value: {
350
- periodId: string;
351
- bufferType: ITrackType;
352
- choice: ITrackUpdateChoiceObject | null | undefined;
353
- };
354
- }
355
-
356
- export interface ITrackUpdateChoiceObject {
357
- /** The Adaptation choosen. */
358
- adaptationId: string;
359
-
360
- /** "Switching mode" in which the track switch should happen. */
361
- switchingMode: ITrackSwitchingMode;
362
-
363
- /**
364
- * Shared reference allowing to indicate which Representations from
365
- * that Adaptation are allowed.
366
- */
367
- initialRepresentations: IRepresentationsChoice;
368
-
369
- /** Relative resuming position after a track change */
370
- relativeResumingPosition: number | undefined;
371
- }
372
-
373
- export interface IRepresentationUpdateMessage {
374
- type: MainThreadMessageType.RepresentationUpdate;
375
- contentId: string;
376
- value: {
377
- periodId: string;
378
- bufferType: ITrackType;
379
- adaptationId: string;
380
- choice: IRepresentationsChoice;
381
- };
382
- }
383
-
384
- /** Media-related metadata. */
385
- export interface ISerializedPlaybackObservation {
386
- /**
387
- * Information on whether the media element was paused at the time of the
388
- * Observation.
389
- */
390
- paused: IPausedPlaybackObservation;
391
- position: [number, number | null];
392
- /** `readyState` property of the HTMLMediaElement. */
393
- readyState: number;
394
- /** Target playback rate at which we want to play the content. */
395
- speed: number;
396
- /** Theoretical maximum position on the content that can currently be played. */
397
- maximumPosition: number;
398
- /**
399
- * Ranges of buffered data per type of media.
400
- *
401
- * `null` as a record's value if no buffer exists for that type of media.
402
- *
403
- * `null` as a `buffered` value if this could not have been obtained on the
404
- * current environment (e.g. in the main thread).
405
- */
406
- buffered: Record<ITrackType, IRange[] | null>;
407
- duration: number;
408
- /**
409
- * Set if the player is short on audio and/or video media data and is a such,
410
- * rebuffering.
411
- * `null` if not.
412
- */
413
- rebuffering: IRebufferingStatus | null;
414
- /**
415
- * Set if the player is frozen, that is, stuck in place for unknown reason.
416
- * Note that this reason can be a valid one, such as a necessary license not
417
- * being obtained yet.
418
- *
419
- * `null` if the player is not frozen.
420
- */
421
- freezing: IFreezingStatus | null;
422
- /**
423
- * Gap between `currentTime` and the next position with un-buffered data.
424
- * `Infinity` if we don't have buffered data right now.
425
- * `undefined` if we cannot determine the buffer gap.
426
- */
427
- bufferGap: number | undefined;
428
- /**
429
- * Indicates whether the user agent believes it has enough buffered data to ensure
430
- * uninterrupted playback for a meaningful period or needs more data.
431
- * It also reflects whether the user agent can retrieve and buffer data in an
432
- * energy-efficient manner while maintaining the desired memory usage.
433
- * `true` indicates that the buffer is low, and more data should be buffered.
434
- * `false` indicates that there is enough buffered data, and no additional data needs
435
- * to be buffered at this time.
436
- */
437
- canStream: boolean;
438
- /** If `true` the content is loaded until its maximum position. */
439
- fullyLoaded: boolean;
440
- }
441
-
442
- /**
443
- * Sent when the main thread had to "reload" the media source.
444
- * The worker should understand that this MediaSource won't be used anymore.
445
- */
446
- export interface ITriggerMediaSourceReloadMainMessage {
447
- type: MainThreadMessageType.MediaSourceReload;
448
- /** Identify the MediaSource concerned by this message. */
449
- mediaSourceId: string;
450
- /** No message is necessary. */
451
- value: null;
452
- }
453
-
454
- /**
455
- * Sent when the SourceBuffer linked to the given `mediaSourceId` and
456
- * `SourceBufferType`, running on the main thread, succeeded to perform the last
457
- * operation given to it (either through an `AppendBufferWorkerMessage` or a
458
- * `RemoveBufferWorkerMessage`).
459
- */
460
- export interface ISourceBufferOperationSuccessMainMessage {
461
- type: MainThreadMessageType.SourceBufferSuccess;
462
- /**
463
- * Identify the MediaSource which contains the SourceBuffer concerned by
464
- * this update.
465
- */
466
- mediaSourceId: string;
467
- /**
468
- * Id uniquely identifying this SourceBuffer.
469
- * It should be the same `SourceBufferType` than the one on the
470
- * `CreateSourceBufferWorkerMessage`.
471
- */
472
- sourceBufferType: SourceBufferType;
473
- /** Identify the corresponding SourceBuffer operation. */
474
- operationId: string;
475
- value: {
476
- /**
477
- * New contiguous buffered time ranges, in chronological order in seconds.
478
- */
479
- buffered: IRange[];
480
- };
481
- }
482
-
483
- export interface ISourceBufferErrorMainMessage {
484
- type: MainThreadMessageType.SourceBufferError;
485
- /**
486
- * Identify the MediaSource which contains the SourceBuffer concerned by
487
- * this update.
488
- */
489
- mediaSourceId: string;
490
- /** Identify the SourceBuffer in question. */
491
- sourceBufferType: SourceBufferType;
492
- /** Identify the corresponding SourceBuffer operation. */
493
- operationId: string;
494
- value:
495
- | ISerializedSourceBufferError
496
- | {
497
- /**
498
- * Identify a cancellation-specific error (the corresponding operation
499
- * was cancelled.
500
- */
501
- errorName: "CancellationError";
502
- };
503
- }
504
-
505
- /**
506
- * Sent by the main thread to a Worker when the MediaSource linked to the
507
- * `mediaSourceId` changed its readyState.
508
- *
509
- * This message is only sent if the MediaSource is created on the main thread.
510
- */
511
- export interface IMediaSourceReadyStateChangeMainMessage {
512
- type: MainThreadMessageType.MediaSourceReadyStateChange;
513
- /** Identify the MediaSource through this unique identifier. */
514
- mediaSourceId: string;
515
- value: ReadyState;
516
- }
517
-
518
- export interface IPushTextDataSuccessMessage {
519
- type: MainThreadMessageType.PushTextDataSuccess;
520
- contentId: string;
521
- value: {
522
- ranges: IRange[];
523
- };
524
- }
525
-
526
- export interface IRemoveTextDataSuccessMessage {
527
- type: MainThreadMessageType.RemoveTextDataSuccess;
528
- contentId: string;
529
- value: {
530
- ranges: IRange[];
531
- };
532
- }
533
-
534
- export interface IPushTextDataErrorMessage {
535
- type: MainThreadMessageType.PushTextDataError;
536
- contentId: string;
537
- value: {
538
- message: string;
539
- };
540
- }
541
-
542
- export interface IRemoveTextDataErrorMessage {
543
- type: MainThreadMessageType.RemoveTextDataError;
544
- contentId: string;
545
- value: {
546
- message: string;
547
- };
548
- }
549
-
550
- /** Message sent from main thread when it wants to fetch thumbnail data. */
551
- export interface IThumbnailDataRequestMainMessage {
552
- type: MainThreadMessageType.ThumbnailDataRequest;
553
- contentId: string;
554
- value: {
555
- requestId: number;
556
- periodId: string;
557
- thumbnailTrackId: string;
558
- time: number;
559
- };
560
- }
561
-
562
- /**
563
- * Template for a message originating from main thread to update
564
- * `SharedReference` objects (a common abstraction of the RxPlayer allowing for
565
- * passing values whose updates can be listened to through a callback).
566
- *
567
- * Here, `TRefName` is the "name" of the `SharedReference` (the identifier
568
- * choosen for it) and `TRefType` is the type of its value.
569
- */
570
- export interface IReferenceUpdate<TRefName extends string, TRefType> {
571
- type: MainThreadMessageType.ReferenceUpdate;
572
- value: { name: TRefName; newVal: TRefType };
573
- }
574
-
575
- export type IReferenceUpdateMessage =
576
- | IReferenceUpdate<"wantedBufferAhead", number>
577
- | IReferenceUpdate<"maxVideoBufferSize", number>
578
- | IReferenceUpdate<"maxBufferBehind", number>
579
- | IReferenceUpdate<"maxBufferAhead", number>
580
- | IReferenceUpdate<"limitVideoResolution", IResolutionInfo>
581
- | IReferenceUpdate<"throttleVideoBitrate", number>;
582
-
583
- export interface IPullSegmentSinkStoreInfos {
584
- type: MainThreadMessageType.PullSegmentSinkStoreInfos;
585
- value: { requestId: number };
586
- }
587
-
588
- export const enum MainThreadMessageType {
589
- Init = "init",
590
- PushTextDataSuccess = "add-text-success",
591
- RemoveTextDataSuccess = "remove-text-success",
592
- PushTextDataError = "push-text-error",
593
- RemoveTextDataError = "remove-text-error",
594
- CodecSupportUpdate = "codec-support-update",
595
- ContentUrlsUpdate = "urls-update",
596
- ConfigUpdate = "config-update",
597
- DecipherabilityStatusUpdate = "decipherability-update",
598
- LogLevelUpdate = "log-level-update",
599
- MediaSourceReadyStateChange = "media-source-ready-state-change",
600
- PlaybackObservation = "observation",
601
- PrepareContent = "prepare",
602
- ReferenceUpdate = "ref-update",
603
- RepresentationUpdate = "rep-update",
604
- MediaSourceReload = "ms-reload",
605
- SourceBufferError = "sb-error",
606
- SourceBufferSuccess = "sb-success",
607
- StartPreparedContent = "start",
608
- StopContent = "stop",
609
- TrackUpdate = "track-update",
610
- PullSegmentSinkStoreInfos = "pull-segment-sink-store-infos",
611
- ThumbnailDataRequest = "thumbnail-request",
612
- }
613
-
614
- export type IMainThreadMessage =
615
- | IInitMessage
616
- | ILogLevelUpdateMessage
617
- | IConfigUpdateMessage
618
- | IPrepareContentMessage
619
- | IStopContentMessage
620
- | IStartPreparedContentMessage
621
- | IReferenceUpdateMessage
622
- | ICodecSupportUpdateMessage
623
- | IPlaybackObservationMessage
624
- | IDecipherabilityStatusChangedMessage
625
- | IUpdateContentUrlsMessage
626
- | ITriggerMediaSourceReloadMainMessage
627
- | ISourceBufferErrorMainMessage
628
- | ISourceBufferOperationSuccessMainMessage
629
- | ITrackUpdateMessage
630
- | IRepresentationUpdateMessage
631
- | IPushTextDataSuccessMessage
632
- | IRemoveTextDataSuccessMessage
633
- | IPushTextDataErrorMessage
634
- | IRemoveTextDataErrorMessage
635
- | IMediaSourceReadyStateChangeMainMessage
636
- | IPullSegmentSinkStoreInfos
637
- | IThumbnailDataRequestMainMessage;
638
-
639
- export type ISentError =
640
- | ISerializedNetworkError
641
- | ISerializedMediaError
642
- | ISerializedEncryptedMediaError
643
- | ISerializedOtherError;
644
-
645
- /**
646
- * Message sent by the WebWorker when its initialization, started implicitely
647
- * as soon as the `new Worker` call was made for it, has finished and succeeded.
648
- *
649
- * Once that message has been received, you can ensure that no
650
- * `IInitErrorWorkerMessage` will ever be received for the same worker.
651
- *
652
- * Note that receiving this message is not a requirement before preparing and
653
- * loading a content, both initialization and content loading can be started in
654
- * parallel.
655
- */
656
- export interface IInitSuccessWorkerMessage {
657
- type: WorkerMessageType.InitSuccess;
658
- value: null;
659
- }
660
-
661
- /**
662
- * Message sent by the WebWorker when its initialization, started implicitely
663
- * as soon as the `new Worker` call was made for it, has finished and failed.
664
- *
665
- * Once that message has been received, you can ensure that no
666
- * `IInitErrorWorkerMessage` will ever be received for the same worker.
667
- *
668
- * Note that you may received this message while preparing and/or loading a
669
- * content, both initialization and content loading can be started in
670
- * parallel.
671
- * As such, this message may be coupled with a content error.
672
- */
673
- export interface IInitErrorWorkerMessage {
674
- type: WorkerMessageType.InitError;
675
- value: {
676
- /** A string describing the error encountered. */
677
- errorMessage: string;
678
-
679
- kind: "dashWasmInitialization";
680
- };
681
- }
682
-
683
- export interface INeedsBufferFlushWorkerMessage {
684
- type: WorkerMessageType.NeedsBufferFlush;
685
- contentId: string;
686
- value:
687
- | { relativeResumingPosition: number; relativePosHasBeenDefaulted: boolean }
688
- | undefined;
689
- }
690
-
691
- export interface IActivePeriodChangedWorkerMessage {
692
- type: WorkerMessageType.ActivePeriodChanged;
693
- contentId: string;
694
- value: {
695
- periodId: string;
696
- };
697
- }
698
-
699
- export interface IWarningWorkerMessage {
700
- type: WorkerMessageType.Warning;
701
- contentId: string | undefined;
702
- value: ISentError;
703
- }
704
-
705
- export interface IAttachMediaSourceWorkerMessage {
706
- type: WorkerMessageType.AttachMediaSource;
707
- contentId: string | undefined;
708
- mediaSourceId: string;
709
- value: IAttachMediaSourceWorkerMessagePayload;
710
- }
711
-
712
- export type IAttachMediaSourceWorkerMessagePayload =
713
- | {
714
- type: "handle";
715
- value: MediaProvider;
716
- }
717
- | {
718
- type: "url";
719
- value: string;
720
- };
721
-
722
- export interface ICreateMediaSourceWorkerMessage {
723
- type: WorkerMessageType.CreateMediaSource;
724
- mediaSourceId: string;
725
- contentId: string;
726
- }
727
-
728
- export interface IAddSourceBufferWorkerMessage {
729
- type: WorkerMessageType.AddSourceBuffer;
730
- mediaSourceId: string;
731
- value: {
732
- sourceBufferType: SourceBufferType;
733
- codec: string;
734
- };
735
- }
736
-
737
- export interface IAppendBufferWorkerMessage {
738
- type: WorkerMessageType.SourceBufferAppend;
739
- mediaSourceId: string;
740
- sourceBufferType: SourceBufferType;
741
- operationId: string;
742
- value: {
743
- data: BufferSource;
744
- params: ISourceBufferInterfaceAppendBufferParameters;
745
- };
746
- }
747
-
748
- export interface IRemoveBufferWorkerMessage {
749
- type: WorkerMessageType.SourceBufferRemove;
750
- mediaSourceId: string;
751
- sourceBufferType: SourceBufferType;
752
- operationId: string;
753
- value: {
754
- /** Start time we should remove data from, in seconds. */
755
- start: number;
756
- /** End time we should remove data at, in seconds. */
757
- end: number;
758
- };
759
- }
760
-
761
- export interface IAbortBufferWorkerMessage {
762
- type: WorkerMessageType.AbortSourceBuffer;
763
- mediaSourceId: string;
764
- sourceBufferType: SourceBufferType;
765
- value: null;
766
- }
767
-
768
- export interface IUpdateMediaSourceDurationWorkerMessage {
769
- type: WorkerMessageType.UpdateMediaSourceDuration;
770
- mediaSourceId: string;
771
- value: {
772
- duration: number;
773
- isRealEndKnown: boolean;
774
- };
775
- }
776
-
777
- export interface IInterruptMediaSourceDurationWorkerMessage {
778
- type: WorkerMessageType.InterruptMediaSourceDurationUpdate;
779
- mediaSourceId: string;
780
- value: null;
781
- }
782
-
783
- export interface IEndOfStreamWorkerMessage {
784
- type: WorkerMessageType.EndOfStream;
785
- mediaSourceId: string;
786
- value: null;
787
- }
788
-
789
- export interface IStopEndOfStreamWorkerMessage {
790
- type: WorkerMessageType.InterruptEndOfStream;
791
- mediaSourceId: string;
792
- value: null;
793
- }
794
-
795
- export interface IDisposeMediaSourceWorkerMessage {
796
- type: WorkerMessageType.DisposeMediaSource;
797
- mediaSourceId: string;
798
- value: null;
799
- }
800
-
801
- export interface IAdaptationChangeWorkerMessage {
802
- type: WorkerMessageType.AdaptationChanged;
803
- contentId: string;
804
- value: {
805
- adaptationId: string | null;
806
- periodId: string;
807
- type: ITrackType;
808
- };
809
- }
810
-
811
- export interface IRepresentationChangeWorkerMessage {
812
- type: WorkerMessageType.RepresentationChanged;
813
- contentId: string;
814
- value: {
815
- adaptationId: string;
816
- representationId: string | null;
817
- periodId: string;
818
- type: ITrackType;
819
- };
820
- }
821
-
822
- export interface IManifestReadyWorkerMessage {
823
- type: WorkerMessageType.ManifestReady;
824
- contentId: string;
825
- value: { manifest: IManifestMetadata };
826
- }
827
-
828
- export interface IManifestUpdateWorkerMessage {
829
- type: WorkerMessageType.ManifestUpdate;
830
- contentId: string | undefined;
831
- value: {
832
- manifest: IManifestMetadata; // TODO only subpart that changed?
833
- updates: IPeriodsUpdateResult;
834
- };
835
- }
836
-
837
- export interface IEncryptionDataEncounteredWorkerMessage {
838
- type: WorkerMessageType.EncryptionDataEncountered;
839
- contentId: string | undefined;
840
- value: IContentProtection;
841
- }
842
-
843
- export interface IErrorWorkerMessage {
844
- type: WorkerMessageType.Error;
845
- contentId: string | undefined;
846
- value: ISentError;
847
- }
848
-
849
- export interface IUpdatePlaybackRateWorkerMessage {
850
- type: WorkerMessageType.UpdatePlaybackRate;
851
- contentId: string | undefined;
852
- value: number;
853
- }
854
-
855
- export interface IReloadingMediaSourceWorkerMessage {
856
- type: WorkerMessageType.ReloadingMediaSource;
857
- /** Identify the MediaSource concerned by this message. */
858
- mediaSourceId: string;
859
- value: {
860
- timeOffset: number;
861
- minimumPosition?: number | undefined;
862
- maximumPosition?: number | undefined;
863
- };
864
- }
865
-
866
- export interface INeedsDecipherabilityFlushWorkerMessage {
867
- type: WorkerMessageType.NeedsDecipherabilityFlush;
868
- contentId: string;
869
- value: null;
870
- }
871
-
872
- export interface ILockedStreamWorkerMessage {
873
- type: WorkerMessageType.LockedStream;
874
- contentId: string;
875
- value: {
876
- /** Period concerned. */
877
- periodId: string;
878
- /** Buffer type concerned. */
879
- bufferType: ITrackType;
880
- };
881
- }
882
-
883
- export interface IBitrateEstimateChangeWorkerMessage {
884
- type: WorkerMessageType.BitrateEstimateChange;
885
- contentId: string;
886
- value: {
887
- bitrate: number | undefined;
888
- bufferType: ITrackType;
889
- };
890
- }
891
-
892
- export interface IInbandEventWorkerMessage {
893
- type: WorkerMessageType.InbandEvent;
894
- contentId: string;
895
- value: IInbandEvent[];
896
- }
897
-
898
- export interface IPeriodStreamReadyWorkerMessage {
899
- type: WorkerMessageType.PeriodStreamReady;
900
- contentId: string;
901
- value: {
902
- /** Period concerned. */
903
- periodId: string;
904
- /** Buffer type concerned. */
905
- bufferType: ITrackType;
906
- };
907
- }
908
-
909
- export interface IPeriodStreamClearedWorkerMessage {
910
- type: WorkerMessageType.PeriodStreamCleared;
911
- contentId: string;
912
- value: {
913
- /** `id` of the Period concerned. */
914
- periodId: string;
915
- /** Buffer type concerned. */
916
- bufferType: ITrackType;
917
- };
918
- }
919
-
920
- export interface IPushTextDataWorkerMessage {
921
- type: WorkerMessageType.PushTextData;
922
- contentId: string;
923
- value: ITextDisplayerData;
924
- }
925
-
926
- export interface IRemoveTextDataWorkerMessage {
927
- type: WorkerMessageType.RemoveTextData;
928
- contentId: string;
929
- value: {
930
- start: number;
931
- end: number;
932
- };
933
- }
934
-
935
- export interface IStopTextDisplayerWorkerMessage {
936
- type: WorkerMessageType.StopTextDisplayer;
937
- contentId: string;
938
- value: null;
939
- }
940
-
941
- export interface IResetTextDisplayerWorkerMessage {
942
- type: WorkerMessageType.ResetTextDisplayer;
943
- contentId: string;
944
- value: null;
945
- }
946
-
947
- type ISentLogValueBase = boolean | string | number | null | undefined;
948
- export type ISentLogValue =
949
- | ISentLogValueBase
950
- | ISentError
951
- | Partial<Record<string, ISentLogValueBase>>;
952
-
953
- export interface ILogMessageWorkerMessage {
954
- type: WorkerMessageType.LogMessage;
955
- value: {
956
- namespace: ILogNamespace;
957
- logLevel: ILoggerLevel;
958
- logs: ISentLogValue[];
959
- };
960
- }
961
-
962
- export interface IDiscontinuityUpdateWorkerMessage {
963
- type: WorkerMessageType.DiscontinuityUpdate;
964
- contentId: string;
965
- value: IDiscontinuityUpdateWorkerMessagePayload;
966
- }
967
-
968
- export interface IDiscontinuityUpdateWorkerMessagePayload {
969
- periodId: string;
970
- bufferType: ITrackType;
971
- discontinuity: IDiscontinuityTimeInfo | null;
972
- position: number;
973
- }
974
-
975
- /** Information on a found discontinuity. */
976
- export interface IDiscontinuityTimeInfo {
977
- /**
978
- * Start time of the discontinuity.
979
- * `undefined` for when the start is unknown but the discontinuity was
980
- * currently encountered at the position we were in when this event was
981
- * created.
982
- */
983
- start: number | undefined;
984
- /**
985
- * End time of the discontinuity, in seconds.
986
- * If `null`, no further segment can be loaded for the corresponding Period.
987
- */
988
- end: number | null;
989
- }
990
-
991
- export interface ISegmentSinkStoreUpdateMessage {
992
- type: WorkerMessageType.SegmentSinkStoreUpdate;
993
- contentId: string;
994
- value: {
995
- segmentSinkMetrics: ISegmentSinkMetrics;
996
- requestId: number;
997
- };
998
- }
999
-
1000
- export interface IThumbnailDataResponseWorkerMessage {
1001
- type: WorkerMessageType.ThumbnailDataResponse;
1002
- contentId: string;
1003
- value:
1004
- | {
1005
- status: "error";
1006
- requestId: number;
1007
- error: ISentError;
1008
- }
1009
- | {
1010
- status: "success";
1011
- requestId: number;
1012
- data: IThumbnailResponse;
1013
- };
1014
- }
1015
-
1016
- export const enum WorkerMessageType {
1017
- AbortSourceBuffer = "abort-source-buffer",
1018
- ActivePeriodChanged = "active-period-changed",
1019
- AdaptationChanged = "adaptation-changed",
1020
- AddSourceBuffer = "add-source-buffer",
1021
- AttachMediaSource = "attach-media-source",
1022
- BitrateEstimateChange = "bitrate-estimate-change",
1023
- CreateMediaSource = "create-media-source",
1024
- DiscontinuityUpdate = "discontinuity-update",
1025
- DisposeMediaSource = "dispose-media-source",
1026
- EncryptionDataEncountered = "encryption-data-encountered",
1027
- EndOfStream = "end-of-stream",
1028
- Error = "error",
1029
- InbandEvent = "inband-event",
1030
- InitError = "init-error",
1031
- InitSuccess = "init-success",
1032
- InterruptEndOfStream = "stop-end-of-stream",
1033
- InterruptMediaSourceDurationUpdate = "stop-media-source-duration",
1034
- LockedStream = "locked-stream",
1035
- LogMessage = "log",
1036
- ManifestReady = "manifest-ready",
1037
- ManifestUpdate = "manifest-update",
1038
- NeedsBufferFlush = "needs-buffer-flush",
1039
- NeedsDecipherabilityFlush = "needs-decipherability-flush",
1040
- PeriodStreamCleared = "period-stream-cleared",
1041
- PeriodStreamReady = "period-stream-ready",
1042
- PushTextData = "push-text-data",
1043
- ReloadingMediaSource = "reloading-media-source",
1044
- RemoveTextData = "remove-text-data",
1045
- RepresentationChanged = "representation-changed",
1046
- ResetTextDisplayer = "reset-text-displayer",
1047
- SourceBufferAppend = "source-buffer-append",
1048
- SourceBufferRemove = "source-buffer-remove",
1049
- StopTextDisplayer = "stop-text-displayer",
1050
- UpdateMediaSourceDuration = "update-media-source-duration",
1051
- UpdatePlaybackRate = "update-playback-rate",
1052
- Warning = "warning",
1053
- SegmentSinkStoreUpdate = "segment-sink-store-update",
1054
- ThumbnailDataResponse = "thumbnail-response",
1055
- }
1056
-
1057
- export type IWorkerMessage =
1058
- | IAbortBufferWorkerMessage
1059
- | IActivePeriodChangedWorkerMessage
1060
- | IAdaptationChangeWorkerMessage
1061
- | IAddSourceBufferWorkerMessage
1062
- | IPushTextDataWorkerMessage
1063
- | IAppendBufferWorkerMessage
1064
- | IAttachMediaSourceWorkerMessage
1065
- | IBitrateEstimateChangeWorkerMessage
1066
- | ICreateMediaSourceWorkerMessage
1067
- | IDiscontinuityUpdateWorkerMessage
1068
- | IDisposeMediaSourceWorkerMessage
1069
- | IEncryptionDataEncounteredWorkerMessage
1070
- | IEndOfStreamWorkerMessage
1071
- | IErrorWorkerMessage
1072
- | IInbandEventWorkerMessage
1073
- | IInitSuccessWorkerMessage
1074
- | IInitErrorWorkerMessage
1075
- | IInterruptMediaSourceDurationWorkerMessage
1076
- | ILockedStreamWorkerMessage
1077
- | ILogMessageWorkerMessage
1078
- | IManifestReadyWorkerMessage
1079
- | IManifestUpdateWorkerMessage
1080
- | INeedsBufferFlushWorkerMessage
1081
- | INeedsDecipherabilityFlushWorkerMessage
1082
- | IPeriodStreamClearedWorkerMessage
1083
- | IPeriodStreamReadyWorkerMessage
1084
- | IReloadingMediaSourceWorkerMessage
1085
- | IRemoveBufferWorkerMessage
1086
- | IRemoveTextDataWorkerMessage
1087
- | IRepresentationChangeWorkerMessage
1088
- | IResetTextDisplayerWorkerMessage
1089
- | IStopEndOfStreamWorkerMessage
1090
- | IStopTextDisplayerWorkerMessage
1091
- | IUpdateMediaSourceDurationWorkerMessage
1092
- | IUpdatePlaybackRateWorkerMessage
1093
- | IWarningWorkerMessage
1094
- | ISegmentSinkStoreUpdateMessage
1095
- | IThumbnailDataResponseWorkerMessage;