rx-player 3.33.0 → 3.33.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 (819) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/VERSION +1 -1
  3. package/dist/_esm5.processed/core/api/public_api.js +2 -2
  4. package/dist/_esm5.processed/manifest/manifest.js +1 -0
  5. package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +11 -0
  6. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +18 -4
  7. package/dist/mpd-parser.wasm +0 -0
  8. package/dist/rx-player.d.ts +1 -1
  9. package/dist/rx-player.js +24 -9
  10. package/dist/rx-player.min.d.ts +1 -1
  11. package/dist/rx-player.min.js +1 -1
  12. package/package.json +6 -6
  13. package/.editorconfig +0 -22
  14. package/.eslintrc.js +0 -406
  15. package/.github/workflows/checks.yml +0 -101
  16. package/.github/workflows/perfs.yml +0 -22
  17. package/.github/workflows/sonarcloud_analysis.yml +0 -20
  18. package/CONTRIBUTING.md +0 -272
  19. package/FILES.md +0 -283
  20. package/jest.config.js +0 -73
  21. package/manifest.mpd +0 -149
  22. package/scripts/README.md +0 -11
  23. package/scripts/build/constants.d.ts +0 -53
  24. package/scripts/build/generate_build.js +0 -190
  25. package/scripts/build/templates/experimental/features/index.d.ts +0 -16
  26. package/scripts/build/templates/experimental/features/index.js +0 -16
  27. package/scripts/build/templates/experimental/index.d.ts +0 -16
  28. package/scripts/build/templates/experimental/index.js +0 -16
  29. package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.d.ts +0 -18
  30. package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.js +0 -18
  31. package/scripts/build/templates/experimental/tools/index.d.ts +0 -16
  32. package/scripts/build/templates/experimental/tools/index.js +0 -16
  33. package/scripts/build/templates/features/index.d.ts +0 -16
  34. package/scripts/build/templates/features/index.js +0 -16
  35. package/scripts/build/templates/logger/index.d.ts +0 -17
  36. package/scripts/build/templates/logger/index.js +0 -17
  37. package/scripts/build/templates/minimal/index.d.ts +0 -17
  38. package/scripts/build/templates/minimal/index.js +0 -17
  39. package/scripts/build/templates/tools/TextTrackRenderer.d.ts +0 -18
  40. package/scripts/build/templates/tools/TextTrackRenderer.js +0 -18
  41. package/scripts/build/templates/tools/index.d.ts +0 -16
  42. package/scripts/build/templates/tools/index.js +0 -16
  43. package/scripts/build/templates/tools/string-utils.d.ts +0 -18
  44. package/scripts/build/templates/tools/string-utils.js +0 -18
  45. package/scripts/build/templates/types/index.d.ts +0 -16
  46. package/scripts/build/templates/types/index.js +0 -15
  47. package/scripts/canal-release.patch +0 -316
  48. package/scripts/check_nodejs_import_compatibility.js +0 -60
  49. package/scripts/deploy_new_demo +0 -123
  50. package/scripts/fast_demo_build.js +0 -129
  51. package/scripts/generate_certificate +0 -19
  52. package/scripts/generate_demo_list.js +0 -105
  53. package/scripts/generate_documentation_list.js +0 -109
  54. package/scripts/generate_full_demo.js +0 -201
  55. package/scripts/generate_standalone_demo.js +0 -82
  56. package/scripts/launch_static_server.js +0 -163
  57. package/scripts/list-npm-scripts.js +0 -207
  58. package/scripts/make-dev-releases +0 -90
  59. package/scripts/report_build_sizes +0 -96
  60. package/scripts/run_standalone_demo.js +0 -27
  61. package/scripts/start_demo_web_server.js +0 -44
  62. package/scripts/update-version +0 -48
  63. package/scripts/update_gh-pages_demo +0 -132
  64. package/scripts/update_gh-pages_doc +0 -106
  65. package/scripts/utils/display_webpack_errors.js +0 -33
  66. package/scripts/utils/get_human_readable_hours.js +0 -14
  67. package/scripts/wasm-strip.js +0 -359
  68. package/sonar-project.properties +0 -7
  69. package/src/README.md +0 -136
  70. package/src/compat/README.md +0 -29
  71. package/src/compat/__tests__/add_text_track.test.ts +0 -176
  72. package/src/compat/__tests__/browser_compatibility_types.test.ts +0 -152
  73. package/src/compat/__tests__/browser_version.test.ts +0 -84
  74. package/src/compat/__tests__/can_patch_isobmff.test.ts +0 -50
  75. package/src/compat/__tests__/can_rely_on_video_visibility_and_size.test.ts +0 -78
  76. package/src/compat/__tests__/can_reuse_media_keys.test.ts +0 -31
  77. package/src/compat/__tests__/change_source_buffer_type.test.ts +0 -60
  78. package/src/compat/__tests__/clear_element_src.test.ts +0 -252
  79. package/src/compat/__tests__/enable_audio_track.test.ts +0 -341
  80. package/src/compat/__tests__/fullscreen.test.ts +0 -286
  81. package/src/compat/__tests__/is_codec_supported.test.ts +0 -78
  82. package/src/compat/__tests__/is_offline.test.ts +0 -65
  83. package/src/compat/__tests__/is_seeking_approximate.test.ts +0 -48
  84. package/src/compat/__tests__/is_vtt_cue.test.ts +0 -71
  85. package/src/compat/__tests__/make_vtt_cue.test.ts +0 -97
  86. package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +0 -144
  87. package/src/compat/__tests__/remove_cue.test.ts +0 -229
  88. package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +0 -128
  89. package/src/compat/__tests__/should_reload_media_source_on_decipherability_update.test.ts +0 -50
  90. package/src/compat/__tests__/should_renew_media_key_system_access.test.ts +0 -55
  91. package/src/compat/__tests__/should_unset_media_keys.test.ts +0 -53
  92. package/src/compat/__tests__/should_validate_metadata.test.ts +0 -53
  93. package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +0 -121
  94. package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +0 -36
  95. package/src/compat/add_class_name.ts +0 -41
  96. package/src/compat/add_text_track.ts +0 -58
  97. package/src/compat/browser_compatibility_types.ts +0 -222
  98. package/src/compat/browser_detection.ts +0 -172
  99. package/src/compat/browser_version.ts +0 -44
  100. package/src/compat/can_patch_isobmff.ts +0 -30
  101. package/src/compat/can_rely_on_video_visibility_and_size.ts +0 -52
  102. package/src/compat/can_reuse_media_keys.ts +0 -20
  103. package/src/compat/change_source_buffer_type.ts +0 -66
  104. package/src/compat/clear_element_src.ts +0 -55
  105. package/src/compat/eme/close_session.ts +0 -111
  106. package/src/compat/eme/constants.ts +0 -21
  107. package/src/compat/eme/custom_key_system_access.ts +0 -67
  108. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +0 -186
  109. package/src/compat/eme/custom_media_keys/index.ts +0 -28
  110. package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +0 -88
  111. package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +0 -69
  112. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +0 -235
  113. package/src/compat/eme/custom_media_keys/types.ts +0 -67
  114. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +0 -308
  115. package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +0 -50
  116. package/src/compat/eme/eme-api-implementation.ts +0 -318
  117. package/src/compat/eme/generate_key_request.ts +0 -162
  118. package/src/compat/eme/get_init_data.ts +0 -159
  119. package/src/compat/eme/get_uuid_kid_from_keystatus_kid.ts +0 -37
  120. package/src/compat/eme/get_webkit_fairplay_initdata.ts +0 -75
  121. package/src/compat/eme/index.ts +0 -47
  122. package/src/compat/eme/load_session.ts +0 -67
  123. package/src/compat/enable_audio_track.ts +0 -33
  124. package/src/compat/event_listeners.ts +0 -566
  125. package/src/compat/fullscreen.ts +0 -87
  126. package/src/compat/get_start_date.ts +0 -48
  127. package/src/compat/has_issues_with_high_media_source_duration.ts +0 -27
  128. package/src/compat/index.ts +0 -87
  129. package/src/compat/is_codec_supported.ts +0 -40
  130. package/src/compat/is_debug_mode_enabled.ts +0 -12
  131. package/src/compat/is_node.ts +0 -18
  132. package/src/compat/is_offline.ts +0 -44
  133. package/src/compat/is_seeking_approximate.ts +0 -32
  134. package/src/compat/is_vtt_cue.ts +0 -30
  135. package/src/compat/make_vtt_cue.ts +0 -51
  136. package/src/compat/on_height_width_change.ts +0 -119
  137. package/src/compat/patch_webkit_source_buffer.ts +0 -89
  138. package/src/compat/remove_cue.ts +0 -64
  139. package/src/compat/should_favour_custom_safari_EME.ts +0 -34
  140. package/src/compat/should_prevent_seeking_at_0_initially.ts +0 -19
  141. package/src/compat/should_reload_media_source_on_decipherability_update.ts +0 -32
  142. package/src/compat/should_renew_media_key_system_access.ts +0 -26
  143. package/src/compat/should_unset_media_keys.ts +0 -27
  144. package/src/compat/should_validate_metadata.ts +0 -27
  145. package/src/compat/should_wait_for_data_before_loaded.ts +0 -35
  146. package/src/compat/should_wait_for_have_enough_data.ts +0 -17
  147. package/src/config.ts +0 -32
  148. package/src/core/README.md +0 -56
  149. package/src/core/adaptive/README.md +0 -147
  150. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +0 -548
  151. package/src/core/adaptive/adaptive_representation_selector.ts +0 -916
  152. package/src/core/adaptive/buffer_based_chooser.ts +0 -264
  153. package/src/core/adaptive/guess_based_chooser.ts +0 -309
  154. package/src/core/adaptive/index.ts +0 -45
  155. package/src/core/adaptive/network_analyzer.ts +0 -419
  156. package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -134
  157. package/src/core/adaptive/utils/__tests__/ewma.test.ts +0 -79
  158. package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +0 -56
  159. package/src/core/adaptive/utils/__tests__/filter_by_width.test.ts +0 -60
  160. package/src/core/adaptive/utils/__tests__/get_buffer_levels.test.ts +0 -48
  161. package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +0 -243
  162. package/src/core/adaptive/utils/bandwidth_estimator.ts +0 -88
  163. package/src/core/adaptive/utils/ewma.ts +0 -59
  164. package/src/core/adaptive/utils/filter_by_bitrate.ts +0 -46
  165. package/src/core/adaptive/utils/filter_by_width.ts +0 -49
  166. package/src/core/adaptive/utils/get_buffer_levels.ts +0 -50
  167. package/src/core/adaptive/utils/last_estimate_storage.ts +0 -79
  168. package/src/core/adaptive/utils/pending_requests_store.ts +0 -147
  169. package/src/core/adaptive/utils/representation_score_calculator.ts +0 -168
  170. package/src/core/adaptive/utils/select_optimal_representation.ts +0 -54
  171. package/src/core/api/README.md +0 -36
  172. package/src/core/api/__tests__/option_utils.test.ts +0 -1668
  173. package/src/core/api/__tests__/public_api.test.ts +0 -857
  174. package/src/core/api/__tests__/utils.test.ts +0 -195
  175. package/src/core/api/debug/buffer_graph.ts +0 -244
  176. package/src/core/api/debug/buffer_size_graph.ts +0 -130
  177. package/src/core/api/debug/constants.ts +0 -2
  178. package/src/core/api/debug/index.ts +0 -3
  179. package/src/core/api/debug/modules/general_info.ts +0 -213
  180. package/src/core/api/debug/modules/segment_buffer_content.ts +0 -155
  181. package/src/core/api/debug/modules/segment_buffer_size.ts +0 -48
  182. package/src/core/api/debug/render.ts +0 -40
  183. package/src/core/api/debug/utils.ts +0 -103
  184. package/src/core/api/index.ts +0 -27
  185. package/src/core/api/option_utils.ts +0 -700
  186. package/src/core/api/playback_observer.ts +0 -994
  187. package/src/core/api/public_api.ts +0 -3247
  188. package/src/core/api/tracks_management/__tests__/media_element_track_choice_manager.test.ts +0 -184
  189. package/src/core/api/tracks_management/media_element_track_choice_manager.ts +0 -975
  190. package/src/core/api/tracks_management/track_choice_manager.ts +0 -1280
  191. package/src/core/api/utils.ts +0 -216
  192. package/src/core/decrypt/README.md +0 -22
  193. package/src/core/decrypt/__tests__/__global__/get_license.test.ts +0 -422
  194. package/src/core/decrypt/__tests__/__global__/init_data.test.ts +0 -677
  195. package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +0 -528
  196. package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +0 -343
  197. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +0 -264
  198. package/src/core/decrypt/__tests__/__global__/utils.ts +0 -491
  199. package/src/core/decrypt/attach_media_keys.ts +0 -121
  200. package/src/core/decrypt/clear_on_stop.ts +0 -47
  201. package/src/core/decrypt/content_decryptor.ts +0 -1246
  202. package/src/core/decrypt/create_or_load_session.ts +0 -133
  203. package/src/core/decrypt/create_session.ts +0 -214
  204. package/src/core/decrypt/dispose_decryption_resources.ts +0 -54
  205. package/src/core/decrypt/find_key_system.ts +0 -376
  206. package/src/core/decrypt/get_key_system_configuration.ts +0 -51
  207. package/src/core/decrypt/get_media_keys.ts +0 -147
  208. package/src/core/decrypt/index.ts +0 -36
  209. package/src/core/decrypt/init_media_keys.ts +0 -60
  210. package/src/core/decrypt/session_events_listener.ts +0 -386
  211. package/src/core/decrypt/set_server_certificate.ts +0 -105
  212. package/src/core/decrypt/types.ts +0 -404
  213. package/src/core/decrypt/utils/__tests__/are_init_values_compatible.test.ts +0 -261
  214. package/src/core/decrypt/utils/__tests__/clean_old_loaded_sessions.test.ts +0 -158
  215. package/src/core/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +0 -133
  216. package/src/core/decrypt/utils/are_init_values_compatible.ts +0 -140
  217. package/src/core/decrypt/utils/check_key_statuses.ts +0 -193
  218. package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +0 -45
  219. package/src/core/decrypt/utils/clean_old_stored_persistent_info.ts +0 -48
  220. package/src/core/decrypt/utils/get_drm_system_id.ts +0 -42
  221. package/src/core/decrypt/utils/init_data_values_container.ts +0 -119
  222. package/src/core/decrypt/utils/is_session_usable.ts +0 -62
  223. package/src/core/decrypt/utils/key_id_comparison.ts +0 -57
  224. package/src/core/decrypt/utils/key_session_record.ts +0 -174
  225. package/src/core/decrypt/utils/loaded_sessions_store.ts +0 -505
  226. package/src/core/decrypt/utils/media_keys_infos_store.ts +0 -85
  227. package/src/core/decrypt/utils/persistent_sessions_store.ts +0 -358
  228. package/src/core/decrypt/utils/serializable_bytes.ts +0 -59
  229. package/src/core/decrypt/utils/server_certificate_store.ts +0 -133
  230. package/src/core/fetchers/README.md +0 -84
  231. package/src/core/fetchers/cdn_prioritizer.ts +0 -207
  232. package/src/core/fetchers/index.ts +0 -38
  233. package/src/core/fetchers/manifest/index.ts +0 -28
  234. package/src/core/fetchers/manifest/manifest_fetcher.ts +0 -798
  235. package/src/core/fetchers/segment/__tests__/task_prioritizer.test.ts +0 -763
  236. package/src/core/fetchers/segment/index.ts +0 -28
  237. package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +0 -113
  238. package/src/core/fetchers/segment/segment_fetcher.ts +0 -482
  239. package/src/core/fetchers/segment/segment_fetcher_creator.ts +0 -129
  240. package/src/core/fetchers/segment/task_prioritizer.ts +0 -455
  241. package/src/core/fetchers/utils/error_selector.ts +0 -38
  242. package/src/core/fetchers/utils/schedule_request.ts +0 -493
  243. package/src/core/init/README.md +0 -81
  244. package/src/core/init/directfile_content_initializer.ts +0 -310
  245. package/src/core/init/index.ts +0 -22
  246. package/src/core/init/media_source_content_initializer.ts +0 -878
  247. package/src/core/init/types.ts +0 -266
  248. package/src/core/init/utils/__tests__/are_same_stream_events.test.ts +0 -84
  249. package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +0 -94
  250. package/src/core/init/utils/content_time_boundaries_observer.ts +0 -646
  251. package/src/core/init/utils/create_media_source.ts +0 -139
  252. package/src/core/init/utils/create_stream_playback_observer.ts +0 -132
  253. package/src/core/init/utils/end_of_stream.ts +0 -108
  254. package/src/core/init/utils/get_initial_time.ts +0 -165
  255. package/src/core/init/utils/get_loaded_reference.ts +0 -82
  256. package/src/core/init/utils/initial_seek_and_play.ts +0 -237
  257. package/src/core/init/utils/initialize_content_decryption.ts +0 -172
  258. package/src/core/init/utils/media_source_duration_updater.ts +0 -349
  259. package/src/core/init/utils/rebuffering_controller.ts +0 -642
  260. package/src/core/init/utils/stream_events_emitter/are_same_stream_events.ts +0 -42
  261. package/src/core/init/utils/stream_events_emitter/index.ts +0 -22
  262. package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +0 -74
  263. package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +0 -252
  264. package/src/core/init/utils/stream_events_emitter/types.ts +0 -46
  265. package/src/core/init/utils/throw_on_media_error.ts +0 -74
  266. package/src/core/segment_buffers/README.md +0 -219
  267. package/src/core/segment_buffers/garbage_collector.ts +0 -177
  268. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +0 -650
  269. package/src/core/segment_buffers/implementations/audio_video/index.ts +0 -18
  270. package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +0 -152
  271. package/src/core/segment_buffers/implementations/image/index.ts +0 -18
  272. package/src/core/segment_buffers/implementations/index.ts +0 -20
  273. package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +0 -343
  274. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +0 -527
  275. package/src/core/segment_buffers/implementations/text/html/index.ts +0 -24
  276. package/src/core/segment_buffers/implementations/text/html/parsers.ts +0 -49
  277. package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +0 -391
  278. package/src/core/segment_buffers/implementations/text/html/types.ts +0 -23
  279. package/src/core/segment_buffers/implementations/text/html/update_proportional_elements.ts +0 -93
  280. package/src/core/segment_buffers/implementations/text/html/utils.ts +0 -139
  281. package/src/core/segment_buffers/implementations/text/native/index.ts +0 -19
  282. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +0 -340
  283. package/src/core/segment_buffers/implementations/text/native/parsers.ts +0 -47
  284. package/src/core/segment_buffers/implementations/types.ts +0 -386
  285. package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +0 -80
  286. package/src/core/segment_buffers/index.ts +0 -67
  287. package/src/core/segment_buffers/inventory/buffered_history.ts +0 -131
  288. package/src/core/segment_buffers/inventory/index.ts +0 -30
  289. package/src/core/segment_buffers/inventory/segment_inventory.ts +0 -1111
  290. package/src/core/segment_buffers/inventory/types.ts +0 -35
  291. package/src/core/segment_buffers/segment_buffers_store.ts +0 -383
  292. package/src/core/stream/README.md +0 -59
  293. package/src/core/stream/adaptation/adaptation_stream.ts +0 -378
  294. package/src/core/stream/adaptation/index.ts +0 -20
  295. package/src/core/stream/adaptation/types.ts +0 -199
  296. package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
  297. package/src/core/stream/index.ts +0 -38
  298. package/src/core/stream/orchestrator/README.md +0 -349
  299. package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +0 -70
  300. package/src/core/stream/orchestrator/index.ts +0 -30
  301. package/src/core/stream/orchestrator/stream_orchestrator.ts +0 -664
  302. package/src/core/stream/period/index.ts +0 -20
  303. package/src/core/stream/period/period_stream.ts +0 -469
  304. package/src/core/stream/period/types.ts +0 -132
  305. package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +0 -287
  306. package/src/core/stream/representation/README.md +0 -16
  307. package/src/core/stream/representation/index.ts +0 -20
  308. package/src/core/stream/representation/representation_stream.ts +0 -474
  309. package/src/core/stream/representation/types.ts +0 -292
  310. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +0 -77
  311. package/src/core/stream/representation/utils/check_for_discontinuity.ts +0 -305
  312. package/src/core/stream/representation/utils/downloading_queue.ts +0 -603
  313. package/src/core/stream/representation/utils/force_garbage_collection.ts +0 -113
  314. package/src/core/stream/representation/utils/get_buffer_status.ts +0 -322
  315. package/src/core/stream/representation/utils/get_needed_segments.ts +0 -617
  316. package/src/core/stream/representation/utils/get_segment_priority.ts +0 -43
  317. package/src/core/stream/representation/utils/push_init_segment.ts +0 -85
  318. package/src/core/stream/representation/utils/push_media_segment.ts +0 -113
  319. package/src/default_config.ts +0 -1293
  320. package/src/errors/README.md +0 -6
  321. package/src/errors/__tests__/assertion_error.test.ts +0 -26
  322. package/src/errors/__tests__/encrypted_media_error.test.ts +0 -45
  323. package/src/errors/__tests__/error_message.test.ts +0 -23
  324. package/src/errors/__tests__/format_error.test.ts +0 -62
  325. package/src/errors/__tests__/is_known_error.test.ts +0 -65
  326. package/src/errors/__tests__/media_error.test.ts +0 -55
  327. package/src/errors/__tests__/network_error.test.ts +0 -84
  328. package/src/errors/__tests__/other_error.test.ts +0 -53
  329. package/src/errors/__tests__/request_error.test.ts +0 -45
  330. package/src/errors/assertion_error.ts +0 -40
  331. package/src/errors/custom_loader_error.ts +0 -57
  332. package/src/errors/encrypted_media_error.ts +0 -71
  333. package/src/errors/error_codes.ts +0 -149
  334. package/src/errors/error_message.ts +0 -30
  335. package/src/errors/format_error.ts +0 -39
  336. package/src/errors/index.ts +0 -52
  337. package/src/errors/is_known_error.ts +0 -35
  338. package/src/errors/media_error.ts +0 -118
  339. package/src/errors/network_error.ts +0 -74
  340. package/src/errors/other_error.ts +0 -50
  341. package/src/errors/request_error.ts +0 -76
  342. package/src/experimental/README.md +0 -16
  343. package/src/experimental/features/__tests__/dash_wasm.test.ts +0 -44
  344. package/src/experimental/features/__tests__/debug_element.test.ts +0 -12
  345. package/src/experimental/features/__tests__/index.test.ts +0 -19
  346. package/src/experimental/features/__tests__/local.test.ts +0 -35
  347. package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -35
  348. package/src/experimental/features/dash_wasm.ts +0 -41
  349. package/src/experimental/features/debug_element.ts +0 -13
  350. package/src/experimental/features/index.ts +0 -20
  351. package/src/experimental/features/local.ts +0 -28
  352. package/src/experimental/features/metaplaylist.ts +0 -28
  353. package/src/experimental/index.ts +0 -5
  354. package/src/experimental/tools/VideoThumbnailLoader/features/dash.ts +0 -23
  355. package/src/experimental/tools/VideoThumbnailLoader/features/metaplaylist.ts +0 -23
  356. package/src/experimental/tools/VideoThumbnailLoader/index.ts +0 -25
  357. package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +0 -77
  358. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +0 -75
  359. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +0 -54
  360. package/src/experimental/tools/VideoThumbnailLoader/types.ts +0 -39
  361. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +0 -423
  362. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.ts +0 -34
  363. package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +0 -141
  364. package/src/experimental/tools/createMetaplaylist/index.ts +0 -72
  365. package/src/experimental/tools/index.ts +0 -27
  366. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/capabilities.test.ts +0 -37
  367. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +0 -140
  368. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +0 -153
  369. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +0 -405
  370. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +0 -136
  371. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +0 -294
  372. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +0 -189
  373. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/utils.test.ts +0 -361
  374. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +0 -184
  375. package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +0 -136
  376. package/src/experimental/tools/mediaCapabilitiesProber/capabilities.ts +0 -169
  377. package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -18
  378. package/src/experimental/tools/mediaCapabilitiesProber/log.ts +0 -21
  379. package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +0 -67
  380. package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +0 -89
  381. package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +0 -100
  382. package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +0 -66
  383. package/src/experimental/tools/mediaCapabilitiesProber/probers/index.ts +0 -44
  384. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +0 -66
  385. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.ts +0 -100
  386. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +0 -105
  387. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +0 -54
  388. package/src/experimental/tools/mediaCapabilitiesProber/types.ts +0 -75
  389. package/src/experimental/tools/mediaCapabilitiesProber/utils.ts +0 -107
  390. package/src/experimental/tools/parseBIFThumbnails.ts +0 -39
  391. package/src/features/README.md +0 -11
  392. package/src/features/__tests__/add_features.test.ts +0 -69
  393. package/src/features/__tests__/initialize_features.test.ts +0 -674
  394. package/src/features/add_features.ts +0 -37
  395. package/src/features/features_object.ts +0 -37
  396. package/src/features/index.ts +0 -40
  397. package/src/features/initialize_features.ts +0 -136
  398. package/src/features/list/__tests__/bif_parser.test.ts +0 -30
  399. package/src/features/list/__tests__/dash.test.ts +0 -41
  400. package/src/features/list/__tests__/directfile.test.ts +0 -35
  401. package/src/features/list/__tests__/eme.test.ts +0 -28
  402. package/src/features/list/__tests__/html_sami_parser.test.ts +0 -33
  403. package/src/features/list/__tests__/html_srt_parser.test.ts +0 -33
  404. package/src/features/list/__tests__/html_text_buffer.test.ts +0 -29
  405. package/src/features/list/__tests__/html_ttml_parser.test.ts +0 -33
  406. package/src/features/list/__tests__/html_vtt_parser.test.ts +0 -33
  407. package/src/features/list/__tests__/image_buffer.test.ts +0 -28
  408. package/src/features/list/__tests__/index.test.ts +0 -55
  409. package/src/features/list/__tests__/native_sami_parser.test.ts +0 -33
  410. package/src/features/list/__tests__/native_srt_parser.test.ts +0 -33
  411. package/src/features/list/__tests__/native_text_buffer.test.ts +0 -29
  412. package/src/features/list/__tests__/native_ttml_parser.test.ts +0 -33
  413. package/src/features/list/__tests__/native_vtt_parser.test.ts +0 -33
  414. package/src/features/list/__tests__/smooth.test.ts +0 -36
  415. package/src/features/list/bif_parser.ts +0 -31
  416. package/src/features/list/dash.ts +0 -36
  417. package/src/features/list/directfile.ts +0 -35
  418. package/src/features/list/eme.ts +0 -29
  419. package/src/features/list/html_sami_parser.ts +0 -31
  420. package/src/features/list/html_srt_parser.ts +0 -31
  421. package/src/features/list/html_text_buffer.ts +0 -29
  422. package/src/features/list/html_ttml_parser.ts +0 -31
  423. package/src/features/list/html_vtt_parser.ts +0 -31
  424. package/src/features/list/image_buffer.ts +0 -29
  425. package/src/features/list/index.ts +0 -32
  426. package/src/features/list/native_sami_parser.ts +0 -32
  427. package/src/features/list/native_srt_parser.ts +0 -32
  428. package/src/features/list/native_text_buffer.ts +0 -30
  429. package/src/features/list/native_ttml_parser.ts +0 -32
  430. package/src/features/list/native_vtt_parser.ts +0 -32
  431. package/src/features/list/smooth.ts +0 -32
  432. package/src/features/types.ts +0 -183
  433. package/src/index.ts +0 -38
  434. package/src/log.ts +0 -22
  435. package/src/manifest/README.md +0 -55
  436. package/src/manifest/__tests__/adaptation.test.ts +0 -485
  437. package/src/manifest/__tests__/manifest.test.ts +0 -428
  438. package/src/manifest/__tests__/period.test.ts +0 -769
  439. package/src/manifest/__tests__/representation.test.ts +0 -297
  440. package/src/manifest/__tests__/update_period_in_place.test.ts +0 -1074
  441. package/src/manifest/__tests__/update_periods.test.ts +0 -845
  442. package/src/manifest/adaptation.ts +0 -294
  443. package/src/manifest/index.ts +0 -67
  444. package/src/manifest/manifest.ts +0 -811
  445. package/src/manifest/period.ts +0 -211
  446. package/src/manifest/representation.ts +0 -451
  447. package/src/manifest/representation_index/__tests__/static.test.ts +0 -74
  448. package/src/manifest/representation_index/index.ts +0 -31
  449. package/src/manifest/representation_index/static.ts +0 -158
  450. package/src/manifest/representation_index/types.ts +0 -433
  451. package/src/manifest/types.ts +0 -33
  452. package/src/manifest/update_period_in_place.ts +0 -142
  453. package/src/manifest/update_periods.ts +0 -201
  454. package/src/manifest/utils.ts +0 -60
  455. package/src/minimal.ts +0 -34
  456. package/src/parsers/README.md +0 -12
  457. package/src/parsers/containers/isobmff/constants.ts +0 -24
  458. package/src/parsers/containers/isobmff/create_box.ts +0 -81
  459. package/src/parsers/containers/isobmff/drm/index.ts +0 -17
  460. package/src/parsers/containers/isobmff/drm/playready.ts +0 -45
  461. package/src/parsers/containers/isobmff/get_box.ts +0 -278
  462. package/src/parsers/containers/isobmff/index.ts +0 -51
  463. package/src/parsers/containers/isobmff/read.ts +0 -105
  464. package/src/parsers/containers/isobmff/take_pssh_out.ts +0 -101
  465. package/src/parsers/containers/isobmff/utils.ts +0 -555
  466. package/src/parsers/containers/matroska/index.ts +0 -21
  467. package/src/parsers/containers/matroska/utils.ts +0 -313
  468. package/src/parsers/images/bif.ts +0 -128
  469. package/src/parsers/manifest/dash/common/__tests__/attach_trickmode_track.test.ts +0 -65
  470. package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +0 -37
  471. package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +0 -162
  472. package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +0 -65
  473. package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +0 -165
  474. package/src/parsers/manifest/dash/common/__tests__/get_periods_time_infos.test.ts +0 -118
  475. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +0 -290
  476. package/src/parsers/manifest/dash/common/__tests__/parse_availability_start_time.test.ts +0 -63
  477. package/src/parsers/manifest/dash/common/attach_trickmode_track.ts +0 -55
  478. package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +0 -32
  479. package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +0 -87
  480. package/src/parsers/manifest/dash/common/get_clock_offset.ts +0 -41
  481. package/src/parsers/manifest/dash/common/get_hdr_information.ts +0 -94
  482. package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +0 -46
  483. package/src/parsers/manifest/dash/common/get_minimum_and_maximum_positions.ts +0 -39
  484. package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +0 -91
  485. package/src/parsers/manifest/dash/common/index.ts +0 -40
  486. package/src/parsers/manifest/dash/common/indexes/__tests__/tokens.test.ts +0 -60
  487. package/src/parsers/manifest/dash/common/indexes/base.ts +0 -444
  488. package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +0 -55
  489. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +0 -148
  490. package/src/parsers/manifest/dash/common/indexes/index.ts +0 -39
  491. package/src/parsers/manifest/dash/common/indexes/list.ts +0 -338
  492. package/src/parsers/manifest/dash/common/indexes/template.ts +0 -652
  493. package/src/parsers/manifest/dash/common/indexes/timeline/__tests__/parse_s_element.test.ts +0 -115
  494. package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +0 -54
  495. package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.ts +0 -102
  496. package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +0 -66
  497. package/src/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.ts +0 -153
  498. package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +0 -21
  499. package/src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts +0 -72
  500. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +0 -1049
  501. package/src/parsers/manifest/dash/common/indexes/tokens.ts +0 -127
  502. package/src/parsers/manifest/dash/common/indexes/utils.ts +0 -32
  503. package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +0 -142
  504. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +0 -165
  505. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +0 -569
  506. package/src/parsers/manifest/dash/common/parse_availability_start_time.ts +0 -35
  507. package/src/parsers/manifest/dash/common/parse_mpd.ts +0 -399
  508. package/src/parsers/manifest/dash/common/parse_periods.ts +0 -363
  509. package/src/parsers/manifest/dash/common/parse_representation_index.ts +0 -199
  510. package/src/parsers/manifest/dash/common/parse_representations.ts +0 -352
  511. package/src/parsers/manifest/dash/common/resolve_base_urls.ts +0 -58
  512. package/src/parsers/manifest/dash/index.ts +0 -22
  513. package/src/parsers/manifest/dash/js-parser/__tests__/parse_from_document.test.ts +0 -45
  514. package/src/parsers/manifest/dash/js-parser/index.ts +0 -18
  515. package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +0 -381
  516. package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +0 -35
  517. package/src/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.ts +0 -49
  518. package/src/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.ts +0 -94
  519. package/src/parsers/manifest/dash/js-parser/node_parsers/EventStream.ts +0 -117
  520. package/src/parsers/manifest/dash/js-parser/node_parsers/Initialization.ts +0 -48
  521. package/src/parsers/manifest/dash/js-parser/node_parsers/MPD.ts +0 -180
  522. package/src/parsers/manifest/dash/js-parser/node_parsers/Period.ts +0 -152
  523. package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +0 -234
  524. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +0 -112
  525. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentList.ts +0 -50
  526. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +0 -98
  527. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.ts +0 -35
  528. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.ts +0 -63
  529. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +0 -407
  530. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentComponent.test.ts +0 -67
  531. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +0 -223
  532. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +0 -139
  533. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentTimeline.test.ts +0 -119
  534. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +0 -205
  535. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/utils.test.ts +0 -218
  536. package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +0 -384
  537. package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +0 -129
  538. package/src/parsers/manifest/dash/node_parser_types.ts +0 -431
  539. package/src/parsers/manifest/dash/parsers_types.ts +0 -91
  540. package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +0 -25
  541. package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +0 -16
  542. package/src/parsers/manifest/dash/wasm-parser/README.md +0 -267
  543. package/src/parsers/manifest/dash/wasm-parser/index.ts +0 -21
  544. package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +0 -28
  545. package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +0 -373
  546. package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +0 -85
  547. package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +0 -414
  548. package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +0 -472
  549. package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +0 -72
  550. package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +0 -17
  551. package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +0 -147
  552. package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +0 -217
  553. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +0 -477
  554. package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +0 -343
  555. package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +0 -38
  556. package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.ts +0 -53
  557. package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.ts +0 -62
  558. package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +0 -144
  559. package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +0 -183
  560. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +0 -180
  561. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +0 -215
  562. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.ts +0 -44
  563. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +0 -115
  564. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +0 -61
  565. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +0 -133
  566. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.ts +0 -70
  567. package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +0 -66
  568. package/src/parsers/manifest/dash/wasm-parser/ts/generators/index.ts +0 -17
  569. package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +0 -66
  570. package/src/parsers/manifest/dash/wasm-parser/ts/parsers_stack.ts +0 -80
  571. package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +0 -298
  572. package/src/parsers/manifest/dash/wasm-parser/ts/utils.ts +0 -47
  573. package/src/parsers/manifest/index.ts +0 -17
  574. package/src/parsers/manifest/local/index.ts +0 -25
  575. package/src/parsers/manifest/local/parse_local_manifest.ts +0 -164
  576. package/src/parsers/manifest/local/representation_index.ts +0 -246
  577. package/src/parsers/manifest/local/types.ts +0 -291
  578. package/src/parsers/manifest/metaplaylist/index.ts +0 -28
  579. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +0 -335
  580. package/src/parsers/manifest/metaplaylist/representation_index.ts +0 -251
  581. package/src/parsers/manifest/smooth/create_parser.ts +0 -699
  582. package/src/parsers/manifest/smooth/get_codecs.ts +0 -55
  583. package/src/parsers/manifest/smooth/index.ts +0 -26
  584. package/src/parsers/manifest/smooth/parse_C_nodes.ts +0 -69
  585. package/src/parsers/manifest/smooth/parse_protection_node.ts +0 -72
  586. package/src/parsers/manifest/smooth/representation_index.ts +0 -704
  587. package/src/parsers/manifest/smooth/utils/add_segment_infos.ts +0 -77
  588. package/src/parsers/manifest/smooth/utils/parseBoolean.ts +0 -31
  589. package/src/parsers/manifest/smooth/utils/reduceChildren.ts +0 -36
  590. package/src/parsers/manifest/smooth/utils/tokens.ts +0 -46
  591. package/src/parsers/manifest/types.ts +0 -395
  592. package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +0 -161
  593. package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +0 -161
  594. package/src/parsers/manifest/utils/__tests__/index_helpers.test.ts +0 -55
  595. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +0 -546
  596. package/src/parsers/manifest/utils/check_manifest_ids.ts +0 -83
  597. package/src/parsers/manifest/utils/clear_timeline_from_position.ts +0 -74
  598. package/src/parsers/manifest/utils/get_first_time_from_adaptation.ts +0 -48
  599. package/src/parsers/manifest/utils/get_last_time_from_adaptation.ts +0 -50
  600. package/src/parsers/manifest/utils/get_maximum_positions.ts +0 -87
  601. package/src/parsers/manifest/utils/get_minimum_position.ts +0 -80
  602. package/src/parsers/manifest/utils/index_helpers.ts +0 -204
  603. package/src/parsers/manifest/utils/update_segment_timeline.ts +0 -141
  604. package/src/parsers/texttracks/index.ts +0 -21
  605. package/src/parsers/texttracks/sami/html.ts +0 -219
  606. package/src/parsers/texttracks/sami/native.ts +0 -192
  607. package/src/parsers/texttracks/srt/__tests__/find_end_of_cue_block.test.ts +0 -99
  608. package/src/parsers/texttracks/srt/__tests__/get_cue_blocks.test.ts +0 -119
  609. package/src/parsers/texttracks/srt/__tests__/parse_cue.test.ts +0 -123
  610. package/src/parsers/texttracks/srt/__tests__/parse_timestamp.test.ts +0 -36
  611. package/src/parsers/texttracks/srt/find_end_of_cue_block.ts +0 -46
  612. package/src/parsers/texttracks/srt/get_cue_blocks.ts +0 -49
  613. package/src/parsers/texttracks/srt/html.ts +0 -182
  614. package/src/parsers/texttracks/srt/native.ts +0 -74
  615. package/src/parsers/texttracks/srt/parse_cue.ts +0 -76
  616. package/src/parsers/texttracks/srt/parse_timestamp.ts +0 -37
  617. package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +0 -248
  618. package/src/parsers/texttracks/ttml/get_parameters.ts +0 -106
  619. package/src/parsers/texttracks/ttml/get_styling.ts +0 -146
  620. package/src/parsers/texttracks/ttml/get_time_delimiters.ts +0 -49
  621. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +0 -190
  622. package/src/parsers/texttracks/ttml/html/__tests__/generate_css_test_outline.test.ts +0 -32
  623. package/src/parsers/texttracks/ttml/html/__tests__/ttml_color_to_css_color.test.ts +0 -62
  624. package/src/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.ts +0 -67
  625. package/src/parsers/texttracks/ttml/html/apply_extent.ts +0 -65
  626. package/src/parsers/texttracks/ttml/html/apply_font_size.ts +0 -62
  627. package/src/parsers/texttracks/ttml/html/apply_line_height.ts +0 -50
  628. package/src/parsers/texttracks/ttml/html/apply_origin.ts +0 -64
  629. package/src/parsers/texttracks/ttml/html/apply_padding.ts +0 -141
  630. package/src/parsers/texttracks/ttml/html/create_element.ts +0 -549
  631. package/src/parsers/texttracks/ttml/html/generate_css_test_outline.ts +0 -46
  632. package/src/parsers/texttracks/ttml/html/index.ts +0 -23
  633. package/src/parsers/texttracks/ttml/html/parse_cue.ts +0 -65
  634. package/src/parsers/texttracks/ttml/html/parse_ttml_to_div.ts +0 -58
  635. package/src/parsers/texttracks/ttml/html/ttml_color_to_css_color.ts +0 -68
  636. package/src/parsers/texttracks/ttml/native/index.ts +0 -23
  637. package/src/parsers/texttracks/ttml/native/parse_cue.ts +0 -245
  638. package/src/parsers/texttracks/ttml/native/parse_ttml_to_vtt.ts +0 -39
  639. package/src/parsers/texttracks/ttml/parse_ttml.ts +0 -206
  640. package/src/parsers/texttracks/ttml/regexps.ts +0 -65
  641. package/src/parsers/texttracks/ttml/resolve_styles_inheritance.ts +0 -84
  642. package/src/parsers/texttracks/ttml/time_parsing.ts +0 -156
  643. package/src/parsers/texttracks/ttml/xml_utils.ts +0 -166
  644. package/src/parsers/texttracks/types.ts +0 -34
  645. package/src/parsers/texttracks/webvtt/__tests__/get_cue_blocks.test.ts +0 -218
  646. package/src/parsers/texttracks/webvtt/__tests__/get_style_blocks.test.ts +0 -65
  647. package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +0 -249
  648. package/src/parsers/texttracks/webvtt/__tests__/parse_timestamp.test.ts +0 -39
  649. package/src/parsers/texttracks/webvtt/__tests__/utils.test.ts +0 -401
  650. package/src/parsers/texttracks/webvtt/get_cue_blocks.ts +0 -51
  651. package/src/parsers/texttracks/webvtt/get_style_blocks.ts +0 -56
  652. package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +0 -106
  653. package/src/parsers/texttracks/webvtt/html/__tests__/create_default_style_elements.test.ts +0 -44
  654. package/src/parsers/texttracks/webvtt/html/__tests__/create_style_attribute.test.ts +0 -139
  655. package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +0 -140
  656. package/src/parsers/texttracks/webvtt/html/__tests__/parse_style_block.test.ts +0 -345
  657. package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +0 -181
  658. package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +0 -234
  659. package/src/parsers/texttracks/webvtt/html/convert_payload_to_html.ts +0 -46
  660. package/src/parsers/texttracks/webvtt/html/create_default_style_elements.ts +0 -26
  661. package/src/parsers/texttracks/webvtt/html/create_style_attribute.ts +0 -222
  662. package/src/parsers/texttracks/webvtt/html/create_styled_element.ts +0 -95
  663. package/src/parsers/texttracks/webvtt/html/index.ts +0 -25
  664. package/src/parsers/texttracks/webvtt/html/parse_style_block.ts +0 -76
  665. package/src/parsers/texttracks/webvtt/html/parse_webvtt_to_div.ts +0 -67
  666. package/src/parsers/texttracks/webvtt/html/to_html.ts +0 -96
  667. package/src/parsers/texttracks/webvtt/native/index.ts +0 -23
  668. package/src/parsers/texttracks/webvtt/native/parse_vtt_to_cues.ts +0 -70
  669. package/src/parsers/texttracks/webvtt/native/set_settings_on_cue.ts +0 -95
  670. package/src/parsers/texttracks/webvtt/native/to_native_cue.ts +0 -34
  671. package/src/parsers/texttracks/webvtt/parse_cue_block.ts +0 -128
  672. package/src/parsers/texttracks/webvtt/parse_timestamp.ts +0 -40
  673. package/src/parsers/texttracks/webvtt/utils.ts +0 -135
  674. package/src/public_types.ts +0 -846
  675. package/src/tools/README.md +0 -4
  676. package/src/tools/TextTrackRenderer/index.ts +0 -28
  677. package/src/tools/TextTrackRenderer/text_track_renderer.ts +0 -107
  678. package/src/tools/index.ts +0 -20
  679. package/src/tools/string_utils.ts +0 -24
  680. package/src/transports/README.md +0 -276
  681. package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -98
  682. package/src/transports/dash/construct_segment_url.ts +0 -28
  683. package/src/transports/dash/extract_complete_chunks.ts +0 -66
  684. package/src/transports/dash/get_events_out_of_emsgs.ts +0 -105
  685. package/src/transports/dash/image_pipelines.ts +0 -122
  686. package/src/transports/dash/index.ts +0 -23
  687. package/src/transports/dash/init_segment_loader.ts +0 -114
  688. package/src/transports/dash/low_latency_segment_loader.ts +0 -87
  689. package/src/transports/dash/manifest_parser.ts +0 -325
  690. package/src/transports/dash/pipelines.ts +0 -72
  691. package/src/transports/dash/segment_loader.ts +0 -249
  692. package/src/transports/dash/segment_parser.ts +0 -194
  693. package/src/transports/dash/text_loader.ts +0 -120
  694. package/src/transports/dash/text_parser.ts +0 -234
  695. package/src/transports/index.ts +0 -17
  696. package/src/transports/local/index.ts +0 -18
  697. package/src/transports/local/pipelines.ts +0 -100
  698. package/src/transports/local/segment_loader.ts +0 -198
  699. package/src/transports/local/segment_parser.ts +0 -101
  700. package/src/transports/local/text_parser.ts +0 -185
  701. package/src/transports/metaplaylist/README.md +0 -94
  702. package/src/transports/metaplaylist/index.ts +0 -23
  703. package/src/transports/metaplaylist/manifest_loader.ts +0 -62
  704. package/src/transports/metaplaylist/pipelines.ts +0 -425
  705. package/src/transports/smooth/extract_timings_infos.ts +0 -142
  706. package/src/transports/smooth/index.ts +0 -23
  707. package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +0 -231
  708. package/src/transports/smooth/isobmff/create_audio_init_segment.ts +0 -84
  709. package/src/transports/smooth/isobmff/create_boxes.ts +0 -481
  710. package/src/transports/smooth/isobmff/create_init_segment.ts +0 -100
  711. package/src/transports/smooth/isobmff/create_traf_box.ts +0 -40
  712. package/src/transports/smooth/isobmff/create_video_init_segment.ts +0 -78
  713. package/src/transports/smooth/isobmff/get_aaces_header.ts +0 -62
  714. package/src/transports/smooth/isobmff/index.ts +0 -32
  715. package/src/transports/smooth/isobmff/parse_tfrf.ts +0 -57
  716. package/src/transports/smooth/isobmff/parse_tfxd.ts +0 -38
  717. package/src/transports/smooth/isobmff/patch_segment.ts +0 -171
  718. package/src/transports/smooth/pipelines.ts +0 -533
  719. package/src/transports/smooth/segment_loader.ts +0 -288
  720. package/src/transports/smooth/utils.ts +0 -106
  721. package/src/transports/types.ts +0 -809
  722. package/src/transports/utils/__tests__/byte_range.test.ts +0 -35
  723. package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +0 -148
  724. package/src/transports/utils/__tests__/find_complete_box.test.ts +0 -138
  725. package/src/transports/utils/__tests__/infer_segment_container.test.ts +0 -227
  726. package/src/transports/utils/byte_range.ts +0 -25
  727. package/src/transports/utils/call_custom_manifest_loader.ts +0 -147
  728. package/src/transports/utils/check_isobmff_integrity.ts +0 -50
  729. package/src/transports/utils/find_complete_box.ts +0 -63
  730. package/src/transports/utils/generate_manifest_loader.ts +0 -97
  731. package/src/transports/utils/get_isobmff_timing_infos.ts +0 -86
  732. package/src/transports/utils/infer_segment_container.ts +0 -56
  733. package/src/transports/utils/parse_text_track.ts +0 -176
  734. package/src/typings/README.md +0 -7
  735. package/src/typings/globals.d.ts +0 -83
  736. package/src/typings/next-tick.d.ts +0 -23
  737. package/src/utils/README.md +0 -5
  738. package/src/utils/__tests__/are_arrays_of_numbers_equal.test.ts +0 -86
  739. package/src/utils/__tests__/are_codecs_compatible.test.ts +0 -88
  740. package/src/utils/__tests__/array_find.test.ts +0 -113
  741. package/src/utils/__tests__/array_find_index.test.ts +0 -113
  742. package/src/utils/__tests__/array_includes.test.ts +0 -151
  743. package/src/utils/__tests__/assert.test.ts +0 -237
  744. package/src/utils/__tests__/assert_unreachable.test.ts +0 -40
  745. package/src/utils/__tests__/base64.test.ts +0 -147
  746. package/src/utils/__tests__/byte_parsing.test.ts +0 -267
  747. package/src/utils/__tests__/deep_merge.test.ts +0 -48
  748. package/src/utils/__tests__/event_emitter.test.ts +0 -579
  749. package/src/utils/__tests__/flat_map.test.ts +0 -71
  750. package/src/utils/__tests__/get_fuzzed_delay.test.ts +0 -32
  751. package/src/utils/__tests__/hash_buffer.test.ts +0 -105
  752. package/src/utils/__tests__/id_generator.test.ts +0 -80
  753. package/src/utils/__tests__/initialization_segment_cache.test.ts +0 -245
  754. package/src/utils/__tests__/is_non_empty_string.test.ts +0 -41
  755. package/src/utils/__tests__/is_null_or_undefined.test.ts +0 -33
  756. package/src/utils/__tests__/list_to_map.test.ts +0 -46
  757. package/src/utils/__tests__/logger.test.ts +0 -214
  758. package/src/utils/__tests__/noop.test.ts +0 -23
  759. package/src/utils/__tests__/object_assign.test.ts +0 -56
  760. package/src/utils/__tests__/object_values.test.ts +0 -26
  761. package/src/utils/__tests__/ranges.test.ts +0 -907
  762. package/src/utils/__tests__/resolve_url.test.ts +0 -100
  763. package/src/utils/__tests__/simple_set.test.ts +0 -57
  764. package/src/utils/__tests__/sorted_list.test.ts +0 -335
  765. package/src/utils/__tests__/starts_with.test.ts +0 -65
  766. package/src/utils/__tests__/string_parsing.test.ts +0 -267
  767. package/src/utils/__tests__/uniq.test.ts +0 -134
  768. package/src/utils/__tests__/warn_once.test.ts +0 -38
  769. package/src/utils/__tests__/weak_map_memory.test.ts +0 -188
  770. package/src/utils/are_arrays_of_numbers_equal.ts +0 -39
  771. package/src/utils/are_codecs_compatible.ts +0 -51
  772. package/src/utils/array_find.ts +0 -55
  773. package/src/utils/array_find_index.ts +0 -54
  774. package/src/utils/array_includes.ts +0 -93
  775. package/src/utils/assert.ts +0 -65
  776. package/src/utils/assert_unreachable.ts +0 -45
  777. package/src/utils/base64.ts +0 -153
  778. package/src/utils/byte_parsing.ts +0 -256
  779. package/src/utils/cancellable_sleep.ts +0 -41
  780. package/src/utils/create_cancellable_promise.ts +0 -69
  781. package/src/utils/deep_merge.ts +0 -49
  782. package/src/utils/event_emitter.ts +0 -147
  783. package/src/utils/flat_map.ts +0 -50
  784. package/src/utils/get_fuzzed_delay.ts +0 -27
  785. package/src/utils/hash_buffer.ts +0 -42
  786. package/src/utils/id_generator.ts +0 -35
  787. package/src/utils/initialization_segment_cache.ts +0 -68
  788. package/src/utils/is_non_empty_string.ts +0 -23
  789. package/src/utils/is_null_or_undefined.ts +0 -27
  790. package/src/utils/languages/ISO_639-1_to_ISO_639-3.ts +0 -207
  791. package/src/utils/languages/ISO_639-2_to_ISO_639-3.ts +0 -43
  792. package/src/utils/languages/__tests__/normalize.test.ts +0 -290
  793. package/src/utils/languages/index.ts +0 -29
  794. package/src/utils/languages/normalize.ts +0 -152
  795. package/src/utils/list_to_map.ts +0 -32
  796. package/src/utils/logger.ts +0 -100
  797. package/src/utils/noop.ts +0 -26
  798. package/src/utils/object_assign.ts +0 -60
  799. package/src/utils/object_values.ts +0 -31
  800. package/src/utils/ranges.ts +0 -499
  801. package/src/utils/reference.ts +0 -390
  802. package/src/utils/request/fetch.ts +0 -250
  803. package/src/utils/request/index.ts +0 -38
  804. package/src/utils/request/xhr.ts +0 -287
  805. package/src/utils/resolve_url.ts +0 -126
  806. package/src/utils/retry_promise_with_backoff.ts +0 -95
  807. package/src/utils/simple_set.ts +0 -67
  808. package/src/utils/sleep.ts +0 -14
  809. package/src/utils/slice_uint8array.ts +0 -53
  810. package/src/utils/sorted_list.ts +0 -240
  811. package/src/utils/starts_with.ts +0 -42
  812. package/src/utils/string_parsing.ts +0 -414
  813. package/src/utils/task_canceller.ts +0 -367
  814. package/src/utils/uniq.ts +0 -49
  815. package/src/utils/warn_once.ts +0 -34
  816. package/src/utils/weak_map_memory.ts +0 -89
  817. package/src/utils/wrapInPromise.ts +0 -24
  818. package/tsconfig.json +0 -28
  819. package/tsconfig.modules.json +0 -36
