rx-player 4.0.0-dev.2023092900 → 4.0.0-dev.2023102700

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 (576) hide show
  1. package/CHANGELOG.md +221 -12
  2. package/FILES.md +0 -4
  3. package/MAINTAINERS.md +1 -0
  4. package/README.md +0 -21
  5. package/VERSION +1 -1
  6. package/dist/_esm5.processed/compat/add_class_name.js +6 -3
  7. package/dist/_esm5.processed/compat/add_text_track.js +11 -8
  8. package/dist/_esm5.processed/compat/browser_compatibility_types.js +13 -9
  9. package/dist/_esm5.processed/compat/browser_detection.js +49 -34
  10. package/dist/_esm5.processed/compat/browser_version.js +11 -8
  11. package/dist/_esm5.processed/compat/can_patch_isobmff.js +6 -3
  12. package/dist/_esm5.processed/compat/can_rely_on_video_visibility_and_size.js +9 -6
  13. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -3
  14. package/dist/_esm5.processed/compat/change_source_buffer_type.js +6 -3
  15. package/dist/_esm5.processed/compat/clear_element_src.js +12 -9
  16. package/dist/_esm5.processed/compat/eme/close_session.js +45 -106
  17. package/dist/_esm5.processed/compat/eme/constants.js +6 -3
  18. package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +18 -22
  19. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +78 -102
  20. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +16 -6
  21. package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.js +18 -15
  22. package/dist/_esm5.processed/compat/eme/custom_media_keys/ms_media_keys_constructor.js +7 -5
  23. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +70 -88
  24. package/dist/_esm5.processed/compat/eme/custom_media_keys/types.js +2 -1
  25. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +91 -117
  26. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +7 -7
  27. package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +82 -83
  28. package/dist/_esm5.processed/compat/eme/generate_key_request.js +36 -31
  29. package/dist/_esm5.processed/compat/eme/get_init_data.js +28 -25
  30. package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +8 -5
  31. package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +17 -14
  32. package/dist/_esm5.processed/compat/eme/index.js +13 -7
  33. package/dist/_esm5.processed/compat/eme/load_session.js +26 -69
  34. package/dist/_esm5.processed/compat/enable_audio_track.js +7 -4
  35. package/dist/_esm5.processed/compat/event_listeners.js +130 -102
  36. package/dist/_esm5.processed/compat/get_start_date.js +7 -4
  37. package/dist/_esm5.processed/compat/global_scope.js +7 -5
  38. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +6 -3
  39. package/dist/_esm5.processed/compat/index.js +47 -24
  40. package/dist/_esm5.processed/compat/is_codec_supported.js +8 -5
  41. package/dist/_esm5.processed/compat/is_debug_mode_enabled.js +4 -1
  42. package/dist/_esm5.processed/compat/is_node.js +5 -3
  43. package/dist/_esm5.processed/compat/is_seeking_approximate.js +5 -3
  44. package/dist/_esm5.processed/compat/is_vtt_cue.js +6 -3
  45. package/dist/_esm5.processed/compat/is_worker.js +3 -1
  46. package/dist/_esm5.processed/compat/make_vtt_cue.js +10 -7
  47. package/dist/_esm5.processed/compat/on_height_width_change.js +25 -22
  48. package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +19 -17
  49. package/dist/_esm5.processed/compat/remove_cue.js +12 -9
  50. package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +7 -4
  51. package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +4 -1
  52. package/dist/_esm5.processed/compat/should_renew_media_key_system_access.js +6 -3
  53. package/dist/_esm5.processed/compat/should_unset_media_keys.js +6 -3
  54. package/dist/_esm5.processed/compat/should_validate_metadata.js +6 -3
  55. package/dist/_esm5.processed/compat/should_wait_for_data_before_loaded.js +6 -3
  56. package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.js +6 -3
  57. package/dist/_esm5.processed/config.js +15 -14
  58. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +123 -94
  59. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +43 -42
  60. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +37 -44
  61. package/dist/_esm5.processed/core/adaptive/index.js +4 -2
  62. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +75 -74
  63. package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +24 -23
  64. package/dist/_esm5.processed/core/adaptive/utils/ewma.js +13 -12
  65. package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.js +9 -6
  66. package/dist/_esm5.processed/core/adaptive/utils/filter_by_resolution.js +18 -19
  67. package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +10 -7
  68. package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.js +8 -7
  69. package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.js +26 -23
  70. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +25 -23
  71. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +6 -3
  72. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +41 -40
  73. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +31 -30
  74. package/dist/_esm5.processed/core/api/debug/constants.js +4 -1
  75. package/dist/_esm5.processed/core/api/debug/index.js +4 -2
  76. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +64 -72
  77. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +49 -46
  78. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +15 -12
  79. package/dist/_esm5.processed/core/api/debug/render.js +16 -13
  80. package/dist/_esm5.processed/core/api/debug/utils.js +18 -13
  81. package/dist/_esm5.processed/core/api/index.js +7 -4
  82. package/dist/_esm5.processed/core/api/option_utils.js +85 -58
  83. package/dist/_esm5.processed/core/api/playback_observer.js +135 -124
  84. package/dist/_esm5.processed/core/api/public_api.js +610 -684
  85. package/dist/_esm5.processed/core/api/track_management/index.js +19 -3
  86. package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +233 -247
  87. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +45 -58
  88. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +300 -324
  89. package/dist/_esm5.processed/core/api/utils.js +32 -24
  90. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +155 -185
  91. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +42 -81
  92. package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +15 -12
  93. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +392 -510
  94. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +44 -90
  95. package/dist/_esm5.processed/core/decrypt/create_session.js +90 -149
  96. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +24 -67
  97. package/dist/_esm5.processed/core/decrypt/find_key_system.js +94 -155
  98. package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +6 -3
  99. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +59 -109
  100. package/dist/_esm5.processed/core/decrypt/index.js +26 -7
  101. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +17 -59
  102. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +84 -155
  103. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +50 -103
  104. package/dist/_esm5.processed/core/decrypt/types.js +5 -2
  105. package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +22 -19
  106. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +40 -61
  107. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +17 -61
  108. package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.js +8 -5
  109. package/dist/_esm5.processed/core/decrypt/utils/get_drm_system_id.js +8 -5
  110. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +23 -23
  111. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +15 -12
  112. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +14 -21
  113. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +26 -27
  114. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +206 -310
  115. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +8 -6
  116. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +103 -102
  117. package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +13 -12
  118. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +18 -16
  119. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +37 -56
  120. package/dist/_esm5.processed/core/fetchers/index.js +7 -3
  121. package/dist/_esm5.processed/core/fetchers/manifest/index.js +4 -2
  122. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +233 -313
  123. package/dist/_esm5.processed/core/fetchers/segment/index.js +4 -2
  124. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +12 -9
  125. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +218 -234
  126. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +20 -19
  127. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +73 -74
  128. package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +8 -5
  129. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +210 -261
  130. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +73 -99
  131. package/dist/_esm5.processed/core/init/index.js +5 -1
  132. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +256 -320
  133. package/dist/_esm5.processed/core/init/types.js +7 -24
  134. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +109 -135
  135. package/dist/_esm5.processed/core/init/utils/create_media_source.js +35 -30
  136. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +12 -10
  137. package/dist/_esm5.processed/core/init/utils/end_of_stream.js +30 -26
  138. package/dist/_esm5.processed/core/init/utils/get_initial_time.js +41 -38
  139. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +13 -10
  140. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +29 -26
  141. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +30 -27
  142. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +58 -60
  143. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +140 -161
  144. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +3 -1
  145. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.js +4 -2
  146. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +28 -30
  147. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +71 -90
  148. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.js +2 -1
  149. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +16 -13
  150. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +75 -126
  151. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +130 -147
  152. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/index.js +4 -2
  153. package/dist/_esm5.processed/core/segment_buffers/implementations/index.js +20 -3
  154. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +106 -125
  155. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/index.js +4 -2
  156. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/parsers.js +11 -8
  157. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +48 -47
  158. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/types.js +2 -1
  159. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +18 -15
  160. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +22 -15
  161. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/index.js +4 -2
  162. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +65 -82
  163. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.js +11 -8
  164. package/dist/_esm5.processed/core/segment_buffers/implementations/types.js +19 -17
  165. package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +23 -22
  166. package/dist/_esm5.processed/core/segment_buffers/index.js +13 -6
  167. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +24 -22
  168. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +8 -3
  169. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +151 -150
  170. package/dist/_esm5.processed/core/segment_buffers/inventory/types.js +2 -1
  171. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +9 -4
  172. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +82 -89
  173. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +118 -166
  174. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +31 -28
  175. package/dist/_esm5.processed/core/stream/adaptation/index.js +19 -3
  176. package/dist/_esm5.processed/core/stream/adaptation/types.js +2 -1
  177. package/dist/_esm5.processed/core/stream/index.js +4 -2
  178. package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +14 -16
  179. package/dist/_esm5.processed/core/stream/orchestrator/index.js +4 -2
  180. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +175 -222
  181. package/dist/_esm5.processed/core/stream/period/index.js +19 -3
  182. package/dist/_esm5.processed/core/stream/period/period_stream.js +172 -216
  183. package/dist/_esm5.processed/core/stream/period/types.js +2 -1
  184. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -33
  185. package/dist/_esm5.processed/core/stream/representation/index.js +19 -3
  186. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +80 -68
  187. package/dist/_esm5.processed/core/stream/representation/types.js +2 -1
  188. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +33 -84
  189. package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +32 -29
  190. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +126 -145
  191. package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +32 -88
  192. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +61 -48
  193. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +71 -69
  194. package/dist/_esm5.processed/core/stream/representation/utils/get_segment_priority.js +8 -5
  195. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +22 -63
  196. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +49 -86
  197. package/dist/_esm5.processed/default_config.js +4 -2
  198. package/dist/_esm5.processed/errors/assertion_error.js +10 -26
  199. package/dist/_esm5.processed/errors/custom_loader_error.js +12 -28
  200. package/dist/_esm5.processed/errors/encrypted_media_error.js +16 -32
  201. package/dist/_esm5.processed/errors/error_codes.js +9 -4
  202. package/dist/_esm5.processed/errors/error_message.js +5 -2
  203. package/dist/_esm5.processed/errors/format_error.js +9 -7
  204. package/dist/_esm5.processed/errors/index.js +25 -11
  205. package/dist/_esm5.processed/errors/is_known_error.js +14 -11
  206. package/dist/_esm5.processed/errors/media_error.js +17 -33
  207. package/dist/_esm5.processed/errors/network_error.js +21 -37
  208. package/dist/_esm5.processed/errors/other_error.js +15 -31
  209. package/dist/_esm5.processed/errors/request_error.js +17 -33
  210. package/dist/_esm5.processed/experimental/features/dash_wasm.js +14 -11
  211. package/dist/_esm5.processed/experimental/features/debug_element.js +7 -4
  212. package/dist/_esm5.processed/experimental/features/index.d.ts +1 -0
  213. package/dist/_esm5.processed/experimental/features/index.js +11 -3
  214. package/dist/_esm5.processed/experimental/features/local.js +9 -6
  215. package/dist/_esm5.processed/experimental/features/metaplaylist.js +9 -6
  216. package/dist/_esm5.processed/experimental/index.js +5 -2
  217. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.js +6 -3
  218. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +6 -3
  219. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +7 -3
  220. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +22 -16
  221. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +22 -19
  222. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -3
  223. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.js +2 -1
  224. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +125 -186
  225. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.js +11 -27
  226. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +76 -119
  227. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +24 -15
  228. package/dist/_esm5.processed/experimental/tools/index.js +11 -5
  229. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +38 -43
  230. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +31 -34
  231. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +21 -18
  232. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +4 -2
  233. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/log.js +5 -3
  234. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +20 -17
  235. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -18
  236. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +13 -10
  237. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +16 -13
  238. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.js +16 -14
  239. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +14 -11
  240. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +14 -11
  241. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +19 -16
  242. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +11 -8
  243. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.js +5 -2
  244. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +25 -22
  245. package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +7 -4
  246. package/dist/_esm5.processed/features/add_features.js +11 -8
  247. package/dist/_esm5.processed/features/features_object.js +4 -2
  248. package/dist/_esm5.processed/features/index.js +7 -4
  249. package/dist/_esm5.processed/features/list/dash.js +11 -8
  250. package/dist/_esm5.processed/features/list/directfile.js +9 -5
  251. package/dist/_esm5.processed/features/list/eme.js +7 -4
  252. package/dist/_esm5.processed/features/list/html_sami_parser.js +9 -6
  253. package/dist/_esm5.processed/features/list/html_srt_parser.js +9 -6
  254. package/dist/_esm5.processed/features/list/html_text_buffer.js +7 -4
  255. package/dist/_esm5.processed/features/list/html_ttml_parser.js +9 -6
  256. package/dist/_esm5.processed/features/list/html_vtt_parser.js +9 -6
  257. package/dist/_esm5.processed/features/list/index.js +31 -14
  258. package/dist/_esm5.processed/features/list/native_sami_parser.js +9 -6
  259. package/dist/_esm5.processed/features/list/native_srt_parser.js +9 -6
  260. package/dist/_esm5.processed/features/list/native_text_buffer.js +7 -4
  261. package/dist/_esm5.processed/features/list/native_ttml_parser.js +9 -6
  262. package/dist/_esm5.processed/features/list/native_vtt_parser.js +9 -6
  263. package/dist/_esm5.processed/features/list/smooth.js +9 -6
  264. package/dist/_esm5.processed/features/types.js +2 -1
  265. package/dist/_esm5.processed/index.js +24 -9
  266. package/dist/_esm5.processed/log.js +5 -3
  267. package/dist/_esm5.processed/manifest/adaptation.js +52 -55
  268. package/dist/_esm5.processed/manifest/index.js +32 -13
  269. package/dist/_esm5.processed/manifest/manifest.js +112 -134
  270. package/dist/_esm5.processed/manifest/period.js +38 -42
  271. package/dist/_esm5.processed/manifest/representation.js +78 -61
  272. package/dist/_esm5.processed/manifest/representation_index/index.js +5 -2
  273. package/dist/_esm5.processed/manifest/representation_index/static.js +43 -42
  274. package/dist/_esm5.processed/manifest/representation_index/types.js +2 -1
  275. package/dist/_esm5.processed/manifest/types.js +5 -2
  276. package/dist/_esm5.processed/manifest/update_period_in_place.js +38 -48
  277. package/dist/_esm5.processed/manifest/update_periods.js +59 -69
  278. package/dist/_esm5.processed/manifest/utils.js +14 -9
  279. package/dist/_esm5.processed/minimal.js +9 -7
  280. package/dist/_esm5.processed/parsers/containers/isobmff/constants.js +4 -1
  281. package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +14 -10
  282. package/dist/_esm5.processed/parsers/containers/isobmff/drm/index.js +5 -1
  283. package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +15 -11
  284. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +48 -40
  285. package/dist/_esm5.processed/parsers/containers/isobmff/index.js +27 -6
  286. package/dist/_esm5.processed/parsers/containers/isobmff/read.js +20 -14
  287. package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +25 -20
  288. package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +130 -112
  289. package/dist/_esm5.processed/parsers/containers/matroska/index.js +6 -1
  290. package/dist/_esm5.processed/parsers/containers/matroska/utils.js +67 -63
  291. package/dist/_esm5.processed/parsers/images/bif.js +40 -29
  292. package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.js +10 -12
  293. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +10 -7
  294. package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.js +8 -5
  295. package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +10 -6
  296. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +7 -6
  297. package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +10 -6
  298. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +14 -9
  299. package/dist/_esm5.processed/parsers/manifest/dash/common/index.js +10 -4
  300. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +73 -67
  301. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +9 -4
  302. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +32 -25
  303. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.js +11 -5
  304. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +81 -70
  305. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +130 -123
  306. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +15 -12
  307. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +35 -32
  308. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +14 -9
  309. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +30 -22
  310. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.js +4 -2
  311. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +14 -11
  312. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +131 -129
  313. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +16 -10
  314. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/utils.js +7 -3
  315. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +19 -18
  316. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +18 -17
  317. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +111 -111
  318. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.js +4 -1
  319. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +86 -85
  320. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +97 -82
  321. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +39 -37
  322. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +61 -69
  323. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +12 -9
  324. package/dist/_esm5.processed/parsers/manifest/dash/index.js +8 -1
  325. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/index.js +4 -2
  326. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +66 -62
  327. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +7 -4
  328. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.js +7 -4
  329. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.js +22 -19
  330. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +22 -19
  331. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +11 -8
  332. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +38 -34
  333. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +34 -30
  334. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +44 -40
  335. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +24 -21
  336. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.js +15 -12
  337. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +21 -18
  338. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.js +6 -3
  339. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +12 -9
  340. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +60 -64
  341. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +33 -27
  342. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.js +2 -1
  343. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.js +2 -1
  344. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.js +4 -2
  345. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +192 -238
  346. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +67 -62
  347. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +8 -4
  348. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +11 -7
  349. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +17 -13
  350. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +29 -24
  351. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +38 -33
  352. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +37 -32
  353. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +43 -38
  354. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +9 -5
  355. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +16 -12
  356. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +11 -7
  357. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +20 -16
  358. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +11 -7
  359. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +11 -7
  360. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/index.js +5 -1
  361. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +10 -6
  362. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +22 -20
  363. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.js +2 -1
  364. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +6 -2
  365. package/dist/_esm5.processed/parsers/manifest/index.js +17 -1
  366. package/dist/_esm5.processed/parsers/manifest/local/index.js +4 -2
  367. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +30 -27
  368. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +71 -84
  369. package/dist/_esm5.processed/parsers/manifest/local/types.js +2 -1
  370. package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.js +4 -2
  371. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +75 -72
  372. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +52 -52
  373. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +200 -176
  374. package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +13 -8
  375. package/dist/_esm5.processed/parsers/manifest/smooth/index.js +7 -4
  376. package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +17 -14
  377. package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +17 -15
  378. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +102 -98
  379. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +49 -48
  380. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  381. package/dist/_esm5.processed/parsers/manifest/smooth/utils/parseBoolean.js +4 -1
  382. package/dist/_esm5.processed/parsers/manifest/smooth/utils/reduceChildren.js +6 -3
  383. package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +5 -1
  384. package/dist/_esm5.processed/parsers/manifest/types.js +2 -1
  385. package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +27 -24
  386. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +10 -7
  387. package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +8 -5
  388. package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +8 -5
  389. package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +15 -12
  390. package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +15 -12
  391. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +31 -22
  392. package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +9 -6
  393. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +38 -45
  394. package/dist/_esm5.processed/parsers/texttracks/index.js +2 -1
  395. package/dist/_esm5.processed/parsers/texttracks/sami/html.js +45 -43
  396. package/dist/_esm5.processed/parsers/texttracks/sami/native.js +41 -39
  397. package/dist/_esm5.processed/parsers/texttracks/srt/find_end_of_cue_block.js +7 -4
  398. package/dist/_esm5.processed/parsers/texttracks/srt/get_cue_blocks.js +11 -8
  399. package/dist/_esm5.processed/parsers/texttracks/srt/html.js +32 -29
  400. package/dist/_esm5.processed/parsers/texttracks/srt/native.js +16 -13
  401. package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +21 -18
  402. package/dist/_esm5.processed/parsers/texttracks/srt/parse_timestamp.js +10 -7
  403. package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +37 -30
  404. package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.js +48 -48
  405. package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +14 -11
  406. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +7 -2
  407. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +15 -12
  408. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +15 -12
  409. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +11 -8
  410. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +15 -12
  411. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +25 -22
  412. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +117 -124
  413. package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +11 -8
  414. package/dist/_esm5.processed/parsers/texttracks/ttml/html/index.js +4 -2
  415. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +12 -8
  416. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.js +14 -11
  417. package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +10 -7
  418. package/dist/_esm5.processed/parsers/texttracks/ttml/native/index.js +4 -2
  419. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +38 -35
  420. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +11 -8
  421. package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +58 -58
  422. package/dist/_esm5.processed/parsers/texttracks/ttml/regexps.js +27 -13
  423. package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.js +18 -18
  424. package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +28 -26
  425. package/dist/_esm5.processed/parsers/texttracks/ttml/xml_utils.js +37 -25
  426. package/dist/_esm5.processed/parsers/texttracks/types.js +2 -1
  427. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +12 -9
  428. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +14 -11
  429. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.js +11 -8
  430. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +8 -5
  431. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +60 -60
  432. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +30 -27
  433. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.js +4 -2
  434. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +23 -26
  435. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +20 -17
  436. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +23 -18
  437. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/index.js +4 -2
  438. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +19 -16
  439. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.js +20 -17
  440. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +8 -5
  441. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +26 -18
  442. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +10 -7
  443. package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +15 -7
  444. package/dist/_esm5.processed/public_types.js +2 -1
  445. package/dist/_esm5.processed/tools/TextTrackRenderer/index.js +13 -6
  446. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +26 -24
  447. package/dist/_esm5.processed/tools/index.js +6 -4
  448. package/dist/_esm5.processed/tools/string_utils.js +10 -1
  449. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +16 -24
  450. package/dist/_esm5.processed/transports/dash/construct_segment_url.js +6 -3
  451. package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +17 -14
  452. package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +19 -16
  453. package/dist/_esm5.processed/transports/dash/index.js +4 -2
  454. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +47 -27
  455. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +23 -16
  456. package/dist/_esm5.processed/transports/dash/manifest_parser.js +68 -60
  457. package/dist/_esm5.processed/transports/dash/pipelines.js +20 -17
  458. package/dist/_esm5.processed/transports/dash/segment_loader.js +49 -39
  459. package/dist/_esm5.processed/transports/dash/segment_parser.js +58 -39
  460. package/dist/_esm5.processed/transports/dash/text_loader.js +36 -30
  461. package/dist/_esm5.processed/transports/dash/text_parser.js +39 -29
  462. package/dist/_esm5.processed/transports/index.js +17 -1
  463. package/dist/_esm5.processed/transports/local/index.js +4 -2
  464. package/dist/_esm5.processed/transports/local/pipelines.js +26 -23
  465. package/dist/_esm5.processed/transports/local/segment_loader.js +26 -23
  466. package/dist/_esm5.processed/transports/local/segment_parser.js +36 -25
  467. package/dist/_esm5.processed/transports/local/text_parser.js +42 -27
  468. package/dist/_esm5.processed/transports/metaplaylist/index.js +4 -2
  469. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +11 -7
  470. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +91 -96
  471. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +26 -20
  472. package/dist/_esm5.processed/transports/smooth/index.js +4 -2
  473. package/dist/_esm5.processed/transports/smooth/is_mp4_embedded_track.js +4 -1
  474. package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +22 -19
  475. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +92 -67
  476. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +29 -26
  477. package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +9 -6
  478. package/dist/_esm5.processed/transports/smooth/isobmff/create_video_init_segment.js +23 -20
  479. package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +10 -7
  480. package/dist/_esm5.processed/transports/smooth/isobmff/index.js +13 -6
  481. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +19 -16
  482. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +9 -6
  483. package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +41 -38
  484. package/dist/_esm5.processed/transports/smooth/pipelines.js +106 -96
  485. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +2 -2
  486. package/dist/_esm5.processed/transports/smooth/segment_loader.js +149 -153
  487. package/dist/_esm5.processed/transports/smooth/utils.js +7 -3
  488. package/dist/_esm5.processed/transports/types.js +2 -1
  489. package/dist/_esm5.processed/transports/utils/byte_range.js +6 -4
  490. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +23 -18
  491. package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +14 -11
  492. package/dist/_esm5.processed/transports/utils/find_complete_box.js +11 -8
  493. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +22 -14
  494. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +13 -10
  495. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +4 -1
  496. package/dist/_esm5.processed/transports/utils/parse_text_track.js +40 -26
  497. package/dist/_esm5.processed/utils/are_arrays_of_numbers_equal.js +5 -2
  498. package/dist/_esm5.processed/utils/are_codecs_compatible.js +11 -9
  499. package/dist/_esm5.processed/utils/array_find.js +7 -4
  500. package/dist/_esm5.processed/utils/array_find_index.js +6 -3
  501. package/dist/_esm5.processed/utils/array_includes.js +12 -11
  502. package/dist/_esm5.processed/utils/assert.js +13 -9
  503. package/dist/_esm5.processed/utils/assert_unreachable.js +6 -3
  504. package/dist/_esm5.processed/utils/base64.js +23 -18
  505. package/dist/_esm5.processed/utils/byte_parsing.js +30 -17
  506. package/dist/_esm5.processed/utils/cancellable_sleep.js +8 -5
  507. package/dist/_esm5.processed/utils/create_cancellable_promise.js +7 -4
  508. package/dist/_esm5.processed/utils/deep_merge.js +10 -21
  509. package/dist/_esm5.processed/utils/event_emitter.js +24 -24
  510. package/dist/_esm5.processed/utils/flat_map.js +7 -4
  511. package/dist/_esm5.processed/utils/get_fuzzed_delay.js +6 -3
  512. package/dist/_esm5.processed/utils/hash_buffer.js +7 -4
  513. package/dist/_esm5.processed/utils/id_generator.js +6 -3
  514. package/dist/_esm5.processed/utils/initialization_segment_cache.js +11 -12
  515. package/dist/_esm5.processed/utils/is_non_empty_string.js +4 -1
  516. package/dist/_esm5.processed/utils/is_null_or_undefined.js +4 -1
  517. package/dist/_esm5.processed/utils/languages/ISO_639-1_to_ISO_639-3.js +4 -2
  518. package/dist/_esm5.processed/utils/languages/ISO_639-2_to_ISO_639-3.js +4 -2
  519. package/dist/_esm5.processed/utils/languages/index.js +7 -3
  520. package/dist/_esm5.processed/utils/languages/normalize.js +26 -20
  521. package/dist/_esm5.processed/utils/logger.js +24 -23
  522. package/dist/_esm5.processed/utils/monotonic_timestamp.js +4 -1
  523. package/dist/_esm5.processed/utils/noop.js +4 -1
  524. package/dist/_esm5.processed/utils/object_assign.js +8 -10
  525. package/dist/_esm5.processed/utils/object_values.js +6 -3
  526. package/dist/_esm5.processed/utils/ranges.js +94 -71
  527. package/dist/_esm5.processed/utils/reference.js +48 -52
  528. package/dist/_esm5.processed/utils/request/fetch.js +79 -109
  529. package/dist/_esm5.processed/utils/request/index.js +9 -4
  530. package/dist/_esm5.processed/utils/request/xhr.js +49 -37
  531. package/dist/_esm5.processed/utils/resolve_url.js +18 -18
  532. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +34 -81
  533. package/dist/_esm5.processed/utils/sleep.js +5 -2
  534. package/dist/_esm5.processed/utils/slice_uint8array.js +3 -1
  535. package/dist/_esm5.processed/utils/sorted_list.js +37 -40
  536. package/dist/_esm5.processed/utils/starts_with.js +5 -2
  537. package/dist/_esm5.processed/utils/string_parsing.js +84 -73
  538. package/dist/_esm5.processed/utils/take_first_set.js +9 -10
  539. package/dist/_esm5.processed/utils/task_canceller.js +51 -71
  540. package/dist/_esm5.processed/utils/warn_once.js +7 -4
  541. package/dist/_esm5.processed/utils/weak_map_memory.js +12 -11
  542. package/dist/_esm5.processed/utils/wrapInPromise.js +5 -2
  543. package/dist/mpd-parser.wasm +0 -0
  544. package/dist/rx-player.js +43758 -45493
  545. package/dist/rx-player.min.js +1 -1
  546. package/jest.config.js +1 -22
  547. package/package.json +22 -23
  548. package/scripts/build/constants.d.ts +1 -23
  549. package/scripts/build/generate_build.js +1 -1
  550. package/scripts/check_nodejs_import_compatibility.js +1 -1
  551. package/scripts/update-version +1 -4
  552. package/sonar-project.properties +1 -1
  553. package/src/compat/event_listeners.ts +8 -8
  554. package/src/compat/global_scope.ts +2 -0
  555. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +3 -3
  556. package/src/core/adaptive/adaptive_representation_selector.ts +27 -9
  557. package/src/core/adaptive/buffer_based_chooser.ts +1 -1
  558. package/src/core/adaptive/network_analyzer.ts +5 -4
  559. package/src/core/api/public_api.ts +2 -2
  560. package/src/core/api/track_management/track_dispatcher.ts +2 -1
  561. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +1 -1
  562. package/src/core/fetchers/cdn_prioritizer.ts +1 -1
  563. package/src/experimental/features/__tests__/index.test.ts +19 -0
  564. package/src/experimental/features/index.ts +1 -0
  565. package/src/features/list/__tests__/index.test.ts +49 -0
  566. package/src/index.ts +28 -3
  567. package/src/transports/smooth/segment_loader.ts +4 -4
  568. package/src/typings/globals.d.ts +0 -42
  569. package/src/utils/request/fetch.ts +1 -1
  570. package/src/utils/request/xhr.ts +1 -1
  571. package/tsconfig.json +1 -1
  572. package/tsconfig.modules.json +3 -3
  573. package/dist/_esm5.processed/features/initialize_features.d.ts +0 -19
  574. package/dist/_esm5.processed/features/initialize_features.js +0 -108
  575. package/src/features/__tests__/initialize_features.test.ts +0 -657
  576. package/src/features/initialize_features.ts +0 -129
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,19 +14,21 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import isNonEmptyString from "../../../utils/is_non_empty_string";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.getVideoCodecs = exports.getAudioCodecs = void 0;
19
+ const is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
17
20
  /**
18
21
  * @param {string} codecPrivateData
19
22
  * @param {string|undefined} fourCC
20
23
  * @returns {string}
21
24
  */
