rx-player 4.0.0-beta.2 → 4.0.0-beta.3

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 (909) hide show
  1. package/.eslintrc.js +9 -0
  2. package/CHANGELOG.md +173 -63
  3. package/CONTRIBUTING.md +27 -13
  4. package/FILES.md +0 -4
  5. package/README.md +0 -25
  6. package/VERSION +1 -1
  7. package/dist/_esm5.processed/compat/add_class_name.js +6 -3
  8. package/dist/_esm5.processed/compat/add_text_track.js +11 -8
  9. package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +0 -1
  10. package/dist/_esm5.processed/compat/browser_compatibility_types.js +16 -11
  11. package/dist/_esm5.processed/compat/browser_detection.js +49 -33
  12. package/dist/_esm5.processed/compat/browser_version.js +11 -8
  13. package/dist/_esm5.processed/compat/can_patch_isobmff.js +6 -3
  14. package/dist/_esm5.processed/compat/can_rely_on_video_visibility_and_size.js +9 -6
  15. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -3
  16. package/dist/_esm5.processed/compat/change_source_buffer_type.js +6 -3
  17. package/dist/_esm5.processed/compat/clear_element_src.js +12 -9
  18. package/dist/_esm5.processed/compat/eme/close_session.js +45 -106
  19. package/dist/_esm5.processed/compat/eme/constants.js +6 -3
  20. package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +18 -22
  21. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.d.ts +2 -2
  22. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +81 -101
  23. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +6 -27
  24. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +16 -159
  25. package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +1 -1
  26. package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.js +31 -26
  27. package/dist/_esm5.processed/compat/eme/custom_media_keys/ms_media_keys_constructor.js +14 -14
  28. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +2 -2
  29. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +75 -89
  30. package/dist/_esm5.processed/compat/eme/custom_media_keys/types.d.ts +1 -1
  31. package/dist/_esm5.processed/compat/eme/custom_media_keys/types.js +2 -1
  32. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.d.ts +2 -2
  33. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +97 -119
  34. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +14 -16
  35. package/dist/_esm5.processed/compat/eme/eme-api-implementation.d.ts +78 -0
  36. package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +198 -0
  37. package/dist/_esm5.processed/compat/eme/generate_key_request.js +36 -31
  38. package/dist/_esm5.processed/compat/eme/get_init_data.js +28 -25
  39. package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +8 -5
  40. package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +17 -14
  41. package/dist/_esm5.processed/compat/eme/index.d.ts +5 -3
  42. package/dist/_esm5.processed/compat/eme/index.js +13 -7
  43. package/dist/_esm5.processed/compat/eme/load_session.js +26 -69
  44. package/dist/_esm5.processed/compat/enable_audio_track.js +7 -4
  45. package/dist/_esm5.processed/compat/event_listeners.d.ts +13 -5
  46. package/dist/_esm5.processed/compat/event_listeners.js +132 -108
  47. package/dist/_esm5.processed/compat/get_start_date.js +7 -4
  48. package/dist/_esm5.processed/compat/global_scope.d.ts +9 -0
  49. package/dist/_esm5.processed/compat/global_scope.js +15 -0
  50. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +6 -3
  51. package/dist/_esm5.processed/compat/index.d.ts +2 -3
  52. package/dist/_esm5.processed/compat/index.js +47 -25
  53. package/dist/_esm5.processed/compat/is_codec_supported.js +8 -5
  54. package/dist/_esm5.processed/compat/is_debug_mode_enabled.d.ts +7 -0
  55. package/dist/_esm5.processed/compat/is_debug_mode_enabled.js +12 -0
  56. package/dist/_esm5.processed/compat/is_node.d.ts +1 -0
  57. package/dist/_esm5.processed/compat/is_node.js +6 -2
  58. package/dist/_esm5.processed/compat/is_seeking_approximate.js +5 -3
  59. package/dist/_esm5.processed/compat/is_vtt_cue.js +6 -2
  60. package/dist/_esm5.processed/compat/is_worker.d.ts +5 -0
  61. package/dist/_esm5.processed/compat/is_worker.js +7 -0
  62. package/dist/_esm5.processed/compat/make_vtt_cue.js +10 -6
  63. package/dist/_esm5.processed/compat/on_height_width_change.js +25 -27
  64. package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +19 -16
  65. package/dist/_esm5.processed/compat/remove_cue.js +12 -9
  66. package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +7 -4
  67. package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +4 -1
  68. package/dist/_esm5.processed/compat/should_renew_media_key_system_access.js +6 -3
  69. package/dist/_esm5.processed/compat/should_unset_media_keys.js +6 -3
  70. package/dist/_esm5.processed/compat/should_validate_metadata.js +6 -3
  71. package/dist/_esm5.processed/compat/should_wait_for_data_before_loaded.js +6 -3
  72. package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.d.ts +13 -0
  73. package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.js +19 -0
  74. package/dist/_esm5.processed/config.js +15 -14
  75. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +136 -104
  76. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +19 -3
  77. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +66 -46
  78. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +37 -43
  79. package/dist/_esm5.processed/core/adaptive/index.js +4 -2
  80. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +75 -73
  81. package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +24 -23
  82. package/dist/_esm5.processed/core/adaptive/utils/ewma.js +13 -12
  83. package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.js +9 -6
  84. package/dist/_esm5.processed/core/adaptive/utils/filter_by_resolution.js +18 -19
  85. package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +10 -7
  86. package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.js +8 -7
  87. package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.d.ts +13 -3
  88. package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.js +26 -23
  89. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +25 -23
  90. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +6 -3
  91. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +41 -40
  92. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +31 -29
  93. package/dist/_esm5.processed/core/api/debug/constants.js +4 -1
  94. package/dist/_esm5.processed/core/api/debug/index.js +4 -2
  95. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +64 -72
  96. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +49 -46
  97. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +15 -12
  98. package/dist/_esm5.processed/core/api/debug/render.js +16 -13
  99. package/dist/_esm5.processed/core/api/debug/utils.js +18 -13
  100. package/dist/_esm5.processed/core/api/index.js +7 -4
  101. package/dist/_esm5.processed/core/api/option_utils.d.ts +1 -1
  102. package/dist/_esm5.processed/core/api/option_utils.js +86 -59
  103. package/dist/_esm5.processed/core/api/playback_observer.d.ts +8 -2
  104. package/dist/_esm5.processed/core/api/playback_observer.js +135 -123
  105. package/dist/_esm5.processed/core/api/public_api.d.ts +6 -0
  106. package/dist/_esm5.processed/core/api/public_api.js +614 -676
  107. package/dist/_esm5.processed/core/api/track_management/index.js +19 -3
  108. package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +233 -248
  109. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +2 -2
  110. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +47 -58
  111. package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +50 -29
  112. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +325 -351
  113. package/dist/_esm5.processed/core/api/utils.js +32 -24
  114. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +3 -3
  115. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +167 -190
  116. package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +8 -2
  117. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +44 -72
  118. package/dist/_esm5.processed/core/decrypt/clear_on_stop.d.ts +1 -1
  119. package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +15 -12
  120. package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +9 -67
  121. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +400 -542
  122. package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +1 -1
  123. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +44 -90
  124. package/dist/_esm5.processed/core/decrypt/create_session.d.ts +1 -1
  125. package/dist/_esm5.processed/core/decrypt/create_session.js +90 -149
  126. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.d.ts +1 -1
  127. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +24 -60
  128. package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +1 -1
  129. package/dist/_esm5.processed/core/decrypt/find_key_system.js +104 -162
  130. package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +6 -3
  131. package/dist/_esm5.processed/core/decrypt/get_media_keys.d.ts +1 -1
  132. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +59 -109
  133. package/dist/_esm5.processed/core/decrypt/index.d.ts +2 -2
  134. package/dist/_esm5.processed/core/decrypt/index.js +26 -7
  135. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +17 -59
  136. package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +1 -1
  137. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +84 -155
  138. package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +1 -1
  139. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +50 -103
  140. package/dist/_esm5.processed/core/decrypt/types.d.ts +61 -0
  141. package/dist/_esm5.processed/core/decrypt/types.js +43 -1
  142. package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +22 -19
  143. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +1 -1
  144. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +40 -61
  145. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +17 -61
  146. package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.js +8 -5
  147. package/dist/_esm5.processed/core/decrypt/utils/get_drm_system_id.js +8 -5
  148. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +23 -23
  149. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.d.ts +1 -1
  150. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +15 -12
  151. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.d.ts +0 -13
  152. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +14 -38
  153. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +26 -26
  154. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +1 -1
  155. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +206 -310
  156. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.d.ts +2 -1
  157. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +8 -6
  158. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +1 -1
  159. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +103 -103
  160. package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +13 -12
  161. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.d.ts +1 -1
  162. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +18 -16
  163. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +37 -56
  164. package/dist/_esm5.processed/core/fetchers/index.js +7 -3
  165. package/dist/_esm5.processed/core/fetchers/manifest/index.js +4 -2
  166. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +233 -312
  167. package/dist/_esm5.processed/core/fetchers/segment/index.js +4 -2
  168. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +12 -9
  169. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +218 -233
  170. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +20 -19
  171. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +73 -74
  172. package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +8 -5
  173. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +210 -260
  174. package/dist/_esm5.processed/core/init/directfile_content_initializer.d.ts +60 -1
  175. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +122 -105
  176. package/dist/_esm5.processed/core/init/index.d.ts +1 -4
  177. package/dist/_esm5.processed/core/init/index.js +5 -3
  178. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +269 -307
  179. package/dist/_esm5.processed/core/init/types.d.ts +3 -17
  180. package/dist/_esm5.processed/core/init/types.js +7 -24
  181. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +109 -135
  182. package/dist/_esm5.processed/core/init/utils/create_media_source.js +35 -27
  183. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.d.ts +9 -4
  184. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +22 -14
  185. package/dist/_esm5.processed/core/init/utils/end_of_stream.js +30 -25
  186. package/dist/_esm5.processed/core/init/utils/get_initial_time.js +41 -37
  187. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +15 -10
  188. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +31 -28
  189. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +3 -3
  190. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +48 -53
  191. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +61 -58
  192. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +3 -3
  193. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +141 -160
  194. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +3 -1
  195. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.js +4 -2
  196. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +28 -14
  197. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +31 -9
  198. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +103 -79
  199. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.js +2 -1
  200. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +16 -13
  201. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +75 -126
  202. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +131 -140
  203. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/index.js +4 -2
  204. package/dist/_esm5.processed/core/segment_buffers/implementations/index.js +20 -3
  205. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +2 -2
  206. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +109 -128
  207. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/index.js +4 -2
  208. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/parsers.js +11 -8
  209. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +48 -47
  210. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/types.js +2 -1
  211. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +18 -15
  212. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +22 -15
  213. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/index.js +4 -2
  214. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +65 -82
  215. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.js +11 -8
  216. package/dist/_esm5.processed/core/segment_buffers/implementations/types.js +19 -17
  217. package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +23 -22
  218. package/dist/_esm5.processed/core/segment_buffers/index.js +13 -6
  219. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.d.ts +2 -2
  220. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +25 -22
  221. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +8 -3
  222. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +152 -150
  223. package/dist/_esm5.processed/core/segment_buffers/inventory/types.js +2 -1
  224. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +9 -4
  225. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +82 -89
  226. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +1 -1
  227. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +130 -171
  228. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +31 -28
  229. package/dist/_esm5.processed/core/stream/adaptation/index.js +19 -3
  230. package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +14 -8
  231. package/dist/_esm5.processed/core/stream/adaptation/types.js +2 -1
  232. package/dist/_esm5.processed/core/stream/index.d.ts +2 -2
  233. package/dist/_esm5.processed/core/stream/index.js +4 -2
  234. package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +14 -21
  235. package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +2 -2
  236. package/dist/_esm5.processed/core/stream/orchestrator/index.js +4 -2
  237. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +15 -29
  238. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +193 -235
  239. package/dist/_esm5.processed/core/stream/period/index.js +19 -3
  240. package/dist/_esm5.processed/core/stream/period/period_stream.js +204 -228
  241. package/dist/_esm5.processed/core/stream/period/types.d.ts +3 -3
  242. package/dist/_esm5.processed/core/stream/period/types.js +2 -1
  243. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +18 -4
  244. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -33
  245. package/dist/_esm5.processed/core/stream/representation/index.js +19 -3
  246. package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +1 -1
  247. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +81 -68
  248. package/dist/_esm5.processed/core/stream/representation/types.d.ts +3 -4
  249. package/dist/_esm5.processed/core/stream/representation/types.js +2 -1
  250. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +33 -84
  251. package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +32 -29
  252. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.d.ts +1 -1
  253. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +126 -145
  254. package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +32 -88
  255. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +61 -47
  256. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +71 -69
  257. package/dist/_esm5.processed/core/stream/representation/utils/get_segment_priority.js +8 -5
  258. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +2 -2
  259. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +22 -63
  260. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +1 -1
  261. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +49 -86
  262. package/dist/_esm5.processed/default_config.js +4 -2
  263. package/dist/_esm5.processed/errors/assertion_error.js +10 -26
  264. package/dist/_esm5.processed/errors/custom_loader_error.js +12 -28
  265. package/dist/_esm5.processed/errors/encrypted_media_error.js +16 -32
  266. package/dist/_esm5.processed/errors/error_codes.js +9 -4
  267. package/dist/_esm5.processed/errors/error_message.d.ts +1 -2
  268. package/dist/_esm5.processed/errors/error_message.js +5 -3
  269. package/dist/_esm5.processed/errors/format_error.js +9 -7
  270. package/dist/_esm5.processed/errors/index.js +25 -11
  271. package/dist/_esm5.processed/errors/is_known_error.js +14 -11
  272. package/dist/_esm5.processed/errors/media_error.d.ts +2 -2
  273. package/dist/_esm5.processed/errors/media_error.js +34 -47
  274. package/dist/_esm5.processed/errors/network_error.js +21 -37
  275. package/dist/_esm5.processed/errors/other_error.js +15 -31
  276. package/dist/_esm5.processed/errors/request_error.js +27 -29
  277. package/dist/_esm5.processed/experimental/features/dash_wasm.js +15 -9
  278. package/dist/_esm5.processed/experimental/features/debug_element.js +7 -4
  279. package/dist/_esm5.processed/experimental/features/index.d.ts +0 -1
  280. package/dist/_esm5.processed/experimental/features/index.js +9 -4
  281. package/dist/_esm5.processed/experimental/features/local.js +10 -4
  282. package/dist/_esm5.processed/experimental/features/metaplaylist.js +10 -4
  283. package/dist/_esm5.processed/experimental/index.js +5 -2
  284. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.js +6 -3
  285. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +6 -3
  286. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +7 -3
  287. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +22 -16
  288. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +22 -19
  289. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -3
  290. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.js +2 -1
  291. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +125 -186
  292. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.js +11 -27
  293. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +76 -119
  294. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +24 -15
  295. package/dist/_esm5.processed/experimental/tools/index.js +11 -5
  296. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
  297. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +39 -44
  298. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
  299. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +34 -36
  300. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +21 -18
  301. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +4 -2
  302. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/log.js +5 -3
  303. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +1 -1
  304. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +21 -17
  305. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -17
  306. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +13 -10
  307. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +16 -13
  308. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.js +16 -14
  309. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +14 -11
  310. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +14 -11
  311. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +19 -15
  312. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +11 -7
  313. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.js +5 -2
  314. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +25 -22
  315. package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +7 -4
  316. package/dist/_esm5.processed/features/add_features.js +11 -8
  317. package/dist/_esm5.processed/features/features_object.js +6 -3
  318. package/dist/_esm5.processed/features/index.js +7 -4
  319. package/dist/_esm5.processed/features/list/dash.js +12 -6
  320. package/dist/_esm5.processed/features/list/directfile.js +9 -5
  321. package/dist/_esm5.processed/features/list/eme.js +7 -4
  322. package/dist/_esm5.processed/features/list/html_sami_parser.js +9 -4
  323. package/dist/_esm5.processed/features/list/html_srt_parser.js +9 -4
  324. package/dist/_esm5.processed/features/list/html_text_buffer.js +7 -4
  325. package/dist/_esm5.processed/features/list/html_ttml_parser.js +9 -4
  326. package/dist/_esm5.processed/features/list/html_vtt_parser.js +9 -4
  327. package/dist/_esm5.processed/features/list/index.js +31 -14
  328. package/dist/_esm5.processed/features/list/native_sami_parser.js +10 -4
  329. package/dist/_esm5.processed/features/list/native_srt_parser.js +10 -4
  330. package/dist/_esm5.processed/features/list/native_text_buffer.js +8 -4
  331. package/dist/_esm5.processed/features/list/native_ttml_parser.js +10 -4
  332. package/dist/_esm5.processed/features/list/native_vtt_parser.js +10 -4
  333. package/dist/_esm5.processed/features/list/smooth.js +10 -4
  334. package/dist/_esm5.processed/features/types.d.ts +84 -7
  335. package/dist/_esm5.processed/features/types.js +2 -1
  336. package/dist/_esm5.processed/index.d.ts +0 -4
  337. package/dist/_esm5.processed/index.js +24 -8
  338. package/dist/_esm5.processed/log.js +5 -3
  339. package/dist/_esm5.processed/manifest/adaptation.js +52 -55
  340. package/dist/_esm5.processed/manifest/index.js +32 -13
  341. package/dist/_esm5.processed/manifest/manifest.d.ts +4 -7
  342. package/dist/_esm5.processed/manifest/manifest.js +117 -135
  343. package/dist/_esm5.processed/manifest/period.d.ts +2 -7
  344. package/dist/_esm5.processed/manifest/period.js +39 -46
  345. package/dist/_esm5.processed/manifest/representation.d.ts +12 -0
  346. package/dist/_esm5.processed/manifest/representation.js +81 -63
  347. package/dist/_esm5.processed/manifest/representation_index/index.js +5 -2
  348. package/dist/_esm5.processed/manifest/representation_index/static.js +43 -42
  349. package/dist/_esm5.processed/manifest/representation_index/types.js +2 -1
  350. package/dist/_esm5.processed/manifest/types.js +5 -2
  351. package/dist/_esm5.processed/manifest/update_period_in_place.js +38 -48
  352. package/dist/_esm5.processed/manifest/update_periods.js +59 -69
  353. package/dist/_esm5.processed/manifest/utils.js +14 -9
  354. package/dist/_esm5.processed/minimal.d.ts +1 -17
  355. package/dist/_esm5.processed/minimal.js +9 -39
  356. package/dist/_esm5.processed/parsers/containers/isobmff/constants.js +4 -1
  357. package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +14 -10
  358. package/dist/_esm5.processed/parsers/containers/isobmff/drm/index.js +5 -1
  359. package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +15 -11
  360. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +48 -40
  361. package/dist/_esm5.processed/parsers/containers/isobmff/index.js +27 -6
  362. package/dist/_esm5.processed/parsers/containers/isobmff/read.js +20 -14
  363. package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +25 -20
  364. package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +130 -112
  365. package/dist/_esm5.processed/parsers/containers/matroska/index.js +6 -1
  366. package/dist/_esm5.processed/parsers/containers/matroska/utils.js +67 -63
  367. package/dist/_esm5.processed/parsers/images/bif.js +40 -29
  368. package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.js +10 -12
  369. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +10 -7
  370. package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.d.ts +3 -3
  371. package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.js +11 -7
  372. package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +10 -6
  373. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +7 -6
  374. package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +10 -6
  375. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +14 -9
  376. package/dist/_esm5.processed/parsers/manifest/dash/common/index.js +10 -4
  377. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +73 -67
  378. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +9 -4
  379. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +32 -25
  380. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.js +11 -5
  381. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +81 -70
  382. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +130 -123
  383. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +15 -12
  384. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +35 -32
  385. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +14 -9
  386. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +30 -22
  387. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.js +4 -2
  388. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +14 -11
  389. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +5 -3
  390. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +131 -128
  391. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +16 -10
  392. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/utils.js +7 -3
  393. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +19 -18
  394. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +8 -4
  395. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +22 -19
  396. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +111 -108
  397. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.js +4 -1
  398. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +6 -3
  399. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +86 -84
  400. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +4 -0
  401. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +101 -84
  402. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +2 -2
  403. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +39 -37
  404. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +64 -65
  405. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +12 -9
  406. package/dist/_esm5.processed/parsers/manifest/dash/index.js +8 -1
  407. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/index.js +4 -2
  408. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +66 -62
  409. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +7 -4
  410. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.js +7 -4
  411. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.js +22 -19
  412. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +22 -19
  413. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +11 -8
  414. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +38 -34
  415. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +34 -30
  416. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +50 -38
  417. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +24 -21
  418. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.js +15 -12
  419. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +21 -18
  420. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.js +6 -3
  421. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +12 -9
  422. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +60 -64
  423. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +33 -27
  424. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +1 -0
  425. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.js +2 -1
  426. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +4 -4
  427. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.js +2 -1
  428. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.js +4 -2
  429. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +192 -237
  430. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +67 -62
  431. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +8 -4
  432. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +11 -7
  433. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +17 -13
  434. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +29 -24
  435. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +38 -33
  436. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +37 -32
  437. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +50 -35
  438. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +9 -5
  439. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +16 -12
  440. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +11 -7
  441. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +20 -16
  442. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +11 -7
  443. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +11 -7
  444. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/index.js +5 -1
  445. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +10 -6
  446. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +22 -20
  447. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.js +2 -1
  448. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +6 -2
  449. package/dist/_esm5.processed/parsers/manifest/index.js +17 -1
  450. package/dist/_esm5.processed/parsers/manifest/local/index.js +4 -2
  451. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +31 -26
  452. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +71 -84
  453. package/dist/_esm5.processed/parsers/manifest/local/types.d.ts +2 -0
  454. package/dist/_esm5.processed/parsers/manifest/local/types.js +2 -1
  455. package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.js +4 -2
  456. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +76 -71
  457. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +52 -52
  458. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +200 -175
  459. package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +13 -8
  460. package/dist/_esm5.processed/parsers/manifest/smooth/index.js +7 -4
  461. package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +17 -14
  462. package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +17 -15
  463. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +3 -3
  464. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +102 -97
  465. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +3 -3
  466. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +49 -47
  467. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  468. package/dist/_esm5.processed/parsers/manifest/smooth/utils/parseBoolean.js +4 -1
  469. package/dist/_esm5.processed/parsers/manifest/smooth/utils/reduceChildren.js +6 -3
  470. package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +5 -1
  471. package/dist/_esm5.processed/parsers/manifest/types.d.ts +6 -4
  472. package/dist/_esm5.processed/parsers/manifest/types.js +2 -1
  473. package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +27 -24
  474. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +10 -7
  475. package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +8 -5
  476. package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +8 -5
  477. package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +15 -12
  478. package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +15 -12
  479. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +31 -22
  480. package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +9 -6
  481. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +38 -45
  482. package/dist/_esm5.processed/parsers/texttracks/index.js +2 -1
  483. package/dist/_esm5.processed/parsers/texttracks/sami/html.js +45 -43
  484. package/dist/_esm5.processed/parsers/texttracks/sami/native.js +41 -39
  485. package/dist/_esm5.processed/parsers/texttracks/srt/find_end_of_cue_block.js +7 -4
  486. package/dist/_esm5.processed/parsers/texttracks/srt/get_cue_blocks.js +11 -8
  487. package/dist/_esm5.processed/parsers/texttracks/srt/html.js +32 -29
  488. package/dist/_esm5.processed/parsers/texttracks/srt/native.js +16 -13
  489. package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +21 -18
  490. package/dist/_esm5.processed/parsers/texttracks/srt/parse_timestamp.js +10 -7
  491. package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +37 -30
  492. package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.js +48 -48
  493. package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +14 -11
  494. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +7 -2
  495. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +15 -12
  496. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +15 -12
  497. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +11 -8
  498. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +15 -12
  499. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +25 -22
  500. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +117 -124
  501. package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +11 -8
  502. package/dist/_esm5.processed/parsers/texttracks/ttml/html/index.js +4 -2
  503. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +12 -8
  504. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.js +14 -11
  505. package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +10 -7
  506. package/dist/_esm5.processed/parsers/texttracks/ttml/native/index.js +4 -2
  507. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +38 -35
  508. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +11 -8
  509. package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +58 -58
  510. package/dist/_esm5.processed/parsers/texttracks/ttml/regexps.js +27 -13
  511. package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.js +18 -18
  512. package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +28 -26
  513. package/dist/_esm5.processed/parsers/texttracks/ttml/xml_utils.js +37 -25
  514. package/dist/_esm5.processed/parsers/texttracks/types.js +2 -1
  515. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +12 -9
  516. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +14 -11
  517. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.js +11 -8
  518. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +8 -5
  519. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +60 -60
  520. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +30 -27
  521. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.js +4 -2
  522. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +23 -26
  523. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +20 -17
  524. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +23 -18
  525. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/index.js +4 -2
  526. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +19 -16
  527. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.js +20 -17
  528. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +8 -5
  529. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +26 -18
  530. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +10 -7
  531. package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +15 -7
  532. package/dist/_esm5.processed/public_types.d.ts +6 -8
  533. package/dist/_esm5.processed/public_types.js +2 -1
  534. package/dist/_esm5.processed/tools/TextTrackRenderer/index.js +13 -6
  535. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +26 -24
  536. package/dist/_esm5.processed/tools/index.js +6 -4
  537. package/dist/_esm5.processed/tools/string_utils.js +10 -1
  538. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +16 -24
  539. package/dist/_esm5.processed/transports/dash/construct_segment_url.js +6 -3
  540. package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +17 -14
  541. package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +19 -16
  542. package/dist/_esm5.processed/transports/dash/index.js +4 -2
  543. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +47 -27
  544. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +23 -16
  545. package/dist/_esm5.processed/transports/dash/manifest_parser.js +68 -59
  546. package/dist/_esm5.processed/transports/dash/pipelines.js +20 -17
  547. package/dist/_esm5.processed/transports/dash/segment_loader.js +49 -39
  548. package/dist/_esm5.processed/transports/dash/segment_parser.js +58 -39
  549. package/dist/_esm5.processed/transports/dash/text_loader.js +36 -30
  550. package/dist/_esm5.processed/transports/dash/text_parser.js +39 -29
  551. package/dist/_esm5.processed/transports/index.js +17 -1
  552. package/dist/_esm5.processed/transports/local/index.js +4 -2
  553. package/dist/_esm5.processed/transports/local/pipelines.js +26 -22
  554. package/dist/_esm5.processed/transports/local/segment_loader.js +26 -23
  555. package/dist/_esm5.processed/transports/local/segment_parser.js +36 -25
  556. package/dist/_esm5.processed/transports/local/text_parser.js +42 -27
  557. package/dist/_esm5.processed/transports/metaplaylist/index.js +4 -2
  558. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +11 -7
  559. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +92 -96
  560. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +26 -20
  561. package/dist/_esm5.processed/transports/smooth/index.js +4 -2
  562. package/dist/_esm5.processed/transports/smooth/is_mp4_embedded_track.js +4 -1
  563. package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +22 -19
  564. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +92 -67
  565. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +29 -26
  566. package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +9 -6
  567. package/dist/_esm5.processed/transports/smooth/isobmff/create_video_init_segment.js +23 -20
  568. package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +10 -7
  569. package/dist/_esm5.processed/transports/smooth/isobmff/index.js +13 -6
  570. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +19 -16
  571. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +9 -6
  572. package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +41 -38
  573. package/dist/_esm5.processed/transports/smooth/pipelines.js +107 -96
  574. package/dist/_esm5.processed/transports/smooth/segment_loader.js +149 -153
  575. package/dist/_esm5.processed/transports/smooth/utils.js +7 -3
  576. package/dist/_esm5.processed/transports/types.d.ts +17 -8
  577. package/dist/_esm5.processed/transports/types.js +2 -1
  578. package/dist/_esm5.processed/transports/utils/byte_range.js +6 -4
  579. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +23 -17
  580. package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +14 -11
  581. package/dist/_esm5.processed/transports/utils/find_complete_box.js +11 -8
  582. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +22 -14
  583. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.d.ts +0 -3
  584. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +13 -13
  585. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +4 -1
  586. package/dist/_esm5.processed/transports/utils/parse_text_track.js +40 -26
  587. package/dist/_esm5.processed/utils/are_arrays_of_numbers_equal.js +8 -2
  588. package/dist/_esm5.processed/utils/are_codecs_compatible.js +11 -9
  589. package/dist/_esm5.processed/utils/array_find.js +7 -4
  590. package/dist/_esm5.processed/utils/array_find_index.js +6 -3
  591. package/dist/_esm5.processed/utils/array_includes.js +12 -11
  592. package/dist/_esm5.processed/utils/assert.js +15 -10
  593. package/dist/_esm5.processed/utils/assert_unreachable.js +6 -3
  594. package/dist/_esm5.processed/utils/base64.js +23 -18
  595. package/dist/_esm5.processed/utils/byte_parsing.js +30 -17
  596. package/dist/_esm5.processed/utils/cancellable_sleep.js +8 -5
  597. package/dist/_esm5.processed/utils/create_cancellable_promise.js +7 -4
  598. package/dist/_esm5.processed/utils/deep_merge.d.ts +2 -5
  599. package/dist/_esm5.processed/utils/deep_merge.js +10 -21
  600. package/dist/_esm5.processed/utils/event_emitter.js +24 -24
  601. package/dist/_esm5.processed/utils/flat_map.js +7 -4
  602. package/dist/_esm5.processed/utils/get_fuzzed_delay.js +6 -3
  603. package/dist/_esm5.processed/utils/hash_buffer.js +7 -4
  604. package/dist/_esm5.processed/utils/id_generator.js +6 -3
  605. package/dist/_esm5.processed/utils/initialization_segment_cache.js +11 -12
  606. package/dist/_esm5.processed/utils/is_non_empty_string.js +4 -1
  607. package/dist/_esm5.processed/utils/is_null_or_undefined.js +4 -1
  608. package/dist/_esm5.processed/utils/languages/ISO_639-1_to_ISO_639-3.js +4 -2
  609. package/dist/_esm5.processed/utils/languages/ISO_639-2_to_ISO_639-3.js +4 -2
  610. package/dist/_esm5.processed/utils/languages/index.js +7 -3
  611. package/dist/_esm5.processed/utils/languages/normalize.js +26 -20
  612. package/dist/_esm5.processed/utils/logger.js +24 -23
  613. package/dist/_esm5.processed/utils/monotonic_timestamp.d.ts +9 -0
  614. package/dist/_esm5.processed/utils/monotonic_timestamp.js +15 -0
  615. package/dist/_esm5.processed/utils/noop.js +4 -1
  616. package/dist/_esm5.processed/utils/object_assign.js +8 -10
  617. package/dist/_esm5.processed/utils/object_values.js +6 -3
  618. package/dist/_esm5.processed/utils/ranges.d.ts +50 -8
  619. package/dist/_esm5.processed/utils/ranges.js +163 -64
  620. package/dist/_esm5.processed/utils/reference.d.ts +78 -37
  621. package/dist/_esm5.processed/utils/reference.js +235 -155
  622. package/dist/_esm5.processed/utils/request/fetch.d.ts +4 -4
  623. package/dist/_esm5.processed/utils/request/fetch.js +79 -107
  624. package/dist/_esm5.processed/utils/request/index.js +9 -4
  625. package/dist/_esm5.processed/utils/request/xhr.js +49 -36
  626. package/dist/_esm5.processed/utils/resolve_url.js +18 -18
  627. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +34 -81
  628. package/dist/_esm5.processed/utils/sleep.js +5 -2
  629. package/dist/_esm5.processed/utils/slice_uint8array.js +3 -1
  630. package/dist/_esm5.processed/utils/sorted_list.js +37 -40
  631. package/dist/_esm5.processed/utils/starts_with.js +5 -2
  632. package/dist/_esm5.processed/utils/string_parsing.js +84 -72
  633. package/dist/_esm5.processed/utils/take_first_set.js +9 -10
  634. package/dist/_esm5.processed/utils/task_canceller.js +51 -71
  635. package/dist/_esm5.processed/utils/warn_once.js +7 -4
  636. package/dist/_esm5.processed/utils/weak_map_memory.js +12 -11
  637. package/dist/_esm5.processed/utils/wrapInPromise.d.ts +7 -0
  638. package/dist/_esm5.processed/utils/wrapInPromise.js +25 -0
  639. package/dist/mpd-parser.wasm +0 -0
  640. package/dist/rx-player.js +42885 -44008
  641. package/dist/rx-player.min.js +1 -1
  642. package/jest.config.js +1 -22
  643. package/package.json +56 -57
  644. package/scripts/build/constants.d.ts +1 -23
  645. package/scripts/build/generate_build.js +1 -1
  646. package/scripts/check_nodejs_import_compatibility.js +1 -1
  647. package/scripts/list-npm-scripts.js +146 -38
  648. package/scripts/update-version +1 -4
  649. package/sonar-project.properties +1 -1
  650. package/src/compat/__tests__/browser_compatibility_types.test.ts +51 -72
  651. package/src/compat/__tests__/is_vtt_cue.test.ts +20 -16
  652. package/src/compat/__tests__/make_vtt_cue.test.ts +11 -9
  653. package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +26 -25
  654. package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +11 -9
  655. package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +36 -0
  656. package/src/compat/browser_compatibility_types.ts +9 -16
  657. package/src/compat/browser_detection.ts +11 -8
  658. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +11 -8
  659. package/src/compat/eme/custom_media_keys/index.ts +8 -184
  660. package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +26 -22
  661. package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +13 -15
  662. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +11 -8
  663. package/src/compat/eme/custom_media_keys/types.ts +1 -1
  664. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +15 -11
  665. package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +14 -16
  666. package/src/compat/eme/eme-api-implementation.ts +319 -0
  667. package/src/compat/eme/index.ts +8 -6
  668. package/src/compat/event_listeners.ts +32 -39
  669. package/src/compat/global_scope.ts +18 -0
  670. package/src/compat/index.ts +2 -24
  671. package/src/compat/is_debug_mode_enabled.ts +12 -0
  672. package/src/compat/is_node.ts +4 -1
  673. package/src/compat/is_vtt_cue.ts +2 -1
  674. package/src/compat/is_worker.ts +9 -0
  675. package/src/compat/make_vtt_cue.ts +3 -2
  676. package/src/compat/on_height_width_change.ts +4 -9
  677. package/src/compat/patch_webkit_source_buffer.ts +4 -3
  678. package/src/compat/should_wait_for_have_enough_data.ts +17 -0
  679. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +245 -102
  680. package/src/core/adaptive/adaptive_representation_selector.ts +52 -35
  681. package/src/core/adaptive/buffer_based_chooser.ts +41 -13
  682. package/src/core/adaptive/guess_based_chooser.ts +4 -3
  683. package/src/core/adaptive/network_analyzer.ts +8 -6
  684. package/src/core/adaptive/utils/pending_requests_store.ts +15 -5
  685. package/src/core/api/debug/buffer_size_graph.ts +3 -1
  686. package/src/core/api/option_utils.ts +2 -2
  687. package/src/core/api/playback_observer.ts +16 -9
  688. package/src/core/api/public_api.ts +47 -31
  689. package/src/core/api/track_management/track_dispatcher.ts +9 -6
  690. package/src/core/api/track_management/tracks_store.ts +112 -90
  691. package/src/core/api/utils.ts +3 -3
  692. package/src/core/decrypt/__tests__/__global__/get_license.test.ts +3 -3
  693. package/src/core/decrypt/__tests__/__global__/init_data.test.ts +24 -14
  694. package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +74 -48
  695. package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +21 -15
  696. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +16 -13
  697. package/src/core/decrypt/__tests__/__global__/utils.ts +39 -24
  698. package/src/core/decrypt/attach_media_keys.ts +33 -8
  699. package/src/core/decrypt/clear_on_stop.ts +1 -1
  700. package/src/core/decrypt/content_decryptor.ts +213 -262
  701. package/src/core/decrypt/create_or_load_session.ts +1 -1
  702. package/src/core/decrypt/create_session.ts +1 -1
  703. package/src/core/decrypt/dispose_decryption_resources.ts +19 -4
  704. package/src/core/decrypt/find_key_system.ts +24 -19
  705. package/src/core/decrypt/get_media_keys.ts +2 -2
  706. package/src/core/decrypt/index.ts +1 -6
  707. package/src/core/decrypt/session_events_listener.ts +3 -4
  708. package/src/core/decrypt/set_server_certificate.ts +1 -1
  709. package/src/core/decrypt/types.ts +69 -0
  710. package/src/core/decrypt/utils/check_key_statuses.ts +1 -1
  711. package/src/core/decrypt/utils/is_session_usable.ts +1 -1
  712. package/src/core/decrypt/utils/key_id_comparison.ts +2 -27
  713. package/src/core/decrypt/utils/key_session_record.ts +3 -5
  714. package/src/core/decrypt/utils/loaded_sessions_store.ts +2 -2
  715. package/src/core/decrypt/utils/media_keys_infos_store.ts +4 -1
  716. package/src/core/decrypt/utils/persistent_sessions_store.ts +2 -5
  717. package/src/core/decrypt/utils/server_certificate_store.ts +1 -1
  718. package/src/core/fetchers/cdn_prioritizer.ts +1 -1
  719. package/src/core/fetchers/manifest/manifest_fetcher.ts +22 -18
  720. package/src/core/fetchers/segment/segment_fetcher.ts +3 -2
  721. package/src/core/fetchers/utils/schedule_request.ts +6 -5
  722. package/src/core/init/directfile_content_initializer.ts +85 -21
  723. package/src/core/init/index.ts +6 -7
  724. package/src/core/init/media_source_content_initializer.ts +56 -26
  725. package/src/core/init/types.ts +2 -16
  726. package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +22 -8
  727. package/src/core/init/utils/create_media_source.ts +4 -1
  728. package/src/core/init/utils/create_stream_playback_observer.ts +24 -14
  729. package/src/core/init/utils/end_of_stream.ts +1 -0
  730. package/src/core/init/utils/get_initial_time.ts +3 -1
  731. package/src/core/init/utils/get_loaded_reference.ts +6 -3
  732. package/src/core/init/utils/initial_seek_and_play.ts +7 -7
  733. package/src/core/init/utils/initialize_content_decryption.ts +32 -39
  734. package/src/core/init/utils/media_source_duration_updater.ts +13 -9
  735. package/src/core/init/utils/rebuffering_controller.ts +13 -10
  736. package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +7 -4
  737. package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +113 -73
  738. package/src/core/segment_buffers/garbage_collector.ts +3 -3
  739. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +10 -2
  740. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +17 -17
  741. package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +1 -1
  742. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +2 -2
  743. package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +2 -2
  744. package/src/core/segment_buffers/inventory/buffered_history.ts +4 -3
  745. package/src/core/segment_buffers/inventory/segment_inventory.ts +1 -0
  746. package/src/core/stream/adaptation/adaptation_stream.ts +43 -28
  747. package/src/core/stream/adaptation/types.ts +15 -9
  748. package/src/core/stream/index.ts +2 -0
  749. package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +1 -6
  750. package/src/core/stream/orchestrator/index.ts +2 -0
  751. package/src/core/stream/orchestrator/stream_orchestrator.ts +38 -42
  752. package/src/core/stream/period/period_stream.ts +62 -23
  753. package/src/core/stream/period/types.ts +5 -3
  754. package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +10 -0
  755. package/src/core/stream/representation/representation_stream.ts +6 -3
  756. package/src/core/stream/representation/types.ts +5 -5
  757. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +2 -2
  758. package/src/core/stream/representation/utils/downloading_queue.ts +4 -5
  759. package/src/core/stream/representation/utils/force_garbage_collection.ts +3 -3
  760. package/src/core/stream/representation/utils/get_buffer_status.ts +2 -1
  761. package/src/core/stream/representation/utils/push_init_segment.ts +2 -3
  762. package/src/core/stream/representation/utils/push_media_segment.ts +2 -2
  763. package/src/errors/__tests__/encrypted_media_error.test.ts +2 -2
  764. package/src/errors/__tests__/error_message.test.ts +1 -1
  765. package/src/errors/__tests__/format_error.test.ts +2 -2
  766. package/src/errors/__tests__/media_error.test.ts +3 -3
  767. package/src/errors/__tests__/network_error.test.ts +10 -9
  768. package/src/errors/__tests__/other_error.test.ts +3 -3
  769. package/src/errors/__tests__/request_error.test.ts +4 -4
  770. package/src/errors/custom_loader_error.ts +0 -1
  771. package/src/errors/encrypted_media_error.ts +4 -2
  772. package/src/errors/error_message.ts +2 -7
  773. package/src/errors/media_error.ts +26 -20
  774. package/src/errors/network_error.ts +1 -1
  775. package/src/errors/other_error.ts +1 -1
  776. package/src/errors/request_error.ts +16 -1
  777. package/src/experimental/features/__tests__/dash_wasm.test.ts +4 -12
  778. package/src/experimental/features/__tests__/debug_element.test.ts +7 -21
  779. package/src/experimental/features/__tests__/local.test.ts +14 -23
  780. package/src/experimental/features/__tests__/metaplaylist.test.ts +14 -21
  781. package/src/experimental/features/dash_wasm.ts +3 -0
  782. package/src/experimental/features/index.ts +0 -1
  783. package/src/experimental/features/local.ts +3 -0
  784. package/src/experimental/features/metaplaylist.ts +3 -0
  785. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +10 -9
  786. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +26 -18
  787. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +24 -23
  788. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +2 -4
  789. package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +7 -4
  790. package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +5 -4
  791. package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +4 -3
  792. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +4 -3
  793. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +3 -2
  794. package/src/features/features_object.ts +2 -1
  795. package/src/features/list/__tests__/dash.test.ts +15 -15
  796. package/src/features/list/__tests__/directfile.test.ts +4 -13
  797. package/src/features/list/__tests__/eme.test.ts +4 -12
  798. package/src/features/list/__tests__/html_sami_parser.test.ts +9 -14
  799. package/src/features/list/__tests__/html_srt_parser.test.ts +5 -10
  800. package/src/features/list/__tests__/html_text_buffer.test.ts +10 -19
  801. package/src/features/list/__tests__/html_ttml_parser.test.ts +5 -10
  802. package/src/features/list/__tests__/html_vtt_parser.test.ts +5 -10
  803. package/src/features/list/__tests__/native_sami_parser.test.ts +9 -14
  804. package/src/features/list/__tests__/native_srt_parser.test.ts +5 -10
  805. package/src/features/list/__tests__/native_text_buffer.test.ts +5 -13
  806. package/src/features/list/__tests__/native_ttml_parser.test.ts +5 -10
  807. package/src/features/list/__tests__/native_vtt_parser.test.ts +5 -10
  808. package/src/features/list/__tests__/smooth.test.ts +10 -10
  809. package/src/features/list/dash.ts +3 -0
  810. package/src/features/list/eme.ts +1 -1
  811. package/src/features/list/html_sami_parser.ts +2 -0
  812. package/src/features/list/html_srt_parser.ts +2 -0
  813. package/src/features/list/html_text_buffer.ts +2 -2
  814. package/src/features/list/html_ttml_parser.ts +2 -0
  815. package/src/features/list/html_vtt_parser.ts +2 -0
  816. package/src/features/list/native_sami_parser.ts +3 -0
  817. package/src/features/list/native_srt_parser.ts +3 -0
  818. package/src/features/list/native_text_buffer.ts +3 -2
  819. package/src/features/list/native_ttml_parser.ts +3 -0
  820. package/src/features/list/native_vtt_parser.ts +3 -0
  821. package/src/features/list/smooth.ts +3 -0
  822. package/src/features/types.ts +89 -18
  823. package/src/index.ts +31 -5
  824. package/src/manifest/__tests__/manifest.test.ts +134 -75
  825. package/src/manifest/__tests__/period.test.ts +82 -55
  826. package/src/manifest/__tests__/update_periods.test.ts +4 -4
  827. package/src/manifest/manifest.ts +30 -20
  828. package/src/manifest/period.ts +3 -14
  829. package/src/manifest/representation.ts +21 -3
  830. package/src/minimal.ts +4 -18
  831. package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +2 -1
  832. package/src/parsers/manifest/dash/common/get_clock_offset.ts +5 -4
  833. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +7 -4
  834. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +11 -5
  835. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +1 -0
  836. package/src/parsers/manifest/dash/common/parse_mpd.ts +9 -5
  837. package/src/parsers/manifest/dash/common/parse_periods.ts +12 -6
  838. package/src/parsers/manifest/dash/common/parse_representation_index.ts +2 -2
  839. package/src/parsers/manifest/dash/common/parse_representations.ts +10 -0
  840. package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +7 -0
  841. package/src/parsers/manifest/dash/node_parser_types.ts +1 -0
  842. package/src/parsers/manifest/dash/parsers_types.ts +4 -4
  843. package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +2 -2
  844. package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +1 -1
  845. package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +3 -3
  846. package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +37 -67
  847. package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +7 -7
  848. package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +94 -105
  849. package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +119 -109
  850. package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +24 -26
  851. package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +2 -2
  852. package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +42 -18
  853. package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +29 -29
  854. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +2 -1
  855. package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +1 -1
  856. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +12 -0
  857. package/src/parsers/manifest/local/parse_local_manifest.ts +3 -1
  858. package/src/parsers/manifest/local/types.ts +2 -0
  859. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +3 -1
  860. package/src/parsers/manifest/smooth/create_parser.ts +4 -3
  861. package/src/parsers/manifest/smooth/representation_index.ts +6 -5
  862. package/src/parsers/manifest/smooth/shared_smooth_segment_timeline.ts +6 -5
  863. package/src/parsers/manifest/types.ts +6 -4
  864. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +1 -2
  865. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +2 -1
  866. package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +9 -7
  867. package/src/public_types.ts +11 -9
  868. package/src/transports/dash/manifest_parser.ts +8 -5
  869. package/src/transports/local/pipelines.ts +4 -3
  870. package/src/transports/metaplaylist/pipelines.ts +5 -3
  871. package/src/transports/smooth/pipelines.ts +4 -2
  872. package/src/transports/smooth/segment_loader.ts +1 -1
  873. package/src/transports/types.ts +17 -7
  874. package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +8 -8
  875. package/src/transports/utils/call_custom_manifest_loader.ts +2 -1
  876. package/src/transports/utils/get_isobmff_timing_infos.ts +0 -3
  877. package/src/typings/globals.d.ts +0 -44
  878. package/src/utils/__tests__/base64.test.ts +4 -2
  879. package/src/utils/__tests__/id_generator.test.ts +7 -4
  880. package/src/utils/__tests__/ranges.test.ts +354 -47
  881. package/src/utils/are_arrays_of_numbers_equal.ts +5 -1
  882. package/src/utils/assert.ts +4 -1
  883. package/src/utils/deep_merge.ts +2 -2
  884. package/src/utils/monotonic_timestamp.ts +12 -0
  885. package/src/utils/ranges.ts +110 -14
  886. package/src/utils/reference.ts +235 -237
  887. package/src/utils/request/fetch.ts +11 -9
  888. package/src/utils/request/xhr.ts +6 -5
  889. package/src/utils/string_parsing.ts +5 -4
  890. package/src/utils/wrapInPromise.ts +24 -0
  891. package/tsconfig.json +1 -1
  892. package/tsconfig.modules.json +3 -3
  893. package/appveyor.yml +0 -24
  894. package/dist/_esm5.processed/compat/has_eme_apis.d.ts +0 -21
  895. package/dist/_esm5.processed/compat/has_eme_apis.js +0 -24
  896. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +0 -47
  897. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +0 -70
  898. package/dist/_esm5.processed/core/stream/utils/create_reload_request.d.ts +0 -32
  899. package/dist/_esm5.processed/core/stream/utils/create_reload_request.js +0 -54
  900. package/dist/_esm5.processed/features/initialize_features.d.ts +0 -19
  901. package/dist/_esm5.processed/features/initialize_features.js +0 -100
  902. package/dist/rx-player.d.ts +0 -3
  903. package/dist/rx-player.min.d.ts +0 -3
  904. package/src/compat/__tests__/has_eme_apis.test.ts +0 -56
  905. package/src/compat/has_eme_apis.ts +0 -26
  906. package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
  907. package/src/core/stream/utils/create_reload_request.ts +0 -69
  908. package/src/features/__tests__/initialize_features.test.ts +0 -477
  909. package/src/features/initialize_features.ts +0 -120
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,11 +14,12 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import config from "../../../config";
17
- import log from "../../../log";
18
- import { areSameContent, } from "../../../manifest";
19
- import takeFirstSet from "../../../utils/take_first_set";
20
- import BufferedHistory from "./buffered_history";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const config_1 = require("../../../config");
19
+ const log_1 = require("../../../log");
20
+ const manifest_1 = require("../../../manifest");
21
+ const take_first_set_1 = require("../../../utils/take_first_set");
22
+ const buffered_history_1 = require("./buffered_history");
21
23
  /**
22
24
  * Keep track of every chunk downloaded and currently in the linked media
23
25
  * buffer.
@@ -27,18 +29,18 @@ import BufferedHistory from "./buffered_history";
27
29
  * since by the browser (and thus may need to be re-loaded).
28
30
  * @class SegmentInventory
29
31
  */
