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,27 +14,19 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
17
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
18
- if (ar || !(i in from)) {
19
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
20
- ar[i] = from[i];
21
- }
22
- }
23
- return to.concat(ar || Array.prototype.slice.call(from));
24
- };
25
- import log from "../../../log";
26
- var LocalRepresentationIndex = /** @class */ (function () {
27
- function LocalRepresentationIndex(index, representationId) {
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../log");
19
+ class LocalRepresentationIndex {
20
+ constructor(index, representationId) {
28
21
  this._index = index;
29
22
  this._representationId = representationId;
30
23
  }
31
24
  /**
32
25
  * @returns {Object}
33
26
  */
34
- LocalRepresentationIndex.prototype.getInitSegment = function () {
27
+ getInitSegment() {
35
28
  return {
36
- id: "".concat(this._representationId, "_init"),
29
+ id: `${this._representationId}_init`,
37
30
  isInit: true,
38
31
  time: 0,
39
32
  end: 0,
@@ -45,32 +38,31 @@ var LocalRepresentationIndex = /** @class */ (function () {
45
38
  localManifestInitSegment: { load: this._index.loadInitSegment }
46
39
  },
47
40
  };
48
- };
41
+ }
49
42
  /**
50
43
  * @param {Number} up
51
44
  * @param {Number} duration
52
45
  * @returns {Array.<Object>}
53
46
  */
54
- LocalRepresentationIndex.prototype.getSegments = function (up, duration) {
55
- var _this = this;
56
- var startTime = up;
57
- var endTime = up + duration;
58
- var wantedSegments = [];
59
- for (var i = 0; i < this._index.segments.length; i++) {
60
- var segment = this._index.segments[i];
61
- var segmentStart = segment.time;
47
+ getSegments(up, duration) {
48
+ const startTime = up;
49
+ const endTime = up + duration;
50
+ const wantedSegments = [];
51
+ for (let i = 0; i < this._index.segments.length; i++) {
52
+ const segment = this._index.segments[i];
53
+ const segmentStart = segment.time;
62
54
  if (endTime <= segmentStart) {
63
55
  break;
64
56
  }
65
- var segmentEnd = segment.time + segment.duration;
57
+ const segmentEnd = segment.time + segment.duration;
66
58
  if (segmentEnd > startTime) {
67
59
  wantedSegments.push(segment);
68
60
  }
69
61
  }
70
62
  return wantedSegments
71
- .map(function (wantedSegment) {
63
+ .map(wantedSegment => {
72
64
  return {
73
- id: "".concat(_this._representationId, "_").concat(wantedSegment.time),
65
+ id: `${this._representationId}_${wantedSegment.time}`,
74
66
  isInit: false,
75
67
  time: wantedSegment.time,
76
68
  end: wantedSegment.time + wantedSegment.duration,
@@ -80,54 +72,54 @@ var LocalRepresentationIndex = /** @class */ (function () {
80
72
  url: null,
81
73
  complete: true,
82
74
  privateInfos: {
83
- localManifestSegment: { load: _this._index.loadSegment,
75
+ localManifestSegment: { load: this._index.loadSegment,
84
76
  segment: wantedSegment },
85
77
  },
86
78
  };
87
79
  });
88
- };
80
+ }
89
81
  /**
90
82
  * @returns {Number|undefined}
91
83
  */
92
- LocalRepresentationIndex.prototype.getFirstAvailablePosition = function () {
84
+ getFirstAvailablePosition() {
93
85
  if (this._index.segments.length === 0) {
94
86
  return undefined;
95
87
  }
96
- var firstSegment = this._index.segments[0];
88
+ const firstSegment = this._index.segments[0];
97
89
  return firstSegment.time;
98
- };
90
+ }
99
91
  /**
100
92
  * @returns {Number|undefined}
101
93
  */
102
- LocalRepresentationIndex.prototype.getLastAvailablePosition = function () {
94
+ getLastAvailablePosition() {
103
95
  if (this._index.segments.length === 0) {
104
96
  return undefined;
105
97
  }
106
- var lastSegment = this._index.segments[this._index.segments.length - 1];
98
+ const lastSegment = this._index.segments[this._index.segments.length - 1];
107
99
  return lastSegment.time + lastSegment.duration;
108
- };
100
+ }
109
101
  /**
110
102
  * Returns the expected ending position of this RepresentationIndex.
111
103
  * `undefined` if unknown.
112
104
  * @returns {number|undefined}
113
105
  */
114
- LocalRepresentationIndex.prototype.getEnd = function () {
106
+ getEnd() {
115
107
  if (this._index.isFinished) {
116
108
  return this.getLastAvailablePosition();
117
109
  }
118
- var _a = this._index, incomingRanges = _a.incomingRanges, segments = _a.segments;
110
+ const { incomingRanges, segments } = this._index;
119
111
  if (incomingRanges === undefined || incomingRanges.length === 0) {
120
112
  // If incomingRanges is empty but not finished... It's ambiguous.
121
113
  return undefined;
122
114
  }
123
- var lastIncomingRange = incomingRanges[incomingRanges.length - 1];
124
- var futureEnd = lastIncomingRange.end;
115
+ const lastIncomingRange = incomingRanges[incomingRanges.length - 1];
116
+ const futureEnd = lastIncomingRange.end;
125
117
  if (segments.length === 0) {
126
118
  return futureEnd;
127
119
  }
128
- var lastSegment = this._index.segments[this._index.segments.length - 1];
120
+ const lastSegment = this._index.segments[this._index.segments.length - 1];
129
121
  return Math.max(lastSegment.time + lastSegment.duration, futureEnd);
130
- };
122
+ }
131
123
  /**
132
124
  * Returns:
133
125
  * - `true` if in the given time interval, at least one new segment is
@@ -139,84 +131,80 @@ var LocalRepresentationIndex = /** @class */ (function () {
139
131
  * @param {number} end
140
132
  * @returns {boolean|undefined}
141
133
  */
142
- LocalRepresentationIndex.prototype.awaitSegmentBetween = function (start, end) {
134
+ awaitSegmentBetween(start, end) {
143
135
  if (this.isFinished()) {
144
136
  return false;
145
137
  }
146
138
  if (this._index.incomingRanges === undefined) {
147
139
  return undefined;
148
140
  }
149
- return this._index.incomingRanges.some(function (range) {
150
- return range.start < end && range.end > start;
151
- });
152
- };
141
+ return this._index.incomingRanges.some((range) => range.start < end && range.end > start);
142
+ }
153
143
  /**
154
144
  * @returns {Boolean}
155
145
  */
156
- LocalRepresentationIndex.prototype.shouldRefresh = function () {
146
+ shouldRefresh() {
157
147
  return false;
158
- };
148
+ }
159
149
  /**
160
150
  * @returns {Boolean}
161
151
  */
162
- LocalRepresentationIndex.prototype.isSegmentStillAvailable = function () {
152
+ isSegmentStillAvailable() {
163
153
  return true;
164
- };
165
- LocalRepresentationIndex.prototype.isFinished = function () {
154
+ }
155
+ isFinished() {
166
156
  return this._index.isFinished;
167
- };
157
+ }
168
158
  /**
169
159
  * @returns {Boolean}
170
160
  */
171
- LocalRepresentationIndex.prototype.canBeOutOfSyncError = function () {
161
+ canBeOutOfSyncError() {
172
162
  return false;
173
- };
163
+ }
174
164
  /**
175
165
  * @returns {null}
176
166
  */
177
- LocalRepresentationIndex.prototype.checkDiscontinuity = function () {
167
+ checkDiscontinuity() {
178
168
  return null;
179
- };
169
+ }
180
170
  /**
181
171
  * @returns {Boolean}
182
172
  */
183
- LocalRepresentationIndex.prototype.isInitialized = function () {
173
+ isInitialized() {
184
174
  return true;
185
- };
186
- LocalRepresentationIndex.prototype.initialize = function () {
187
- log.error("A `LocalRepresentationIndex` does not need to be initialized");
188
- };
189
- LocalRepresentationIndex.prototype.addPredictedSegments = function () {
190
- log.warn("Cannot add predicted segments to a `LocalRepresentationIndex`");
191
- };
192
- LocalRepresentationIndex.prototype._replace = function (newIndex) {
175
+ }
176
+ initialize() {
177
+ log_1.default.error("A `LocalRepresentationIndex` does not need to be initialized");
178
+ }
179
+ addPredictedSegments() {
180
+ log_1.default.warn("Cannot add predicted segments to a `LocalRepresentationIndex`");
181
+ }
182
+ _replace(newIndex) {
193
183
  this._index.segments = newIndex._index.segments;
194
184
  this._index.loadSegment = newIndex._index.loadSegment;
195
185
  this._index.loadInitSegment = newIndex._index.loadInitSegment;
196
- };
197
- LocalRepresentationIndex.prototype._update = function (newIndex) {
198
- var _this = this;
199
- var newSegments = newIndex._index.segments;
186
+ }
187
+ _update(newIndex) {
188
+ const newSegments = newIndex._index.segments;
200
189
  if (newSegments.length <= 0) {
201
190
  return;
202
191
  }
203
- var insertNewIndexAtPosition = function (pos) {
204
- var _a;
205
- (_a = _this._index.segments).splice.apply(_a, __spreadArray([pos, oldIndexLength - pos], newSegments, false));
206
- _this._index.loadSegment = newIndex._index.loadSegment;
207
- _this._index.loadInitSegment = newIndex._index.loadInitSegment;
192
+ const insertNewIndexAtPosition = (pos) => {
193
+ this._index.segments.splice(pos, oldIndexLength - pos, ...newSegments);
194
+ this._index.loadSegment = newIndex._index.loadSegment;
195
+ this._index.loadInitSegment = newIndex._index.loadInitSegment;
208
196
  };
209
- var oldIndexLength = this._index.segments.length;
210
- var newIndexStart = newSegments[0].time;
211
- for (var i = oldIndexLength - 1; i >= 0; i--) {
212
- var currSegment = this._index.segments[i];
197
+ const oldIndexLength = this._index.segments.length;
198
+ const newIndexStart = newSegments[0].time;
199
+ for (let i = oldIndexLength - 1; i >= 0; i--) {
200
+ const currSegment = this._index.segments[i];
213
201
  if (currSegment.time === newIndexStart) {
214
202
  return insertNewIndexAtPosition(i);
215
203
  }
216
204
  else if (currSegment.time < newIndexStart) {
217
205
  if (currSegment.time + currSegment.duration > newIndexStart) {
218
206
  // the new Manifest overlaps a previous segment (weird). Remove the latter.
219
- log.warn("Local RepresentationIndex: Manifest update removed" +
207
+ log_1.default.warn("Local RepresentationIndex: Manifest update removed" +
220
208
  " previous segments");
221
209
  return insertNewIndexAtPosition(i);
222
210
  }
@@ -226,15 +214,14 @@ var LocalRepresentationIndex = /** @class */ (function () {
226
214
  // if we got here, it means that every segments in the previous manifest are
227
215
  // after the new one. This is unusual.
228
216
  // Either the new one has more depth or it's an older one.
229
- var oldIndexEnd = this._index.segments[oldIndexLength - 1].time +
217
+ const oldIndexEnd = this._index.segments[oldIndexLength - 1].time +
230
218
  this._index.segments[oldIndexLength - 1].duration;
231
- var newIndexEnd = newSegments[newSegments.length - 1].time +
219
+ const newIndexEnd = newSegments[newSegments.length - 1].time +
232
220
  newSegments[newSegments.length - 1].duration;
233
221
  if (oldIndexEnd >= newIndexEnd) {
234
222
  return;
235
223
  }
236
224
  return this._replace(newIndex);
237
- };
238
- return LocalRepresentationIndex;
239
- }());
240
- export default LocalRepresentationIndex;
225
+ }
226
+ }
227
+ exports.default = LocalRepresentationIndex;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,4 +14,4 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- export {};
17
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,5 +14,6 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import parseMetaPlaylist from "./metaplaylist_parser";
17
- export default parseMetaPlaylist;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const metaplaylist_parser_1 = require("./metaplaylist_parser");
19
+ exports.default = metaplaylist_parser_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,11 +14,12 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { StaticRepresentationIndex, SUPPORTED_ADAPTATIONS_TYPE, } from "../../../manifest";
17
- import idGenerator from "../../../utils/id_generator";
18
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
19
- import { getFilenameIndexInUrl } from "../../../utils/resolve_url";
20
- import MetaRepresentationIndex from "./representation_index";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const manifest_1 = require("../../../manifest");
19
+ const id_generator_1 = require("../../../utils/id_generator");
20
+ const monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
21
+ const resolve_url_1 = require("../../../utils/resolve_url");
22
+ const representation_index_1 = require("./representation_index");
21
23
  /**
22
24
  * Parse playlist string to JSON.
23
25
  * Returns an array of contents.
@@ -25,8 +27,8 @@ import MetaRepresentationIndex from "./representation_index";
25
27
  * @param {string} url
26
28
  * @returns {Object}
27
29
  */
28
- export default function parseMetaPlaylist(data, parserOptions) {
29
- var parsedData;
30
+ function parseMetaPlaylist(data, parserOptions) {
31
+ let parsedData;
30
32
  if (typeof data === "object" && data != null) {
31
33
  parsedData = data;
32
34
  }
@@ -43,7 +45,7 @@ export default function parseMetaPlaylist(data, parserOptions) {
43
45
  throw new Error("MPL Parser: Parser input must be either a string " +
44
46
  "or the MetaPlaylist data directly.");
45
47
  }
46
- var _a = parsedData, contents = _a.contents, version = _a.version, type = _a.type;
48
+ const { contents, version, type } = parsedData;
47
49
  if (type !== "MPL") {
48
50
  throw new Error("MPL Parser: Bad MetaPlaylist. " +
49
51
  "The `type` property is not set to `MPL`");
@@ -55,9 +57,9 @@ export default function parseMetaPlaylist(data, parserOptions) {
55
57
  if (contents == null || contents.length === 0) {
56
58
  throw new Error("MPL Parser: No content found.");
57
59
  }
58
- var ressources = [];
59
- for (var i = 0; i < contents.length; i++) {
60
- var content = contents[i];
60
+ const ressources = [];
61
+ for (let i = 0; i < contents.length; i++) {
62
+ const content = contents[i];
61
63
  if (content.url == null ||
62
64
  content.startTime == null ||
63
65
  content.endTime == null ||
@@ -66,18 +68,19 @@ export default function parseMetaPlaylist(data, parserOptions) {
66
68
  }
67
69
  ressources.push({ url: content.url, transportType: content.transport });
68
70
  }
69
- var metaPlaylist = parsedData;
71
+ const metaPlaylist = parsedData;
70
72
  return {
71
73
  type: "needs-manifest-loader",
72
74
  value: {
73
- ressources: ressources,
75
+ ressources,
74
76
  continue: function parseWholeMPL(loadedRessources) {
75
- var parsedManifest = createManifest(metaPlaylist, loadedRessources, parserOptions);
77
+ const parsedManifest = createManifest(metaPlaylist, loadedRessources, parserOptions);
76
78
  return { type: "done", value: parsedManifest };
77
79
  },
78
80
  },
79
81
  };
80
82
  }
83
+ exports.default = parseMetaPlaylist;
81
84
  /**
82
85
  * From several parsed manifests, generate a single bigger manifest.
83
86
  * Each content presents a start and end time, so that periods
@@ -88,56 +91,55 @@ export default function parseMetaPlaylist(data, parserOptions) {
88
91
  * @returns {Object}
89
92
  */
90
93
  function createManifest(mplData, manifests, parserOptions) {
91
- var url = parserOptions.url, serverSyncInfos = parserOptions.serverSyncInfos;
92
- var clockOffset = serverSyncInfos !== undefined ?
94
+ const { url, serverSyncInfos } = parserOptions;
95
+ const clockOffset = serverSyncInfos !== undefined ?
93
96
  serverSyncInfos.serverTimestamp - serverSyncInfos.clientTime :
94
97
  undefined;
95
- var generateAdaptationID = idGenerator();
96
- var generateRepresentationID = idGenerator();
97
- var contents = mplData.contents;
98
- var minimumTime = contents.length > 0 ? contents[0].startTime :
98
+ const generateAdaptationID = (0, id_generator_1.default)();
99
+ const generateRepresentationID = (0, id_generator_1.default)();
100
+ const { contents } = mplData;
101
+ const minimumTime = contents.length > 0 ? contents[0].startTime :
99
102
  0;
100
- var maximumTime = contents.length > 0 ? contents[contents.length - 1].endTime :
103
+ const maximumTime = contents.length > 0 ? contents[contents.length - 1].endTime :
101
104
  0;
102
- var isDynamic = mplData.dynamic === true;
103
- var firstStart = null;
104
- var lastEnd = null;
105
- var periods = [];
106
- var _loop_1 = function (iMan) {
107
- var content = contents[iMan];
105
+ const isDynamic = mplData.dynamic === true;
106
+ let firstStart = null;
107
+ let lastEnd = null;
108
+ const periods = [];
109
+ for (let iMan = 0; iMan < contents.length; iMan++) {
110
+ const content = contents[iMan];
108
111
  firstStart = firstStart !== null ? Math.min(firstStart, content.startTime) :
109
112
  content.startTime;
110
113
  lastEnd = lastEnd !== null ? Math.max(lastEnd, content.endTime) :
111
114
  content.endTime;
112
- var currentManifest = manifests[iMan];
115
+ const currentManifest = manifests[iMan];
113
116
  if (currentManifest.periods.length <= 0) {
114
- return "continue";
117
+ continue;
115
118
  }
116
- var contentOffset = content.startTime - currentManifest.periods[0].start;
117
- var contentEnd = content.endTime;
118
- var manifestPeriods = [];
119
- var _loop_2 = function (iPer) {
120
- var _a;
121
- var currentPeriod = currentManifest.periods[iPer];
122
- var adaptations = SUPPORTED_ADAPTATIONS_TYPE
123
- .reduce(function (acc, type) {
124
- var currentAdaptations = currentPeriod.adaptations[type];
119
+ const contentOffset = content.startTime - currentManifest.periods[0].start;
120
+ const contentEnd = content.endTime;
121
+ const manifestPeriods = [];
122
+ for (let iPer = 0; iPer < currentManifest.periods.length; iPer++) {
123
+ const currentPeriod = currentManifest.periods[iPer];
124
+ const adaptations = manifest_1.SUPPORTED_ADAPTATIONS_TYPE
125
+ .reduce((acc, type) => {
126
+ const currentAdaptations = currentPeriod.adaptations[type];
125
127
  if (currentAdaptations == null) {
126
128
  return acc;
127
129
  }
128
- var adaptationsForCurrentType = [];
129
- for (var iAda = 0; iAda < currentAdaptations.length; iAda++) {
130
- var currentAdaptation = currentAdaptations[iAda];
131
- var representations = [];
132
- for (var iRep = 0; iRep < currentAdaptation.representations.length; iRep++) {
133
- var currentRepresentation = currentAdaptation.representations[iRep];
134
- var baseContentMetadata = {
130
+ const adaptationsForCurrentType = [];
131
+ for (let iAda = 0; iAda < currentAdaptations.length; iAda++) {
132
+ const currentAdaptation = currentAdaptations[iAda];
133
+ const representations = [];
134
+ for (let iRep = 0; iRep < currentAdaptation.representations.length; iRep++) {
135
+ const currentRepresentation = currentAdaptation.representations[iRep];
136
+ const baseContentMetadata = {
135
137
  isLive: currentManifest.isLive,
136
138
  manifestPublishTime: currentManifest.publishTime,
137
139
  periodStart: currentPeriod.start,
138
140
  periodEnd: currentPeriod.end,
139
141
  };
140
- var newIndex = new MetaRepresentationIndex(currentRepresentation.index, [contentOffset, contentEnd], content.transport, baseContentMetadata);
142
+ const newIndex = new representation_index_1.default(currentRepresentation.index, [contentOffset, contentEnd], content.transport, baseContentMetadata);
141
143
  representations.push({
142
144
  bitrate: currentRepresentation.bitrate,
143
145
  index: newIndex,
@@ -154,7 +156,7 @@ function createManifest(mplData, manifests, parserOptions) {
154
156
  }
155
157
  adaptationsForCurrentType.push({
156
158
  id: currentAdaptation.id,
157
- representations: representations,
159
+ representations,
158
160
  type: currentAdaptation.type,
159
161
  audioDescription: currentAdaptation.isAudioDescription,
160
162
  closedCaption: currentAdaptation.isClosedCaption,
@@ -167,14 +169,14 @@ function createManifest(mplData, manifests, parserOptions) {
167
169
  return acc;
168
170
  }, {});
169
171
  // TODO only first period?
170
- var textTracks = content.textTracks === undefined ? [] :
172
+ const textTracks = content.textTracks === undefined ? [] :
171
173
  content.textTracks;
172
- var newTextAdaptations = textTracks.map(function (track) {
173
- var adaptationID = "gen-text-ada-" + generateAdaptationID();
174
- var representationID = "gen-text-rep-" + generateRepresentationID();
175
- var indexOfFilename = getFilenameIndexInUrl(track.url);
176
- var cdnUrl = track.url.substring(0, indexOfFilename);
177
- var filename = track.url.substring(indexOfFilename);
174
+ const newTextAdaptations = textTracks.map((track) => {
175
+ const adaptationID = "gen-text-ada-" + generateAdaptationID();
176
+ const representationID = "gen-text-rep-" + generateRepresentationID();
177
+ const indexOfFilename = (0, resolve_url_1.getFilenameIndexInUrl)(track.url);
178
+ const cdnUrl = track.url.substring(0, indexOfFilename);
179
+ const filename = track.url.substring(indexOfFilename);
178
180
  return {
179
181
  id: adaptationID,
180
182
  type: "text",
@@ -187,7 +189,7 @@ function createManifest(mplData, manifests, parserOptions) {
187
189
  id: representationID,
188
190
  mimeType: track.mimeType,
189
191
  codecs: track.codecs,
190
- index: new StaticRepresentationIndex({ media: filename }),
192
+ index: new manifest_1.StaticRepresentationIndex({ media: filename }),
191
193
  },
192
194
  ],
193
195
  };
@@ -197,22 +199,19 @@ function createManifest(mplData, manifests, parserOptions) {
197
199
  adaptations.text = newTextAdaptations;
198
200
  }
199
201
  else {
200
- (_a = adaptations.text).push.apply(_a, newTextAdaptations);
202
+ adaptations.text.push(...newTextAdaptations);
201
203
  }
202
204
  }
203
- var newPeriod = {
205
+ const newPeriod = {
204
206
  id: formatId(currentManifest.id) + "_" + formatId(currentPeriod.id),
205
- adaptations: adaptations,
207
+ adaptations,
206
208
  duration: currentPeriod.duration,
207
209
  start: contentOffset + currentPeriod.start,
208
210
  };
209
211
  manifestPeriods.push(newPeriod);
210
- };
211
- for (var iPer = 0; iPer < currentManifest.periods.length; iPer++) {
212
- _loop_2(iPer);
213
212
  }
214
- for (var i = manifestPeriods.length - 1; i >= 0; i--) {
215
- var period = manifestPeriods[i];
213
+ for (let i = manifestPeriods.length - 1; i >= 0; i--) {
214
+ const period = manifestPeriods[i];
216
215
  if (period.start >= content.endTime) {
217
216
  manifestPeriods.splice(i, 1);
218
217
  }
@@ -225,18 +224,22 @@ function createManifest(mplData, manifests, parserOptions) {
225
224
  period.duration = content.endTime - period.start;
226
225
  }
227
226
  }
228
- periods.push.apply(periods, manifestPeriods);
229
- };
230
- for (var iMan = 0; iMan < contents.length; iMan++) {
231
- _loop_1(iMan);
227
+ periods.push(...manifestPeriods);
232
228
  }
233
- var time = getMonotonicTimeStamp();
234
- var isLastPeriodKnown = !isDynamic ||
229
+ const time = (0, monotonic_timestamp_1.default)();
230
+ const isLastPeriodKnown = !isDynamic ||
235
231
  mplData.pollInterval === undefined &&
236
232
  (manifests.length <= 0 ||
237
233
  manifests[manifests.length - 1].isLastPeriodKnown);
238
- var manifest = { availabilityStartTime: 0, clockOffset: clockOffset, suggestedPresentationDelay: 10, periods: periods, transportType: "metaplaylist",
239
- isLive: isDynamic, isDynamic: isDynamic, isLastPeriodKnown: isLastPeriodKnown, uris: url == null ? [] :
234
+ const manifest = { availabilityStartTime: 0,
235
+ clockOffset,
236
+ suggestedPresentationDelay: 10,
237
+ periods,
238
+ transportType: "metaplaylist",
239
+ isLive: isDynamic,
240
+ isDynamic,
241
+ isLastPeriodKnown,
242
+ uris: url == null ? [] :
240
243
  [url],
241
244
  // TODO more precize time bounds?
242
245
  timeBounds: { minimumSafePosition: minimumTime,
@@ -245,7 +248,7 @@ function createManifest(mplData, manifests, parserOptions) {
245
248
  isLinear: false,
246
249
  maximumSafePosition: maximumTime,
247
250
  livePosition: undefined,
248
- time: time,
251
+ time,
249
252
  } },
250
253
  lifetime: mplData.pollInterval };
251
254
  return manifest;