22
- export function getAudioCodecs(codecPrivateData, fourCC) {
23
- var mpProfile;
25
+ function getAudioCodecs(codecPrivateData, fourCC) {
26
+ let mpProfile;
24
27
  if (fourCC === "AACH") {
25
28
  mpProfile = 5; // High Efficiency AAC Profile
26
29
  }
27
30
  else {
28
- mpProfile = isNonEmptyString(codecPrivateData) ?
31
+ mpProfile = (0, is_non_empty_string_1.default)(codecPrivateData) ?
29
32
  (parseInt(codecPrivateData.substring(0, 2), 16) & 0xF8) >> 3 :
30
33
  2;
31
34
  }
@@ -33,18 +36,20 @@ export function getAudioCodecs(codecPrivateData, fourCC) {
33
36
  // Return default audio codec
34
37
  return "mp4a.40.2";
35
38
  }
36
- return "mp4a.40.".concat(mpProfile);
39
+ return `mp4a.40.${mpProfile}`;
37
40
  }
41
+ exports.getAudioCodecs = getAudioCodecs;
38
42
  /**
39
43
  * @param {string} codecPrivateData
40
44
  * @returns {string}
41
45
  */
42
- export function getVideoCodecs(codecPrivateData) {
46
+ function getVideoCodecs(codecPrivateData) {
43
47
  // we can extract codes only if fourCC is on of "H264", "X264", "DAVC", "AVC1"
44
- var arr = /00000001\d7([0-9a-fA-F]{6})/.exec(codecPrivateData);
45
- if (arr === null || !isNonEmptyString(arr[1])) {
48
+ const arr = /00000001\d7([0-9a-fA-F]{6})/.exec(codecPrivateData);
49
+ if (arr === null || !(0, is_non_empty_string_1.default)(arr[1])) {
46
50
  // Return default video codec
47
51
  return "avc1.4D401E";
48
52
  }
49
53
  return "avc1." + arr[1];
50
54
  }
55
+ exports.getVideoCodecs = getVideoCodecs;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,7 +14,9 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import createSmoothStreamingParser from "./create_parser";
17
- import SmoothRepresentationIndex from "./representation_index";
18
- export default createSmoothStreamingParser;
19
- export { SmoothRepresentationIndex, };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SmoothRepresentationIndex = void 0;
19
+ const create_parser_1 = require("./create_parser");
20
+ const representation_index_1 = require("./representation_index");
21
+ exports.SmoothRepresentationIndex = representation_index_1.default;
22
+ exports.default = create_parser_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,25 +14,26 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import isNonEmptyString from "../../../utils/is_non_empty_string";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
17
19
  /**
18
20
  * Parse C nodes to build index timeline.
19
21
  * @param {Element} nodes
20
22
  */
21
- export default function parseCNodes(nodes) {
22
- return nodes.reduce(function (timeline, node, i) {
23
- var dAttr = node.getAttribute("d");
24
- var tAttr = node.getAttribute("t");
25
- var rAttr = node.getAttribute("r");
26
- var repeatCount = rAttr !== null ? +rAttr - 1 : 0;
27
- var start = tAttr !== null ? +tAttr : undefined;
28
- var duration = dAttr !== null ? +dAttr : undefined;
23
+ function parseCNodes(nodes) {
24
+ return nodes.reduce((timeline, node, i) => {
25
+ const dAttr = node.getAttribute("d");
26
+ const tAttr = node.getAttribute("t");
27
+ const rAttr = node.getAttribute("r");
28
+ const repeatCount = rAttr !== null ? +rAttr - 1 : 0;
29
+ let start = tAttr !== null ? +tAttr : undefined;
30
+ let duration = dAttr !== null ? +dAttr : undefined;
29
31
  if (i === 0) { // first node
30
32
  start = start === undefined || isNaN(start) ? 0 :
31
33
  start;
32
34
  }
33
35
  else { // from second node to the end
34
- var prev = timeline[i - 1];
36
+ const prev = timeline[i - 1];
35
37
  if (start == null || isNaN(start)) {
36
38
  if (prev.duration == null || isNaN(prev.duration)) {
37
39
  throw new Error("Smooth: Invalid CNodes. Missing timestamp.");
@@ -40,10 +42,10 @@ export default function parseCNodes(nodes) {
40
42
  }
41
43
  }
42
44
  if (duration == null || isNaN(duration)) {
43
- var nextNode = nodes[i + 1];
45
+ const nextNode = nodes[i + 1];
44
46
  if (nextNode !== undefined) {
45
- var nextTAttr = nextNode.getAttribute("t");
46
- var nextStart = isNonEmptyString(nextTAttr) ? +nextTAttr :
47
+ const nextTAttr = nextNode.getAttribute("t");
48
+ const nextStart = (0, is_non_empty_string_1.default)(nextTAttr) ? +nextTAttr :
47
49
  null;
48
50
  if (nextStart === null) {
49
51
  throw new Error("Can't build index timeline from Smooth Manifest.");
@@ -54,7 +56,8 @@ export default function parseCNodes(nodes) {
54
56
  return timeline;
55
57
  }
56
58
  }
57
- timeline.push({ duration: duration, start: start, repeatCount: repeatCount });
59
+ timeline.push({ duration, start, repeatCount });
58
60
  return timeline;
59
61
  }, []);
60
62
  }
63
+ exports.default = parseCNodes;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,46 +14,47 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { base64ToBytes } from "../../../utils/base64";
17
- import { concat } from "../../../utils/byte_parsing";
18
- import { hexToBytes } from "../../../utils/string_parsing";
19
- import { getPlayReadyKIDFromPrivateData } from "../../containers/isobmff";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const base64_1 = require("../../../utils/base64");
19
+ const byte_parsing_1 = require("../../../utils/byte_parsing");
20
+ const string_parsing_1 = require("../../../utils/string_parsing");
21
+ const isobmff_1 = require("../../containers/isobmff");
20
22
  /**
21
23
  * @param {Uint8Array} keyIdBytes
22
24
  * @returns {Array.<Object>}
23
25
  */
24
26
  function createWidevineKeySystem(keyIdBytes) {
25
27
  return [{ systemId: "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",
26
- privateData: concat([0x08, 0x01, 0x12, 0x10], keyIdBytes) }];
28
+ privateData: (0, byte_parsing_1.concat)([0x08, 0x01, 0x12, 0x10], keyIdBytes) }];
27
29
  }
28
30
  /**
29
31
  * Parse "Protection" Node, which contains DRM information
30
32
  * @param {Element} protectionNode
31
33
  * @returns {Object}
32
34
  */
33
- export default function parseProtectionNode(protectionNode, keySystemCreator) {
34
- if (keySystemCreator === void 0) { keySystemCreator = createWidevineKeySystem; }
35
+ function parseProtectionNode(protectionNode, keySystemCreator = createWidevineKeySystem) {
35
36
  if (protectionNode.firstElementChild === null ||
36
37
  protectionNode.firstElementChild.nodeName !== "ProtectionHeader") {
37
38
  throw new Error("Protection should have ProtectionHeader child");
38
39
  }
39
- var header = protectionNode.firstElementChild;
40
- var privateData = base64ToBytes(header.textContent === null ? "" :
40
+ const header = protectionNode.firstElementChild;
41
+ const privateData = (0, base64_1.base64ToBytes)(header.textContent === null ? "" :
41
42
  header.textContent);
42
- var keyIdHex = getPlayReadyKIDFromPrivateData(privateData);
43
- var keyIdBytes = hexToBytes(keyIdHex);
43
+ const keyIdHex = (0, isobmff_1.getPlayReadyKIDFromPrivateData)(privateData);
44
+ const keyIdBytes = (0, string_parsing_1.hexToBytes)(keyIdHex);
44
45
  // remove possible braces
45
- var systemIdAttr = header.getAttribute("SystemID");
46
- var systemId = (systemIdAttr !== null ? systemIdAttr :
46
+ const systemIdAttr = header.getAttribute("SystemID");
47
+ const systemId = (systemIdAttr !== null ? systemIdAttr :
47
48
  "")
48
49
  .toLowerCase()
49
50
  .replace(/\{|\}/g, "");
50
51
  return {
51
52
  keyId: keyIdBytes,
52
53
  keySystems: [{
53
- systemId: systemId,
54
- privateData: privateData,
54
+ systemId,
55
+ privateData,
55
56
  /* keyIds: [keyIdBytes], */
56
57
  }].concat(keySystemCreator(keyIdBytes)),
57
58
  };
58
59
  }
60
+ exports.default = parseProtectionNode;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,13 +14,14 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { NetworkError } from "../../../errors";
17
- import log from "../../../log";
18
- import assert from "../../../utils/assert";
19
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
20
- import { checkDiscontinuity, getIndexSegmentEnd, } from "../utils/index_helpers";
21
- import isSegmentStillAvailable from "../utils/is_segment_still_available";
22
- import { replaceSegmentSmoothTokens } from "./utils/tokens";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const errors_1 = require("../../../errors");
19
+ const log_1 = require("../../../log");
20
+ const assert_1 = require("../../../utils/assert");
21
+ const monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
22
+ const index_helpers_1 = require("../utils/index_helpers");
23
+ const is_segment_still_available_1 = require("../utils/is_segment_still_available");
24
+ const tokens_1 = require("./utils/tokens");
23
25
  /**
24
26
  * @param {Number} start
25
27
  * @param {Number} up
@@ -27,7 +29,7 @@ import { replaceSegmentSmoothTokens } from "./utils/tokens";
27
29
  * @returns {Number}
28
30
  */
29
31
  function getSegmentNumber(start, up, duration) {
30
- var diff = up - start;
32
+ const diff = up - start;
31
33
  return diff > 0 ? Math.floor(diff / duration) :
32
34
  0;
33
35
  }
@@ -42,7 +44,7 @@ function getSegmentNumber(start, up, duration) {
42
44
  * - to {Number}: timescaled timestamp of the end time (start time + duration)
43
45
  */
44
46
  function normalizeRange(timescale, start, duration) {
45
- var ts = timescale === undefined ||
47
+ const ts = timescale === undefined ||
46
48
  timescale === 0 ? 1 :
47
49
  timescale;
48
50
  return { up: start * ts,
@@ -55,14 +57,14 @@ function normalizeRange(timescale, start, duration) {
55
57
  * @returns {Number}
56
58
  */
57
59
  function calculateRepeat(segment, nextSegment) {
58
- var repeatCount = segment.repeatCount;
60
+ let repeatCount = segment.repeatCount;
59
61
  // A negative value of the @r attribute of the S element indicates
60
62
  // that the duration indicated in @d attribute repeats until the
61
63
  // start of the next S element, the end of the Period or until the
62
64
  // next MPD update.
63
65
  // TODO Also for SMOOTH????
64
66
  if (segment.duration !== undefined && repeatCount < 0) {
65
- var repeatEnd = nextSegment !== undefined ? nextSegment.start :
67
+ const repeatEnd = nextSegment !== undefined ? nextSegment.start :
66
68
  Infinity;
67
69
  repeatCount = Math.ceil((repeatEnd - segment.start) / segment.duration) - 1;
68
70
  }
@@ -75,14 +77,14 @@ function calculateRepeat(segment, nextSegment) {
75
77
  *
76
78
  * @class SmoothRepresentationIndex
77
79
  */
78
- var SmoothRepresentationIndex = /** @class */ (function () {
80
+ class SmoothRepresentationIndex {
79
81
  /**
80
82
  * Creates a new `SmoothRepresentationIndex`.
81
83
  * @param {Object} index
82
84
  * @param {Object} options
83
85
  */
84
- function SmoothRepresentationIndex(options) {
85
- var isLive = options.isLive, segmentPrivateInfos = options.segmentPrivateInfos, media = options.media, sharedSmoothTimeline = options.sharedSmoothTimeline;
86
+ constructor(options) {
87
+ const { isLive, segmentPrivateInfos, media, sharedSmoothTimeline } = options;
86
88
  this._sharedSmoothTimeline = sharedSmoothTimeline;
87
89
  this._initSegmentInfos = { bitsPerSample: segmentPrivateInfos.bitsPerSample,
88
90
  channels: segmentPrivateInfos.channels,
@@ -96,10 +98,10 @@ var SmoothRepresentationIndex = /** @class */ (function () {
96
98
  this._isLive = isLive;
97
99
  this._media = media;
98
100
  if (sharedSmoothTimeline.timeline.length !== 0 && isLive) {
99
- var timeline = sharedSmoothTimeline.timeline, validityTime = sharedSmoothTimeline.validityTime;
100
- var lastItem = timeline[timeline.length - 1];
101
- var scaledEnd = getIndexSegmentEnd(lastItem, null);
102
- var scaledTimelineValidityTime = (validityTime / 1000) *
101
+ const { timeline, validityTime } = sharedSmoothTimeline;
102
+ const lastItem = timeline[timeline.length - 1];
103
+ const scaledEnd = (0, index_helpers_1.getIndexSegmentEnd)(lastItem, null);
104
+ const scaledTimelineValidityTime = (validityTime / 1000) *
103
105
  sharedSmoothTimeline.timescale;
104
106
  this._scaledLiveGap = scaledTimelineValidityTime - scaledEnd;
105
107
  }
@@ -108,7 +110,7 @@ var SmoothRepresentationIndex = /** @class */ (function () {
108
110
  * Construct init Segment compatible with a Smooth Manifest.
109
111
  * @returns {Object}
110
112
  */
111
- SmoothRepresentationIndex.prototype.getInitSegment = function () {
113
+ getInitSegment() {
112
114
  return { id: "init",
113
115
  isInit: true,
114
116
  privateInfos: { smoothInitSegment: this._initSegmentInfos },
@@ -118,7 +120,7 @@ var SmoothRepresentationIndex = /** @class */ (function () {
118
120
  duration: 0,
119
121
  timescale: 1,
120
122
  complete: true };
121
- };
123
+ }
122
124
  /**
123
125
  * Generate a list of Segments for a particular period of time.
124
126
  *
@@ -126,40 +128,43 @@ var SmoothRepresentationIndex = /** @class */ (function () {
126
128
  * @param {Number} dur
127
129
  * @returns {Array.<Object>}
128
130
  */
129
- SmoothRepresentationIndex.prototype.getSegments = function (from, dur) {
131
+ getSegments(from, dur) {
130
132
  this._refreshTimeline();
131
- var _a = this._sharedSmoothTimeline, timescale = _a.timescale, timeline = _a.timeline;
132
- var _b = normalizeRange(timescale, from, dur), up = _b.up, to = _b.to;
133
- var media = this._media;
134
- var currentNumber;
135
- var segments = [];
136
- var timelineLength = timeline.length;
137
- var maxPosition = this._scaledLiveGap === undefined ?
133
+ const { timescale, timeline } = this._sharedSmoothTimeline;
134
+ const { up, to } = normalizeRange(timescale, from, dur);
135
+ const media = this._media;
136
+ let currentNumber;
137
+ const segments = [];
138
+ const timelineLength = timeline.length;
139
+ const maxPosition = this._scaledLiveGap === undefined ?
138
140
  undefined :
139
- ((getMonotonicTimeStamp() / 1000) * timescale) - this._scaledLiveGap;
140
- for (var i = 0; i < timelineLength; i++) {
141
- var segmentRange = timeline[i];
142
- var duration = segmentRange.duration, start = segmentRange.start;
143
- var repeat = calculateRepeat(segmentRange, timeline[i + 1]);
144
- var segmentNumberInCurrentRange = getSegmentNumber(start, up, duration);
145
- var segmentTime = start + segmentNumberInCurrentRange * duration;
146
- var timeToAddToCheckMaxPosition = duration;
141
+ (((0, monotonic_timestamp_1.default)() / 1000) * timescale) - this._scaledLiveGap;
142
+ for (let i = 0; i < timelineLength; i++) {
143
+ const segmentRange = timeline[i];
144
+ const { duration, start } = segmentRange;
145
+ const repeat = calculateRepeat(segmentRange, timeline[i + 1]);
146
+ let segmentNumberInCurrentRange = getSegmentNumber(start, up, duration);
147
+ let segmentTime = start + segmentNumberInCurrentRange * duration;
148
+ const timeToAddToCheckMaxPosition = duration;
147
149
  while (segmentTime < to &&
148
150
  segmentNumberInCurrentRange <= repeat &&
149
151
  (maxPosition === undefined ||
150
152
  (segmentTime + timeToAddToCheckMaxPosition) <= maxPosition)) {
151
- var time = segmentTime;
152
- var number = currentNumber !== undefined ?
153
+ const time = segmentTime;
154
+ const number = currentNumber !== undefined ?
153
155
  currentNumber + segmentNumberInCurrentRange :
154
156
  undefined;
155
- var segment = { id: String(segmentTime),
157
+ const segment = { id: String(segmentTime),
156
158
  isInit: false,
157
159
  time: time / timescale,
158
160
  end: (time + duration) / timescale,
159
161
  duration: duration / timescale,
160
- timescale: 1, number: number, url: replaceSegmentSmoothTokens(media, time),
162
+ timescale: 1,
163
+ number,
164
+ url: (0, tokens_1.replaceSegmentSmoothTokens)(media, time),
161
165
  complete: true,
162
- privateInfos: { smoothMediaSegment: { time: time, duration: duration } } };
166
+ privateInfos: { smoothMediaSegment: { time,
167
+ duration } } };
163
168
  segments.push(segment);
164
169
  // update segment number and segment time for the next segment
165
170
  segmentNumberInCurrentRange++;
@@ -174,7 +179,7 @@ var SmoothRepresentationIndex = /** @class */ (function () {
174
179
  }
175
180
  }
176
181
  return segments;
177
- };
182
+ }
178
183
  /**
179
184
  * Returns true if, based on the arguments, the index should be refreshed.
180
185
  * (If we should re-fetch the manifest)
@@ -182,18 +187,18 @@ var SmoothRepresentationIndex = /** @class */ (function () {
182
187
  * @param {Number} to
183
188
  * @returns {Boolean}
184
189
  */
185
- SmoothRepresentationIndex.prototype.shouldRefresh = function (up, to) {
190
+ shouldRefresh(up, to) {
186
191
  this._refreshTimeline();
187
192
  if (!this._isLive) {
188
193
  return false;
189
194
  }
190
- var _a = this._sharedSmoothTimeline, timeline = _a.timeline, timescale = _a.timescale;
191
- var lastSegmentInCurrentTimeline = timeline[timeline.length - 1];
195
+ const { timeline, timescale } = this._sharedSmoothTimeline;
196
+ const lastSegmentInCurrentTimeline = timeline[timeline.length - 1];
192
197
  if (lastSegmentInCurrentTimeline === undefined) {
193
198
  return false;
194
199
  }
195
- var repeat = lastSegmentInCurrentTimeline.repeatCount;
196
- var endOfLastSegmentInCurrentTimeline = lastSegmentInCurrentTimeline.start + (repeat + 1) *
200
+ const repeat = lastSegmentInCurrentTimeline.repeatCount;
201
+ const endOfLastSegmentInCurrentTimeline = lastSegmentInCurrentTimeline.start + (repeat + 1) *
197
202
  lastSegmentInCurrentTimeline.duration;
198
203
  if (to * timescale < endOfLastSegmentInCurrentTimeline) {
199
204
  return false;
@@ -202,58 +207,58 @@ var SmoothRepresentationIndex = /** @class */ (function () {
202
207
  return true;
203
208
  }
204
209
  // ----
205
- var startOfLastSegmentInCurrentTimeline = lastSegmentInCurrentTimeline.start + repeat *
210
+ const startOfLastSegmentInCurrentTimeline = lastSegmentInCurrentTimeline.start + repeat *
206
211
  lastSegmentInCurrentTimeline.duration;
207
212
  return (up * timescale) > startOfLastSegmentInCurrentTimeline;
208
- };
213
+ }
209
214
  /**
210
215
  * Returns first position available in the index.
211
216
  * @returns {Number|null}
212
217
  */
213
- SmoothRepresentationIndex.prototype.getFirstAvailablePosition = function () {
218
+ getFirstAvailablePosition() {
214
219
  this._refreshTimeline();
215
- var _a = this._sharedSmoothTimeline, timeline = _a.timeline, timescale = _a.timescale;
220
+ const { timeline, timescale } = this._sharedSmoothTimeline;
216
221
  if (timeline.length === 0) {
217
222
  return null;
218
223
  }
219
224
  return timeline[0].start / timescale;
220
- };
225
+ }
221
226
  /**
222
227
  * Returns last position available in the index.
223
228
  * @returns {Number}
224
229
  */
225
- SmoothRepresentationIndex.prototype.getLastAvailablePosition = function () {
230
+ getLastAvailablePosition() {
226
231
  this._refreshTimeline();
227
- var _a = this._sharedSmoothTimeline, timeline = _a.timeline, timescale = _a.timescale;
232
+ const { timeline, timescale } = this._sharedSmoothTimeline;
228
233
  if (this._scaledLiveGap === undefined) {
229
- var lastTimelineElement = timeline[timeline.length - 1];
230
- return getIndexSegmentEnd(lastTimelineElement, null) / timescale;
234
+ const lastTimelineElement = timeline[timeline.length - 1];
235
+ return (0, index_helpers_1.getIndexSegmentEnd)(lastTimelineElement, null) / timescale;
231
236
  }
232
- for (var i = timeline.length - 1; i >= 0; i--) {
233
- var timelineElt = timeline[i];
234
- var timescaledNow = (getMonotonicTimeStamp() / 1000) * timescale;
235
- var start = timelineElt.start, duration = timelineElt.duration, repeatCount = timelineElt.repeatCount;
236
- for (var j = repeatCount; j >= 0; j--) {
237
- var end = start + (duration * (j + 1));
238
- var positionToReach = end;
237
+ for (let i = timeline.length - 1; i >= 0; i--) {
238
+ const timelineElt = timeline[i];
239
+ const timescaledNow = ((0, monotonic_timestamp_1.default)() / 1000) * timescale;
240
+ const { start, duration, repeatCount } = timelineElt;
241
+ for (let j = repeatCount; j >= 0; j--) {
242
+ const end = start + (duration * (j + 1));
243
+ const positionToReach = end;
239
244
  if (positionToReach <= timescaledNow - this._scaledLiveGap) {
240
245
  return end / timescale;
241
246
  }
242
247
  }
243
248
  }
244
249
  return undefined;
245
- };
250
+ }
246
251
  /**
247
252
  * Returns the absolute end in seconds this RepresentationIndex can reach once
248
253
  * all segments are available.
249
254
  * @returns {number|null|undefined}
250
255
  */
251
- SmoothRepresentationIndex.prototype.getEnd = function () {
256
+ getEnd() {
252
257
  if (!this._isLive) {
253
258
  return this.getLastAvailablePosition();
254
259
  }
255
260
  return undefined;
256
- };
261
+ }
257
262
  /**
258
263
  * Returns:
259
264
  * - `true` if in the given time interval, at least one new segment is
@@ -265,19 +270,19 @@ var SmoothRepresentationIndex = /** @class */ (function () {
265
270
  * @param {number} end
266
271
  * @returns {boolean|undefined}
267
272
  */
268
- SmoothRepresentationIndex.prototype.awaitSegmentBetween = function (start, end) {
273
+ awaitSegmentBetween(start, end) {
269
274
  var _a;
270
- assert(start <= end);
275
+ (0, assert_1.default)(start <= end);
271
276
  if (this.isFinished()) {
272
277
  return false;
273
278
  }
274
- var lastAvailablePosition = this.getLastAvailablePosition();
279
+ const lastAvailablePosition = this.getLastAvailablePosition();
275
280
  if (lastAvailablePosition !== undefined && end < lastAvailablePosition) {
276
281
  return false;
277
282
  }
278
283
  return end > ((_a = this.getFirstAvailablePosition()) !== null && _a !== void 0 ? _a : 0) ? undefined :
279
284
  false;
280
- };
285
+ }
281
286
  /**
282
287
  * Checks if `timeSec` is in a discontinuity.
283
288
  * That is, if there's no segment available for the `timeSec` position.
@@ -287,10 +292,10 @@ var SmoothRepresentationIndex = /** @class */ (function () {
287
292
  * `time`. If this is a number instead, there is one and that number is the
288
293
  * position for which a segment is available in seconds.
289
294
  */
290
- SmoothRepresentationIndex.prototype.checkDiscontinuity = function (timeSec) {
295
+ checkDiscontinuity(timeSec) {
291
296
  this._refreshTimeline();
292
- return checkDiscontinuity(this._sharedSmoothTimeline, timeSec, undefined);
293
- };
297
+ return (0, index_helpers_1.checkDiscontinuity)(this._sharedSmoothTimeline, timeSec, undefined);
298
+ }
294
299
  /**
295
300
  * Returns `true` if a Segment returned by this index is still considered
296
301
  * available.
@@ -299,45 +304,45 @@ var SmoothRepresentationIndex = /** @class */ (function () {
299
304
  * @param {Object} segment
300
305
  * @returns {Boolean|undefined}
301
306
  */
302
- SmoothRepresentationIndex.prototype.isSegmentStillAvailable = function (segment) {
307
+ isSegmentStillAvailable(segment) {
303
308
  if (segment.isInit) {
304
309
  return true;
305
310
  }
306
311
  this._refreshTimeline();
307
- var _a = this._sharedSmoothTimeline, timeline = _a.timeline, timescale = _a.timescale;
308
- return isSegmentStillAvailable(segment, timeline, timescale, 0);
309
- };
312
+ const { timeline, timescale } = this._sharedSmoothTimeline;
313
+ return (0, is_segment_still_available_1.default)(segment, timeline, timescale, 0);
314
+ }
310
315
  /**
311
316
  * @param {Error} error
312
317
  * @returns {Boolean}
313
318
  */
314
- SmoothRepresentationIndex.prototype.canBeOutOfSyncError = function (error) {
319
+ canBeOutOfSyncError(error) {
315
320
  if (!this._isLive) {
316
321
  return false;
317
322
  }
318
- return error instanceof NetworkError &&
323
+ return error instanceof errors_1.NetworkError &&
319
324
  (error.isHttpError(404) || error.isHttpError(412));
320
- };
325
+ }
321
326
  /**
322
327
  * Replace this RepresentationIndex by a newly downloaded one.
323
328
  * Check if the old index had more information about new segments and re-add
324
329
  * them if that's the case.
325
330
  * @param {Object} newIndex
326
331
  */
327
- SmoothRepresentationIndex.prototype._replace = function (newIndex) {
332
+ _replace(newIndex) {
328
333
  this._initialScaledLastPosition = newIndex._initialScaledLastPosition;
329
334
  this._scaledLiveGap = newIndex._scaledLiveGap;
330
335
  this._sharedSmoothTimeline.replace(newIndex._sharedSmoothTimeline);
331
- };
336
+ }
332
337
  /**
333
338
  * Update the current index with a new, partial, version.
334
339
  * This method might be use to only add information about new segments.
335
340
  * @param {Object} newIndex
336
341
  */
337
- SmoothRepresentationIndex.prototype._update = function (newIndex) {
342
+ _update(newIndex) {
338
343
  this._scaledLiveGap = newIndex._scaledLiveGap;
339
344
  this._sharedSmoothTimeline.update(newIndex._sharedSmoothTimeline);
340
- };
345
+ }
341
346
  /**
342
347
  * Returns `true` if the last segments in this index have already been
343
348
  * generated.
@@ -349,18 +354,18 @@ var SmoothRepresentationIndex = /** @class */ (function () {
349
354
  * TODO What about Smooth live content that finishes at some point?
350
355
  * @returns {boolean}
351
356
  */
352
- SmoothRepresentationIndex.prototype.isFinished = function () {
357
+ isFinished() {
353
358
  return !this._isLive;
354
- };
359
+ }
355
360
  /**
356
361
  * @returns {Boolean}
357
362
  */
358
- SmoothRepresentationIndex.prototype.isInitialized = function () {
363
+ isInitialized() {
359
364
  return true;
360
- };
361
- SmoothRepresentationIndex.prototype.initialize = function () {
362
- log.error("A `SmoothRepresentationIndex` does not need to be initialized");
363
- };
365
+ }
366
+ initialize() {
367
+ log_1.default.error("A `SmoothRepresentationIndex` does not need to be initialized");
368
+ }
364
369
  /**
365
370
  * Add segments to a `SharedSmoothSegmentTimeline` that were predicted to come
366
371
  * after `currentSegment`.
@@ -368,16 +373,15 @@ var SmoothRepresentationIndex = /** @class */ (function () {
368
373
  * @param {Object} segment - Information on the segment which contained that
369
374
  * new segment information.
370
375
  */
371
- SmoothRepresentationIndex.prototype.addPredictedSegments = function (nextSegments, currentSegment) {
376
+ addPredictedSegments(nextSegments, currentSegment) {
372
377
  this._sharedSmoothTimeline.addPredictedSegments(nextSegments, currentSegment);
373
- };
378
+ }
374
379
  /**
375
380
  * Clean-up timeline to remove segment information which should not be
376
381
  * available due to the timeshift window
377
382
  */
378
- SmoothRepresentationIndex.prototype._refreshTimeline = function () {
383
+ _refreshTimeline() {
379
384
  this._sharedSmoothTimeline.refresh();
380
- };
381
- return SmoothRepresentationIndex;
382
- }());
383
- export default SmoothRepresentationIndex;
385
+ }
386
+ }
387
+ exports.default = SmoothRepresentationIndex;