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,12 +14,13 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import log from "../../../log";
17
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
18
- import clearTimelineFromPosition from "../utils/clear_timeline_from_position";
19
- import { getIndexSegmentEnd } from "../utils/index_helpers";
20
- import updateSegmentTimeline from "../utils/update_segment_timeline";
21
- import addSegmentInfos from "./utils/add_segment_infos";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../log");
19
+ const monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
20
+ const clear_timeline_from_position_1 = require("../utils/clear_timeline_from_position");
21
+ const index_helpers_1 = require("../utils/index_helpers");
22
+ const update_segment_timeline_1 = require("../utils/update_segment_timeline");
23
+ const add_segment_infos_1 = require("./utils/add_segment_infos");
22
24
  /**
23
25
  * Smooth contents provide the index of segments under a "StreamIndex", the
24
26
  * smooth equivalent of an AdaptationSet.
@@ -36,17 +38,17 @@ import addSegmentInfos from "./utils/add_segment_infos";
36
38
  *
37
39
  * @class SharedSmoothSegmentTimeline
38
40
  */
39
- var SharedSmoothSegmentTimeline = /** @class */ (function () {
40
- function SharedSmoothSegmentTimeline(args) {
41
- var timeline = args.timeline, timescale = args.timescale, timeShiftBufferDepth = args.timeShiftBufferDepth, manifestReceivedTime = args.manifestReceivedTime;
41
+ class SharedSmoothSegmentTimeline {
42
+ constructor(args) {
43
+ const { timeline, timescale, timeShiftBufferDepth, manifestReceivedTime } = args;
42
44
  this.timeline = timeline;
43
45
  this.timescale = timescale;
44
- var estimatedReceivedTime = manifestReceivedTime !== null && manifestReceivedTime !== void 0 ? manifestReceivedTime : getMonotonicTimeStamp();
46
+ const estimatedReceivedTime = manifestReceivedTime !== null && manifestReceivedTime !== void 0 ? manifestReceivedTime : (0, monotonic_timestamp_1.default)();
45
47
  this.validityTime = estimatedReceivedTime;
46
48
  this._timeShiftBufferDepth = timeShiftBufferDepth;
47
49
  if (timeline.length !== 0) {
48
- var lastItem = timeline[timeline.length - 1];
49
- var scaledEnd = getIndexSegmentEnd(lastItem, null);
50
+ const lastItem = timeline[timeline.length - 1];
51
+ const scaledEnd = (0, index_helpers_1.getIndexSegmentEnd)(lastItem, null);
50
52
  this._initialScaledLastPosition = scaledEnd;
51
53
  }
52
54
  }
@@ -54,33 +56,33 @@ var SharedSmoothSegmentTimeline = /** @class */ (function () {
54
56
  * Clean-up timeline to remove segment information which should not be
55
57
  * available due to the timeshift window
56
58
  */
57
- SharedSmoothSegmentTimeline.prototype.refresh = function () {
59
+ refresh() {
58
60
  // clean segments before time shift buffer depth
59
61
  if (this._initialScaledLastPosition === undefined) {
60
62
  return;
61
63
  }
62
- var timeShiftBufferDepth = this._timeShiftBufferDepth;
63
- var timeSinceLastRealUpdate = (getMonotonicTimeStamp() -
64
+ const timeShiftBufferDepth = this._timeShiftBufferDepth;
65
+ const timeSinceLastRealUpdate = ((0, monotonic_timestamp_1.default)() -
64
66
  this.validityTime) / 1000;
65
- var lastPositionEstimate = timeSinceLastRealUpdate +
67
+ const lastPositionEstimate = timeSinceLastRealUpdate +
66
68
  this._initialScaledLastPosition / this.timescale;
67
69
  if (timeShiftBufferDepth !== undefined) {
68
- var minimumPosition = (lastPositionEstimate - timeShiftBufferDepth) *
70
+ const minimumPosition = (lastPositionEstimate - timeShiftBufferDepth) *
69
71
  this.timescale;
70
- clearTimelineFromPosition(this.timeline, minimumPosition);
72
+ (0, clear_timeline_from_position_1.default)(this.timeline, minimumPosition);
71
73
  }
72
- };
74
+ }
73
75
  /**
74
76
  * Replace this SharedSmoothSegmentTimeline by a newly downloaded one.
75
77
  * Check if the old timeline had more information about new segments and re-add
76
78
  * them if that's the case.
77
79
  * @param {Object} newSmoothTimeline
78
80
  */
79
- SharedSmoothSegmentTimeline.prototype.replace = function (newSmoothTimeline) {
80
- var oldTimeline = this.timeline;
81
- var newTimeline = newSmoothTimeline.timeline;
82
- var oldTimescale = this.timescale;
83
- var newTimescale = newSmoothTimeline.timescale;
81
+ replace(newSmoothTimeline) {
82
+ const oldTimeline = this.timeline;
83
+ const newTimeline = newSmoothTimeline.timeline;
84
+ const oldTimescale = this.timescale;
85
+ const newTimescale = newSmoothTimeline.timescale;
84
86
  this._initialScaledLastPosition = newSmoothTimeline._initialScaledLastPosition;
85
87
  this.validityTime = newSmoothTimeline.validityTime;
86
88
  if (oldTimeline.length === 0 ||
@@ -88,15 +90,15 @@ var SharedSmoothSegmentTimeline = /** @class */ (function () {
88
90
  oldTimescale !== newTimescale) {
89
91
  return; // don't take risk, if something is off, take the new one
90
92
  }
91
- var lastOldTimelineElement = oldTimeline[oldTimeline.length - 1];
92
- var lastNewTimelineElement = newTimeline[newTimeline.length - 1];
93
- var newEnd = getIndexSegmentEnd(lastNewTimelineElement, null);
94
- if (getIndexSegmentEnd(lastOldTimelineElement, null) <= newEnd) {
93
+ const lastOldTimelineElement = oldTimeline[oldTimeline.length - 1];
94
+ const lastNewTimelineElement = newTimeline[newTimeline.length - 1];
95
+ const newEnd = (0, index_helpers_1.getIndexSegmentEnd)(lastNewTimelineElement, null);
96
+ if ((0, index_helpers_1.getIndexSegmentEnd)(lastOldTimelineElement, null) <= newEnd) {
95
97
  return;
96
98
  }
97
- for (var i = 0; i < oldTimeline.length; i++) {
98
- var oldTimelineRange = oldTimeline[i];
99
- var oldEnd = getIndexSegmentEnd(oldTimelineRange, null);
99
+ for (let i = 0; i < oldTimeline.length; i++) {
100
+ const oldTimelineRange = oldTimeline[i];
101
+ const oldEnd = (0, index_helpers_1.getIndexSegmentEnd)(oldTimelineRange, null);
100
102
  if (oldEnd === newEnd) { // just add the supplementary segments
101
103
  this.timeline = this.timeline.concat(oldTimeline.slice(i + 1));
102
104
  return;
@@ -105,9 +107,9 @@ var SharedSmoothSegmentTimeline = /** @class */ (function () {
105
107
  if (oldTimelineRange.duration !== lastNewTimelineElement.duration) {
106
108
  return;
107
109
  }
108
- var rangeDuration = newEnd - oldTimelineRange.start;
110
+ const rangeDuration = newEnd - oldTimelineRange.start;
109
111
  if (rangeDuration === 0) {
110
- log.warn("Smooth Parser: a discontinuity detected in the previous manifest" +
112
+ log_1.default.warn("Smooth Parser: a discontinuity detected in the previous manifest" +
111
113
  " has been resolved.");
112
114
  this.timeline = this.timeline.concat(oldTimeline.slice(i));
113
115
  return;
@@ -115,28 +117,28 @@ var SharedSmoothSegmentTimeline = /** @class */ (function () {
115
117
  if (rangeDuration < 0 || rangeDuration % oldTimelineRange.duration !== 0) {
116
118
  return;
117
119
  }
118
- var repeatWithOld = (rangeDuration / oldTimelineRange.duration) - 1;
119
- var relativeRepeat = oldTimelineRange.repeatCount - repeatWithOld;
120
+ const repeatWithOld = (rangeDuration / oldTimelineRange.duration) - 1;
121
+ const relativeRepeat = oldTimelineRange.repeatCount - repeatWithOld;
120
122
  if (relativeRepeat < 0) {
121
123
  return;
122
124
  }
123
125
  lastNewTimelineElement.repeatCount += relativeRepeat;
124
- var supplementarySegments = oldTimeline.slice(i + 1);
126
+ const supplementarySegments = oldTimeline.slice(i + 1);
125
127
  this.timeline = this.timeline.concat(supplementarySegments);
126
128
  return;
127
129
  }
128
130
  }
129
- };
131
+ }
130
132
  /**
131
133
  * Update the current SharedSmoothSegmentTimeline with a new, partial, version.
132
134
  * This method might be use to only add information about new segments.
133
135
  * @param {Object} newSmoothTimeline
134
136
  */
135
- SharedSmoothSegmentTimeline.prototype.update = function (newSmoothTimeline) {
136
- updateSegmentTimeline(this.timeline, newSmoothTimeline.timeline);
137
+ update(newSmoothTimeline) {
138
+ (0, update_segment_timeline_1.default)(this.timeline, newSmoothTimeline.timeline);
137
139
  this._initialScaledLastPosition = newSmoothTimeline._initialScaledLastPosition;
138
140
  this.validityTime = newSmoothTimeline.validityTime;
139
- };
141
+ }
140
142
  /**
141
143
  * Add segments to a `SharedSmoothSegmentTimeline` that were predicted to come
142
144
  * after `currentSegment`.
@@ -144,17 +146,16 @@ var SharedSmoothSegmentTimeline = /** @class */ (function () {
144
146
  * @param {Object} segment - Information on the segment which contained that
145
147
  * new segment information.
146
148
  */
147
- SharedSmoothSegmentTimeline.prototype.addPredictedSegments = function (nextSegments, currentSegment) {
149
+ addPredictedSegments(nextSegments, currentSegment) {
148
150
  var _a;
149
151
  if (((_a = currentSegment.privateInfos) === null || _a === void 0 ? void 0 : _a.smoothMediaSegment) === undefined) {
150
- log.warn("Smooth Parser: should only encounter SmoothRepresentationIndex");
152
+ log_1.default.warn("Smooth Parser: should only encounter SmoothRepresentationIndex");
151
153
  return;
152
154
  }
153
155
  this.refresh();
154
- for (var i = 0; i < nextSegments.length; i++) {
155
- addSegmentInfos(this.timeline, this.timescale, nextSegments[i], currentSegment.privateInfos.smoothMediaSegment);
156
+ for (let i = 0; i < nextSegments.length; i++) {
157
+ (0, add_segment_infos_1.default)(this.timeline, this.timescale, nextSegments[i], currentSegment.privateInfos.smoothMediaSegment);
156
158
  }
157
- };
158
- return SharedSmoothSegmentTimeline;
159
- }());
160
- export default SharedSmoothSegmentTimeline;
159
+ }
160
+ }
161
+ exports.default = SharedSmoothSegmentTimeline;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,7 +14,8 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { getIndexSegmentEnd } from "../../utils/index_helpers";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const index_helpers_1 = require("../../utils/index_helpers");
17
19
  /**
18
20
  * Add a new segment to the index.
19
21
  *
@@ -24,10 +26,10 @@ import { getIndexSegmentEnd } from "../../utils/index_helpers";
24
26
  * @param {Object} currentSegment
25
27
  * @returns {Boolean} - true if the segment has been added
26
28
  */
27
- export default function _addSegmentInfos(timeline, timescale, newSegment, currentSegment) {
28
- var timelineLength = timeline.length;
29
- var last = timeline[timelineLength - 1];
30
- var scaledNewSegment = newSegment.timescale === timescale ?
29
+ function _addSegmentInfos(timeline, timescale, newSegment, currentSegment) {
30
+ const timelineLength = timeline.length;
31
+ const last = timeline[timelineLength - 1];
32
+ const scaledNewSegment = newSegment.timescale === timescale ?
31
33
  { time: newSegment.time,
32
34
  duration: newSegment.duration } :
33
35
  { time: (newSegment.time / newSegment.timescale) * timescale,
@@ -38,11 +40,11 @@ export default function _addSegmentInfos(timeline, timescale, newSegment, curren
38
40
  // segment and have the same start.
39
41
  // However, we prefer to be sure of the duration of the new segments
40
42
  // before adding such segments.
41
- var shouldDeductNextSegment = currentSegment.time === scaledNewSegment.time;
43
+ const shouldDeductNextSegment = currentSegment.time === scaledNewSegment.time;
42
44
  if (shouldDeductNextSegment) {
43
45
  return false;
44
46
  }
45
- else if (scaledNewSegment.time >= getIndexSegmentEnd(last, null)) {
47
+ else if (scaledNewSegment.time >= (0, index_helpers_1.getIndexSegmentEnd)(last, null)) {
46
48
  // if the given timing has a timestamp after the timeline end we
47
49
  // just need to push a new element in the timeline, or increase
48
50
  // the @r attribute of the last element.
@@ -58,3 +60,4 @@ export default function _addSegmentInfos(timeline, timescale, newSegment, curren
58
60
  }
59
61
  return false;
60
62
  }
63
+ exports.default = _addSegmentInfos;
@@ -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
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * @param {*} parseBoolean
18
20
  * @returns {Boolean}
19
21
  */
20
- export default function parseBoolean(val) {
22
+ function parseBoolean(val) {
21
23
  if (typeof val === "boolean") {
22
24
  return val;
23
25
  }
@@ -28,3 +30,4 @@ export default function parseBoolean(val) {
28
30
  return false;
29
31
  }
30
32
  }
33
+ exports.default = parseBoolean;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,7 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * Reduce implementation for the children of the given element.
18
20
  * @param {Element} root
@@ -20,12 +22,13 @@
20
22
  * @param {*} init
21
23
  * @returns {*}
22
24
  */
23
- export default function reduceChildren(root, fn, init) {
24
- var node = root.firstElementChild;
25
- var accumulator = init;
25
+ function reduceChildren(root, fn, init) {
26
+ let node = root.firstElementChild;
27
+ let accumulator = init;
26
28
  while (node !== null) {
27
29
  accumulator = fn(accumulator, node.nodeName, node);
28
30
  node = node.nextElementSibling;
29
31
  }
30
32
  return accumulator;
31
33
  }
34
+ exports.default = reduceChildren;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,8 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.replaceSegmentSmoothTokens = exports.replaceRepresentationSmoothTokens = void 0;
16
19
  /**
17
20
  * @param {string} url
18
21
  * @param {string|number} bitrate
@@ -24,6 +27,7 @@ function replaceRepresentationSmoothTokens(url, bitrate, customAttributes) {
24
27
  .replace(/{CustomAttributes}/g, customAttributes.length > 0 ? customAttributes[0] :
25
28
  "");
26
29
  }
30
+ exports.replaceRepresentationSmoothTokens = replaceRepresentationSmoothTokens;
27
31
  /**
28
32
  * @param {string} url
29
33
  * @param {number} time
@@ -32,4 +36,4 @@ function replaceRepresentationSmoothTokens(url, bitrate, customAttributes) {
32
36
  function replaceSegmentSmoothTokens(url, time) {
33
37
  return url.replace(/\{start time\}/g, String(time));
34
38
  }
35
- export { replaceRepresentationSmoothTokens, replaceSegmentSmoothTokens, };
39
+ exports.replaceSegmentSmoothTokens = replaceSegmentSmoothTokens;
@@ -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,8 +14,9 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import log from "../../../log";
17
- import arrayIncludes from "../../../utils/array_includes";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../log");
19
+ const array_includes_1 = require("../../../utils/array_includes");
18
20
  /**
19
21
  * Ensure that no two periods, adaptations from the same period and
20
22
  * representations from the same adaptation, have the same ID.
@@ -23,13 +25,13 @@ import arrayIncludes from "../../../utils/array_includes";
23
25
  *
24
26
  * @param {Object} manifest
25
27
  */
26
- export default function checkManifestIDs(manifest) {
27
- var periodIDS = [];
28
- manifest.periods.forEach(function (period) {
29
- var periodID = period.id;
30
- if (arrayIncludes(periodIDS, periodID)) {
31
- log.warn("Two periods with the same ID found. Updating.");
32
- var newID = periodID + "-dup";
28
+ function checkManifestIDs(manifest) {
29
+ const periodIDS = [];
30
+ manifest.periods.forEach((period) => {
31
+ const periodID = period.id;
32
+ if ((0, array_includes_1.default)(periodIDS, periodID)) {
33
+ log_1.default.warn("Two periods with the same ID found. Updating.");
34
+ const newID = periodID + "-dup";
33
35
  period.id = newID;
34
36
  checkManifestIDs(manifest);
35
37
  periodIDS.push(newID);
@@ -37,18 +39,18 @@ export default function checkManifestIDs(manifest) {
37
39
  else {
38
40
  periodIDS.push(periodID);
39
41
  }
40
- var adaptations = period.adaptations;
41
- var adaptationIDs = [];
42
- Object.keys(adaptations).forEach(function (type) {
43
- var adaptationsForType = adaptations[type];
42
+ const { adaptations } = period;
43
+ const adaptationIDs = [];
44
+ Object.keys(adaptations).forEach((type) => {
45
+ const adaptationsForType = adaptations[type];
44
46
  if (adaptationsForType === undefined) {
45
47
  return;
46
48
  }
47
- adaptationsForType.forEach(function (adaptation) {
48
- var adaptationID = adaptation.id;
49
- if (arrayIncludes(adaptationIDs, adaptationID)) {
50
- log.warn("Two adaptations with the same ID found. Updating.", adaptationID);
51
- var newID = adaptationID + "-dup";
49
+ adaptationsForType.forEach(adaptation => {
50
+ const adaptationID = adaptation.id;
51
+ if ((0, array_includes_1.default)(adaptationIDs, adaptationID)) {
52
+ log_1.default.warn("Two adaptations with the same ID found. Updating.", adaptationID);
53
+ const newID = adaptationID + "-dup";
52
54
  adaptation.id = newID;
53
55
  checkManifestIDs(manifest);
54
56
  adaptationIDs.push(newID);
@@ -56,12 +58,12 @@ export default function checkManifestIDs(manifest) {
56
58
  else {
57
59
  adaptationIDs.push(adaptationID);
58
60
  }
59
- var representationIDs = [];
60
- adaptation.representations.forEach(function (representation) {
61
- var representationID = representation.id;
62
- if (arrayIncludes(representationIDs, representationID)) {
63
- log.warn("Two representations with the same ID found. Updating.", representationID);
64
- var newID = "".concat(representationID, "-dup");
61
+ const representationIDs = [];
62
+ adaptation.representations.forEach(representation => {
63
+ const representationID = representation.id;
64
+ if ((0, array_includes_1.default)(representationIDs, representationID)) {
65
+ log_1.default.warn("Two representations with the same ID found. Updating.", representationID);
66
+ const newID = `${representationID}-dup`;
65
67
  representation.id = newID;
66
68
  checkManifestIDs(manifest);
67
69
  representationIDs.push(newID);
@@ -74,3 +76,4 @@ export default function checkManifestIDs(manifest) {
74
76
  });
75
77
  });
76
78
  }
79
+ exports.default = checkManifestIDs;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,7 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * Remove segments which starts before the given `firstAvailablePosition` from
18
20
  * the timeline. `firstAvailablePosition` has to be time scaled.
@@ -20,10 +22,10 @@
20
22
  * @returns {number} - Returns the number of removed segments. This includes
21
23
  * potential implicit segment from decremented `repeatCount` attributes.
22
24
  */
23
- export default function clearTimelineFromPosition(timeline, firstAvailablePosition) {
24
- var nbEltsRemoved = 0;
25
+ function clearTimelineFromPosition(timeline, firstAvailablePosition) {
26
+ let nbEltsRemoved = 0;
25
27
  while (timeline.length > 0) {
26
- var firstElt = timeline[0];
28
+ const firstElt = timeline[0];
27
29
  if (firstElt.start >= firstAvailablePosition) {
28
30
  return nbEltsRemoved; // all clear
29
31
  }
@@ -35,7 +37,7 @@ export default function clearTimelineFromPosition(timeline, firstAvailablePositi
35
37
  nbEltsRemoved += 1;
36
38
  }
37
39
  else { // we have a segment repetition
38
- var nextElt = timeline[1];
40
+ const nextElt = timeline[1];
39
41
  if (nextElt !== undefined && nextElt.start <= firstAvailablePosition) {
40
42
  timeline.shift();
41
43
  nbEltsRemoved += 1;
@@ -44,8 +46,8 @@ export default function clearTimelineFromPosition(timeline, firstAvailablePositi
44
46
  if (firstElt.duration <= 0) {
45
47
  return nbEltsRemoved;
46
48
  }
47
- var nextStart = firstElt.start + firstElt.duration;
48
- var nextRepeat = 1;
49
+ let nextStart = firstElt.start + firstElt.duration;
50
+ let nextRepeat = 1;
49
51
  while (nextStart < firstAvailablePosition &&
50
52
  nextRepeat <= firstElt.repeatCount) {
51
53
  nextStart += firstElt.duration;
@@ -56,7 +58,7 @@ export default function clearTimelineFromPosition(timeline, firstAvailablePositi
56
58
  nbEltsRemoved = firstElt.repeatCount + 1;
57
59
  }
58
60
  else { // some repetitions start after and some before
59
- var newRepeat = firstElt.repeatCount - nextRepeat;
61
+ const newRepeat = firstElt.repeatCount - nextRepeat;
60
62
  firstElt.start = nextStart;
61
63
  firstElt.repeatCount = newRepeat;
62
64
  nbEltsRemoved += nextRepeat;
@@ -67,3 +69,4 @@ export default function clearTimelineFromPosition(timeline, firstAvailablePositi
67
69
  }
68
70
  return nbEltsRemoved;
69
71
  }
72
+ exports.default = clearTimelineFromPosition;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,7 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * Returns "first time of reference" from the adaptation given, considering a
18
20
  * dynamic content.
@@ -23,11 +25,11 @@
23
25
  * @param {Object} adaptation
24
26
  * @returns {Number|undefined}
25
27
  */
26
- export default function getFirstPositionFromAdaptation(adaptation) {
27
- var representations = adaptation.representations;
28
- var max = null;
29
- for (var i = 0; i < representations.length; i++) {
30
- var firstPosition = representations[i].index.getFirstAvailablePosition();
28
+ function getFirstPositionFromAdaptation(adaptation) {
29
+ const { representations } = adaptation;
30
+ let max = null;
31
+ for (let i = 0; i < representations.length; i++) {
32
+ const firstPosition = representations[i].index.getFirstAvailablePosition();
31
33
  if (firstPosition === undefined) { // we cannot tell
32
34
  return undefined;
33
35
  }
@@ -41,3 +43,4 @@ export default function getFirstPositionFromAdaptation(adaptation) {
41
43
  }
42
44
  return max;
43
45
  }
46
+ exports.default = getFirstPositionFromAdaptation;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,7 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * Returns "last time of reference" from the adaptation given, considering a
18
20
  * dynamic content.
@@ -25,11 +27,11 @@
25
27
  * @param {Object} adaptation
26
28
  * @returns {Number|undefined|null}
27
29
  */
28
- export default function getLastPositionFromAdaptation(adaptation) {
29
- var representations = adaptation.representations;
30
- var min = null;
31
- for (var i = 0; i < representations.length; i++) {
32
- var lastPosition = representations[i].index.getLastAvailablePosition();
30
+ function getLastPositionFromAdaptation(adaptation) {
31
+ const { representations } = adaptation;
32
+ let min = null;
33
+ for (let i = 0; i < representations.length; i++) {
34
+ const lastPosition = representations[i].index.getLastAvailablePosition();
33
35
  if (lastPosition === undefined) { // we cannot tell
34
36
  return undefined;
35
37
  }
@@ -43,3 +45,4 @@ export default function getLastPositionFromAdaptation(adaptation) {
43
45
  }
44
46
  return min;
45
47
  }
48
+ exports.default = getLastPositionFromAdaptation;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,35 +14,36 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import log from "../../../log";
17
- import getLastPositionFromAdaptation from "./get_last_time_from_adaptation";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../log");
19
+ const get_last_time_from_adaptation_1 = require("./get_last_time_from_adaptation");
18
20
  /**
19
21
  * @param {Object} manifest
20
22
  * @returns {number | undefined}
21
23
  */
22
- export default function getMaximumPosition(periods) {
23
- for (var i = periods.length - 1; i >= 0; i--) {
24
- var periodAdaptations = periods[i].adaptations;
25
- var firstAudioAdaptationFromPeriod = periodAdaptations.audio === undefined ?
24
+ function getMaximumPosition(periods) {
25
+ for (let i = periods.length - 1; i >= 0; i--) {
26
+ const periodAdaptations = periods[i].adaptations;
27
+ const firstAudioAdaptationFromPeriod = periodAdaptations.audio === undefined ?
26
28
  undefined :
27
29
  periodAdaptations.audio[0];
28
- var firstVideoAdaptationFromPeriod = periodAdaptations.video === undefined ?
30
+ const firstVideoAdaptationFromPeriod = periodAdaptations.video === undefined ?
29
31
  undefined :
30
32
  periodAdaptations.video[0];
31
33
  if (firstAudioAdaptationFromPeriod !== undefined ||
32
34
  firstVideoAdaptationFromPeriod !== undefined) {
33
35
  // null == no segment
34
- var maximumAudioPosition = null;
35
- var maximumVideoPosition = null;
36
+ let maximumAudioPosition = null;
37
+ let maximumVideoPosition = null;
36
38
  if (firstAudioAdaptationFromPeriod !== undefined) {
37
- var lastPosition = getLastPositionFromAdaptation(firstAudioAdaptationFromPeriod);
39
+ const lastPosition = (0, get_last_time_from_adaptation_1.default)(firstAudioAdaptationFromPeriod);
38
40
  if (lastPosition === undefined) {
39
41
  return { safe: undefined, unsafe: undefined };
40
42
  }
41
43
  maximumAudioPosition = lastPosition;
42
44
  }
43
45
  if (firstVideoAdaptationFromPeriod !== undefined) {
44
- var lastPosition = getLastPositionFromAdaptation(firstVideoAdaptationFromPeriod);
46
+ const lastPosition = (0, get_last_time_from_adaptation_1.default)(firstVideoAdaptationFromPeriod);
45
47
  if (lastPosition === undefined) {
46
48
  return { safe: undefined, unsafe: undefined };
47
49
  }
@@ -51,7 +53,7 @@ export default function getMaximumPosition(periods) {
51
53
  maximumAudioPosition === null) ||
52
54
  (firstVideoAdaptationFromPeriod !== undefined &&
53
55
  maximumVideoPosition === null)) {
54
- log.info("Parser utils: found Period with no segment. ", "Going to previous one to calculate last position");
56
+ log_1.default.info("Parser utils: found Period with no segment. ", "Going to previous one to calculate last position");
55
57
  return { safe: undefined, unsafe: undefined };
56
58
  }
57
59
  if (maximumVideoPosition !== null) {
@@ -70,3 +72,4 @@ export default function getMaximumPosition(periods) {
70
72
  }
71
73
  return { safe: undefined, unsafe: undefined };
72
74
  }
75
+ exports.default = getMaximumPosition;