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,916 +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 config from "../../config";
18
- import log from "../../log";
19
- import Manifest, {
20
- Adaptation,
21
- ISegment,
22
- Period,
23
- Representation,
24
- } from "../../manifest";
25
- import noop from "../../utils/noop";
26
- import { getLeftSizeOfRange } from "../../utils/ranges";
27
- import SharedReference, {
28
- IReadOnlySharedReference,
29
- } from "../../utils/reference";
30
- import TaskCanceller, {
31
- CancellationSignal,
32
- } from "../../utils/task_canceller";
33
- import { IReadOnlyPlaybackObserver } from "../api";
34
- import { IBufferType } from "../segment_buffers";
35
- import BufferBasedChooser from "./buffer_based_chooser";
36
- import GuessBasedChooser from "./guess_based_chooser";
37
- import NetworkAnalyzer from "./network_analyzer";
38
- import BandwidthEstimator from "./utils/bandwidth_estimator";
39
- import filterByBitrate from "./utils/filter_by_bitrate";
40
- import filterByWidth from "./utils/filter_by_width";
41
- import LastEstimateStorage, {
42
- ABRAlgorithmType,
43
- } from "./utils/last_estimate_storage";
44
- import PendingRequestsStore, {
45
- IPendingRequestStoreBegin,
46
- IPendingRequestStoreProgress,
47
- } from "./utils/pending_requests_store";
48
- import RepresentationScoreCalculator from "./utils/representation_score_calculator";
49
- import selectOptimalRepresentation from "./utils/select_optimal_representation";
50
-
51
- // Create default shared references
52
-
53
- const manualBitrateDefaultRef = new SharedReference(-1);
54
- manualBitrateDefaultRef.finish();
55
-
56
- const minAutoBitrateDefaultRef = new SharedReference(0);
57
- minAutoBitrateDefaultRef.finish();
58
-
59
- const maxAutoBitrateDefaultRef = new SharedReference(Infinity);
60
- maxAutoBitrateDefaultRef.finish();
61
-
62
- const limitWidthDefaultRef = new SharedReference(undefined);
63
- limitWidthDefaultRef.finish();
64
-
65
- const throttleBitrateDefaultRef = new SharedReference(Infinity);
66
- throttleBitrateDefaultRef.finish();
67
-
68
- /**
69
- * Select the most adapted Representation according to the network and buffer
70
- * metrics it receives.
71
- *
72
- * @param {Object} options - Initial configuration (see type definition)
73
- * @returns {Object} - Interface allowing to select a Representation.
74
- * @see IRepresentationEstimator
75
- */
76
- export default function createAdaptiveRepresentationSelector(
77
- options : IAdaptiveRepresentationSelectorArguments
78
- ) : IRepresentationEstimator {
79
- /**
80
- * Allows to estimate the current network bandwidth.
81
- * One per active media type.
82
- */
83
- const bandwidthEstimators : Partial<Record<IBufferType, BandwidthEstimator>> = {};
84
- const { manualBitrates,
85
- minAutoBitrates,
86
- maxAutoBitrates,
87
- initialBitrates,
88
- throttlers,
89
- lowLatencyMode } = options;
90
-
91
- /**
92
- * Returns Object emitting Representation estimates as well as callbacks
93
- * allowing to helping it produce them.
94
- *
95
- * @see IRepresentationEstimator
96
- * @param {Object} context
97
- * @param {Object} currentRepresentation
98
- * @param {Object} representations
99
- * @param {Object} playbackObserver
100
- * @param {Object} stopAllEstimates
101
- * @returns {Array.<Object>}
102
- */
103
- return function getEstimates(
104
- context : { manifest : Manifest;
105
- period : Period;
106
- adaptation : Adaptation; },
107
- currentRepresentation : IReadOnlySharedReference<Representation | null>,
108
- representations : IReadOnlySharedReference<Representation[]>,
109
- playbackObserver : IReadOnlyPlaybackObserver<
110
- IRepresentationEstimatorPlaybackObservation
111
- >,
112
- stopAllEstimates : CancellationSignal
113
- ) : IRepresentationEstimatorResponse {
114
- const { type } = context.adaptation;
115
- const bandwidthEstimator = _getBandwidthEstimator(type);
116
- const manualBitrate = manualBitrates[type] ?? manualBitrateDefaultRef;
117
- const minAutoBitrate = minAutoBitrates[type] ?? minAutoBitrateDefaultRef;
118
- const maxAutoBitrate = maxAutoBitrates[type] ?? maxAutoBitrateDefaultRef;
119
- const initialBitrate = initialBitrates[type] ?? 0;
120
- const filters = {
121
- limitWidth: throttlers.limitWidth[type] ?? limitWidthDefaultRef,
122
- throttleBitrate: throttlers.throttleBitrate[type] ??
123
- throttlers.throttle[type] ??
124
- throttleBitrateDefaultRef,
125
- };
126
- return getEstimateReference({ bandwidthEstimator,
127
- context,
128
- currentRepresentation,
129
- filters,
130
- initialBitrate,
131
- manualBitrate,
132
- minAutoBitrate,
133
- maxAutoBitrate,
134
- playbackObserver,
135
- representations,
136
- lowLatencyMode },
137
- stopAllEstimates);
138
- };
139
-
140
- /**
141
- * Returns interface allowing to estimate network throughtput for a given type.
142
- * @param {string} bufferType
143
- * @returns {Object}
144
- */
145
- function _getBandwidthEstimator(bufferType : IBufferType) : BandwidthEstimator {
146
- const originalBandwidthEstimator = bandwidthEstimators[bufferType];
147
- if (originalBandwidthEstimator == null) {
148
- log.debug("ABR: Creating new BandwidthEstimator for ", bufferType);
149
- const bandwidthEstimator = new BandwidthEstimator();
150
- bandwidthEstimators[bufferType] = bandwidthEstimator;
151
- return bandwidthEstimator;
152
- }
153
- return originalBandwidthEstimator;
154
- }
155
- }
156
-
157
- /**
158
- * Estimate regularly the current network bandwidth and the best Representation
159
- * that can be played according to the current network and playback conditions.
160
- *
161
- * `getEstimateReference` only does estimations for a given type (e.g.
162
- * "audio", "video" etc.) and Period.
163
- *
164
- * If estimates for multiple types and/or Periods are needed, you should
165
- * call `getEstimateReference` as many times.
166
- *
167
- * This function returns a tuple:
168
- * - the first element being the object through which estimates will be produced
169
- * - the second element being callbacks that have to be triggered at various
170
- * events to help it doing those estimates.
171
- *
172
- * @param {Object} args
173
- * @param {Object} stopAllEstimates
174
- * @returns {Array.<Object>}
175
- */
176
- function getEstimateReference(
177
- { bandwidthEstimator,
178
- context,
179
- currentRepresentation,
180
- filters,
181
- initialBitrate,
182
- lowLatencyMode,
183
- manualBitrate,
184
- maxAutoBitrate,
185
- minAutoBitrate,
186
- playbackObserver,
187
- representations : representationsRef } : IRepresentationEstimatorArguments,
188
- stopAllEstimates : CancellationSignal
189
- ) : IRepresentationEstimatorResponse {
190
- const scoreCalculator = new RepresentationScoreCalculator();
191
- const networkAnalyzer = new NetworkAnalyzer(initialBitrate ?? 0, lowLatencyMode);
192
- const requestsStore = new PendingRequestsStore();
193
-
194
- /**
195
- * Callback called each time a new segment is pushed, with the information on the
196
- * new pushed segment.
197
- */
198
- let onAddedSegment : (val : IAddedSegmentCallbackPayload) => void = noop;
199
-
200
- const callbacks : IRepresentationEstimatorCallbacks = {
201
- metrics: onMetric,
202
- requestBegin: onRequestBegin,
203
- requestProgress: onRequestProgress,
204
- requestEnd: onRequestEnd,
205
- addedSegment(val) { onAddedSegment(val); },
206
- };
207
-
208
- /**
209
- * `TaskCanceller` allowing to stop producing estimate.
210
- * This TaskCanceller is used both for restarting estimates with a new
211
- * configuration and to cancel them altogether.
212
- */
213
- let currentEstimatesCanceller = new TaskCanceller();
214
- currentEstimatesCanceller.linkToSignal(stopAllEstimates);
215
-
216
- // Create `SharedReference` on which estimates will be emitted.
217
- const estimateRef = createEstimateReference(representationsRef.getValue(),
218
- currentEstimatesCanceller.signal);
219
- representationsRef.onUpdate(restartEstimatesProductionFromCurrentConditions,
220
- { clearSignal: stopAllEstimates });
221
-
222
- return { estimates: estimateRef, callbacks };
223
-
224
- function createEstimateReference(
225
- representations : Representation[],
226
- innerCancellationSignal : CancellationSignal
227
- ) : SharedReference<IABREstimate> {
228
- if (representations.length === 0) {
229
- // No Representation given, return `null` as documented
230
- return new SharedReference<IABREstimate>({
231
- representation: null,
232
- bitrate: undefined,
233
- knownStableBitrate: undefined,
234
- manual: false,
235
- urgent: true,
236
- });
237
- }
238
- if (representations.length === 1) {
239
- // There's only a single Representation. Just choose it.
240
- return new SharedReference<IABREstimate>({ bitrate: undefined,
241
- representation: representations[0],
242
- manual: false,
243
- urgent: true,
244
- knownStableBitrate: undefined });
245
- }
246
-
247
- /** If true, Representation estimates based on the buffer health might be used. */
248
- let allowBufferBasedEstimates = false;
249
-
250
- /**
251
- * Module calculating the optimal Representation based on the current
252
- * buffer's health (i.e. whether enough data is buffered, history of
253
- * buffer size etc.).
254
- */
255
- const bufferBasedChooser = new BufferBasedChooser(
256
- representations.map(r => r.bitrate)
257
- );
258
-
259
- /** Store the previous estimate made here. */
260
- const prevEstimate = new LastEstimateStorage();
261
-
262
- /**
263
- * Module calculating the optimal Representation by "guessing it" with a
264
- * step-by-step algorithm.
265
- * Only used in very specific scenarios.
266
- */
267
- const guessBasedChooser = new GuessBasedChooser(scoreCalculator, prevEstimate);
268
-
269
- // get initial observation for initial estimate
270
- let lastPlaybackObservation = playbackObserver.getReference().getValue();
271
-
272
- /** Reference through which estimates are emitted. */
273
- const innerEstimateRef = new SharedReference<IABREstimate>(getCurrentEstimate());
274
-
275
- // Listen to playback observations
276
- playbackObserver.listen((obs) => {
277
- lastPlaybackObservation = obs;
278
- updateEstimate();
279
- }, { includeLastObservation: false, clearSignal: innerCancellationSignal });
280
-
281
- onAddedSegment = function (val : IAddedSegmentCallbackPayload) {
282
- if (lastPlaybackObservation === null) {
283
- return;
284
- }
285
- const { position, speed } = lastPlaybackObservation;
286
- const timeRanges = val.buffered;
287
- const bufferGap = getLeftSizeOfRange(timeRanges, position.last);
288
- const { representation } = val.content;
289
- const currentScore = scoreCalculator.getEstimate(representation);
290
- const currentBitrate = representation.bitrate;
291
- const observation = { bufferGap, currentBitrate, currentScore, speed };
292
- bufferBasedChooser.onAddedSegment(observation);
293
- updateEstimate();
294
- };
295
- innerCancellationSignal.register(() => {
296
- onAddedSegment = noop;
297
- });
298
-
299
- manualBitrate.onUpdate(updateEstimate, { clearSignal: innerCancellationSignal });
300
- minAutoBitrate.onUpdate(updateEstimate, { clearSignal: innerCancellationSignal });
301
- maxAutoBitrate.onUpdate(updateEstimate, { clearSignal: innerCancellationSignal });
302
- filters.limitWidth.onUpdate(updateEstimate, { clearSignal: innerCancellationSignal });
303
- filters.limitWidth.onUpdate(updateEstimate, { clearSignal: innerCancellationSignal });
304
-
305
- return innerEstimateRef;
306
-
307
- function updateEstimate() : void {
308
- innerEstimateRef.setValue(getCurrentEstimate());
309
- }
310
-
311
- /** Returns the actual estimate based on all methods and algorithm available. */
312
- function getCurrentEstimate(): IABREstimate {
313
- const manualBitrateVal = manualBitrate.getValue();
314
- if (manualBitrateVal >= 0) {
315
- // A manual bitrate has been set. Just choose Representation according to it.
316
- const manualRepresentation = selectOptimalRepresentation(representations,
317
- manualBitrateVal,
318
- 0,
319
- Infinity);
320
- return {
321
- representation: manualRepresentation,
322
- bitrate: undefined, // Bitrate estimation is deactivated here
323
- knownStableBitrate: undefined,
324
- manual: true,
325
- urgent: true, // a manual bitrate switch should happen immediately
326
- };
327
- }
328
-
329
- const { bufferGap, position, maximumPosition } = lastPlaybackObservation;
330
- const widthLimit = filters.limitWidth.getValue();
331
- const bitrateThrottle = filters.throttleBitrate.getValue();
332
- const currentRepresentationVal = currentRepresentation.getValue();
333
- const minAutoBitrateVal = minAutoBitrate.getValue();
334
- const maxAutoBitrateVal = maxAutoBitrate.getValue();
335
-
336
- const filteredReps = getFilteredRepresentations(representations,
337
- widthLimit,
338
- bitrateThrottle);
339
- const requests = requestsStore.getRequests();
340
- const { bandwidthEstimate, bitrateChosen } = networkAnalyzer
341
- .getBandwidthEstimate(lastPlaybackObservation,
342
- bandwidthEstimator,
343
- currentRepresentationVal,
344
- requests,
345
- prevEstimate.bandwidth);
346
-
347
- const stableRepresentation = scoreCalculator.getLastStableRepresentation();
348
- const knownStableBitrate = stableRepresentation === null ?
349
- undefined :
350
- stableRepresentation.bitrate / (lastPlaybackObservation.speed > 0 ?
351
- lastPlaybackObservation.speed :
352
- 1);
353
-
354
- const { ABR_ENTER_BUFFER_BASED_ALGO,
355
- ABR_EXIT_BUFFER_BASED_ALGO } = config.getCurrent();
356
-
357
- if (allowBufferBasedEstimates && bufferGap <= ABR_EXIT_BUFFER_BASED_ALGO) {
358
- allowBufferBasedEstimates = false;
359
- } else if (!allowBufferBasedEstimates &&
360
- isFinite(bufferGap) &&
361
- bufferGap >= ABR_ENTER_BUFFER_BASED_ALGO)
362
- {
363
- allowBufferBasedEstimates = true;
364
- }
365
-
366
- /**
367
- * Representation chosen when considering only [pessimist] bandwidth
368
- * calculation.
369
- * This is a safe enough choice but might be lower than what the user
370
- * could actually profit from.
371
- */
372
- const chosenRepFromBandwidth = selectOptimalRepresentation(filteredReps,
373
- bitrateChosen,
374
- minAutoBitrateVal,
375
- maxAutoBitrateVal);
376
-
377
- /**
378
- * Current optimal Representation's bandwidth choosen by a buffer-based
379
- * adaptive algorithm.
380
- */
381
- const currentBufferBasedEstimate = bufferBasedChooser.getLastEstimate();
382
-
383
- let currentBestBitrate = chosenRepFromBandwidth.bitrate;
384
-
385
- /**
386
- * Representation chosen when considering the current buffer size.
387
- * If defined, takes precedence over `chosenRepFromBandwidth`.
388
- *
389
- * This is a very safe choice, yet it is very slow and might not be
390
- * adapted to cases where a buffer cannot be build, such as live contents.
391
- *
392
- * `null` if this buffer size mode is not enabled or if we don't have a
393
- * choice from it yet.
394
- */
395
- let chosenRepFromBufferSize : Representation | null = null;
396
- if (allowBufferBasedEstimates &&
397
- currentBufferBasedEstimate !== undefined &&
398
- currentBufferBasedEstimate > currentBestBitrate)
399
- {
400
-
401
- chosenRepFromBufferSize = selectOptimalRepresentation(filteredReps,
402
- currentBufferBasedEstimate,
403
- minAutoBitrateVal,
404
- maxAutoBitrateVal);
405
- currentBestBitrate = chosenRepFromBufferSize.bitrate;
406
- }
407
-
408
- /**
409
- * Representation chosen by the more adventurous `GuessBasedChooser`,
410
- * which iterates through Representations one by one until finding one
411
- * that cannot be "maintained".
412
- *
413
- * If defined, takes precedence over both `chosenRepFromBandwidth` and
414
- * `chosenRepFromBufferSize`.
415
- *
416
- * This is the riskiest choice (in terms of rebuffering chances) but is
417
- * only enabled when no other solution is adapted (for now, this just
418
- * applies for low-latency contents when playing close to the live
419
- * edge).
420
- *
421
- * `null` if not enabled or if there's currently no guess.
422
- */
423
- let chosenRepFromGuessMode : Representation | null = null;
424
- if (lowLatencyMode &&
425
- currentRepresentationVal !== null &&
426
- context.manifest.isDynamic &&
427
- maximumPosition - position.last < 40)
428
- {
429
- chosenRepFromGuessMode = guessBasedChooser
430
- .getGuess(representations,
431
- lastPlaybackObservation,
432
- currentRepresentationVal,
433
- currentBestBitrate,
434
- requests);
435
- }
436
-
437
- if (chosenRepFromGuessMode !== null &&
438
- chosenRepFromGuessMode.bitrate > currentBestBitrate) {
439
- log.debug("ABR: Choosing representation with guess-based estimation.",
440
- chosenRepFromGuessMode.bitrate,
441
- chosenRepFromGuessMode.id);
442
- prevEstimate.update(chosenRepFromGuessMode,
443
- bandwidthEstimate,
444
- ABRAlgorithmType.GuessBased);
445
- return { bitrate: bandwidthEstimate,
446
- representation: chosenRepFromGuessMode,
447
- urgent: currentRepresentationVal === null ||
448
- chosenRepFromGuessMode.bitrate < currentRepresentationVal.bitrate,
449
- manual: false,
450
- knownStableBitrate };
451
- } else if (chosenRepFromBufferSize !== null) {
452
- log.debug("ABR: Choosing representation with buffer-based estimation.",
453
- chosenRepFromBufferSize.bitrate,
454
- chosenRepFromBufferSize.id);
455
- prevEstimate.update(chosenRepFromBufferSize,
456
- bandwidthEstimate,
457
- ABRAlgorithmType.BufferBased);
458
- return { bitrate: bandwidthEstimate,
459
- representation: chosenRepFromBufferSize,
460
- urgent: networkAnalyzer.isUrgent(chosenRepFromBufferSize.bitrate,
461
- currentRepresentationVal,
462
- requests,
463
- lastPlaybackObservation),
464
- manual: false,
465
- knownStableBitrate };
466
- } else {
467
- log.debug("ABR: Choosing representation with bandwidth estimation.",
468
- chosenRepFromBandwidth.bitrate,
469
- chosenRepFromBandwidth.id);
470
- prevEstimate.update(chosenRepFromBandwidth,
471
- bandwidthEstimate,
472
- ABRAlgorithmType.BandwidthBased);
473
- return { bitrate: bandwidthEstimate,
474
- representation: chosenRepFromBandwidth,
475
- urgent: networkAnalyzer.isUrgent(chosenRepFromBandwidth.bitrate,
476
- currentRepresentationVal,
477
- requests,
478
- lastPlaybackObservation),
479
- manual: false,
480
- knownStableBitrate };
481
- }
482
- }
483
- }
484
-
485
- /**
486
- * Stop previous estimate production (if one) and restart it considering new
487
- * conditions (such as a manual bitrate and/or a new list of Representations).
488
- */
489
- function restartEstimatesProductionFromCurrentConditions() : void {
490
- const representations = representationsRef.getValue();
491
- currentEstimatesCanceller.cancel();
492
- currentEstimatesCanceller = new TaskCanceller();
493
- currentEstimatesCanceller.linkToSignal(stopAllEstimates);
494
- const newRef = createEstimateReference(
495
- representations,
496
- currentEstimatesCanceller.signal
497
- );
498
-
499
- newRef.onUpdate(function onNewEstimate(newEstimate : IABREstimate) : void {
500
- estimateRef.setValue(newEstimate);
501
- }, { clearSignal: currentEstimatesCanceller.signal,
502
- emitCurrentValue: true });
503
- }
504
-
505
- /**
506
- * Callback to call when new metrics are available
507
- * @param {Object} value
508
- */
509
- function onMetric(value : IMetricsCallbackPayload) : void {
510
- const { requestDuration, segmentDuration, size, content } = value;
511
-
512
- // calculate bandwidth
513
- bandwidthEstimator.addSample(requestDuration, size);
514
-
515
- if (!content.segment.isInit) {
516
- // calculate "maintainability score"
517
- const { segment, representation } = content;
518
- if (segmentDuration === undefined && !segment.complete) {
519
- // We cannot know the real duration of the segment
520
- return;
521
- }
522
- const segDur = segmentDuration ?? segment.duration;
523
- scoreCalculator.addSample(representation, requestDuration / 1000, segDur);
524
- }
525
- }
526
-
527
- /** Callback called when a new request begins. */
528
- function onRequestBegin(val : IRequestBeginCallbackPayload) : void {
529
- requestsStore.add(val);
530
- }
531
-
532
- /** Callback called when progress information is known on a pending request. */
533
- function onRequestProgress(val : IRequestProgressCallbackPayload) : void {
534
- requestsStore.addProgress(val);
535
- }
536
-
537
- /** Callback called when a pending request ends. */
538
- function onRequestEnd(val : IRequestEndCallbackPayload) : void {
539
- requestsStore.remove(val.id);
540
- }
541
- }
542
-
543
- /**
544
- * Filter representations given through filters options.
545
- * @param {Array.<Representation>} representations
546
- * @param {number | undefined} widthLimit - Filter Object.
547
- * @returns {Array.<Representation>}
548
- */
549
- function getFilteredRepresentations(
550
- representations : Representation[],
551
- widthLimit : number | undefined,
552
- bitrateThrottle : number
553
- ) : Representation[] {
554
- let filteredReps = representations;
555
-
556
- if (bitrateThrottle < Infinity) {
557
- filteredReps = filterByBitrate(filteredReps, bitrateThrottle);
558
- }
559
-
560
- if (widthLimit !== undefined) {
561
- filteredReps = filterByWidth(filteredReps, widthLimit);
562
- }
563
-
564
- return filteredReps;
565
- }
566
-
567
- /**
568
- * Adaptive BitRate estimate object.
569
- *
570
- * Helps the player to choose a Representation (i.e. a quality) by frequently
571
- * measuring the current network and playback conditions.
572
- *
573
- * At regular intervals, an `IABREstimate` will be sent to that end.
574
- */
575
- export interface IABREstimate {
576
- /**
577
- * If defined, the last calculated available bitrate for that type of
578
- * content (e.g. "video, "audio"...).
579
- * Note that it can be very different from the "real" user's bandwidth.
580
- *
581
- * If `undefined`, we do not currently know the bitrate for the current type.
582
- */
583
- bitrate: undefined | number;
584
- /**
585
- * If `true`, the `representation` chosen in the current estimate object is
586
- * linked to a choice chosen manually by the user.
587
- *
588
- * If `false`, this estimate is just due to the adaptative logic.
589
- */
590
- manual: boolean;
591
- /**
592
- * The Representation considered as the most adapted to the current network
593
- * and playback conditions.
594
- * `null` in the rare occurence where there is no `Representation` to choose
595
- * from.
596
- */
597
- representation: Representation | null;
598
- /**
599
- * If `true`, the current `representation` suggested should be switched to as
600
- * soon as possible. For example, you might want to interrupt all pending
601
- * downloads for the current representation and replace it immediately by this
602
- * one.
603
- *
604
- * If `false`, the suggested `representation` can be switched to less
605
- * urgently. For example, pending segment requests for the current
606
- * Representation can be finished before switching to that new Representation.
607
- */
608
- urgent : boolean;
609
- /**
610
- * Last bitrate which was known to be "maintainable".
611
- *
612
- * The estimates provided though `IABREstimate` objects sometimes indicate
613
- * that you should switch to a Representation with a much higher bitrate than
614
- * what the network bandwidth can sustain.
615
- * Such Representation are said to not be "maintainable": at a regular
616
- * playback speed, we cannot maintain this Representation without buffering
617
- * after some time.
618
- *
619
- * `knownStableBitrate` communicates the bitrate of the last Representation
620
- * that was known to be maintaninable: it could reliably be played continually
621
- * without interruption.
622
- *
623
- * This can be for example useful in some optimizations such as
624
- * "fast-switching", where the player will load segments of higher quality to
625
- * replace segments of low quality.
626
- * Because in that case you're pushing segment on top of buffer you already
627
- * have, you will most likely only want to do it when the Representation is
628
- * known to be maintaninable.
629
- */
630
- knownStableBitrate?: number | undefined;
631
- }
632
-
633
- /** Media properties `getEstimateReference` will need to keep track of. */
634
- export interface IRepresentationEstimatorPlaybackObservation {
635
- /**
636
- * For the concerned media buffer, difference in seconds between the next
637
- * position where no segment data is available and the current position.
638
- */
639
- bufferGap : number;
640
- /**
641
- * Information on the current media position in seconds at the time of a
642
- * Playback Observation.
643
- */
644
- position : {
645
- /**
646
- * Known position at the time the Observation was emitted, in seconds.
647
- *
648
- * Note that it might have changed since. If you want truly precize
649
- * information, you should recuperate it from the HTMLMediaElement directly
650
- * through another mean.
651
- */
652
- last : number;
653
- /**
654
- * Actually wanted position in seconds that is not yet reached.
655
- *
656
- * This might for example be set to the initial position when the content is
657
- * loading (and thus potentially at a `0` position) but which will be seeked
658
- * to a given position once possible.
659
- */
660
- pending : number | undefined;
661
- };
662
- /**
663
- * Last "playback rate" set by the user. This is the ideal "playback rate" at
664
- * which the media should play.
665
- */
666
- speed : number;
667
- /** `duration` property of the HTMLMediaElement on which the content plays. */
668
- duration : number;
669
- /** Theoretical maximum position on the content that can currently be played. */
670
- maximumPosition : number;
671
- }
672
-
673
- /** Content of the `IABRMetricsEvent` event's payload. */
674
- export interface IMetricsCallbackPayload {
675
- /** Time the request took to perform the request, in milliseconds. */
676
- requestDuration: number;
677
- /** Amount of bytes downloaded with this request. */
678
- size: number;
679
- /** Duration of the loaded segment, in seconds. */
680
- segmentDuration: number | undefined;
681
- /** Context about the segment downloaded. */
682
- content: { representation: Representation;
683
- adaptation: Adaptation;
684
- segment: ISegment; };
685
- }
686
-
687
- export type IRequestBeginCallbackPayload = IPendingRequestStoreBegin;
688
- export type IRequestProgressCallbackPayload = IPendingRequestStoreProgress;
689
- export interface IRequestEndCallbackPayload {
690
- /**
691
- * Same `id` value used to identify that request at the time the corresponding
692
- * callback was called.
693
- */
694
- id: string;
695
- }
696
-
697
- /** Object allowing to filter some Representations out based on different attributes. */
698
- export interface IABRFiltersObject {
699
- /**
700
- * Filters out all Representations with a bitrate higher than this value.
701
- * If all Representations have a bitrate higher than this value, still
702
- * consider the Representation with the lowest bitrate.
703
- */
704
- bitrate?: number;
705
- /**
706
- * Consider only Representations with a width either unknown or lower or equal
707
- * to that value.
708
- *
709
- * As a special case, if no Representation has a width exactly equal to that
710
- * value, the Representation(s) with the `width` immediately higher will also
711
- * be considered.
712
- *
713
- * _This is usually used to filter out Representations for which the width
714
- * is much higher than the maximum width of the screen. In such cases, there
715
- * would be no difference between those higher-quality Representations._
716
- */
717
- width?: number;
718
- }
719
-
720
- /** Callbacks returned by `getEstimateReference`. */
721
- export interface IRepresentationEstimatorCallbacks {
722
- /** Callback to call when a segment has been completely pushed to the buffer. */
723
- addedSegment(val : IAddedSegmentCallbackPayload) : void;
724
- /** Callback to call when network metrics are available. */
725
- metrics(val : IMetricsCallbackPayload) : void;
726
- /** Callback to call when an HTTP(S) request begins. */
727
- requestBegin(val : IRequestBeginCallbackPayload) : void;
728
- /**
729
- * Callback to call when an HTTP(S) request ends.
730
- * Important: `requestEnd` should only be called for requests for which the
731
- * `requestBegin` callback has been called. It should be called at most once.
732
- */
733
- requestEnd(val : IRequestEndCallbackPayload) : void;
734
- /**
735
- * Callback to call when progress information is available on a pending
736
- * request.
737
- * Important: `requestProgress` should only be called for requests for which
738
- * the `requestBegin` callback has been called but the `requestEnd` method has
739
- * not yet been called.
740
- */
741
- requestProgress(val : IRequestProgressCallbackPayload) : void;
742
- }
743
-
744
- export interface IAddedSegmentCallbackPayload {
745
- /**
746
- * The buffered ranges of the related media buffer after that segment has
747
- * been pushed.
748
- */
749
- buffered : TimeRanges;
750
- /** The context for the segment that has been pushed. */
751
- content : { representation : Representation };
752
- }
753
-
754
- /** Arguments to give to `getEstimateReference`. */
755
- export interface IRepresentationEstimatorArguments {
756
- /** Class allowing to estimate the current network bandwidth. */
757
- bandwidthEstimator : BandwidthEstimator;
758
- /** Emit regular playback information. */
759
- playbackObserver : IReadOnlyPlaybackObserver<
760
- IRepresentationEstimatorPlaybackObservation
761
- >;
762
- /**
763
- * The Representation currently loaded.
764
- * `null` if no Representation is currently loaded.
765
- */
766
- currentRepresentation : IReadOnlySharedReference<Representation | null>;
767
- /** Throttle Representation pool according to filters. */
768
- filters: {
769
- limitWidth : IReadOnlySharedReference<number | undefined>;
770
- throttleBitrate : IReadOnlySharedReference<number>;
771
- };
772
- /**
773
- * The initial bitrate you want to start with.
774
- *
775
- * The highest-quality Representation with a bitrate lower-or-equal to that
776
- * value will be chosen.
777
- * If no Representation has bitrate lower or equal to that value, the
778
- * Representation with the lowest bitrate will be chosen instead.
779
- */
780
- initialBitrate?: number;
781
- /**
782
- * If `true` the content is a "low-latency" content.
783
- * Such contents have specific settings.
784
- */
785
- lowLatencyMode: boolean;
786
- /**
787
- * Reference allowing to set manually choose a Representation:
788
- *
789
- * The highest-quality Representation with a bitrate lower-or-equal to that
790
- * value will be chosen.
791
- * If no Representation has bitrate lower or equal to that value, the
792
- * Representation with the lowest bitrate will be chosen instead.
793
- *
794
- * If no Representation has a bitrate lower or equal to that value, the
795
- * Representation with the lowest bitrate will be chosen instead.
796
- *
797
- * Set it to a negative value to enable "adaptative mode" instead:
798
- * `getEstimateReference` will choose the best Representation based on the
799
- * current network and playback conditions.
800
- */
801
- manualBitrate : IReadOnlySharedReference<number>;
802
- /**
803
- * Set a bitrate floor (the minimum reachable bitrate) for adaptative
804
- * streaming.
805
- *
806
- * When `getEstimateReference` is choosing a `Representation` in
807
- * adaptive mode (e.g. no Representation has been manually chosen through
808
- * the `manualBitrate` reference), it will never choose a Representation
809
- * having a bitrate inferior to that value, with a notable exception:
810
- * If no Representation has a bitrate superior or equal to that value, the
811
- * Representation with the lowest bitrate will be chosen instead.
812
- *
813
- * You can set it to `0` to disable any effect of that option.
814
- */
815
- minAutoBitrate : IReadOnlySharedReference<number>;
816
- /**
817
- * Set a bitrate ceil (the maximum reachable bitrate) for adaptative
818
- * streaming.
819
- *
820
- * When `getEstimateReference` is choosing a `Representation` in
821
- * adaptive mode (e.g. no Representation has been manually chosen through
822
- * the `manualBitrate` reference), it will never choose a Representation
823
- * having a bitrate superior to that value, with a notable exception:
824
- * If no Representation has a bitrate lower or equal to that value, the
825
- * Representation with the lowest bitrate will be chosen instead.
826
- *
827
- * You can set it to `Infinity` to disable any effect of that option.
828
- */
829
- maxAutoBitrate : IReadOnlySharedReference<number>;
830
- /** The list of Representations `getEstimateReference` can choose from. */
831
- representations : IReadOnlySharedReference<Representation[]>;
832
- /** Context for the list of Representations to choose. */
833
- context : {
834
- /** In which Manifest the Representations are. */
835
- manifest : Manifest;
836
- /** In which Period the Representations are. */
837
- period : Period;
838
- /** In which Adaptation the Representations are. */
839
- adaptation : Adaptation;
840
- };
841
- }
842
-
843
- /**
844
- * Type of the function returned by `createAdaptiveRepresentationSelector`,
845
- * allowing to estimate the most adapted `Representation`.
846
- */
847
- export type IRepresentationEstimator = (
848
- /** Information on the content for which a Representation will be chosen */
849
- context : { manifest : Manifest;
850
- period : Period;
851
- adaptation : Adaptation; },
852
- /** Reference emitting the Representation currently loaded. */
853
- currentRepresentation : IReadOnlySharedReference<Representation | null>,
854
- /** Reference emitting the list of available Representations to choose from. */
855
- representations : IReadOnlySharedReference<Representation[]>,
856
- /** Regularly emits playback conditions */
857
- playbackObserver : IReadOnlyPlaybackObserver<
858
- IRepresentationEstimatorPlaybackObservation
859
- >,
860
- /**
861
- * After this `CancellationSignal` emits, resources will be disposed and
862
- * estimates will stop to be emitted.
863
- */
864
- stopAllEstimates : CancellationSignal
865
- ) => IRepresentationEstimatorResponse;
866
-
867
- /** Value returned by an `IRepresentationEstimator` */
868
- export interface IRepresentationEstimatorResponse {
869
- /**
870
- * Regularly produces estimates of the best Representation to play (from the
871
- * list given).
872
- */
873
- estimates: IReadOnlySharedReference<IABREstimate>;
874
- /**
875
- * Callback which need to be called as soon as the corresponding events to
876
- * obtain accurate Representation estimates.
877
- */
878
- callbacks: IRepresentationEstimatorCallbacks;
879
- }
880
-
881
- /** Arguments received by `createAdaptiveRepresentationSelector`. */
882
- export interface IAdaptiveRepresentationSelectorArguments {
883
- /** Initial bitrate chosen, per type (minimum if not set) */
884
- initialBitrates: Partial<Record<IBufferType, number>>;
885
-
886
- /**
887
- * Some settings can depend on wether you're playing a low-latency content.
888
- * Set it to `true` if you're playing such content.
889
- */
890
- lowLatencyMode: boolean;
891
-
892
- /** Minimum bitrate chosen when in adaptive mode, per type (0 by default) */
893
- minAutoBitrates: Partial<Record<IBufferType, IReadOnlySharedReference<number>>>;
894
-
895
- /** Maximum bitrate chosen when in adaptive mode, per type (0 by default) */
896
- maxAutoBitrates: Partial<Record<IBufferType, IReadOnlySharedReference<number>>>;
897
-
898
- /** Manually forced bitrate set for a given type (`-1` for adaptive mode) */
899
- manualBitrates: Partial<Record<IBufferType, IReadOnlySharedReference<number>>>;
900
-
901
- /** Allows to filter which Representations can be choosen. */
902
- throttlers: IRepresentationEstimatorThrottlers;
903
- }
904
-
905
- /**
906
- * Throttlers are interfaces allowing to limit the pool of Representations
907
- * to choose from.
908
- */
909
- export interface IRepresentationEstimatorThrottlers {
910
- limitWidth : Partial<Record<IBufferType,
911
- IReadOnlySharedReference<number>>>;
912
- throttle : Partial<Record<IBufferType,
913
- IReadOnlySharedReference<number>>>;
914
- throttleBitrate : Partial<Record<IBufferType,
915
- IReadOnlySharedReference<number>>>;
916
- }