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,56 +14,46 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __assign = (this && this.__assign) || function () {
17
- __assign = Object.assign || function(t) {
18
- for (var s, i = 1, n = arguments.length; i < n; i++) {
19
- s = arguments[i];
20
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
- t[p] = s[p];
22
- }
23
- return t;
24
- };
25
- return __assign.apply(this, arguments);
26
- };
27
- import config from "../../../../../../config";
28
- import { NetworkError } from "../../../../../../errors";
29
- import log from "../../../../../../log";
30
- import assert from "../../../../../../utils/assert";
31
- import getMonotonicTimeStamp from "../../../../../../utils/monotonic_timestamp";
32
- import clearTimelineFromPosition from "../../../../utils/clear_timeline_from_position";
33
- import { checkDiscontinuity, fromIndexTime, getIndexSegmentEnd, toIndexTime, } from "../../../../utils/index_helpers";
34
- import isSegmentStillAvailable from "../../../../utils/is_segment_still_available";
35
- import updateSegmentTimeline from "../../../../utils/update_segment_timeline";
36
- import getInitSegment from "../get_init_segment";
37
- import getSegmentsFromTimeline from "../get_segments_from_timeline";
38
- import { constructRepresentationUrl } from "../tokens";
39
- import { getSegmentTimeRoundingError } from "../utils";
40
- import constructTimelineFromElements from "./construct_timeline_from_elements";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const config_1 = require("../../../../../../config");
19
+ const errors_1 = require("../../../../../../errors");
20
+ const log_1 = require("../../../../../../log");
21
+ const assert_1 = require("../../../../../../utils/assert");
22
+ const monotonic_timestamp_1 = require("../../../../../../utils/monotonic_timestamp");
23
+ const clear_timeline_from_position_1 = require("../../../../utils/clear_timeline_from_position");
24
+ const index_helpers_1 = require("../../../../utils/index_helpers");
25
+ const is_segment_still_available_1 = require("../../../../utils/is_segment_still_available");
26
+ const update_segment_timeline_1 = require("../../../../utils/update_segment_timeline");
27
+ const get_init_segment_1 = require("../get_init_segment");
28
+ const get_segments_from_timeline_1 = require("../get_segments_from_timeline");
29
+ const tokens_1 = require("../tokens");
30
+ const utils_1 = require("../utils");
31
+ const construct_timeline_from_elements_1 = require("./construct_timeline_from_elements");
41
32
  // eslint-disable-next-line max-len
