rx-player 4.4.1-dev.2025101500 → 4.4.1

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 (350) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +111 -50
  3. package/VERSION +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  7. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  8. package/dist/commonjs/core/{entry → main/common}/FreezeResolver.d.ts +3 -3
  9. package/dist/commonjs/core/main/common/FreezeResolver.d.ts.map +1 -0
  10. package/dist/commonjs/core/{entry → main/common}/FreezeResolver.js +3 -3
  11. package/dist/commonjs/core/{entry → main/common}/content_time_boundaries_observer.d.ts +5 -5
  12. package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts.map +1 -0
  13. package/dist/commonjs/core/{entry → main/common}/content_time_boundaries_observer.js +6 -6
  14. package/dist/{es2017/core/entry → commonjs/core/main/common}/create_content_time_boundaries_observer.d.ts +6 -6
  15. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts.map +1 -0
  16. package/dist/commonjs/core/{entry → main/common}/create_content_time_boundaries_observer.js +1 -1
  17. package/dist/{es2017/core/entry → commonjs/core/main/common}/get_buffered_data_per_media_buffer.d.ts +4 -4
  18. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  19. package/dist/commonjs/core/{entry → main/common}/get_buffered_data_per_media_buffer.js +1 -1
  20. package/dist/{es2017/core/entry → commonjs/core/main/common}/get_thumbnail_data.d.ts +3 -3
  21. package/dist/commonjs/core/main/common/get_thumbnail_data.d.ts.map +1 -0
  22. package/dist/commonjs/core/{entry → main/common}/get_thumbnail_data.js +2 -2
  23. package/dist/{es2017/core/entry → commonjs/core/main/common}/synchronize_sinks_on_observation.d.ts +2 -2
  24. package/dist/commonjs/core/main/common/synchronize_sinks_on_observation.d.ts.map +1 -0
  25. package/dist/{es2017/core/entry → commonjs/core/main/worker}/content_preparer.d.ts +15 -22
  26. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -0
  27. package/dist/commonjs/core/{entry → main/worker}/content_preparer.js +64 -62
  28. package/dist/commonjs/core/main/worker/globals.d.ts +14 -0
  29. package/dist/commonjs/core/main/worker/globals.d.ts.map +1 -0
  30. package/dist/commonjs/core/main/worker/globals.js +26 -0
  31. package/dist/commonjs/core/main/worker/index.d.ts +3 -0
  32. package/dist/commonjs/core/main/worker/index.d.ts.map +1 -0
  33. package/dist/commonjs/core/main/worker/index.js +4 -0
  34. package/dist/commonjs/core/main/worker/send_message.d.ts +4 -0
  35. package/dist/commonjs/core/main/worker/send_message.d.ts.map +1 -0
  36. package/dist/commonjs/core/main/worker/send_message.js +23 -0
  37. package/dist/{es2017/core/entry → commonjs/core/main/worker}/track_choice_setter.d.ts +4 -4
  38. package/dist/commonjs/core/main/worker/track_choice_setter.d.ts.map +1 -0
  39. package/dist/commonjs/core/{entry → main/worker}/track_choice_setter.js +4 -4
  40. package/dist/commonjs/core/main/worker/worker_main.d.ts +2 -0
  41. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -0
  42. package/dist/commonjs/core/{entry/core_entry.js → main/worker/worker_main.js} +153 -192
  43. package/dist/commonjs/core/{entry/core_text_displayer_interface.d.ts → main/worker/worker_text_displayer_interface.d.ts} +11 -11
  44. package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts.map +1 -0
  45. package/dist/commonjs/core/{entry/core_text_displayer_interface.js → main/worker/worker_text_displayer_interface.js} +22 -22
  46. package/dist/commonjs/core/types.d.ts +1 -519
  47. package/dist/commonjs/core/types.d.ts.map +1 -1
  48. package/dist/commonjs/core/types.js +0 -1
  49. package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
  50. package/dist/commonjs/experimental/features/local.js +1 -7
  51. package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
  52. package/dist/commonjs/experimental/features/metaplaylist.js +1 -7
  53. package/dist/commonjs/experimental/features/multi_thread.d.ts.map +1 -1
  54. package/dist/commonjs/experimental/features/multi_thread.js +2 -6
  55. package/dist/commonjs/features/features_object.js +1 -1
  56. package/dist/commonjs/features/list/dash.d.ts.map +1 -1
  57. package/dist/commonjs/features/list/dash.js +1 -7
  58. package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
  59. package/dist/commonjs/features/list/dash_wasm.js +1 -7
  60. package/dist/commonjs/features/list/media_source_main.d.ts.map +1 -1
  61. package/dist/commonjs/features/list/media_source_main.js +1 -7
  62. package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
  63. package/dist/commonjs/features/list/smooth.js +1 -7
  64. package/dist/commonjs/features/types.d.ts +4 -20
  65. package/dist/commonjs/features/types.d.ts.map +1 -1
  66. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  67. package/dist/commonjs/main_thread/api/public_api.js +44 -40
  68. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +108 -166
  69. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  70. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +918 -1491
  71. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +308 -0
  72. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -0
  73. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +1713 -0
  74. package/dist/commonjs/main_thread/init/send_message.d.ts +3 -0
  75. package/dist/commonjs/main_thread/init/send_message.d.ts.map +1 -0
  76. package/dist/commonjs/main_thread/init/send_message.js +13 -0
  77. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
  78. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +1 -2
  79. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
  80. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  81. package/dist/commonjs/main_thread/types.d.ts +0 -537
  82. package/dist/commonjs/main_thread/types.d.ts.map +1 -1
  83. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  84. package/dist/commonjs/manifest/utils.js +4 -18
  85. package/dist/commonjs/mse/worker_media_source_interface.d.ts +2 -2
  86. package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
  87. package/dist/commonjs/mse/worker_media_source_interface.js +12 -12
  88. package/dist/commonjs/multithread_types.d.ts +915 -0
  89. package/dist/commonjs/multithread_types.d.ts.map +1 -0
  90. package/dist/commonjs/multithread_types.js +7 -0
  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 +27 -31
  94. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts +2 -3
  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 +7 -16
  97. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts +2 -3
  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 +6 -37
  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 +2 -3
  103. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  104. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +5 -28
  105. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +28 -8
  106. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  107. package/dist/commonjs/playback_observer/media_element_playback_observer.js +146 -64
  108. package/dist/{es2017/playback_observer/core_playback_observer.d.ts → commonjs/playback_observer/worker_playback_observer.d.ts} +8 -8
  109. package/dist/commonjs/playback_observer/worker_playback_observer.d.ts.map +1 -0
  110. package/dist/commonjs/playback_observer/{core_playback_observer.js → worker_playback_observer.js} +13 -13
  111. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  112. package/dist/commonjs/transports/smooth/pipelines.js +3 -25
  113. package/dist/commonjs/worker_entry_point.js +2 -62
  114. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  115. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  116. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  117. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  118. package/dist/es2017/core/{entry → main/common}/FreezeResolver.d.ts +3 -3
  119. package/dist/es2017/core/main/common/FreezeResolver.d.ts.map +1 -0
  120. package/dist/es2017/core/{entry → main/common}/FreezeResolver.js +3 -3
  121. package/dist/es2017/core/{entry → main/common}/content_time_boundaries_observer.d.ts +5 -5
  122. package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts.map +1 -0
  123. package/dist/es2017/core/{entry → main/common}/content_time_boundaries_observer.js +6 -6
  124. package/dist/{commonjs/core/entry → es2017/core/main/common}/create_content_time_boundaries_observer.d.ts +6 -6
  125. package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts.map +1 -0
  126. package/dist/es2017/core/{entry → main/common}/create_content_time_boundaries_observer.js +1 -1
  127. package/dist/{commonjs/core/entry → es2017/core/main/common}/get_buffered_data_per_media_buffer.d.ts +4 -4
  128. package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  129. package/dist/es2017/core/{entry → main/common}/get_buffered_data_per_media_buffer.js +1 -1
  130. package/dist/{commonjs/core/entry → es2017/core/main/common}/get_thumbnail_data.d.ts +3 -3
  131. package/dist/es2017/core/main/common/get_thumbnail_data.d.ts.map +1 -0
  132. package/dist/es2017/core/{entry → main/common}/get_thumbnail_data.js +2 -2
  133. package/dist/{commonjs/core/entry → es2017/core/main/common}/synchronize_sinks_on_observation.d.ts +2 -2
  134. package/dist/es2017/core/main/common/synchronize_sinks_on_observation.d.ts.map +1 -0
  135. package/dist/{commonjs/core/entry → es2017/core/main/worker}/content_preparer.d.ts +15 -22
  136. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -0
  137. package/dist/es2017/core/{entry → main/worker}/content_preparer.js +55 -53
  138. package/dist/es2017/core/main/worker/globals.d.ts +14 -0
  139. package/dist/es2017/core/main/worker/globals.d.ts.map +1 -0
  140. package/dist/es2017/core/main/worker/globals.js +18 -0
  141. package/dist/es2017/core/main/worker/index.d.ts +3 -0
  142. package/dist/es2017/core/main/worker/index.d.ts.map +1 -0
  143. package/dist/es2017/core/main/worker/index.js +2 -0
  144. package/dist/es2017/core/main/worker/send_message.d.ts +4 -0
  145. package/dist/es2017/core/main/worker/send_message.d.ts.map +1 -0
  146. package/dist/es2017/core/main/worker/send_message.js +19 -0
  147. package/dist/{commonjs/core/entry → es2017/core/main/worker}/track_choice_setter.d.ts +4 -4
  148. package/dist/es2017/core/main/worker/track_choice_setter.d.ts.map +1 -0
  149. package/dist/es2017/core/{entry → main/worker}/track_choice_setter.js +4 -4
  150. package/dist/es2017/core/main/worker/worker_main.d.ts +2 -0
  151. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -0
  152. package/dist/es2017/core/{entry/core_entry.js → main/worker/worker_main.js} +114 -153
  153. package/dist/es2017/core/{entry/core_text_displayer_interface.d.ts → main/worker/worker_text_displayer_interface.d.ts} +11 -11
  154. package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts.map +1 -0
  155. package/dist/es2017/core/{entry/core_text_displayer_interface.js → main/worker/worker_text_displayer_interface.js} +10 -10
  156. package/dist/es2017/core/types.d.ts +1 -519
  157. package/dist/es2017/core/types.d.ts.map +1 -1
  158. package/dist/es2017/core/types.js +0 -1
  159. package/dist/es2017/experimental/features/local.d.ts.map +1 -1
  160. package/dist/es2017/experimental/features/local.js +1 -7
  161. package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
  162. package/dist/es2017/experimental/features/metaplaylist.js +1 -7
  163. package/dist/es2017/experimental/features/multi_thread.d.ts.map +1 -1
  164. package/dist/es2017/experimental/features/multi_thread.js +2 -6
  165. package/dist/es2017/features/features_object.js +1 -1
  166. package/dist/es2017/features/list/dash.d.ts.map +1 -1
  167. package/dist/es2017/features/list/dash.js +1 -7
  168. package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
  169. package/dist/es2017/features/list/dash_wasm.js +1 -7
  170. package/dist/es2017/features/list/media_source_main.d.ts.map +1 -1
  171. package/dist/es2017/features/list/media_source_main.js +1 -7
  172. package/dist/es2017/features/list/smooth.d.ts.map +1 -1
  173. package/dist/es2017/features/list/smooth.js +1 -7
  174. package/dist/es2017/features/types.d.ts +4 -20
  175. package/dist/es2017/features/types.d.ts.map +1 -1
  176. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  177. package/dist/es2017/main_thread/api/public_api.js +45 -41
  178. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +108 -166
  179. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  180. package/dist/es2017/main_thread/init/media_source_content_initializer.js +760 -1405
  181. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +308 -0
  182. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -0
  183. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +1559 -0
  184. package/dist/es2017/main_thread/init/send_message.d.ts +3 -0
  185. package/dist/es2017/main_thread/init/send_message.d.ts.map +1 -0
  186. package/dist/es2017/main_thread/init/send_message.js +10 -0
  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 +1 -2
  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 +0 -537
  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 +4 -16
  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/multithread_types.d.ts +915 -0
  199. package/dist/es2017/multithread_types.d.ts.map +1 -0
  200. package/dist/es2017/multithread_types.js +6 -0
  201. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts +1 -1
  202. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
  203. package/dist/es2017/parsers/manifest/smooth/create_parser.js +27 -31
  204. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts +2 -3
  205. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
  206. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +7 -16
  207. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts +2 -3
  208. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
  209. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +6 -15
  210. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  211. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
  212. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts +2 -3
  213. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  214. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.js +5 -6
  215. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +28 -8
  216. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  217. package/dist/es2017/playback_observer/media_element_playback_observer.js +144 -64
  218. package/dist/{commonjs/playback_observer/core_playback_observer.d.ts → es2017/playback_observer/worker_playback_observer.d.ts} +8 -8
  219. package/dist/es2017/playback_observer/worker_playback_observer.d.ts.map +1 -0
  220. package/dist/es2017/playback_observer/{core_playback_observer.js → worker_playback_observer.js} +2 -2
  221. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  222. package/dist/es2017/transports/smooth/pipelines.js +3 -25
  223. package/dist/es2017/worker_entry_point.js +2 -62
  224. package/dist/mpd-parser.wasm +0 -0
  225. package/dist/rx-player.js +19165 -21886
  226. package/dist/rx-player.min.js +20 -20
  227. package/dist/worker.js +8 -8
  228. package/eslint.config.mjs +647 -348
  229. package/package.json +6 -6
  230. package/src/README.md +198 -88
  231. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  232. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  233. package/src/core/{entry → main}/README.md +1 -1
  234. package/src/core/{entry → main/common}/FreezeResolver.ts +7 -7
  235. package/src/core/{entry → main/common}/content_time_boundaries_observer.ts +10 -10
  236. package/src/core/{entry → main/common}/create_content_time_boundaries_observer.ts +7 -7
  237. package/src/core/{entry → main/common}/get_buffered_data_per_media_buffer.ts +6 -6
  238. package/src/core/{entry → main/common}/get_thumbnail_data.ts +5 -5
  239. package/src/core/{entry → main/common}/synchronize_sinks_on_observation.ts +2 -2
  240. package/src/core/{entry → main/worker}/content_preparer.ts +76 -77
  241. package/src/core/main/worker/globals.ts +38 -0
  242. package/src/core/main/worker/index.ts +2 -0
  243. package/src/core/main/worker/send_message.ts +28 -0
  244. package/src/core/{entry → main/worker}/track_choice_setter.ts +7 -7
  245. package/src/core/{entry/core_entry.ts → main/worker/worker_main.ts} +149 -223
  246. package/src/core/{entry/core_text_displayer_interface.ts → main/worker/worker_text_displayer_interface.ts} +26 -26
  247. package/src/core/types.ts +3 -631
  248. package/src/experimental/features/__tests__/local.test.ts +2 -11
  249. package/src/experimental/features/__tests__/metaplaylist.test.ts +2 -11
  250. package/src/experimental/features/__tests__/multi_thread.test.ts +3 -8
  251. package/src/experimental/features/local.ts +1 -7
  252. package/src/experimental/features/metaplaylist.ts +1 -7
  253. package/src/experimental/features/multi_thread.ts +2 -6
  254. package/src/features/features_object.ts +1 -1
  255. package/src/features/list/__tests__/dash.test.ts +3 -12
  256. package/src/features/list/__tests__/smooth.test.ts +2 -11
  257. package/src/features/list/dash.ts +1 -7
  258. package/src/features/list/dash_wasm.ts +1 -7
  259. package/src/features/list/media_source_main.ts +1 -7
  260. package/src/features/list/smooth.ts +1 -7
  261. package/src/features/types.ts +4 -23
  262. package/src/main_thread/README.md +0 -8
  263. package/src/main_thread/api/public_api.ts +51 -47
  264. package/src/main_thread/init/media_source_content_initializer.ts +1164 -2046
  265. package/src/main_thread/init/multi_thread_content_initializer.ts +2330 -0
  266. package/src/main_thread/init/send_message.ts +15 -0
  267. package/src/main_thread/init/utils/create_core_playback_observer.ts +1 -2
  268. package/src/main_thread/init/utils/update_manifest_codec_support.ts +1 -1
  269. package/src/main_thread/types.ts +0 -610
  270. package/src/manifest/utils.ts +4 -20
  271. package/src/mse/worker_media_source_interface.ts +35 -35
  272. package/src/multithread_types.ts +1095 -0
  273. package/src/parsers/manifest/smooth/create_parser.ts +34 -40
  274. package/src/parsers/manifest/smooth/parse_C_nodes.ts +8 -19
  275. package/src/parsers/manifest/smooth/parse_protection_node.ts +9 -17
  276. package/src/parsers/manifest/smooth/utils/parseBoolean.ts +1 -1
  277. package/src/parsers/manifest/smooth/utils/reduceChildren.ts +7 -10
  278. package/src/playback_observer/media_element_playback_observer.ts +177 -73
  279. package/src/playback_observer/{core_playback_observer.ts → worker_playback_observer.ts} +13 -13
  280. package/src/transports/smooth/pipelines.ts +5 -25
  281. package/src/worker_entry_point.ts +2 -71
  282. package/dist/commonjs/core/entry/FreezeResolver.d.ts.map +0 -1
  283. package/dist/commonjs/core/entry/content_preparer.d.ts.map +0 -1
  284. package/dist/commonjs/core/entry/content_time_boundaries_observer.d.ts.map +0 -1
  285. package/dist/commonjs/core/entry/core_entry.d.ts +0 -36
  286. package/dist/commonjs/core/entry/core_entry.d.ts.map +0 -1
  287. package/dist/commonjs/core/entry/core_text_displayer_interface.d.ts.map +0 -1
  288. package/dist/commonjs/core/entry/create_content_time_boundaries_observer.d.ts.map +0 -1
  289. package/dist/commonjs/core/entry/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  290. package/dist/commonjs/core/entry/get_thumbnail_data.d.ts.map +0 -1
  291. package/dist/commonjs/core/entry/index.d.ts +0 -5
  292. package/dist/commonjs/core/entry/index.d.ts.map +0 -1
  293. package/dist/commonjs/core/entry/index.js +0 -4
  294. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  295. package/dist/commonjs/core/entry/track_choice_setter.d.ts.map +0 -1
  296. package/dist/commonjs/core/entry/utils.d.ts +0 -3
  297. package/dist/commonjs/core/entry/utils.d.ts.map +0 -1
  298. package/dist/commonjs/core/entry/utils.js +0 -11
  299. package/dist/commonjs/main_thread/core_interface/base.d.ts +0 -13
  300. package/dist/commonjs/main_thread/core_interface/base.d.ts.map +0 -1
  301. package/dist/commonjs/main_thread/core_interface/base.js +0 -32
  302. package/dist/commonjs/main_thread/core_interface/monothread.d.ts +0 -13
  303. package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +0 -1
  304. package/dist/commonjs/main_thread/core_interface/monothread.js +0 -56
  305. package/dist/commonjs/main_thread/core_interface/multithread.d.ts +0 -25
  306. package/dist/commonjs/main_thread/core_interface/multithread.d.ts.map +0 -1
  307. package/dist/commonjs/main_thread/core_interface/multithread.js +0 -67
  308. package/dist/commonjs/main_thread/core_interface/types.d.ts +0 -6
  309. package/dist/commonjs/main_thread/core_interface/types.d.ts.map +0 -1
  310. package/dist/commonjs/main_thread/core_interface/types.js +0 -2
  311. package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +0 -1
  312. package/dist/es2017/core/entry/FreezeResolver.d.ts.map +0 -1
  313. package/dist/es2017/core/entry/content_preparer.d.ts.map +0 -1
  314. package/dist/es2017/core/entry/content_time_boundaries_observer.d.ts.map +0 -1
  315. package/dist/es2017/core/entry/core_entry.d.ts +0 -36
  316. package/dist/es2017/core/entry/core_entry.d.ts.map +0 -1
  317. package/dist/es2017/core/entry/core_text_displayer_interface.d.ts.map +0 -1
  318. package/dist/es2017/core/entry/create_content_time_boundaries_observer.d.ts.map +0 -1
  319. package/dist/es2017/core/entry/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  320. package/dist/es2017/core/entry/get_thumbnail_data.d.ts.map +0 -1
  321. package/dist/es2017/core/entry/index.d.ts +0 -5
  322. package/dist/es2017/core/entry/index.d.ts.map +0 -1
  323. package/dist/es2017/core/entry/index.js +0 -2
  324. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  325. package/dist/es2017/core/entry/track_choice_setter.d.ts.map +0 -1
  326. package/dist/es2017/core/entry/utils.d.ts +0 -3
  327. package/dist/es2017/core/entry/utils.d.ts.map +0 -1
  328. package/dist/es2017/core/entry/utils.js +0 -8
  329. package/dist/es2017/main_thread/core_interface/base.d.ts +0 -13
  330. package/dist/es2017/main_thread/core_interface/base.d.ts.map +0 -1
  331. package/dist/es2017/main_thread/core_interface/base.js +0 -28
  332. package/dist/es2017/main_thread/core_interface/monothread.d.ts +0 -13
  333. package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +0 -1
  334. package/dist/es2017/main_thread/core_interface/monothread.js +0 -32
  335. package/dist/es2017/main_thread/core_interface/multithread.d.ts +0 -25
  336. package/dist/es2017/main_thread/core_interface/multithread.d.ts.map +0 -1
  337. package/dist/es2017/main_thread/core_interface/multithread.js +0 -45
  338. package/dist/es2017/main_thread/core_interface/types.d.ts +0 -6
  339. package/dist/es2017/main_thread/core_interface/types.d.ts.map +0 -1
  340. package/dist/es2017/main_thread/core_interface/types.js +0 -1
  341. package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +0 -1
  342. package/src/core/entry/index.ts +0 -4
  343. package/src/core/entry/utils.ts +0 -11
  344. package/src/main_thread/core_interface/README.md +0 -22
  345. package/src/main_thread/core_interface/base.ts +0 -36
  346. package/src/main_thread/core_interface/monothread.ts +0 -46
  347. package/src/main_thread/core_interface/multithread.ts +0 -49
  348. package/src/main_thread/core_interface/types.ts +0 -5
  349. /package/dist/commonjs/core/{entry → main/common}/synchronize_sinks_on_observation.js +0 -0
  350. /package/dist/es2017/core/{entry → main/common}/synchronize_sinks_on_observation.js +0 -0
