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