@@ -1,811 +0,0 @@
1
- /**
2
- * Copyright 2015 CANAL+ Group
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import { MediaError } from "../errors";
18
- import log from "../log";
19
- import { IParsedManifest } from "../parsers/manifest";
20
- import {
21
- IPlayerError,
22
- IRepresentationFilter,
23
- } from "../public_types";
24
- import arrayFind from "../utils/array_find";
25
- import EventEmitter from "../utils/event_emitter";
26
- import idGenerator from "../utils/id_generator";
27
- import { getFilenameIndexInUrl } from "../utils/resolve_url";
28
- import warnOnce from "../utils/warn_once";
29
- import Adaptation from "./adaptation";
30
- import Period, {
31
- IManifestAdaptations,
32
- } from "./period";
33
- import Representation from "./representation";
34
- import { StaticRepresentationIndex } from "./representation_index";
35
- import {
36
- IAdaptationType,
37
- MANIFEST_UPDATE_TYPE,
38
- } from "./types";
39
- import {
40
- IPeriodsUpdateResult,
41
- replacePeriods,
42
- updatePeriods,
43
- } from "./update_periods";
44
-
45
- const generateSupplementaryTrackID = idGenerator();
46
- const generateNewManifestId = idGenerator();
47
-
48
- /**
49
- * Interface a manually-added supplementary image track should respect.
50
- * @deprecated
51
- */
52
- interface ISupplementaryImageTrack {
53
- /** mime-type identifying the type of container for the track. */
54
- mimeType : string;
55
- /** URL to the thumbnails file */
56
- url : string;
57
- }
58
-
59
- /**
60
- * Interface a manually-added supplementary text track should respect.
61
- * @deprecated
62
- */
63
- interface ISupplementaryTextTrack {
64
- /** mime-type identifying the type of container for the track. */
65
- mimeType : string;
66
- /** codecs in the container (mimeType can be enough) */
67
- codecs? : string;
68
- /** URL to the text track file */
69
- url : string;
70
- /** ISO639-{1,2,3} code for the language of the track */
71
- language? : string;
72
- /**
73
- * Same as `language`, but in an Array.
74
- * Kept for compatibility with old API.
75
- * @deprecated
76
- */
77
- languages? : string[];
78
- /** If true, the track are closed captions. */
79
- closedCaption : boolean;
80
- }
81
-
82
- /** Options given to the `Manifest` constructor. */
83
- interface IManifestParsingOptions {
84
- /* eslint-disable import/no-deprecated */
85
- /** Text tracks to add manually to the Manifest instance. */
86
- supplementaryTextTracks? : ISupplementaryTextTrack[] | undefined;
87
- /** Image tracks to add manually to the Manifest instance. */
88
- supplementaryImageTracks? : ISupplementaryImageTrack[] | undefined;
89
- /* eslint-enable import/no-deprecated */
90
- /** External callback peforming an automatic filtering of wanted Representations. */
91
- representationFilter? : IRepresentationFilter | undefined;
92
- /** Optional URL that points to a shorter version of the Manifest used
93
- * for updates only. When using this URL for refresh, the manifest will be
94
- * updated with the partial update type. If this URL is undefined, then the
95
- * manifest will be updated fully when it needs to be refreshed, and it will
96
- * fetched through the original URL. */
97
- manifestUpdateUrl? : string | undefined;
98
- }
99
-
100
- /** Representation affected by a `decipherabilityUpdate` event. */
101
- export interface IDecipherabilityUpdateElement { manifest : Manifest;
102
- period : Period;
103
- adaptation : Adaptation;
104
- representation : Representation; }
105
-
106
- /** Events emitted by a `Manifest` instance */
107
- export interface IManifestEvents {
108
- /** The Manifest has been updated */
109
- manifestUpdate : IPeriodsUpdateResult;
110
- /** Some Representation's decipherability status has been updated */
111
- decipherabilityUpdate : IDecipherabilityUpdateElement[];
112
- }
113
-
114
- /**
115
- * Normalized Manifest structure.
116
- *
117
- * Details the current content being played:
118
- * - the duration of the content
119
- * - the available tracks
120
- * - the available qualities
121
- * - the segments defined in those qualities
122
- * - ...
123
- * while staying agnostic of the transport protocol used (Smooth, DASH etc.).
124
- *
125
- * The Manifest and its contained information can evolve over time (like when
126
- * updating a dynamic manifest or when right management forbid some tracks from
127
- * being played).
128
- * To perform actions on those changes, any module using this Manifest can
129
- * listen to its sent events and react accordingly.
130
- *
131
- * @class Manifest
132
- */
133
- export default class Manifest extends EventEmitter<IManifestEvents> {
134
- /**
135
- * ID uniquely identifying this Manifest.
136
- * No two Manifests should have this ID.
137
- * This ID is automatically calculated each time a `Manifest` instance is
138
- * created.
139
- */
140
- public readonly id : string;
141
-
142
- /**
143
- * Type of transport used by this Manifest (e.g. `"dash"` or `"smooth"`).
144
- *
145
- * TODO This should never be needed as this structure is transport-agnostic.
146
- * But it is specified in the Manifest API. Deprecate?
147
- */
148
- public transport : string;
149
-
150
- /**
151
- * List every Period in that Manifest chronologically (from start to end).
152
- * A Period contains information about the content available for a specific
153
- * period of time.
154
- */
155
- public readonly periods : Period[];
156
-
157
- /**
158
- * When that promise resolves, the whole Manifest needs to be requested again
159
- * so it can be refreshed.
160
- */
161
- public expired : Promise<void> | null;
162
-
163
- /**
164
- * Deprecated. Equivalent to `manifest.periods[0].adaptations`.
165
- * @deprecated
166
- */
167
- public adaptations : IManifestAdaptations;
168
-
169
- /**
170
- * If true, the Manifest can evolve over time:
171
- * New segments can become available in the future, properties of the manifest
172
- * can change...
173
- */
174
- public isDynamic : boolean;
175
-
176
- /**
177
- * If true, this Manifest describes a live content.
178
- * A live content is a specific kind of content where you want to play very
179
- * close to the maximum position (here called the "live edge").
180
- * E.g., a TV channel is a live content.
181
- */
182
- public isLive : boolean;
183
-
184
- /**
185
- * If `true`, no more periods will be added after the current last manifest's
186
- * Period.
187
- * `false` if we know that more Period is coming or if we don't know.
188
- */
189
- public isLastPeriodKnown : boolean;
190
-
191
- /*
192
- * Every URI linking to that Manifest.
193
- * They can be used for refreshing the Manifest.
194
- * Listed from the most important to the least important.
195
- */
196
- public uris : string[];
197
-
198
- /** Optional URL that points to a shorter version of the Manifest used
199
- * for updates only. */
200
- public updateUrl : string | undefined;
201
-
202
- /**
203
- * Suggested delay from the "live edge" (i.e. the position corresponding to
204
- * the current broadcast for a live content) the content is suggested to start
205
- * from.
206
- * This only applies to live contents.
207
- */
208
- public suggestedPresentationDelay : number | undefined;
209
-
210
- /**
211
- * Amount of time, in seconds, this Manifest is valid from the time when it
212
- * has been fetched.
213
- * If no lifetime is set, this Manifest does not become invalid after an
214
- * amount of time.
215
- */
216
- public lifetime : number | undefined;
217
-
218
- /**
219
- * Minimum time, in seconds, at which a segment defined in the Manifest
220
- * can begin.
221
- * This is also used as an offset for live content to apply to a segment's
222
- * time.
223
- */
224
- public availabilityStartTime : number | undefined;
225
-
226
- /**
227
- * It specifies the wall-clock time when the manifest was generated and published
228
- * at the origin server. It is present in order to identify different versions
229
- * of manifest instances.
230
- */
231
- public publishTime: number | undefined;
232
-
233
- /**
234
- * Array containing every minor errors that happened when the Manifest has
235
- * been created, in the order they have happened.
236
- */
237
- public contentWarnings : IPlayerError[];
238
-
239
- /*
240
- * Difference between the server's clock in milliseconds and the return of the
241
- * JS function `performance.now`.
242
- * This property allows to calculate the server time at any moment.
243
- * `undefined` if we did not obtain the server's time
244
- */
245
- public clockOffset : number | undefined;
246
-
247
- /**
248
- * Data allowing to calculate the minimum and maximum seekable positions at
249
- * any given time.
250
- */
251
- private _timeBounds : {
252
- /**
253
- * This is the theoretical minimum playable position on the content
254
- * regardless of the current Adaptation chosen, as estimated at parsing
255
- * time.
256
- * `undefined` if unknown.
257
- *
258
- * More technically, the `minimumSafePosition` is the maximum between all
259
- * the minimum positions reachable in any of the audio and video Adaptation.
260
- *
261
- * Together with `timeshiftDepth` and the `maximumTimeData` object, this
262
- * value allows to compute at any time the minimum seekable time:
263
- *
264
- * - if `timeshiftDepth` is not set, the minimum seekable time is a
265
- * constant that corresponds to this value.
266
- *
267
- * - if `timeshiftDepth` is set, `minimumSafePosition` will act as the
268
- * absolute minimum seekable time we can never seek below, even when
269
- * `timeshiftDepth` indicates a possible lower position.
270
- * This becomes useful for example when playing live contents which -
271
- * despite having a large window depth - just begun and as such only
272
- * have a few segment available for now.
273
- * Here, `minimumSafePosition` would be the start time of the initial
274
- * segment, and `timeshiftDepth` would be the whole depth that will
275
- * become available once enough segments have been generated.
276
- */
277
- minimumSafePosition? : number | undefined;
278
- /**
279
- * Some dynamic contents have the concept of a "window depth" (or "buffer
280
- * depth") which allows to set a minimum position for all reachable
281
- * segments, in function of the maximum reachable position.
282
- *
283
- * This is justified by the fact that a server might want to remove older
284
- * segments when new ones become available, to free storage size.
285
- *
286
- * If this value is set to a number, it is the amount of time in seconds
287
- * that needs to be substracted from the current maximum seekable position,
288
- * to obtain the minimum seekable position.
289
- * As such, this value evolves at the same rate than the maximum position
290
- * does (if it does at all).
291
- *
292
- * If set to `null`, this content has no concept of a "window depth".
293
- */
294
- timeshiftDepth : number | null;
295
- /** Data allowing to calculate the maximum playable position at any given time. */
296
- maximumTimeData : {
297
- /**
298
- * Current position representing live content.
299
- * Only makes sense for un-ended live contents.
300
- *
301
- * `undefined` if unknown or if it doesn't make sense in the current context.
302
- */
303
- livePosition : number | undefined;
304
- /**
305
- * Whether the maximum positions should evolve linearly over time.
306
- *
307
- * If set to `true`, the maximum seekable position continuously increase at
308
- * the same rate than the time since `time` does.
309
- */
310
- isLinear: boolean;
311
- /**
312
- * This is the theoretical maximum playable position on the content,
313
- * regardless of the current Adaptation chosen, as estimated at parsing
314
- * time.
315
- *
316
- * More technically, the `maximumSafePosition` is the minimum between all
317
- * attributes indicating the duration of the content in the Manifest.
318
- *
319
- * That is the minimum between:
320
- * - The Manifest original attributes relative to its duration
321
- * - The minimum between all known maximum audio positions
322
- * - The minimum between all known maximum video positions
323
- *
324
- * This can for example be understood as the safe maximum playable
325
- * position through all possible tacks.
326
- */
327
- maximumSafePosition : number;
328
- /**
329
- * `Performance.now()` output at the time both `maximumSafePosition` and
330
- * `livePosition` were calculated.
331
- * This can be used to retrieve a new maximum position from them when they
332
- * linearly evolves over time (see `isLinear` property).
333
- */
334
- time : number;
335
- };
336
- };
337
-
338
- /**
339
- * Construct a Manifest instance from a parsed Manifest object (as returned by
340
- * Manifest parsers) and options.
341
- *
342
- * Some minor errors can arise during that construction. `this.contentWarnings`
343
- * will contain all such errors, in the order they have been encountered.
344
- * @param {Object} parsedManifest
345
- * @param {Object} options
346
- */
347
- constructor(parsedManifest : IParsedManifest, options : IManifestParsingOptions) {
348
- super();
349
- const { supplementaryTextTracks = [],
350
- supplementaryImageTracks = [],
351
- representationFilter,
352
- manifestUpdateUrl } = options;
353
- this.contentWarnings = [];
354
- this.id = generateNewManifestId();
355
- this.expired = parsedManifest.expired ?? null;
356
- this.transport = parsedManifest.transportType;
357
- this.clockOffset = parsedManifest.clockOffset;
358
-
359
- this.periods = parsedManifest.periods.map((parsedPeriod) => {
360
- const period = new Period(parsedPeriod, representationFilter);
361
- this.contentWarnings.push(...period.contentWarnings);
362
- return period;
363
- }).sort((a, b) => a.start - b.start);
364
-
365
- /**
366
- * @deprecated It is here to ensure compatibility with the way the
367
- * v3.x.x manages adaptations at the Manifest level
368
- */
369
- /* eslint-disable import/no-deprecated */
370
- this.adaptations = this.periods[0] === undefined ? {} :
371
- this.periods[0].adaptations;
372
- /* eslint-enable import/no-deprecated */
373
-
374
- this._timeBounds = parsedManifest.timeBounds;
375
- this.isDynamic = parsedManifest.isDynamic;
376
- this.isLive = parsedManifest.isLive;
377
- this.isLastPeriodKnown = parsedManifest.isLastPeriodKnown;
378
- this.uris = parsedManifest.uris === undefined ? [] :
379
- parsedManifest.uris;
380
-
381
- this.updateUrl = manifestUpdateUrl;
382
- this.lifetime = parsedManifest.lifetime;
383
- this.suggestedPresentationDelay = parsedManifest.suggestedPresentationDelay;
384
- this.availabilityStartTime = parsedManifest.availabilityStartTime;
385
- this.publishTime = parsedManifest.publishTime;
386
- if (supplementaryImageTracks.length > 0) {
387
- this._addSupplementaryImageAdaptations(supplementaryImageTracks);
388
- }
389
- if (supplementaryTextTracks.length > 0) {
390
- this._addSupplementaryTextAdaptations(supplementaryTextTracks);
391
- }
392
- }
393
-
394
- /**
395
- * Returns the Period corresponding to the given `id`.
396
- * Returns `undefined` if there is none.
397
- * @param {string} id
398
- * @returns {Object|undefined}
399
- */
400
- public getPeriod(id : string) : Period | undefined {
401
- return arrayFind(this.periods, (period) => {
402
- return id === period.id;
403
- });
404
- }
405
-
406
- /**
407
- * Returns the Period encountered at the given time.
408
- * Returns `undefined` if there is no Period exactly at the given time.
409
- * @param {number} time
410
- * @returns {Object|undefined}
411
- */
412
- public getPeriodForTime(time : number) : Period | undefined {
413
- let nextPeriod = null;
414
- for (let i = this.periods.length - 1; i >= 0; i--) {
415
- const period = this.periods[i];
416
- if (period.containsTime(time, nextPeriod)) {
417
- return period;
418
- }
419
- nextPeriod = period;
420
- }
421
- }
422
-
423
- /**
424
- * Returns the first Period starting strictly after the given time.
425
- * Returns `undefined` if there is no Period starting after that time.
426
- * @param {number} time
427
- * @returns {Object|undefined}
428
- */
429
- public getNextPeriod(time : number) : Period | undefined {
430
- return arrayFind(this.periods, (period) => {
431
- return period.start > time;
432
- });
433
- }
434
-
435
- /**
436
- * Returns the Period coming chronologically just after another given Period.
437
- * Returns `undefined` if not found.
438
- * @param {Object} period
439
- * @returns {Object|null}
440
- */
441
- public getPeriodAfter(
442
- period : Period
443
- ) : Period | null {
444
- const endOfPeriod = period.end;
445
- if (endOfPeriod === undefined) {
446
- return null;
447
- }
448
- const nextPeriod = arrayFind(this.periods, (_period) => {
449
- return _period.end === undefined || endOfPeriod < _period.end;
450
- });
451
- return nextPeriod === undefined ? null :
452
- nextPeriod;
453
- }
454
-
455
- /**
456
- * Returns the most important URL from which the Manifest can be refreshed.
457
- * `undefined` if no URL is found.
458
- * @returns {string|undefined}
459
- */
460
- public getUrl() : string|undefined {
461
- return this.uris[0];
462
- }
463
-
464
- /**
465
- * Update the current Manifest properties by giving a new updated version.
466
- * This instance will be updated with the new information coming from it.
467
- * @param {Object} newManifest
468
- */
469
- public replace(newManifest : Manifest) : void {
470
- this._performUpdate(newManifest, MANIFEST_UPDATE_TYPE.Full);
471
- }
472
-
473
- /**
474
- * Update the current Manifest properties by giving a new but shorter version
475
- * of it.
476
- * This instance will add the new information coming from it and will
477
- * automatically clean old Periods that shouldn't be available anymore.
478
- *
479
- * /!\ Throws if the given Manifest cannot be used or is not sufficient to
480
- * update the Manifest.
481
- * @param {Object} newManifest
482
- */
483
- public update(newManifest : Manifest) : void {
484
- this._performUpdate(newManifest, MANIFEST_UPDATE_TYPE.Partial);
485
- }
486
-
487
- /**
488
- * Returns the theoretical minimum playable position on the content
489
- * regardless of the current Adaptation chosen, as estimated at parsing
490
- * time.
491
- * @returns {number}
492
- */
493
- public getMinimumSafePosition() : number {
494
- const windowData = this._timeBounds;
495
- if (windowData.timeshiftDepth === null) {
496
- return windowData.minimumSafePosition ?? 0;
497
- }
498
-
499
- const { maximumTimeData } = windowData;
500
- let maximumTime : number;
501
- if (!windowData.maximumTimeData.isLinear) {
502
- maximumTime = maximumTimeData.maximumSafePosition;
503
- } else {
504
- const timeDiff = performance.now() - maximumTimeData.time;
505
- maximumTime = maximumTimeData.maximumSafePosition + timeDiff / 1000;
506
- }
507
- const theoricalMinimum = maximumTime - windowData.timeshiftDepth;
508
- return Math.max(windowData.minimumSafePosition ?? 0, theoricalMinimum);
509
- }
510
-
511
- /**
512
- * Get the position of the live edge - that is, the position of what is
513
- * currently being broadcasted, in seconds.
514
- * @returns {number|undefined}
515
- */
516
- public getLivePosition() : number | undefined {
517
- const { maximumTimeData } = this._timeBounds;
518
- if (!this.isLive || maximumTimeData.livePosition === undefined) {
519
- return undefined;
520
- }
521
- if (!maximumTimeData.isLinear) {
522
- return maximumTimeData.livePosition;
523
- }
524
- const timeDiff = performance.now() - maximumTimeData.time;
525
- return maximumTimeData.livePosition + timeDiff / 1000;
526
- }
527
-
528
- /**
529
- * Returns the theoretical maximum playable position on the content
530
- * regardless of the current Adaptation chosen, as estimated at parsing
531
- * time.
532
- */
533
- public getMaximumSafePosition() : number {
534
- const { maximumTimeData } = this._timeBounds;
535
- if (!maximumTimeData.isLinear) {
536
- return maximumTimeData.maximumSafePosition;
537
- }
538
- const timeDiff = performance.now() - maximumTimeData.time;
539
- return maximumTimeData.maximumSafePosition + timeDiff / 1000;
540
- }
541
-
542
- /**
543
- * Look in the Manifest for Representations linked to the given key ID,
544
- * and mark them as being impossible to decrypt.
545
- * Then trigger a "decipherabilityUpdate" event to notify everyone of the
546
- * changes performed.
547
- * @param {Function} isDecipherableCb
548
- */
549
- public updateRepresentationsDeciperability(
550
- isDecipherableCb : (rep : Representation) => boolean | undefined
551
- ) : void {
552
- const updates = updateDeciperability(this, isDecipherableCb);
553
- if (updates.length > 0) {
554
- this.trigger("decipherabilityUpdate", updates);
555
- }
556
- }
557
-
558
- /**
559
- * @deprecated only returns adaptations for the first period
560
- * @returns {Array.<Object>}
561
- */
562
- public getAdaptations() : Adaptation[] {
563
- warnOnce("manifest.getAdaptations() is deprecated." +
564
- " Please use manifest.period[].getAdaptations() instead");
565
- const firstPeriod = this.periods[0];
566
- if (firstPeriod === undefined) {
567
- return [];
568
- }
569
- const adaptationsByType = firstPeriod.adaptations;
570
- const adaptationsList : Adaptation[] = [];
571
- for (const adaptationType in adaptationsByType) {
572
- if (adaptationsByType.hasOwnProperty(adaptationType)) {
573
- const adaptations =
574
- adaptationsByType[adaptationType as IAdaptationType] as Adaptation[];
575
- adaptationsList.push(...adaptations);
576
- }
577
- }
578
- return adaptationsList;
579
- }
580
-
581
- /**
582
- * @deprecated only returns adaptations for the first period
583
- * @returns {Array.<Object>}
584
- */
585
- public getAdaptationsForType(adaptationType : IAdaptationType) : Adaptation[] {
586
- warnOnce("manifest.getAdaptationsForType(type) is deprecated." +
587
- " Please use manifest.period[].getAdaptationsForType(type) instead");
588
- const firstPeriod = this.periods[0];
589
- if (firstPeriod === undefined) {
590
- return [];
591
- }
592
- const adaptationsForType = firstPeriod.adaptations[adaptationType];
593
- return adaptationsForType === undefined ? [] :
594
- adaptationsForType;
595
- }
596
-
597
- /**
598
- * @deprecated only returns adaptations for the first period
599
- * @returns {Array.<Object>}
600
- */
601
- public getAdaptation(wantedId : number|string) : Adaptation|undefined {
602
- warnOnce("manifest.getAdaptation(id) is deprecated." +
603
- " Please use manifest.period[].getAdaptation(id) instead");
604
- /* eslint-disable import/no-deprecated */
605
- return arrayFind(this.getAdaptations(), ({ id }) => wantedId === id);
606
- /* eslint-enable import/no-deprecated */
607
- }
608
-
609
- /**
610
- * Add supplementary image Adaptation(s) to the manifest.
611
- * @private
612
- * @param {Object|Array.<Object>} imageTracks
613
- */
614
- private _addSupplementaryImageAdaptations(
615
- /* eslint-disable import/no-deprecated */
616
- imageTracks : ISupplementaryImageTrack | ISupplementaryImageTrack[]
617
- ) : void {
618
- const _imageTracks = Array.isArray(imageTracks) ? imageTracks : [imageTracks];
619
- const newImageTracks = _imageTracks.map(({ mimeType, url }) => {
620
- const adaptationID = "gen-image-ada-" + generateSupplementaryTrackID();
621
- const representationID = "gen-image-rep-" + generateSupplementaryTrackID();
622
- const indexOfFilename = getFilenameIndexInUrl(url);
623
- const cdnUrl = url.substring(0, indexOfFilename);
624
- const filename = url.substring(indexOfFilename);
625
- const newAdaptation = new Adaptation({ id: adaptationID,
626
- type: "image",
627
- representations: [{
628
- bitrate: 0,
629
- cdnMetadata: [ { baseUrl: cdnUrl } ],
630
- id: representationID,
631
- mimeType,
632
- index: new StaticRepresentationIndex({
633
- media: filename,
634
- }) }] },
635
- { isManuallyAdded: true });
636
- if (newAdaptation.representations.length > 0 && !newAdaptation.isSupported) {
637
- const error =
638
- new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR",
639
- "An Adaptation contains only incompatible codecs.",
640
- { adaptation: newAdaptation });
641
- this.contentWarnings.push(error);
642
- }
643
- return newAdaptation;
644
- });
645
-
646
- if (newImageTracks.length > 0 && this.periods.length > 0) {
647
- const { adaptations } = this.periods[0];
648
- adaptations.image =
649
- adaptations.image != null ? adaptations.image.concat(newImageTracks) :
650
- newImageTracks;
651
- }
652
- }
653
-
654
- /**
655
- * Add supplementary text Adaptation(s) to the manifest.
656
- * @private
657
- * @param {Object|Array.<Object>} textTracks
658
- */
659
- private _addSupplementaryTextAdaptations(
660
- /* eslint-disable import/no-deprecated */
661
- textTracks : ISupplementaryTextTrack|ISupplementaryTextTrack[]
662
- /* eslint-enable import/no-deprecated */
663
- ) : void {
664
- const _textTracks = Array.isArray(textTracks) ? textTracks : [textTracks];
665
- const newTextAdaptations = _textTracks.reduce((allSubs : Adaptation[], {
666
- mimeType,
667
- codecs,
668
- url,
669
- language,
670
- /* eslint-disable import/no-deprecated */
671
- languages,
672
- /* eslint-enable import/no-deprecated */
673
- closedCaption,
674
- }) => {
675
- const langsToMapOn : string[] = language != null ? [language] :
676
- languages != null ? languages :
677
- [];
678
-
679
- const indexOfFilename = getFilenameIndexInUrl(url);
680
- const cdnUrl = url.substring(0, indexOfFilename);
681
- const filename = url.substring(indexOfFilename);
682
- return allSubs.concat(langsToMapOn.map((_language) => {
683
- const adaptationID = "gen-text-ada-" + generateSupplementaryTrackID();
684
- const representationID = "gen-text-rep-" + generateSupplementaryTrackID();
685
- const newAdaptation = new Adaptation({ id: adaptationID,
686
- type: "text",
687
- language: _language,
688
- closedCaption,
689
- representations: [{
690
- bitrate: 0,
691
- cdnMetadata: [{ baseUrl: cdnUrl }],
692
- id: representationID,
693
- mimeType,
694
- codecs,
695
- index: new StaticRepresentationIndex({
696
- media: filename,
697
- }) }] },
698
- { isManuallyAdded: true });
699
- if (newAdaptation.representations.length > 0 && !newAdaptation.isSupported) {
700
- const error =
701
- new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR",
702
- "An Adaptation contains only incompatible codecs.",
703
- { adaptation: newAdaptation });
704
- this.contentWarnings.push(error);
705
- }
706
- return newAdaptation;
707
- }));
708
- }, []);
709
-
710
- if (newTextAdaptations.length > 0 && this.periods.length > 0) {
711
- const { adaptations } = this.periods[0];
712
- adaptations.text =
713
- adaptations.text != null ? adaptations.text.concat(newTextAdaptations) :
714
- newTextAdaptations;
715
- }
716
- }
717
-
718
- /**
719
- * @param {Object} newManifest
720
- * @param {number} updateType
721
- */
722
- private _performUpdate(
723
- newManifest : Manifest,
724
- updateType : MANIFEST_UPDATE_TYPE
725
- ) : void {
726
- this.availabilityStartTime = newManifest.availabilityStartTime;
727
- this.expired = newManifest.expired;
728
- this.isDynamic = newManifest.isDynamic;
729
- this.isLive = newManifest.isLive;
730
- this.isLastPeriodKnown = newManifest.isLastPeriodKnown;
731
- this.lifetime = newManifest.lifetime;
732
- this.contentWarnings = newManifest.contentWarnings;
733
- this.suggestedPresentationDelay = newManifest.suggestedPresentationDelay;
734
- this.transport = newManifest.transport;
735
- this.publishTime = newManifest.publishTime;
736
-
737
- let updatedPeriodsResult;
738
- if (updateType === MANIFEST_UPDATE_TYPE.Full) {
739
- this._timeBounds = newManifest._timeBounds;
740
- this.uris = newManifest.uris;
741
- updatedPeriodsResult = replacePeriods(this.periods, newManifest.periods);
742
- } else {
743
- this._timeBounds.maximumTimeData = newManifest._timeBounds.maximumTimeData;
744
- this.updateUrl = newManifest.uris[0];
745
- updatedPeriodsResult = updatePeriods(this.periods, newManifest.periods);
746
-
747
- // Partial updates do not remove old Periods.
748
- // This can become a memory problem when playing a content long enough.
749
- // Let's clean manually Periods behind the minimum possible position.
750
- const min = this.getMinimumSafePosition();
751
- while (this.periods.length > 0) {
752
- const period = this.periods[0];
753
- if (period.end === undefined || period.end > min) {
754
- break;
755
- }
756
- this.periods.shift();
757
- }
758
- }
759
-
760
- // Re-set this.adaptations for retro-compatibility in v3.x.x
761
- /* eslint-disable import/no-deprecated */
762
- this.adaptations = this.periods[0] === undefined ?
763
- {} :
764
- this.periods[0].adaptations;
765
- /* eslint-enable import/no-deprecated */
766
-
767
- // Let's trigger events at the end, as those can trigger side-effects.
768
- // We do not want the current Manifest object to be incomplete when those
769
- // happen.
770
- this.trigger("manifestUpdate", updatedPeriodsResult);
771
- }
772
- }
773
-
774
- /**
775
- * Update `decipherable` property of every `Representation` found in the
776
- * Manifest based on the result of a `isDecipherable` callback:
777
- * - When that callback returns `true`, update `decipherable` to `true`
778
- * - When that callback returns `false`, update `decipherable` to `false`
779
- * - When that callback returns `undefined`, update `decipherable` to
780
- * `undefined`
781
- * @param {Manifest} manifest
782
- * @param {Function} isDecipherable
783
- * @returns {Array.<Object>}
784
- */
785
- function updateDeciperability(
786
- manifest : Manifest,
787
- isDecipherable : (rep : Representation) => boolean | undefined
788
- ) : IDecipherabilityUpdateElement[] {
789
- const updates : IDecipherabilityUpdateElement[] = [];
790
- for (const period of manifest.periods) {
791
- for (const adaptation of period.getAdaptations()) {
792
- for (const representation of adaptation.representations) {
793
- const result = isDecipherable(representation);
794
- if (result !== representation.decipherable) {
795
- updates.push({ manifest, period, adaptation, representation });
796
- representation.decipherable = result;
797
- log.debug(`Decipherability changed for "${representation.id}"`,
798
- `(${representation.bitrate})`,
799
- String(representation.decipherable));
800
- }
801
- }
802
- }
803
- }
804
- return updates;
805
- }
806
-
807
- export {
808
- IManifestParsingOptions,
809
- ISupplementaryImageTrack,
810
- ISupplementaryTextTrack,
811
- };