30
- var SegmentInventory = /** @class */ (function () {
31
- function SegmentInventory() {
32
- var _a = config.getCurrent(), BUFFERED_HISTORY_RETENTION_TIME = _a.BUFFERED_HISTORY_RETENTION_TIME, BUFFERED_HISTORY_MAXIMUM_ENTRIES = _a.BUFFERED_HISTORY_MAXIMUM_ENTRIES;
32
+ class SegmentInventory {
33
+ constructor() {
34
+ const { BUFFERED_HISTORY_RETENTION_TIME, BUFFERED_HISTORY_MAXIMUM_ENTRIES } = config_1.default.getCurrent();
33
35
  this._inventory = [];
34
- this._bufferedHistory = new BufferedHistory(BUFFERED_HISTORY_RETENTION_TIME, BUFFERED_HISTORY_MAXIMUM_ENTRIES);
36
+ this._bufferedHistory = new buffered_history_1.default(BUFFERED_HISTORY_RETENTION_TIME, BUFFERED_HISTORY_MAXIMUM_ENTRIES);
35
37
  }
36
38
  /**
37
39
  * Reset the whole inventory.
38
40
  */
39
- SegmentInventory.prototype.reset = function () {
41
+ reset() {
40
42
  this._inventory.length = 0;
41
- };
43
+ }
42
44
  /**
43
45
  * Infer each segment's `bufferedStart` and `bufferedEnd` properties from the
44
46
  * TimeRanges given.
@@ -51,52 +53,51 @@ var SegmentInventory = /** @class */ (function () {
51
53
  * coming from the same buffer.
52
54
  * @param {TimeRanges} buffered
53
55
  */
54
- SegmentInventory.prototype.synchronizeBuffered = function (buffered) {
55
- var inventory = this._inventory;
56
- var inventoryIndex = 0; // Current index considered.
57
- var thisSegment = inventory[0]; // Current segmentInfos considered
58
- var MINIMUM_SEGMENT_SIZE = config.getCurrent().MINIMUM_SEGMENT_SIZE;
56
+ synchronizeBuffered(buffered) {
57
+ const inventory = this._inventory;
58
+ let inventoryIndex = 0; // Current index considered.
59
+ let thisSegment = inventory[0]; // Current segmentInfos considered
60
+ const { MINIMUM_SEGMENT_SIZE } = config_1.default.getCurrent();
59
61
  /** Type of buffer considered, used for logs */
60
- var bufferType = thisSegment === null || thisSegment === void 0 ? void 0 : thisSegment.infos.adaptation.type;
61
- var rangesLength = buffered.length;
62
- for (var i = 0; i < rangesLength; i++) {
62
+ const bufferType = thisSegment === null || thisSegment === void 0 ? void 0 : thisSegment.infos.adaptation.type;
63
+ const rangesLength = buffered.length;
64
+ for (let i = 0; i < rangesLength; i++) {
63
65
  if (thisSegment === undefined) { // we arrived at the end of our inventory
64
66
  return;
65
67
  }
66
68
  // take the i'nth contiguous buffered TimeRange
67
- var rangeStart = buffered.start(i);
68
- var rangeEnd = buffered.end(i);
69
+ const rangeStart = buffered.start(i);
70
+ const rangeEnd = buffered.end(i);
69
71
  if (rangeEnd - rangeStart < MINIMUM_SEGMENT_SIZE) {
70
- log.warn("SI: skipped TimeRange when synchronizing because it was too small", bufferType, rangeStart, rangeEnd);
72
+ log_1.default.warn("SI: skipped TimeRange when synchronizing because it was too small", bufferType, rangeStart, rangeEnd);
71
73
  continue;
72
74
  }
73
- var indexBefore = inventoryIndex; // keep track of that number
75
+ const indexBefore = inventoryIndex; // keep track of that number
74
76
  // Find the first segment either within this TimeRange or completely past
75
77
  // it:
76
78
  // skip until first segment with at least `MINIMUM_SEGMENT_SIZE` past the
77
79
  // start of that range.
78
80
  while (thisSegment !== undefined &&
79
- (takeFirstSet(thisSegment.bufferedEnd, thisSegment.end)
81
+ ((0, take_first_set_1.default)(thisSegment.bufferedEnd, thisSegment.end)
80
82
  - rangeStart) < MINIMUM_SEGMENT_SIZE) {
81
83
  thisSegment = inventory[++inventoryIndex];
82
84
  }
83
85
  // Contains infos about the last garbage-collected segment before
84
86
  // `thisSegment`.
85
- var lastDeletedSegmentInfos = null;
87
+ let lastDeletedSegmentInfos = null;
86
88
  // remove garbage-collected segments
87
89
  // (Those not in that TimeRange nor in the previous one)
88
- var numberOfSegmentToDelete = inventoryIndex - indexBefore;
90
+ const numberOfSegmentToDelete = inventoryIndex - indexBefore;
89
91
  if (numberOfSegmentToDelete > 0) {
90
- var lastDeletedSegment = // last garbage-collected segment
92
+ const lastDeletedSegment = // last garbage-collected segment
91
93
  inventory[indexBefore + numberOfSegmentToDelete - 1];
92
94
  lastDeletedSegmentInfos = {
93
- end: takeFirstSet(lastDeletedSegment.bufferedEnd, lastDeletedSegment.end),
95
+ end: (0, take_first_set_1.default)(lastDeletedSegment.bufferedEnd, lastDeletedSegment.end),
94
96
  precizeEnd: lastDeletedSegment.precizeEnd,
95
97
  };
96
- log.debug("SI: ".concat(numberOfSegmentToDelete, " segments GCed."), bufferType);
97
- var removed = inventory.splice(indexBefore, numberOfSegmentToDelete);
98
- for (var _i = 0, removed_1 = removed; _i < removed_1.length; _i++) {
99
- var seg = removed_1[_i];
98
+ log_1.default.debug(`SI: ${numberOfSegmentToDelete} segments GCed.`, bufferType);
99
+ const removed = inventory.splice(indexBefore, numberOfSegmentToDelete);
100
+ for (const seg of removed) {
100
101
  if (seg.bufferedStart === undefined && seg.bufferedEnd === undefined) {
101
102
  this._bufferedHistory.addBufferedSegment(seg.infos, null);
102
103
  }
@@ -109,7 +110,7 @@ var SegmentInventory = /** @class */ (function () {
109
110
  // If the current segment is actually completely outside that range (it
110
111
  // is contained in one of the next one), skip that part.
111
112
  if (rangeEnd -
112
- takeFirstSet(thisSegment.bufferedStart, thisSegment.start)
113
+ (0, take_first_set_1.default)(thisSegment.bufferedStart, thisSegment.start)
113
114
  >= MINIMUM_SEGMENT_SIZE) {
114
115
  guessBufferedStartFromRangeStart(thisSegment, rangeStart, lastDeletedSegmentInfos, bufferType);
115
116
  if (inventoryIndex === inventory.length - 1) {
@@ -120,32 +121,32 @@ var SegmentInventory = /** @class */ (function () {
120
121
  }
121
122
  thisSegment = inventory[++inventoryIndex];
122
123
  // Make contiguous until first segment outside that range
123
- var thisSegmentStart = takeFirstSet(thisSegment.bufferedStart, thisSegment.start);
124
- var thisSegmentEnd = takeFirstSet(thisSegment.bufferedEnd, thisSegment.end);
125
- var nextRangeStart = i < rangesLength - 1 ? buffered.start(i + 1) :
124
+ let thisSegmentStart = (0, take_first_set_1.default)(thisSegment.bufferedStart, thisSegment.start);
125
+ let thisSegmentEnd = (0, take_first_set_1.default)(thisSegment.bufferedEnd, thisSegment.end);
126
+ const nextRangeStart = i < rangesLength - 1 ? buffered.start(i + 1) :
126
127
  undefined;
127
128
  while (thisSegment !== undefined &&
128
129
  (rangeEnd - thisSegmentStart) >= MINIMUM_SEGMENT_SIZE &&
129
130
  (nextRangeStart === undefined ||
130
131
  rangeEnd - thisSegmentStart >= thisSegmentEnd - nextRangeStart)) {
131
- var prevSegment = inventory[inventoryIndex - 1];
132
+ const prevSegment = inventory[inventoryIndex - 1];
132
133
  // those segments are contiguous, we have no way to infer their real
133
134
  // end
134
135
  if (prevSegment.bufferedEnd === undefined) {
135
136
  prevSegment.bufferedEnd = thisSegment.precizeStart ? thisSegment.start :
136
137
  prevSegment.end;
137
- log.debug("SI: calculating buffered end of contiguous segment", bufferType, prevSegment.bufferedEnd, prevSegment.end);
138
+ log_1.default.debug("SI: calculating buffered end of contiguous segment", bufferType, prevSegment.bufferedEnd, prevSegment.end);
138
139
  }
139
140
  thisSegment.bufferedStart = prevSegment.bufferedEnd;
140
141
  thisSegment = inventory[++inventoryIndex];
141
142
  if (thisSegment !== undefined) {
142
- thisSegmentStart = takeFirstSet(thisSegment.bufferedStart, thisSegment.start);
143
- thisSegmentEnd = takeFirstSet(thisSegment.bufferedEnd, thisSegment.end);
143
+ thisSegmentStart = (0, take_first_set_1.default)(thisSegment.bufferedStart, thisSegment.start);
144
+ thisSegmentEnd = (0, take_first_set_1.default)(thisSegment.bufferedEnd, thisSegment.end);
144
145
  }
145
146
  }
146
147
  }
147
148
  // update the bufferedEnd of the last segment in that range
148
- var lastSegmentInRange = inventory[inventoryIndex - 1];
149
+ const lastSegmentInRange = inventory[inventoryIndex - 1];
149
150
  if (lastSegmentInRange !== undefined) {
150
151
  guessBufferedEndFromRangeEnd(lastSegmentInRange, rangeEnd, bufferType);
151
152
  }
@@ -153,20 +154,19 @@ var SegmentInventory = /** @class */ (function () {
153
154
  // if we still have segments left, they are not affiliated to any range.
154
155
  // They might have been garbage collected, delete them from here.
155
156
  if (thisSegment != null) {
156
- log.debug("SI: last segments have been GCed", bufferType, inventoryIndex, inventory.length);
157
- var removed = inventory.splice(inventoryIndex, inventory.length - inventoryIndex);
158
- for (var _a = 0, removed_2 = removed; _a < removed_2.length; _a++) {
159
- var seg = removed_2[_a];
157
+ log_1.default.debug("SI: last segments have been GCed", bufferType, inventoryIndex, inventory.length);
158
+ const removed = inventory.splice(inventoryIndex, inventory.length - inventoryIndex);
159
+ for (const seg of removed) {
160
160
  if (seg.bufferedStart === undefined && seg.bufferedEnd === undefined) {
161
161
  this._bufferedHistory.addBufferedSegment(seg.infos, null);
162
162
  }
163
163
  }
164
164
  }
165
- if (bufferType !== undefined && log.hasLevel("DEBUG")) {
166
- log.debug("SI: current ".concat(bufferType, " inventory timeline:\n") +
165
+ if (bufferType !== undefined && log_1.default.hasLevel("DEBUG")) {
166
+ log_1.default.debug(`SI: current ${bufferType} inventory timeline:\n` +
167
167
  prettyPrintInventory(this._inventory));
168
168
  }
169
- };
169
+ }
170
170
  /**
171
171
  * Add a new chunk in the inventory.
172
172
  *
@@ -174,25 +174,29 @@ var SegmentInventory = /** @class */ (function () {
174
174
  * segment have been inserted, you should call the `completeSegment` method.
175
175
  * @param {Object} chunkInformation
176
176
  */
177
- SegmentInventory.prototype.insertChunk = function (_a) {
178
- var period = _a.period, adaptation = _a.adaptation, representation = _a.representation, segment = _a.segment, chunkSize = _a.chunkSize, start = _a.start, end = _a.end;
177
+ insertChunk({ period, adaptation, representation, segment, chunkSize, start, end }) {
179
178
  if (segment.isInit) {
180
179
  return;
181
180
  }
182
- var bufferType = adaptation.type;
181
+ const bufferType = adaptation.type;
183
182
  if (start >= end) {
184
- log.warn("SI: Invalid chunked inserted: starts before it ends", bufferType, start, end);
183
+ log_1.default.warn("SI: Invalid chunked inserted: starts before it ends", bufferType, start, end);
185
184
  return;
186
185
  }
187
- var inventory = this._inventory;
188
- var newSegment = { partiallyPushed: true, chunkSize: chunkSize, splitted: false, start: start, end: end, precizeStart: false,
186
+ const inventory = this._inventory;
187
+ const newSegment = { partiallyPushed: true,
188
+ chunkSize,
189
+ splitted: false,
190
+ start,
191
+ end,
192
+ precizeStart: false,
189
193
  precizeEnd: false,
190
194
  bufferedStart: undefined,
191
195
  bufferedEnd: undefined,
192
- infos: { segment: segment, period: period, adaptation: adaptation, representation: representation } };
196
+ infos: { segment, period, adaptation, representation } };
193
197
  // begin by the end as in most use cases this will be faster
194
- for (var i = inventory.length - 1; i >= 0; i--) {
195
- var segmentI = inventory[i];
198
+ for (let i = inventory.length - 1; i >= 0; i--) {
199
+ const segmentI = inventory[i];
196
200
  if ((segmentI.start) <= start) {
197
201
  if ((segmentI.end) <= start) {
198
202
  // our segment is after, push it after this one
@@ -206,7 +210,7 @@ var SegmentInventory = /** @class */ (function () {
206
210
  // prevSegment : |------|
207
211
  // newSegment : |======|
208
212
  // ===> : |------| |======|
209
- log.debug("SI: Pushing segment strictly after previous one.", bufferType, start, segmentI.end);
213
+ log_1.default.debug("SI: Pushing segment strictly after previous one.", bufferType, start, segmentI.end);
210
214
  this._inventory.splice(i + 1, 0, newSegment);
211
215
  i += 2; // Go to segment immediately after newSegment
212
216
  while (i < inventory.length && inventory[i].start < newSegment.end) {
@@ -219,7 +223,7 @@ var SegmentInventory = /** @class */ (function () {
219
223
  // newSegment : |======|
220
224
  // nextSegment : |----|
221
225
  // ===> : |------|======|-|
222
- log.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[i].start);
226
+ log_1.default.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[i].start);
223
227
  inventory[i].start = newSegment.end;
224
228
  inventory[i].bufferedStart = undefined;
225
229
  inventory[i].precizeStart = inventory[i].precizeStart &&
@@ -240,7 +244,7 @@ var SegmentInventory = /** @class */ (function () {
240
244
  // newSegment : |======|
241
245
  // nextSegment : |----|
242
246
  // ===> : |------|======|
243
- log.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[i].start, inventory[i].end);
247
+ log_1.default.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[i].start, inventory[i].end);
244
248
  inventory.splice(i, 1);
245
249
  }
246
250
  return;
@@ -259,7 +263,7 @@ var SegmentInventory = /** @class */ (function () {
259
263
  // prevSegment : |-------|
260
264
  // newSegment : |==========|
261
265
  // ===> : |==========|
262
- log.debug("SI: Segment pushed replace another one", bufferType, start, end, segmentI.end);
266
+ log_1.default.debug("SI: Segment pushed replace another one", bufferType, start, end, segmentI.end);
263
267
  this._inventory.splice(i, 1, newSegment);
264
268
  i += 1; // Go to segment immediately after newSegment
265
269
  while (i < inventory.length && inventory[i].start < newSegment.end) {
@@ -271,7 +275,7 @@ var SegmentInventory = /** @class */ (function () {
271
275
  // newSegment : |======|
272
276
  // nextSegment : |----|
273
277
  // ===> : |======|--|
274
- log.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[i].start);
278
+ log_1.default.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[i].start);
275
279
  inventory[i].start = newSegment.end;
276
280
  inventory[i].bufferedStart = undefined;
277
281
  inventory[i].precizeStart = inventory[i].precizeStart &&
@@ -290,7 +294,7 @@ var SegmentInventory = /** @class */ (function () {
290
294
  // newSegment : |======|
291
295
  // nextSegment : |----|
292
296
  // ===> : |======|
293
- log.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[i].start, inventory[i].end);
297
+ log_1.default.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[i].start, inventory[i].end);
294
298
  inventory.splice(i, 1);
295
299
  }
296
300
  return;
@@ -305,7 +309,7 @@ var SegmentInventory = /** @class */ (function () {
305
309
  // prevSegment : |------------|
306
310
  // newSegment : |==========|
307
311
  // ===> : |==========|-|
308
- log.debug("SI: Segment pushed ends before another with the same start", bufferType, start, end, segmentI.end);
312
+ log_1.default.debug("SI: Segment pushed ends before another with the same start", bufferType, start, end, segmentI.end);
309
313
  inventory.splice(i, 0, newSegment);
310
314
  segmentI.start = newSegment.end;
311
315
  segmentI.bufferedStart = undefined;
@@ -328,7 +332,7 @@ var SegmentInventory = /** @class */ (function () {
328
332
  // prevSegment : |-------|
329
333
  // newSegment : |====|
330
334
  // ===> : |--|====|
331
- log.debug("SI: Segment pushed updates end of previous one", bufferType, start, end, segmentI.start, segmentI.end);
335
+ log_1.default.debug("SI: Segment pushed updates end of previous one", bufferType, start, end, segmentI.start, segmentI.end);
332
336
  this._inventory.splice(i + 1, 0, newSegment);
333
337
  segmentI.end = newSegment.start;
334
338
  segmentI.bufferedEnd = undefined;
@@ -344,7 +348,7 @@ var SegmentInventory = /** @class */ (function () {
344
348
  // newSegment : |======|
345
349
  // nextSegment : |----|
346
350
  // ===> : |======|--|
347
- log.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[i].start);
351
+ log_1.default.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[i].start);
348
352
  inventory[i].start = newSegment.end;
349
353
  inventory[i].bufferedStart = undefined;
350
354
  inventory[i].precizeStart = inventory[i].precizeStart &&
@@ -363,7 +367,7 @@ var SegmentInventory = /** @class */ (function () {
363
367
  // newSegment : |======|
364
368
  // nextSegment : |----|
365
369
  // ===> : |======|
366
- log.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[i].start, inventory[i].end);
370
+ log_1.default.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[i].start, inventory[i].end);
367
371
  inventory.splice(i, 1);
368
372
  }
369
373
  return;
@@ -377,8 +381,8 @@ var SegmentInventory = /** @class */ (function () {
377
381
  // prevSegment : |---------|
378
382
  // newSegment : |====|
379
383
  // ===> : |--|====|-|
380
- log.warn("SI: Segment pushed is contained in a previous one", bufferType, start, end, segmentI.start, segmentI.end);
381
- var nextSegment = { partiallyPushed: segmentI.partiallyPushed,
384
+ log_1.default.warn("SI: Segment pushed is contained in a previous one", bufferType, start, end, segmentI.start, segmentI.end);
385
+ const nextSegment = { partiallyPushed: segmentI.partiallyPushed,
382
386
  /**
383
387
  * Note: this sadly means we're doing as if
384
388
  * that chunk is present two times.
@@ -411,9 +415,9 @@ var SegmentInventory = /** @class */ (function () {
411
415
  }
412
416
  // if we got here, we are at the first segment
413
417
  // check bounds of the previous first segment
414
- var firstSegment = this._inventory[0];
418
+ const firstSegment = this._inventory[0];
415
419
  if (firstSegment === undefined) { // we do not have any segment yet
416
- log.debug("SI: first segment pushed", bufferType, start, end);
420
+ log_1.default.debug("SI: first segment pushed", bufferType, start, end);
417
421
  this._inventory.push(newSegment);
418
422
  return;
419
423
  }
@@ -429,7 +433,7 @@ var SegmentInventory = /** @class */ (function () {
429
433
  // firstSegment : |----|
430
434
  // newSegment : |====|
431
435
  // ===> : |====| |----|
432
- log.debug("SI: Segment pushed comes before all previous ones", bufferType, start, end, firstSegment.start);
436
+ log_1.default.debug("SI: Segment pushed comes before all previous ones", bufferType, start, end, firstSegment.start);
433
437
  this._inventory.splice(0, 0, newSegment);
434
438
  }
435
439
  else if (firstSegment.end <= end) {
@@ -444,7 +448,7 @@ var SegmentInventory = /** @class */ (function () {
444
448
  // firstSegment : |-----|
445
449
  // newSegment : |=======|
446
450
  // ===> : |=======|
447
- log.debug("SI: Segment pushed starts before and completely " +
451
+ log_1.default.debug("SI: Segment pushed starts before and completely " +
448
452
  "recovers the previous first one", bufferType, start, end, firstSegment.start, firstSegment.end);
449
453
  this._inventory.splice(0, 1, newSegment);
450
454
  while (inventory.length > 1 && inventory[1].start < newSegment.end) {
@@ -456,7 +460,7 @@ var SegmentInventory = /** @class */ (function () {
456
460
  // newSegment : |======|
457
461
  // nextSegment : |----|
458
462
  // ===> : |======|--|
459
- log.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[1].start);
463
+ log_1.default.debug("SI: Segment pushed updates the start of the next one", bufferType, newSegment.end, inventory[1].start);
460
464
  inventory[1].start = newSegment.end;
461
465
  inventory[1].bufferedStart = undefined;
462
466
  inventory[1].precizeStart = newSegment.precizeEnd;
@@ -474,7 +478,7 @@ var SegmentInventory = /** @class */ (function () {
474
478
  // newSegment : |======|
475
479
  // nextSegment : |----|
476
480
  // ===> : |======|
477
- log.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[1].start, inventory[1].end);
481
+ log_1.default.debug("SI: Segment pushed removes the next one", bufferType, start, end, inventory[1].start, inventory[1].end);
478
482
  inventory.splice(1, 1);
479
483
  }
480
484
  return;
@@ -487,54 +491,54 @@ var SegmentInventory = /** @class */ (function () {
487
491
  // firstSegment : |------|
488
492
  // newSegment : |======|
489
493
  // ===> : |======|--|
490
- log.debug("SI: Segment pushed start of the next one", bufferType, start, end, firstSegment.start, firstSegment.end);
494
+ log_1.default.debug("SI: Segment pushed start of the next one", bufferType, start, end, firstSegment.start, firstSegment.end);
491
495
  firstSegment.start = end;
492
496
  firstSegment.bufferedStart = undefined;
493
497
  firstSegment.precizeStart = newSegment.precizeEnd;
494
498
  this._inventory.splice(0, 0, newSegment);
495
499
  return;
496
500
  }
497
- };
501
+ }
498
502
  /**
499
503
  * Indicate that inserted chunks can now be considered as a complete segment.
500
504
  * Take in argument the same content than what was given to `insertChunk` for
501
505
  * the corresponding chunks.
502
506
  * @param {Object} content
503
507
  */
504
- SegmentInventory.prototype.completeSegment = function (content, newBuffered) {
508
+ completeSegment(content, newBuffered) {
505
509
  if (content.segment.isInit) {
506
510
  return;
507
511
  }
508
- var inventory = this._inventory;
509
- var resSegments = [];
510
- for (var i = 0; i < inventory.length; i++) {
511
- if (areSameContent(inventory[i].infos, content)) {
512
- var splitted = false;
512
+ const inventory = this._inventory;
513
+ const resSegments = [];
514
+ for (let i = 0; i < inventory.length; i++) {
515
+ if ((0, manifest_1.areSameContent)(inventory[i].infos, content)) {
516
+ let splitted = false;
513
517
  if (resSegments.length > 0) {
514
518
  splitted = true;
515
519
  if (resSegments.length === 1) {
516
- log.warn("SI: Completed Segment is splitted.", content.segment.id, content.segment.time, content.segment.end);
520
+ log_1.default.warn("SI: Completed Segment is splitted.", content.segment.id, content.segment.time, content.segment.end);
517
521
  resSegments[0].splitted = true;
518
522
  }
519
523
  }
520
- var firstI = i;
521
- var segmentSize = inventory[i].chunkSize;
524
+ const firstI = i;
525
+ let segmentSize = inventory[i].chunkSize;
522
526
  i += 1;
523
527
  while (i < inventory.length &&
524
- areSameContent(inventory[i].infos, content)) {
525
- var chunkSize = inventory[i].chunkSize;
528
+ (0, manifest_1.areSameContent)(inventory[i].infos, content)) {
529
+ const chunkSize = inventory[i].chunkSize;
526
530
  if (segmentSize !== undefined && chunkSize !== undefined) {
527
531
  segmentSize += chunkSize;
528
532
  }
529
533
  i++;
530
534
  }
531
- var lastI = i - 1;
532
- var length_1 = lastI - firstI;
533
- var lastEnd = inventory[lastI].end;
534
- var lastBufferedEnd = inventory[lastI].bufferedEnd;
535
- if (length_1 > 0) {
536
- this._inventory.splice(firstI + 1, length_1);
537
- i -= length_1;
535
+ const lastI = i - 1;
536
+ const length = lastI - firstI;
537
+ const lastEnd = inventory[lastI].end;
538
+ const lastBufferedEnd = inventory[lastI].bufferedEnd;
539
+ if (length > 0) {
540
+ this._inventory.splice(firstI + 1, length);
541
+ i -= length;
538
542
  }
539
543
  this._inventory[firstI].partiallyPushed = false;
540
544
  this._inventory[firstI].chunkSize = segmentSize;
@@ -545,22 +549,21 @@ var SegmentInventory = /** @class */ (function () {
545
549
  }
546
550
  }
547
551
  if (resSegments.length === 0) {
548
- log.warn("SI: Completed Segment not found", content.segment.id, content.segment.time);
552
+ log_1.default.warn("SI: Completed Segment not found", content.segment.id, content.segment.time);
549
553
  }
550
554
  else {
551
555
  this.synchronizeBuffered(newBuffered);
552
- for (var _i = 0, resSegments_1 = resSegments; _i < resSegments_1.length; _i++) {
553
- var seg = resSegments_1[_i];
556
+ for (const seg of resSegments) {
554
557
  if (seg.bufferedStart !== undefined && seg.bufferedEnd !== undefined) {
555
558
  this._bufferedHistory.addBufferedSegment(seg.infos, { start: seg.bufferedStart,
556
559
  end: seg.bufferedEnd });
557
560
  }
558
561
  else {
559
- log.debug("SI: buffered range not known after sync. Skipping history.", seg.start, seg.end);
562
+ log_1.default.debug("SI: buffered range not known after sync. Skipping history.", seg.start, seg.end);
560
563
  }
561
564
  }
562
565
  }
563
- };
566
+ }
564
567
  /**
565
568
  * Returns the whole inventory.
566
569
  *
@@ -568,9 +571,9 @@ var SegmentInventory = /** @class */ (function () {
568
571
  * you might want to call `synchronizeBuffered` before calling this method.
569
572
  * @returns {Array.<Object>}
570
573
  */
571
- SegmentInventory.prototype.getInventory = function () {
574
+ getInventory() {
572
575
  return this._inventory;
573
- };
576
+ }
574
577
  /**
575
578
  * Returns a recent history of registered operations performed and event
576
579
  * received linked to the segment given in argument.
@@ -584,12 +587,11 @@ var SegmentInventory = /** @class */ (function () {
584
587
  * @param {Object} context
585
588
  * @returns {Array.<Object>}
586
589
  */
587
- SegmentInventory.prototype.getHistoryFor = function (context) {
590
+ getHistoryFor(context) {
588
591
  return this._bufferedHistory.getHistoryFor(context);
589
- };
590
- return SegmentInventory;
591
- }());
592
- export default SegmentInventory;
592
+ }
593
+ }
594
+ exports.default = SegmentInventory;
593
595
  /**
594
596
  * Returns `true` if the buffered start of the given chunk looks coherent enough
595
597
  * relatively to what is announced in the Manifest.
@@ -601,9 +603,9 @@ function bufferedStartLooksCoherent(thisSegment) {
601
603
  thisSegment.partiallyPushed) {
602
604
  return false;
603
605
  }
604
- var start = thisSegment.start, end = thisSegment.end;
605
- var duration = end - start;
606
- var _a = config.getCurrent(), MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE = _a.MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE, MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE = _a.MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE;
606
+ const { start, end } = thisSegment;
607
+ const duration = end - start;
608
+ const { MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE, MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE } = config_1.default.getCurrent();
607
609
  return Math.abs(start - thisSegment.bufferedStart) <=
608
610
  MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE &&
609
611
  (thisSegment.bufferedEnd === undefined ||
@@ -622,9 +624,9 @@ function bufferedEndLooksCoherent(thisSegment) {
622
624
  thisSegment.partiallyPushed) {
623
625
  return false;
624
626
  }
625
- var start = thisSegment.start, end = thisSegment.end;
626
- var duration = end - start;
627
- var _a = config.getCurrent(), MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE = _a.MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE, MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE = _a.MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE;
627
+ const { start, end } = thisSegment;
628
+ const duration = end - start;
629
+ const { MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE, MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE } = config_1.default.getCurrent();
628
630
  return Math.abs(end - thisSegment.bufferedEnd) <=
629
631
  MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE &&
630
632
  thisSegment.bufferedStart != null &&
@@ -640,10 +642,10 @@ function bufferedEndLooksCoherent(thisSegment) {
640
642
  * @param {Object} lastDeletedSegmentInfos
641
643
  */
642
644
  function guessBufferedStartFromRangeStart(firstSegmentInRange, rangeStart, lastDeletedSegmentInfos, bufferType) {
643
- var MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE = config.getCurrent().MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE;
645
+ const { MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE } = config_1.default.getCurrent();
644
646
  if (firstSegmentInRange.bufferedStart !== undefined) {
645
647
  if (firstSegmentInRange.bufferedStart < rangeStart) {
646
- log.debug("SI: Segment partially GCed at the start", bufferType, firstSegmentInRange.bufferedStart, rangeStart);
648
+ log_1.default.debug("SI: Segment partially GCed at the start", bufferType, firstSegmentInRange.bufferedStart, rangeStart);
647
649
  firstSegmentInRange.bufferedStart = rangeStart;
648
650
  }
649
651
  if (!firstSegmentInRange.precizeStart &&
@@ -653,7 +655,7 @@ function guessBufferedStartFromRangeStart(firstSegmentInRange, rangeStart, lastD
653
655
  }
654
656
  }
655
657
  else if (firstSegmentInRange.precizeStart) {
656
- log.debug("SI: buffered start is precize start", bufferType, firstSegmentInRange.start);
658
+ log_1.default.debug("SI: buffered start is precize start", bufferType, firstSegmentInRange.start);
657
659
  firstSegmentInRange.bufferedStart = firstSegmentInRange.start;
658
660
  }
659
661
  else if (lastDeletedSegmentInfos !== null &&
@@ -661,7 +663,7 @@ function guessBufferedStartFromRangeStart(firstSegmentInRange, rangeStart, lastD
661
663
  (lastDeletedSegmentInfos.precizeEnd ||
662
664
  firstSegmentInRange.start - lastDeletedSegmentInfos.end <=
663
665
  MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE)) {
664
- log.debug("SI: buffered start is end of previous segment", bufferType, rangeStart, firstSegmentInRange.start, lastDeletedSegmentInfos.end);
666
+ log_1.default.debug("SI: buffered start is end of previous segment", bufferType, rangeStart, firstSegmentInRange.start, lastDeletedSegmentInfos.end);
665
667
  firstSegmentInRange.bufferedStart = lastDeletedSegmentInfos.end;
666
668
  if (bufferedStartLooksCoherent(firstSegmentInRange)) {
667
669
  firstSegmentInRange.start = lastDeletedSegmentInfos.end;
@@ -670,7 +672,7 @@ function guessBufferedStartFromRangeStart(firstSegmentInRange, rangeStart, lastD
670
672
  }
671
673
  else if (firstSegmentInRange.start - rangeStart <=
672
674
  MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE) {
673
- log.debug("SI: found true buffered start", bufferType, rangeStart, firstSegmentInRange.start);
675
+ log_1.default.debug("SI: found true buffered start", bufferType, rangeStart, firstSegmentInRange.start);
674
676
  firstSegmentInRange.bufferedStart = rangeStart;
675
677
  if (bufferedStartLooksCoherent(firstSegmentInRange)) {
676
678
  firstSegmentInRange.start = rangeStart;
@@ -678,10 +680,11 @@ function guessBufferedStartFromRangeStart(firstSegmentInRange, rangeStart, lastD
678
680
  }
679
681
  }
680
682
  else if (rangeStart < firstSegmentInRange.start) {
681
- log.debug("SI: range start too far from expected start", bufferType, rangeStart, firstSegmentInRange.start);
683
+ log_1.default.debug("SI: range start too far from expected start", bufferType, rangeStart, firstSegmentInRange.start);
684
+ firstSegmentInRange.bufferedStart = firstSegmentInRange.start;
682
685
  }
683
686
  else {
684
- log.debug("SI: Segment appears immediately garbage collected at the start", bufferType, firstSegmentInRange.bufferedStart, rangeStart);
687
+ log_1.default.debug("SI: Segment appears immediately garbage collected at the start", bufferType, firstSegmentInRange.bufferedStart, rangeStart);
685
688
  firstSegmentInRange.bufferedStart = rangeStart;
686
689
  }
687
690
  }
@@ -693,10 +696,10 @@ function guessBufferedStartFromRangeStart(firstSegmentInRange, rangeStart, lastD
693
696
  * @param {string} bufferType
694
697
  */
695
698
  function guessBufferedEndFromRangeEnd(lastSegmentInRange, rangeEnd, bufferType) {
696
- var MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE = config.getCurrent().MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE;
699
+ const { MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE } = config_1.default.getCurrent();
697
700
  if (lastSegmentInRange.bufferedEnd !== undefined) {
698
701
  if (lastSegmentInRange.bufferedEnd > rangeEnd) {
699
- log.debug("SI: Segment partially GCed at the end", bufferType, lastSegmentInRange.bufferedEnd, rangeEnd);
702
+ log_1.default.debug("SI: Segment partially GCed at the end", bufferType, lastSegmentInRange.bufferedEnd, rangeEnd);
700
703
  lastSegmentInRange.bufferedEnd = rangeEnd;
701
704
  }
702
705
  if (!lastSegmentInRange.precizeEnd &&
@@ -707,12 +710,12 @@ function guessBufferedEndFromRangeEnd(lastSegmentInRange, rangeEnd, bufferType)
707
710
  }
708
711
  }
709
712
  else if (lastSegmentInRange.precizeEnd) {
710
- log.debug("SI: buffered end is precize end", bufferType, lastSegmentInRange.end);
713
+ log_1.default.debug("SI: buffered end is precize end", bufferType, lastSegmentInRange.end);
711
714
  lastSegmentInRange.bufferedEnd = lastSegmentInRange.end;
712
715
  }
713
716
  else if (rangeEnd - lastSegmentInRange.end <=
714
717
  MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE) {
715
- log.debug("SI: found true buffered end", bufferType, rangeEnd, lastSegmentInRange.end);
718
+ log_1.default.debug("SI: found true buffered end", bufferType, rangeEnd, lastSegmentInRange.end);
716
719
  lastSegmentInRange.bufferedEnd = rangeEnd;
717
720
  if (bufferedEndLooksCoherent(lastSegmentInRange)) {
718
721
  lastSegmentInRange.end = rangeEnd;
@@ -720,11 +723,11 @@ function guessBufferedEndFromRangeEnd(lastSegmentInRange, rangeEnd, bufferType)
720
723
  }
721
724
  }
722
725
  else if (rangeEnd > lastSegmentInRange.end) {
723
- log.debug("SI: range end too far from expected end", bufferType, rangeEnd, lastSegmentInRange.end);
726
+ log_1.default.debug("SI: range end too far from expected end", bufferType, rangeEnd, lastSegmentInRange.end);
724
727
  lastSegmentInRange.bufferedEnd = lastSegmentInRange.end;
725
728
  }
726
729
  else {
727
- log.debug("SI: Segment appears immediately garbage collected at the end", bufferType, lastSegmentInRange.bufferedEnd, rangeEnd);
730
+ log_1.default.debug("SI: Segment appears immediately garbage collected at the end", bufferType, lastSegmentInRange.bufferedEnd, rangeEnd);
728
731
  lastSegmentInRange.bufferedEnd = rangeEnd;
729
732
  }
730
733
  }
@@ -761,31 +764,30 @@ function guessBufferedEndFromRangeEnd(lastSegmentInRange, rangeEnd, bufferType)
761
764
  * @returns {string}
762
765
  */
763
766
  function prettyPrintInventory(inventory) {
764
- var _a;
765
- var roundingError = 1 / 60;
766
- var encounteredReps = {};
767
- var letters = [];
768
- var lastChunk = null;
769
- var lastLetter = null;
767
+ const roundingError = 1 / 60;
768
+ const encounteredReps = {};
769
+ const letters = [];
770
+ let lastChunk = null;
771
+ let lastLetter = null;
770
772
  function generateNewLetter(infos) {
771
- var currentLetter = String.fromCharCode(letters.length + 65);
773
+ const currentLetter = String.fromCharCode(letters.length + 65);
772
774
  letters.push({ letter: currentLetter,
773
775
  periodId: infos.period.id,
774
776
  representationId: infos.representation.id,
775
777
  bitrate: infos.representation.bitrate });
776
778
  return currentLetter;
777
779
  }
778
- var str = "";
779
- for (var i = 0; i < inventory.length; i++) {
780
- var chunk = inventory[i];
780
+ let str = "";
781
+ for (let i = 0; i < inventory.length; i++) {
782
+ const chunk = inventory[i];
781
783
  if (chunk.bufferedStart !== undefined && chunk.bufferedEnd !== undefined) {
782
- var periodId = chunk.infos.period.id;
783
- var representationId = chunk.infos.representation.id;
784
- var encounteredPeriod = encounteredReps[periodId];
785
- var currentLetter = void 0;
784
+ const periodId = chunk.infos.period.id;
785
+ const representationId = chunk.infos.representation.id;
786
+ const encounteredPeriod = encounteredReps[periodId];
787
+ let currentLetter;
786
788
  if (encounteredPeriod === undefined) {
787
789
  currentLetter = generateNewLetter(chunk.infos);
788
- encounteredReps[periodId] = (_a = {}, _a[representationId] = currentLetter, _a);
790
+ encounteredReps[periodId] = { [representationId]: currentLetter };
789
791
  }
790
792
  else if (encounteredPeriod[representationId] === undefined) {
791
793
  currentLetter = generateNewLetter(chunk.infos);
@@ -795,17 +797,17 @@ function prettyPrintInventory(inventory) {
795
797
  currentLetter = encounteredPeriod[representationId];
796
798
  }
797
799
  if (lastChunk === null) {
798
- str += "".concat(chunk.bufferedStart.toFixed(2), "|").concat(currentLetter, "|");
800
+ str += `${chunk.bufferedStart.toFixed(2)}|${currentLetter}|`;
799
801
  }
800
802
  else if (lastLetter === currentLetter) {
801
803
  if (lastChunk.bufferedEnd + roundingError < chunk.bufferedStart) {
802
- str += "".concat(lastChunk.bufferedEnd.toFixed(2), " ~ ") +
803
- "".concat(chunk.bufferedStart.toFixed(2), "|").concat(currentLetter, "|");
804
+ str += `${lastChunk.bufferedEnd.toFixed(2)} ~ ` +
805
+ `${chunk.bufferedStart.toFixed(2)}|${currentLetter}|`;
804
806
  }
805
807
  }
806
808
  else {
807
- str += "".concat(lastChunk.bufferedEnd.toFixed(2), " ~ ") +
808
- "".concat(chunk.bufferedStart.toFixed(2), "|").concat(currentLetter, "|");
809
+ str += `${lastChunk.bufferedEnd.toFixed(2)} ~ ` +
810
+ `${chunk.bufferedStart.toFixed(2)}|${currentLetter}|`;
809
811
  }
810
812
  lastChunk = chunk;
811
813
  lastLetter = currentLetter;
@@ -814,11 +816,11 @@ function prettyPrintInventory(inventory) {
814
816
  if (lastChunk !== null) {
815
817
  str += String(lastChunk.end.toFixed(2));
816
818
  }
817
- letters.forEach(function (letterInfo) {
819
+ letters.forEach(letterInfo => {
818
820
  var _a;
819
- str += "\n[".concat(letterInfo.letter, "] ") +
820
- "P: ".concat(letterInfo.periodId, " || R: ").concat(letterInfo.representationId) +
821
- "(".concat((_a = letterInfo.bitrate) !== null && _a !== void 0 ? _a : "unknown bitrate", ")");
821
+ str += `\n[${letterInfo.letter}] ` +
822
+ `P: ${letterInfo.periodId} || R: ${letterInfo.representationId}` +
823
+ `(${(_a = letterInfo.bitrate) !== null && _a !== void 0 ? _a : "unknown bitrate"})`;
822
824
  });
823
825
  return str;
824
826
  }