@@ -25,7 +25,6 @@ import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
25
25
  import objectAssign from "../../../utils/object_assign";
26
26
  import { hexToBytes } from "../../../utils/string_parsing";
27
27
  import { getFilenameIndexInUrl } from "../../../utils/url-utils";
28
- import { parseXml, type ITNode } from "../../../utils/xml-parser";
29
28
  import { createBox } from "../../containers/isobmff";
30
29
  import type {
31
30
  IParsedAdaptation,
@@ -45,7 +44,7 @@ import reduceChildren from "./utils/reduceChildren";
45
44
  import { replaceRepresentationSmoothTokens } from "./utils/tokens";
46
45
 
47
46
  interface IAdaptationParserArguments {
48
- root: ITNode;
47
+ root: Element;
49
48
  baseUrl: string;
50
49
  timescale: number;
51
50
  protections: IContentProtectionSmooth[];
@@ -109,7 +108,7 @@ interface ISmoothParsedQualityLevel {
109
108
  function createSmoothStreamingParser(
110
109
  parserOptions: IHSSParserConfiguration = {},
111
110
  ): (
112
- manifest: string,
111
+ manifest: Document,
113
112
  url?: string | undefined,
114
113
  manifestReceivedTime?: number | undefined,
115
114
  ) => IParsedManifest {
@@ -129,12 +128,12 @@ function createSmoothStreamingParser(
129
128
  : undefined;
130
129
 
131
130
  /**
132
- * @param {Object} q
131
+ * @param {Element} q
133
132
  * @param {string} streamType
134
133
  * @return {Object}
135
134
  */
136
135
  function parseQualityLevel(
137
- q: ITNode,
136
+ q: Element,
138
137
  streamType: string,
139
138
  ): ISmoothParsedQualityLevel | null {
140
139
  const customAttributes = reduceChildren<string[]>(
@@ -146,9 +145,9 @@ function createSmoothStreamingParser(
146
145
  qNode,
147
146
  (cAttrs, cName, cNode) => {
148
147
  if (cName === "Attribute") {
149
- const name = cNode.attributes.Name;
150
- const value = cNode.attributes.Value;
151
- if (!isNullOrUndefined(name) && !isNullOrUndefined(value)) {
148
+ const name = cNode.getAttribute("Name");
149
+ const value = cNode.getAttribute("Value");
150
+ if (name !== null && value !== null) {
152
151
  cAttrs.push(name + "=" + value);
153
152
  }
154
153
  }
@@ -168,7 +167,7 @@ function createSmoothStreamingParser(
168
167
  * @returns {string|undefined}
169
168
  */
170
169
  function getAttribute(name: string): string | undefined {
171
- const attr = q.attributes[name];
170
+ const attr = q.getAttribute(name);
172
171
  return attr === null ? undefined : attr;
173
172
  }
174
173
 
@@ -287,14 +286,14 @@ function createSmoothStreamingParser(
287
286
  manifestReceivedTime,
288
287
  isLive,
289
288
  } = args;
290
- const timescaleAttr = root.attributes.Timescale;
291
- let _timescale = !isNonEmptyString(timescaleAttr) ? timescale : +timescaleAttr;
289
+ const timescaleAttr = root.getAttribute("Timescale");
290
+ let _timescale = timescaleAttr === null ? timescale : +timescaleAttr;
292
291
  if (isNaN(_timescale)) {
293
292
  _timescale = timescale;
294
293
  }
295
294
 
296
- const typeAttribute = root.attributes.Type;
297
- if (isNullOrUndefined(typeAttribute)) {
295
+ const typeAttribute = root.getAttribute("Type");
296
+ if (typeAttribute === null) {
298
297
  throw new Error("StreamIndex without type.");
299
298
  }
300
299
  if (!arrayIncludes(SUPPORTED_ADAPTATIONS_TYPE, typeAttribute)) {
@@ -302,15 +301,15 @@ function createSmoothStreamingParser(
302
301
  }
303
302
  const adaptationType = typeAttribute as IAdaptationType;
304
303
 
305
- const subType = root.attributes.Subtype;
306
- const language = root.attributes.Language;
307
- const UrlAttr = root.attributes.Url;
308
- const UrlPathWithTokens = UrlAttr ?? "";
304
+ const subType = root.getAttribute("Subtype");
305
+ const language = root.getAttribute("Language");
306
+ const UrlAttr = root.getAttribute("Url");
307
+ const UrlPathWithTokens = UrlAttr === null ? "" : UrlAttr;
309
308
  assert(UrlPathWithTokens !== "");
310
309
 
311
310
  const { qualityLevels, cNodes } = reduceChildren<{
312
311
  qualityLevels: ISmoothParsedQualityLevel[];
313
- cNodes: ITNode[];
312
+ cNodes: Element[];
314
313
  }>(
315
314
  root,
316
315
  (res, _name, node) => {
@@ -453,36 +452,31 @@ function createSmoothStreamingParser(
453
452
  return parsedAdaptation;
454
453
  }
455
454
 
456
- function parseFromNode(
457
- xml: string,
455
+ function parseFromDocument(
456
+ doc: Document,
458
457
  url?: string,
459
458
  manifestReceivedTime?: number,
460
459
  ): IParsedManifest {
461
- const parsed = parseXml(xml);
462
- const root = parsed[parsed.length - 1];
463
460
  let baseUrl: string = "";
464
461
  if (url !== undefined) {
465
462
  const filenameIdx = getFilenameIndexInUrl(url);
466
463
  baseUrl = url.substring(0, filenameIdx);
467
464
  }
468
- if (
469
- isNullOrUndefined(root) ||
470
- typeof root === "string" ||
471
- root.tagName !== "SmoothStreamingMedia"
472
- ) {
465
+ const root = doc.documentElement;
466
+ if (isNullOrUndefined(root) || root.nodeName !== "SmoothStreamingMedia") {
473
467
  throw new Error("document root should be SmoothStreamingMedia");
474
468
  }
475
- const majorVersionAttr = root.attributes.MajorVersion;
476
- const minorVersionAttr = root.attributes.MinorVersion;
469
+ const majorVersionAttr = root.getAttribute("MajorVersion");
470
+ const minorVersionAttr = root.getAttribute("MinorVersion");
477
471
  if (
478
- isNullOrUndefined(majorVersionAttr) ||
479
- isNullOrUndefined(minorVersionAttr) ||
472
+ majorVersionAttr === null ||
473
+ minorVersionAttr === null ||
480
474
  !/^[2]-[0-2]$/.test(majorVersionAttr + "-" + minorVersionAttr)
481
475
  ) {
482
476
  throw new Error("Version should be 2.0, 2.1 or 2.2");
483
477
  }
484
478
 
485
- const timescaleAttr = root.attributes.Timescale;
479
+ const timescaleAttr = root.getAttribute("Timescale");
486
480
  let timescale = !isNonEmptyString(timescaleAttr) ? 10000000 : +timescaleAttr;
487
481
  if (isNaN(timescale)) {
488
482
  timescale = 10000000;
@@ -490,7 +484,7 @@ function createSmoothStreamingParser(
490
484
 
491
485
  const { protections, adaptationNodes } = reduceChildren<{
492
486
  protections: IContentProtectionSmooth[];
493
- adaptationNodes: ITNode[];
487
+ adaptationNodes: Element[];
494
488
  }>(
495
489
  root,
496
490
  (res, name, node) => {
@@ -513,13 +507,13 @@ function createSmoothStreamingParser(
513
507
 
514
508
  const initialAdaptations: IParsedAdaptations = {};
515
509
 
516
- const isLive = parseBoolean(root.attributes.IsLive);
510
+ const isLive = parseBoolean(root.getAttribute("IsLive"));
517
511
 
518
512
  let timeShiftBufferDepth: number | undefined;
519
513
  if (isLive) {
520
- const dvrWindowLength = root.attributes.DVRWindowLength;
514
+ const dvrWindowLength = root.getAttribute("DVRWindowLength");
521
515
  if (
522
- !isNullOrUndefined(dvrWindowLength) &&
516
+ dvrWindowLength !== null &&
523
517
  !isNaN(+dvrWindowLength) &&
524
518
  +dvrWindowLength !== 0
525
519
  ) {
@@ -528,7 +522,7 @@ function createSmoothStreamingParser(
528
522
  }
529
523
 
530
524
  const adaptations: IParsedAdaptations = adaptationNodes.reduce(
531
- (acc: IParsedAdaptations, node: ITNode) => {
525
+ (acc: IParsedAdaptations, node: Element) => {
532
526
  const adaptation = parseAdaptation({
533
527
  root: node,
534
528
  baseUrl,
@@ -628,9 +622,9 @@ function createSmoothStreamingParser(
628
622
  }
629
623
  }
630
624
 
631
- const manifestDuration = root.attributes.Duration;
625
+ const manifestDuration = root.getAttribute("Duration");
632
626
  const duration =
633
- !isNullOrUndefined(manifestDuration) && +manifestDuration !== 0
627
+ manifestDuration !== null && +manifestDuration !== 0
634
628
  ? +manifestDuration / timescale
635
629
  : undefined;
636
630
 
@@ -700,7 +694,7 @@ function createSmoothStreamingParser(
700
694
  return manifest;
701
695
  }
702
696
 
703
- return parseFromNode;
697
+ return parseFromDocument;
704
698
  }
705
699
 
706
700
  /**
@@ -15,7 +15,6 @@
15
15
  */
16
16
 
17
17
  import isNonEmptyString from "../../../utils/is_non_empty_string";
18
- import type { ITNode } from "../../../utils/xml-parser";
19
18
 
20
19
  interface IHSSManifestSegment {
21
20
  start: number;
@@ -25,18 +24,13 @@ interface IHSSManifestSegment {
25
24
 
26
25
  /**
27
26
  * Parse C nodes to build index timeline.
28
- * @param {Object} nodes
27
+ * @param {Element} nodes
29
28
  */
30
- export default function parseCNodes(
31
- nodes: Array<ITNode | string>,
32
- ): IHSSManifestSegment[] {
29
+ export default function parseCNodes(nodes: Element[]): IHSSManifestSegment[] {
33
30
  return nodes.reduce<IHSSManifestSegment[]>((timeline, node, i) => {
34
- if (typeof node === "string") {
35
- return timeline;
36
- }
37
- const dAttr = node.attributes.d ?? null;
38
- const tAttr = node.attributes.t ?? null;
39
- const rAttr = node.attributes.r ?? null;
31
+ const dAttr = node.getAttribute("d");
32
+ const tAttr = node.getAttribute("t");
33
+ const rAttr = node.getAttribute("r");
40
34
 
41
35
  const repeatCount = rAttr !== null ? +rAttr - 1 : 0;
42
36
  let start = tAttr !== null ? +tAttr : undefined;
@@ -56,14 +50,9 @@ export default function parseCNodes(
56
50
  }
57
51
  }
58
52
  if (duration === undefined || isNaN(duration)) {
59
- let nextNodeIdx = i;
60
- let nextNodeElt: ITNode | undefined | string;
61
- do {
62
- nextNodeIdx++;
63
- nextNodeElt = nodes[nextNodeIdx];
64
- } while (nextNodeElt !== undefined && typeof nextNodeElt === "string");
65
- if (nextNodeElt !== undefined) {
66
- const nextTAttr = nextNodeElt.attributes.t ?? null;
53
+ const nextNode = nodes[i + 1];
54
+ if (nextNode !== undefined) {
55
+ const nextTAttr = nextNode.getAttribute("t");
67
56
  const nextStart = isNonEmptyString(nextTAttr) ? +nextTAttr : null;
68
57
  if (nextStart === null) {
69
58
  throw new Error("Can't build index timeline from Smooth Manifest.");
@@ -17,7 +17,6 @@
17
17
  import { base64ToBytes } from "../../../utils/base64";
18
18
  import { concat } from "../../../utils/byte_parsing";
19
19
  import { hexToBytes } from "../../../utils/string_parsing";
20
- import type { ITNode } from "../../../utils/xml-parser";
21
20
  import { getPlayReadyKIDFromPrivateData } from "../../containers/isobmff";
22
21
 
23
22
  export interface IKeySystem {
@@ -45,35 +44,28 @@ function createWidevineKeySystem(keyIdBytes: Uint8Array): IKeySystem[] {
45
44
 
46
45
  /**
47
46
  * Parse "Protection" Node, which contains DRM information
48
- * @param {Object} protectionNode
47
+ * @param {Element} protectionNode
49
48
  * @returns {Object}
50
49
  */
51
50
  export default function parseProtectionNode(
52
- protectionNode: ITNode,
51
+ protectionNode: Element,
53
52
  keySystemCreator: (keyId: Uint8Array) => IKeySystem[] = createWidevineKeySystem,
54
53
  ): IContentProtectionSmooth {
55
- let header;
56
- for (const subNode of protectionNode.children) {
57
- if (typeof subNode === "string") {
58
- continue;
59
- }
60
- if (subNode.tagName === "ProtectionHeader") {
61
- header = subNode;
62
- break;
63
- }
64
- }
65
- if (header === undefined) {
54
+ if (
55
+ protectionNode.firstElementChild === null ||
56
+ protectionNode.firstElementChild.nodeName !== "ProtectionHeader"
57
+ ) {
66
58
  throw new Error("Protection should have ProtectionHeader child");
67
59
  }
68
-
60
+ const header = protectionNode.firstElementChild;
69
61
  const privateData = base64ToBytes(
70
- typeof header.children[0] === "string" ? header.children[0] : "",
62
+ header.textContent === null ? "" : header.textContent,
71
63
  );
72
64
  const keyIdHex = getPlayReadyKIDFromPrivateData(privateData);
73
65
  const keyIdBytes = hexToBytes(keyIdHex);
74
66
 
75
67
  // remove possible braces
76
- const systemIdAttr = header.attributes.SystemID ?? null;
68
+ const systemIdAttr = header.getAttribute("SystemID");
77
69
  const systemId = (systemIdAttr !== null ? systemIdAttr : "")
78
70
  .toLowerCase()
79
71
  .replace(/\{|\}/g, "");
@@ -18,7 +18,7 @@
18
18
  * @param {*} val
19
19
  * @returns {Boolean}
20
20
  */
21
- export default function parseBoolean(val: string | null | undefined | boolean): boolean {
21
+ export default function parseBoolean(val: string | null): boolean {
22
22
  if (typeof val === "boolean") {
23
23
  return val;
24
24
  } else if (typeof val === "string") {
@@ -14,26 +14,23 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import type { ITNode } from "../../../../utils/xml-parser";
18
-
19
17
  /**
20
18
  * Reduce implementation for the children of the given element.
21
- * @param {Object} root
19
+ * @param {Element} root
22
20
  * @param {Function} fn
23
21
  * @param {*} init
24
22
  * @returns {*}
25
23
  */
26
24
  export default function reduceChildren<T>(
27
- root: ITNode,
28
- fn: (accu: T, nodeName: string, nodeElt: ITNode) => T,
25
+ root: Element,
26
+ fn: (accu: T, nodeName: string, nodeElt: Element) => T,
29
27
  init: T,
30
28
  ): T {
29
+ let node = root.firstElementChild;
31
30
  let accumulator = init;
32
- for (const elt of root.children) {
33
- if (typeof elt === "string") {
34
- continue;
35
- }
36
- accumulator = fn(accumulator, elt.tagName, elt);
31
+ while (node !== null) {
32
+ accumulator = fn(accumulator, node.nodeName, node);
33
+ node = node.nextElementSibling;
37
34
  }
38
35
  return accumulator;
39
36
  }