42
- import constructTimelineFromPreviousTimeline from "./construct_timeline_from_previous_timeline";
43
- var TimelineRepresentationIndex = /** @class */ (function () {
33
+ const construct_timeline_from_previous_timeline_1 = require("./construct_timeline_from_previous_timeline");
34
+ class TimelineRepresentationIndex {
44
35
  /**
45
36
  * @param {Object} index
46
37
  * @param {Object} context
47
38
  */
48
- function TimelineRepresentationIndex(index, context) {
39
+ constructor(index, context) {
49
40
  var _a, _b, _c;
50
41
  if (!TimelineRepresentationIndex.isTimelineIndexArgument(index)) {
51
42
  throw new Error("The given index is not compatible with a " +
52
43
  "TimelineRepresentationIndex.");
53
44
  }
54
- var availabilityTimeComplete = context.availabilityTimeComplete, manifestBoundsCalculator = context.manifestBoundsCalculator, isDynamic = context.isDynamic, isLastPeriod = context.isLastPeriod, representationId = context.representationId, representationBitrate = context.representationBitrate, periodStart = context.periodStart, periodEnd = context.periodEnd, isEMSGWhitelisted = context.isEMSGWhitelisted;
55
- var timescale = (_a = index.timescale) !== null && _a !== void 0 ? _a : 1;
56
- var presentationTimeOffset = index.presentationTimeOffset != null ?
45
+ const { availabilityTimeComplete, manifestBoundsCalculator, isDynamic, isLastPeriod, representationId, representationBitrate, periodStart, periodEnd, isEMSGWhitelisted } = context;
46
+ const timescale = (_a = index.timescale) !== null && _a !== void 0 ? _a : 1;
47
+ const presentationTimeOffset = index.presentationTimeOffset != null ?
57
48
  index.presentationTimeOffset :
58
49
  0;
59
- var scaledStart = periodStart * timescale;
60
- var indexTimeOffset = presentationTimeOffset - scaledStart;
50
+ const scaledStart = periodStart * timescale;
51
+ const indexTimeOffset = presentationTimeOffset - scaledStart;
61
52
  this._manifestBoundsCalculator = manifestBoundsCalculator;
62
53
  this._isEMSGWhitelisted = isEMSGWhitelisted;
63
54
  this._isLastPeriod = isLastPeriod;
64
55
  this._lastUpdate = context.receivedTime == null ?
65
- getMonotonicTimeStamp() :
56
+ (0, monotonic_timestamp_1.default)() :
66
57
  context.receivedTime;
67
58
  this._unsafelyBaseOnPreviousIndex = null;
68
59
  if (context.unsafelyBaseOnPreviousRepresentation !== null &&
@@ -76,98 +67,109 @@ var TimelineRepresentationIndex = /** @class */ (function () {
76
67
  }
77
68
  this._isDynamic = isDynamic;
78
69
  this._parseTimeline = (_b = index.timelineParser) !== null && _b !== void 0 ? _b : null;
79
- var initializationUrl = ((_c = index.initialization) === null || _c === void 0 ? void 0 : _c.media) === undefined ?
70
+ const initializationUrl = ((_c = index.initialization) === null || _c === void 0 ? void 0 : _c.media) === undefined ?
80
71
  null :
81
- constructRepresentationUrl(index.initialization.media, representationId, representationBitrate);
82
- var segmentUrlTemplate = index.media === undefined ?
72
+ (0, tokens_1.constructRepresentationUrl)(index.initialization.media, representationId, representationBitrate);
73
+ const segmentUrlTemplate = index.media === undefined ?
83
74
  null :
84
- constructRepresentationUrl(index.media, representationId, representationBitrate);
85
- this._index = { availabilityTimeComplete: availabilityTimeComplete, indexRange: index.indexRange, indexTimeOffset: indexTimeOffset, initialization: index.initialization == null ?
75
+ (0, tokens_1.constructRepresentationUrl)(index.media, representationId, representationBitrate);
76
+ this._index = { availabilityTimeComplete,
77
+ indexRange: index.indexRange,
78
+ indexTimeOffset,
79
+ initialization: index.initialization == null ?
86
80
  undefined :
87
81
  {
88
82
  url: initializationUrl,
89
83
  range: index.initialization.range,
90
- }, segmentUrlTemplate: segmentUrlTemplate, startNumber: index.startNumber,
84
+ },
85
+ segmentUrlTemplate,
86
+ startNumber: index.startNumber,
91
87
  endNumber: index.endNumber,
92
88
  timeline: index.timeline === undefined ?
93
89
  null :
94
- updateTimelineFromEndNumber(index.timeline, index.startNumber, index.endNumber), timescale: timescale };
95
- this._scaledPeriodStart = toIndexTime(periodStart, this._index);
90
+ updateTimelineFromEndNumber(index.timeline, index.startNumber, index.endNumber),
91
+ timescale };
92
+ this._scaledPeriodStart = (0, index_helpers_1.toIndexTime)(periodStart, this._index);
96
93
  this._scaledPeriodEnd = periodEnd === undefined ? undefined :
97
- toIndexTime(periodEnd, this._index);
94
+ (0, index_helpers_1.toIndexTime)(periodEnd, this._index);
98
95
  }
99
96
  /**
100
97
  * Construct init Segment.
101
98
  * @returns {Object}
102
99
  */
103
- TimelineRepresentationIndex.prototype.getInitSegment = function () {
104
- return getInitSegment(this._index, this._isEMSGWhitelisted);
105
- };
100
+ getInitSegment() {
101
+ return (0, get_init_segment_1.default)(this._index, this._isEMSGWhitelisted);
102
+ }
106
103
  /**
107
104
  * Asks for segments to download for a given time range.
108
105
  * @param {Number} from - Beginning of the time wanted, in seconds
109
106
  * @param {Number} duration - duration wanted, in seconds
110
107
  * @returns {Array.<Object>}
111
108
  */
112
- TimelineRepresentationIndex.prototype.getSegments = function (from, duration) {
109
+ getSegments(from, duration) {
113
110
  this._refreshTimeline(); // clear timeline if needed
114
111
  if (this._index.timeline === null) {
115
112
  this._index.timeline = this._getTimeline();
116
113
  }
117
114
  // destructuring to please TypeScript
118
- var _a = this._index, segmentUrlTemplate = _a.segmentUrlTemplate, startNumber = _a.startNumber, endNumber = _a.endNumber, timeline = _a.timeline, timescale = _a.timescale, indexTimeOffset = _a.indexTimeOffset;
119
- return getSegmentsFromTimeline({ segmentUrlTemplate: segmentUrlTemplate, startNumber: startNumber, endNumber: endNumber, timeline: timeline, timescale: timescale, indexTimeOffset: indexTimeOffset }, from, duration, this._isEMSGWhitelisted, this._scaledPeriodEnd);
120
- };
115
+ const { segmentUrlTemplate, startNumber, endNumber, timeline, timescale, indexTimeOffset } = this._index;
116
+ return (0, get_segments_from_timeline_1.default)({ segmentUrlTemplate,
117
+ startNumber,
118
+ endNumber,
119
+ timeline,
120
+ timescale,
121
+ indexTimeOffset }, from, duration, this._isEMSGWhitelisted, this._scaledPeriodEnd);
122
+ }
121
123
  /**
122
124
  * Returns true if the index should be refreshed.
123
125
  * @returns {Boolean}
124
126
  */
125
- TimelineRepresentationIndex.prototype.shouldRefresh = function () {
127
+ shouldRefresh() {
126
128
  // DASH Manifest based on a SegmentTimeline should have minimumUpdatePeriod
127
129
  // attribute which should be sufficient to know when to refresh it.
128
130
  return false;
129
- };
131
+ }
130
132
  /**
131
133
  * Returns the starting time, in seconds, of the earliest segment currently
132
134
  * available.
133
135
  * Returns null if nothing is in the index
134
136
  * @returns {Number|null}
135
137
  */
136
- TimelineRepresentationIndex.prototype.getFirstAvailablePosition = function () {
138
+ getFirstAvailablePosition() {
137
139
  this._refreshTimeline();
138
140
  if (this._index.timeline === null) {
139
141
  this._index.timeline = this._getTimeline();
140
142
  }
141
- var timeline = this._index.timeline;
143
+ const timeline = this._index.timeline;
142
144
  return timeline.length === 0 ? null :
143
- fromIndexTime(Math.max(this._scaledPeriodStart, timeline[0].start), this._index);
144
- };
145
+ (0, index_helpers_1.fromIndexTime)(Math.max(this._scaledPeriodStart, timeline[0].start), this._index);
146
+ }
145
147
  /**
146
148
  * Returns the ending time, in seconds, of the last segment currently
147
149
  * available.
148
150
  * Returns null if nothing is in the index
149
151
  * @returns {Number|null}
150
152
  */
151
- TimelineRepresentationIndex.prototype.getLastAvailablePosition = function () {
153
+ getLastAvailablePosition() {
152
154
  this._refreshTimeline();
153
155
  if (this._index.timeline === null) {
154
156
  this._index.timeline = this._getTimeline();
155
157
  }
156
- var lastTime = TimelineRepresentationIndex.getIndexEnd(this._index.timeline, this._scaledPeriodEnd);
158
+ const lastTime = TimelineRepresentationIndex.getIndexEnd(this._index.timeline, this._scaledPeriodEnd);
157
159
  return lastTime === null ? null :
158
- fromIndexTime(lastTime, this._index);
159
- };
160
+ (0, index_helpers_1.fromIndexTime)(lastTime, this._index);
161
+ }
160
162
  /**
161
163
  * Returns the absolute end in seconds this RepresentationIndex can reach once
162
164
  * all segments are available.
163
165
  * @returns {number|null|undefined}
164
166
  */
165
- TimelineRepresentationIndex.prototype.getEnd = function () {
167
+ getEnd() {
166
168
  if (!this._isDynamic || !this._isLastPeriod) { // @see isFinished
167
169
  return this.getLastAvailablePosition();
168
170
  }
169
171
  return undefined;
170
- };
172
+ }
171
173
  /**
172
174
  * Returns:
173
175
  * - `true` if in the given time interval, at least one new segment is
@@ -179,9 +181,9 @@ var TimelineRepresentationIndex = /** @class */ (function () {
179
181
  * @param {number} end
180
182
  * @returns {boolean|undefined}
181
183
  */
182
- TimelineRepresentationIndex.prototype.awaitSegmentBetween = function (start, end) {
184
+ awaitSegmentBetween(start, end) {
183
185
  var _a;
184
- assert(start <= end);
186
+ (0, assert_1.default)(start <= end);
185
187
  if (!this._isDynamic || !this._isLastPeriod) {
186
188
  return false;
187
189
  }
@@ -189,13 +191,13 @@ var TimelineRepresentationIndex = /** @class */ (function () {
189
191
  if (this._index.timeline === null) {
190
192
  this._index.timeline = this._getTimeline();
191
193
  }
192
- var _b = this._index, timeline = _b.timeline, timescale = _b.timescale;
193
- var segmentTimeRounding = getSegmentTimeRoundingError(timescale);
194
- var scaledEnd = toIndexTime(end, this._index);
194
+ const { timeline, timescale } = this._index;
195
+ const segmentTimeRounding = (0, utils_1.getSegmentTimeRoundingError)(timescale);
196
+ const scaledEnd = (0, index_helpers_1.toIndexTime)(end, this._index);
195
197
  if (timeline.length > 0) {
196
- var lastTimelineElement = timeline[timeline.length - 1];
197
- var lastSegmentEnd = getIndexSegmentEnd(lastTimelineElement, null, this._scaledPeriodEnd);
198
- var roundedEnd = lastSegmentEnd + segmentTimeRounding;
198
+ const lastTimelineElement = timeline[timeline.length - 1];
199
+ const lastSegmentEnd = (0, index_helpers_1.getIndexSegmentEnd)(lastTimelineElement, null, this._scaledPeriodEnd);
200
+ const roundedEnd = lastSegmentEnd + segmentTimeRounding;
199
201
  if (roundedEnd >= Math.min(scaledEnd, (_a = this._scaledPeriodEnd) !== null && _a !== void 0 ? _a : Infinity)) {
200
202
  return false; // already loaded
201
203
  }
@@ -204,10 +206,10 @@ var TimelineRepresentationIndex = /** @class */ (function () {
204
206
  return (scaledEnd + segmentTimeRounding) > this._scaledPeriodStart ? undefined :
205
207
  false;
206
208
  }
207
- var scaledStart = toIndexTime(start, this._index);
209
+ const scaledStart = (0, index_helpers_1.toIndexTime)(start, this._index);
208
210
  return (scaledStart - segmentTimeRounding) < this._scaledPeriodEnd &&
209
211
  (scaledEnd + segmentTimeRounding) > this._scaledPeriodStart;
210
- };
212
+ }
211
213
  /**
212
214
  * Returns true if a Segment returned by this index is still considered
213
215
  * available.
@@ -216,7 +218,7 @@ var TimelineRepresentationIndex = /** @class */ (function () {
216
218
  * @param {Object} segment
217
219
  * @returns {Boolean|undefined}
218
220
  */
219
- TimelineRepresentationIndex.prototype.isSegmentStillAvailable = function (segment) {
221
+ isSegmentStillAvailable(segment) {
220
222
  if (segment.isInit) {
221
223
  return true;
222
224
  }
@@ -224,9 +226,9 @@ var TimelineRepresentationIndex = /** @class */ (function () {
224
226
  if (this._index.timeline === null) {
225
227
  this._index.timeline = this._getTimeline();
226
228
  }
227
- var _a = this._index, timeline = _a.timeline, timescale = _a.timescale, indexTimeOffset = _a.indexTimeOffset;
228
- return isSegmentStillAvailable(segment, timeline, timescale, indexTimeOffset);
229
- };
229
+ const { timeline, timescale, indexTimeOffset } = this._index;
230
+ return (0, is_segment_still_available_1.default)(segment, timeline, timescale, indexTimeOffset);
231
+ }
230
232
  /**
231
233
  * Checks if the time given is in a discontinuity. That is:
232
234
  * - We're on the upper bound of the current range (end of the range - time
@@ -235,33 +237,34 @@ var TimelineRepresentationIndex = /** @class */ (function () {
235
237
  * @param {Number} time
236
238
  * @returns {Number|null}
237
239
  */
238
- TimelineRepresentationIndex.prototype.checkDiscontinuity = function (time) {
240
+ checkDiscontinuity(time) {
239
241
  this._refreshTimeline();
240
- var timeline = this._index.timeline;
242
+ let timeline = this._index.timeline;
241
243
  if (timeline === null) {
242
244
  timeline = this._getTimeline();
243
245
  this._index.timeline = timeline;
244
246
  }
245
- return checkDiscontinuity({ timeline: timeline, timescale: this._index.timescale,
247
+ return (0, index_helpers_1.checkDiscontinuity)({ timeline,
248
+ timescale: this._index.timescale,
246
249
  indexTimeOffset: this._index.indexTimeOffset }, time, this._scaledPeriodEnd);
247
- };
250
+ }
248
251
  /**
249
252
  * @param {Error} error
250
253
  * @returns {Boolean}
251
254
  */
252
- TimelineRepresentationIndex.prototype.canBeOutOfSyncError = function (error) {
255
+ canBeOutOfSyncError(error) {
253
256
  if (!this._isDynamic) {
254
257
  return false;
255
258
  }
256
- return error instanceof NetworkError &&
259
+ return error instanceof errors_1.NetworkError &&
257
260
  error.isHttpError(404);
258
- };
261
+ }
259
262
  /**
260
263
  * Replace this RepresentationIndex with one from a new version of the
261
264
  * Manifest.
262
265
  * @param {Object} newIndex
263
266
  */
264
- TimelineRepresentationIndex.prototype._replace = function (newIndex) {
267
+ _replace(newIndex) {
265
268
  this._parseTimeline = newIndex._parseTimeline;
266
269
  this._index = newIndex._index;
267
270
  this._isDynamic = newIndex._isDynamic;
@@ -270,20 +273,20 @@ var TimelineRepresentationIndex = /** @class */ (function () {
270
273
  this._lastUpdate = newIndex._lastUpdate;
271
274
  this._manifestBoundsCalculator = newIndex._manifestBoundsCalculator;
272
275
  this._isLastPeriod = newIndex._isLastPeriod;
273
- };
276
+ }
274
277
  /**
275
278
  * Update this RepresentationIndex with a shorter version of it coming from a
276
279
  * new version of the MPD.
277
280
  * @param {Object} newIndex
278
281
  */
279
- TimelineRepresentationIndex.prototype._update = function (newIndex) {
282
+ _update(newIndex) {
280
283
  if (this._index.timeline === null) {
281
284
  this._index.timeline = this._getTimeline();
282
285
  }
283
286
  if (newIndex._index.timeline === null) {
284
287
  newIndex._index.timeline = newIndex._getTimeline();
285
288
  }
286
- var hasReplaced = updateSegmentTimeline(this._index.timeline, newIndex._index.timeline);
289
+ const hasReplaced = (0, update_segment_timeline_1.default)(this._index.timeline, newIndex._index.timeline);
287
290
  if (hasReplaced) {
288
291
  this._index.startNumber = newIndex._index.startNumber;
289
292
  }
@@ -293,14 +296,14 @@ var TimelineRepresentationIndex = /** @class */ (function () {
293
296
  this._scaledPeriodEnd = newIndex._scaledPeriodEnd;
294
297
  this._lastUpdate = newIndex._lastUpdate;
295
298
  this._isLastPeriod = newIndex._isLastPeriod;
296
- };
299
+ }
297
300
  /**
298
301
  * Returns `true` if this RepresentationIndex currently contains its last
299
302
  * segment.
300
303
  * Returns `false` if it's still pending.
301
304
  * @returns {Boolean}
302
305
  */
303
- TimelineRepresentationIndex.prototype.isFinished = function () {
306
+ isFinished() {
304
307
  if (!this._isDynamic || !this._isLastPeriod) {
305
308
  // Either the content is not dynamic, in which case no new segment will
306
309
  // be generated, either it is but this index is not linked to the current
@@ -313,67 +316,67 @@ var TimelineRepresentationIndex = /** @class */ (function () {
313
316
  if (this._index.timeline === null) {
314
317
  this._index.timeline = this._getTimeline();
315
318
  }
316
- var timeline = this._index.timeline;
319
+ const { timeline } = this._index;
317
320
  if (this._scaledPeriodEnd === undefined || timeline.length === 0) {
318
321
  return false;
319
322
  }
320
- var lastTimelineElement = timeline[timeline.length - 1];
321
- var lastTime = getIndexSegmentEnd(lastTimelineElement, null, this._scaledPeriodEnd);
322
- var segmentTimeRounding = getSegmentTimeRoundingError(this._index.timescale);
323
+ const lastTimelineElement = timeline[timeline.length - 1];
324
+ const lastTime = (0, index_helpers_1.getIndexSegmentEnd)(lastTimelineElement, null, this._scaledPeriodEnd);
325
+ const segmentTimeRounding = (0, utils_1.getSegmentTimeRoundingError)(this._index.timescale);
323
326
  return (lastTime + segmentTimeRounding) >= this._scaledPeriodEnd;
324
- };
327
+ }
325
328
  /**
326
329
  * @returns {Boolean}
327
330
  */
328
- TimelineRepresentationIndex.prototype.isInitialized = function () {
331
+ isInitialized() {
329
332
  return true;
330
- };
331
- TimelineRepresentationIndex.prototype.initialize = function () {
332
- log.error("A `TimelineRepresentationIndex` does not need to be initialized");
333
- };
334
- TimelineRepresentationIndex.prototype.addPredictedSegments = function () {
335
- log.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`");
336
- };
333
+ }
334
+ initialize() {
335
+ log_1.default.error("A `TimelineRepresentationIndex` does not need to be initialized");
336
+ }
337
+ addPredictedSegments() {
338
+ log_1.default.warn("Cannot add predicted segments to a `TimelineRepresentationIndex`");
339
+ }
337
340
  /**
338
341
  * Returns `true` if the given object can be used as an "index" argument to
339
342
  * create a new `TimelineRepresentationIndex`.
340
343
  * @param {Object} index
341
344
  * @returns {boolean}
342
345
  */
343
- TimelineRepresentationIndex.isTimelineIndexArgument = function (index) {
346
+ static isTimelineIndexArgument(index) {
344
347
  return typeof index.timelineParser === "function" ||
345
348
  Array.isArray(index.timeline);
346
- };
349
+ }
347
350
  /**
348
351
  * Clean-up timeline to remove segment information which should not be
349
352
  * available due to timeshifting.
350
353
  */
351
- TimelineRepresentationIndex.prototype._refreshTimeline = function () {
354
+ _refreshTimeline() {
352
355
  if (this._index.timeline === null) {
353
356
  this._index.timeline = this._getTimeline();
354
357
  }
355
358
  if (!this._isDynamic) {
356
359
  return;
357
360
  }
358
- var firstPosition = this._manifestBoundsCalculator.estimateMinimumBound();
361
+ const firstPosition = this._manifestBoundsCalculator.estimateMinimumBound();
359
362
  if (firstPosition == null) {
360
363
  return; // we don't know yet
361
364
  }
362
- var scaledFirstPosition = toIndexTime(firstPosition, this._index);
363
- var nbEltsRemoved = clearTimelineFromPosition(this._index.timeline, scaledFirstPosition);
365
+ const scaledFirstPosition = (0, index_helpers_1.toIndexTime)(firstPosition, this._index);
366
+ const nbEltsRemoved = (0, clear_timeline_from_position_1.default)(this._index.timeline, scaledFirstPosition);
364
367
  if (this._index.startNumber !== undefined) {
365
368
  this._index.startNumber += nbEltsRemoved;
366
369
  }
367
370
  else if (this._index.endNumber !== undefined) {
368
371
  this._index.startNumber = nbEltsRemoved + 1;
369
372
  }
370
- };
371
- TimelineRepresentationIndex.getIndexEnd = function (timeline, scaledPeriodEnd) {
373
+ }
374
+ static getIndexEnd(timeline, scaledPeriodEnd) {
372
375
  if (timeline.length <= 0) {
373
376
  return null;
374
377
  }
375
- return Math.min(getIndexSegmentEnd(timeline[timeline.length - 1], null, scaledPeriodEnd), scaledPeriodEnd !== null && scaledPeriodEnd !== void 0 ? scaledPeriodEnd : Infinity);
376
- };
378
+ return Math.min((0, index_helpers_1.getIndexSegmentEnd)(timeline[timeline.length - 1], null, scaledPeriodEnd), scaledPeriodEnd !== null && scaledPeriodEnd !== void 0 ? scaledPeriodEnd : Infinity);
379
+ }
377
380
  /**
378
381
  * Allows to generate the "timeline" for this RepresentationIndex.
379
382
  * Call this function when the timeline is unknown.
@@ -396,24 +399,24 @@ var TimelineRepresentationIndex = /** @class */ (function () {
396
399
  * stream anymore.
397
400
  * @returns {Array.<Object>}
398
401
  */
399
- TimelineRepresentationIndex.prototype._getTimeline = function () {
402
+ _getTimeline() {
400
403
  if (this._parseTimeline === null) {
401
404
  if (this._index.timeline !== null) {
402
405
  return this._index.timeline;
403
406
  }
404
- log.error("DASH: Timeline already lazily parsed.");
407
+ log_1.default.error("DASH: Timeline already lazily parsed.");
405
408
  return [];
406
409
  }
407
- var newElements = this._parseTimeline();
410
+ const newElements = this._parseTimeline();
408
411
  this._parseTimeline = null; // Free memory
409
- var MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY = config.getCurrent().MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY;
412
+ const { MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY } = config_1.default.getCurrent();
410
413
  if (this._unsafelyBaseOnPreviousIndex === null ||
411
414
  newElements.length < MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY) {
412
415
  // Just completely parse the current timeline
413
- return updateTimelineFromEndNumber(constructTimelineFromElements(newElements), this._index.startNumber, this._index.endNumber);
416
+ return updateTimelineFromEndNumber((0, construct_timeline_from_elements_1.default)(newElements), this._index.startNumber, this._index.endNumber);
414
417
  }
415
418
  // Construct previously parsed timeline if not already done
416
- var prevTimeline;
419
+ let prevTimeline;
417
420
  if (this._unsafelyBaseOnPreviousIndex._index.timeline === null) {
418
421
  prevTimeline = this._unsafelyBaseOnPreviousIndex._getTimeline();
419
422
  this._unsafelyBaseOnPreviousIndex._index.timeline = prevTimeline;
@@ -422,11 +425,10 @@ var TimelineRepresentationIndex = /** @class */ (function () {
422
425
  prevTimeline = this._unsafelyBaseOnPreviousIndex._index.timeline;
423
426
  }
424
427
  this._unsafelyBaseOnPreviousIndex = null; // Free memory
425
- return updateTimelineFromEndNumber(constructTimelineFromPreviousTimeline(newElements, prevTimeline), this._index.startNumber, this._index.endNumber);
426
- };
427
- return TimelineRepresentationIndex;
428
- }());
429
- export default TimelineRepresentationIndex;
428
+ return updateTimelineFromEndNumber((0, construct_timeline_from_previous_timeline_1.default)(newElements, prevTimeline), this._index.startNumber, this._index.endNumber);
429
+ }
430
+ }
431
+ exports.default = TimelineRepresentationIndex;
430
432
  /**
431
433
  * Take the original SegmentTimeline's parsed timeline and, if an `endNumber` is
432
434
  * specified, filter segments which possess a number superior to that number.
@@ -443,18 +445,18 @@ function updateTimelineFromEndNumber(timeline, startNumber, endNumber) {
443
445
  if (endNumber === undefined) {
444
446
  return timeline;
445
447
  }
446
- var currNumber = startNumber !== null && startNumber !== void 0 ? startNumber : 1;
447
- for (var idx = 0; idx < timeline.length; idx++) {
448
- var seg = timeline[idx];
448
+ let currNumber = startNumber !== null && startNumber !== void 0 ? startNumber : 1;
449
+ for (let idx = 0; idx < timeline.length; idx++) {
450
+ const seg = timeline[idx];
449
451
  currNumber += seg.repeatCount + 1;
450
452
  if (currNumber > endNumber) {
451
453
  if (currNumber === endNumber + 1) {
452
454
  return timeline.slice(0, idx + 1);
453
455
  }
454
456
  else {
455
- var newTimeline = timeline.slice(0, idx);
456
- var lastElt = __assign({}, seg);
457
- var beginningNumber = currNumber - seg.repeatCount - 1;
457
+ const newTimeline = timeline.slice(0, idx);
458
+ const lastElt = Object.assign({}, seg);
459
+ const beginningNumber = currNumber - seg.repeatCount - 1;
458
460
  lastElt.repeatCount = Math.max(0, endNumber - beginningNumber);
459
461
  newTimeline.push(lastElt);
460
462
  return newTimeline;
@@ -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 isNonEmptyString from "../../../../../utils/is_non_empty_string";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.createDashUrlDetokenizer = exports.replaceRepresentationDASHTokens = exports.constructRepresentationUrl = void 0;
19
+ const is_non_empty_string_1 = require("../../../../../utils/is_non_empty_string");
17
20
  /**
18
21
  * Pad with 0 in the left of the given n argument to reach l length
19
22
  * @param {Number|string} n
@@ -21,11 +24,11 @@ import isNonEmptyString from "../../../../../utils/is_non_empty_string";
21
24
  * @returns {string}
22
25
  */
23
26
  function padLeftWithZeros(n, l) {
24
- var nToString = n.toString();
27
+ const nToString = n.toString();
25
28
  if (nToString.length >= l) {
26
29
  return nToString;
27
30
  }
28
- var arr = new Array(l + 1).join("0") + nToString;
31
+ const arr = new Array(l + 1).join("0") + nToString;
29
32
  return arr.slice(-l);
30
33
  }
31
34
  /**
@@ -33,8 +36,8 @@ function padLeftWithZeros(n, l) {
33
36
  * @returns {Function}
34
37
  */
35
38
  function processFormatedToken(replacer) {
36
- return function (_match, _format, widthStr) {
37
- var width = isNonEmptyString(widthStr) ? parseInt(widthStr, 10) :
39
+ return (_match, _format, widthStr) => {
40
+ const width = (0, is_non_empty_string_1.default)(widthStr) ? parseInt(widthStr, 10) :
38
41
  1;
39
42
  return padLeftWithZeros(String(replacer), width);
40
43
  };
@@ -45,9 +48,10 @@ function processFormatedToken(replacer) {
45
48
  * @param {number|undefined} bitrate
46
49
  * @returns {string}
47
50
  */
48
- export function constructRepresentationUrl(urlTemplate, representationId, bitrate) {
51
+ function constructRepresentationUrl(urlTemplate, representationId, bitrate) {
49
52
  return replaceRepresentationDASHTokens(urlTemplate, representationId, bitrate);
50
53
  }
54
+ exports.constructRepresentationUrl = constructRepresentationUrl;
51
55
  /**
52
56
  * Replace "tokens" written in a given path (e.g. $RepresentationID$) by the corresponding
53
57
  * infos, taken from the given segment.
@@ -56,7 +60,7 @@ export function constructRepresentationUrl(urlTemplate, representationId, bitrat
56
60
  * @param {number|undefined} bitrate
57
61
  * @returns {string}
58
62
  */
59
- export function replaceRepresentationDASHTokens(path, id, bitrate) {
63
+ function replaceRepresentationDASHTokens(path, id, bitrate) {
60
64
  if (path.indexOf("$") === -1) {
61
65
  return path;
62
66
  }
@@ -68,6 +72,7 @@ export function replaceRepresentationDASHTokens(path, id, bitrate) {
68
72
  bitrate));
69
73
  }
70
74
  }
75
+ exports.replaceRepresentationDASHTokens = replaceRepresentationDASHTokens;
71
76
  /**
72
77
  * Create function allowing to replace "tokens" in a given DASH segment URL
73
78
  * (e.g. $Time$, which has to be replaced by the segment's start time) by the
@@ -76,7 +81,7 @@ export function replaceRepresentationDASHTokens(path, id, bitrate) {
76
81
  * @param {number|undefined} nb
77
82
  * @returns {Function}
78
83
  */
79
- export function createDashUrlDetokenizer(time, nb) {
84
+ function createDashUrlDetokenizer(time, nb) {
80
85
  /**
81
86
  * Replace the tokens in the given `url` by the segment information defined
82
87
  * by the outer function.
@@ -92,13 +97,13 @@ export function createDashUrlDetokenizer(time, nb) {
92
97
  else {
93
98
  return url
94
99
  .replace(/\$\$/g, "$")
95
- .replace(/\$Number(\%0(\d+)d)?\$/g, function (_x, _y, widthStr) {
100
+ .replace(/\$Number(\%0(\d+)d)?\$/g, (_x, _y, widthStr) => {
96
101
  if (nb === undefined) {
97
102
  throw new Error("Segment number not defined in a $Number$ scheme");
98
103
  }
99
104
  return processFormatedToken(nb)(_x, _y, widthStr);
100
105
  })
101
- .replace(/\$Time(\%0(\d+)d)?\$/g, function (_x, _y, widthStr) {
106
+ .replace(/\$Time(\%0(\d+)d)?\$/g, (_x, _y, widthStr) => {
102
107
  if (time === undefined) {
103
108
  throw new Error("Segment time not defined in a $Time$ scheme");
104
109
  }
@@ -107,3 +112,4 @@ export function createDashUrlDetokenizer(time, nb) {
107
112
  }
108
113
  };
109
114
  }
115
+ exports.createDashUrlDetokenizer = createDashUrlDetokenizer;