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,82 +14,65 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __extends = (this && this.__extends) || (function () {
17
- var extendStatics = function (d, b) {
18
- extendStatics = Object.setPrototypeOf ||
19
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21
- return extendStatics(d, b);
22
- };
23
- return function (d, b) {
24
- if (typeof b !== "function" && b !== null)
25
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
26
- extendStatics(d, b);
27
- function __() { this.constructor = d; }
28
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
- };
30
- })();
31
- import { addTextTrack, } from "../../../../../compat";
32
- import removeCue from "../../../../../compat/remove_cue";
33
- import log from "../../../../../log";
34
- import { SegmentBuffer, } from "../../types";
35
- import ManualTimeRanges from "../../utils/manual_time_ranges";
36
- import parseTextTrackToCues from "./parsers";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../../../../../compat");
19
+ const remove_cue_1 = require("../../../../../compat/remove_cue");
20
+ const log_1 = require("../../../../../log");
21
+ const types_1 = require("../../types");
22
+ const manual_time_ranges_1 = require("../../utils/manual_time_ranges");
23
+ const parsers_1 = require("./parsers");
37
24
  /**
38
25
  * Implementation of an SegmentBuffer for "native" text tracks.
39
26
  * "Native" text tracks rely on a `<track>` HTMLElement and its associated
40
27
  * expected behavior to display subtitles synchronized to the video.
41
28
  * @class NativeTextSegmentBuffer
42
29
  */
43
- var NativeTextSegmentBuffer = /** @class */ (function (_super) {
44
- __extends(NativeTextSegmentBuffer, _super);
30
+ class NativeTextSegmentBuffer extends types_1.SegmentBuffer {
45
31
  /**
46
32
  * @param {HTMLMediaElement} videoElement
47
33
  */
48
- function NativeTextSegmentBuffer(videoElement) {
49
- var _this = this;
50
- log.debug("NTSB: Creating NativeTextSegmentBuffer");
51
- _this = _super.call(this) || this;
52
- var _a = addTextTrack(videoElement), track = _a.track, trackElement = _a.trackElement;
53
- _this.bufferType = "text";
54
- _this._buffered = new ManualTimeRanges();
55
- _this._videoElement = videoElement;
56
- _this._track = track;
57
- _this._trackElement = trackElement;
58
- return _this;
34
+ constructor(videoElement) {
35
+ log_1.default.debug("NTSB: Creating NativeTextSegmentBuffer");
36
+ super();
37
+ const { track, trackElement } = (0, compat_1.addTextTrack)(videoElement);
38
+ this.bufferType = "text";
39
+ this._buffered = new manual_time_ranges_1.default();
40
+ this._videoElement = videoElement;
41
+ this._track = track;
42
+ this._trackElement = trackElement;
59
43
  }
60
44
  /**
61
45
  * @param {string} uniqueId
62
46
  */
63
- NativeTextSegmentBuffer.prototype.declareInitSegment = function (uniqueId) {
64
- log.warn("ISB: Declaring initialization segment for image SegmentBuffer", uniqueId);
65
- };
47
+ declareInitSegment(uniqueId) {
48
+ log_1.default.warn("ISB: Declaring initialization segment for image SegmentBuffer", uniqueId);
49
+ }
66
50
  /**
67
51
  * @param {string} uniqueId
68
52
  */
69
- NativeTextSegmentBuffer.prototype.freeInitSegment = function (uniqueId) {
70
- log.warn("ISB: Freeing initialization segment for image SegmentBuffer", uniqueId);
71
- };
53
+ freeInitSegment(uniqueId) {
54
+ log_1.default.warn("ISB: Freeing initialization segment for image SegmentBuffer", uniqueId);
55
+ }
72
56
  /**
73
57
  * @param {Object} infos
74
58
  * @returns {Promise}
75
59
  */
76
- NativeTextSegmentBuffer.prototype.pushChunk = function (infos) {
60
+ pushChunk(infos) {
77
61
  var _a, _b;
78
- log.debug("NTSB: Appending new native text tracks");
62
+ log_1.default.debug("NTSB: Appending new native text tracks");
79
63
  if (infos.data.chunk === null) {
80
64
  return Promise.resolve();
81
65
  }
82
- var _c = infos.data, timestampOffset = _c.timestampOffset, appendWindow = _c.appendWindow, chunk = _c.chunk;
66
+ const { timestampOffset, appendWindow, chunk } = infos.data;
83
67
  assertChunkIsTextTrackSegmentData(chunk);
84
- var startTime = chunk.start, endTime = chunk.end, dataString = chunk.data, type = chunk.type, language = chunk.language;
85
- var appendWindowStart = (_a = appendWindow[0]) !== null && _a !== void 0 ? _a : 0;
86
- var appendWindowEnd = (_b = appendWindow[1]) !== null && _b !== void 0 ? _b : Infinity;
68
+ const { start: startTime, end: endTime, data: dataString, type, language } = chunk;
69
+ const appendWindowStart = (_a = appendWindow[0]) !== null && _a !== void 0 ? _a : 0;
70
+ const appendWindowEnd = (_b = appendWindow[1]) !== null && _b !== void 0 ? _b : Infinity;
87
71
  try {
88
- var cues = parseTextTrackToCues(type, dataString, timestampOffset, language);
72
+ const cues = (0, parsers_1.default)(type, dataString, timestampOffset, language);
89
73
  if (appendWindowStart !== 0 && appendWindowEnd !== Infinity) {
90
74
  // Removing before window start
91
- var i = 0;
75
+ let i = 0;
92
76
  while (i < cues.length && cues[i].endTime <= appendWindowStart) {
93
77
  i++;
94
78
  }
@@ -110,47 +94,47 @@ var NativeTextSegmentBuffer = /** @class */ (function (_super) {
110
94
  i--;
111
95
  }
112
96
  }
113
- var start = void 0;
97
+ let start;
114
98
  if (startTime !== undefined) {
115
99
  start = Math.max(appendWindowStart, startTime);
116
100
  }
117
101
  else {
118
102
  if (cues.length <= 0) {
119
- log.warn("NTSB: Current text tracks have no cues nor start time. Aborting");
103
+ log_1.default.warn("NTSB: Current text tracks have no cues nor start time. Aborting");
120
104
  return Promise.resolve();
121
105
  }
122
- log.warn("NTSB: No start time given. Guessing from cues.");
106
+ log_1.default.warn("NTSB: No start time given. Guessing from cues.");
123
107
  start = cues[0].startTime;
124
108
  }
125
- var end = void 0;
109
+ let end;
126
110
  if (endTime !== undefined) {
127
111
  end = Math.min(appendWindowEnd, endTime);
128
112
  }
129
113
  else {
130
114
  if (cues.length <= 0) {
131
- log.warn("NTSB: Current text tracks have no cues nor end time. Aborting");
115
+ log_1.default.warn("NTSB: Current text tracks have no cues nor end time. Aborting");
132
116
  return Promise.resolve();
133
117
  }
134
- log.warn("NTSB: No end time given. Guessing from cues.");
118
+ log_1.default.warn("NTSB: No end time given. Guessing from cues.");
135
119
  end = cues[cues.length - 1].endTime;
136
120
  }
137
121
  if (end <= start) {
138
- log.warn("NTSB: Invalid text track appended: ", "the start time is inferior or equal to the end time.");
122
+ log_1.default.warn("NTSB: Invalid text track appended: ", "the start time is inferior or equal to the end time.");
139
123
  return Promise.resolve();
140
124
  }
141
125
  if (cues.length > 0) {
142
- var firstCue = cues[0];
126
+ const firstCue = cues[0];
143
127
  // NOTE(compat): cleanup all current cues if the newly added
144
128
  // ones are in the past. this is supposed to fix an issue on
145
129
  // IE/Edge.
146
130
  // TODO Move to compat
147
- var currentCues = this._track.cues;
131
+ const currentCues = this._track.cues;
148
132
  if (currentCues !== null && currentCues.length > 0) {
149
133
  if (firstCue.startTime < currentCues[currentCues.length - 1].startTime) {
150
134
  this._removeData(firstCue.startTime, +Infinity);
151
135
  }
152
136
  }
153
- for (var i = 0; i < cues.length; i++) {
137
+ for (let i = 0; i < cues.length; i++) {
154
138
  this._track.addCue(cues[i]);
155
139
  }
156
140
  }
@@ -163,67 +147,66 @@ var NativeTextSegmentBuffer = /** @class */ (function (_super) {
163
147
  return Promise.reject(err);
164
148
  }
165
149
  return Promise.resolve();
166
- };
150
+ }
167
151
  /**
168
152
  * Remove buffered data.
169
153
  * @param {number} start - start position, in seconds
170
154
  * @param {number} end - end position, in seconds
171
155
  * @returns {Promise}
172
156
  */
173
- NativeTextSegmentBuffer.prototype.removeBuffer = function (start, end) {
157
+ removeBuffer(start, end) {
174
158
  this._removeData(start, end);
175
159
  return Promise.resolve();
176
- };
160
+ }
177
161
  /**
178
162
  * @param {Object} infos
179
163
  * @returns {Promise}
180
164
  */
181
- NativeTextSegmentBuffer.prototype.endOfSegment = function (_infos) {
165
+ endOfSegment(_infos) {
182
166
  this._segmentInventory.completeSegment(_infos, this._buffered);
183
167
  return Promise.resolve();
184
- };
168
+ }
185
169
  /**
186
170
  * Returns the currently buffered data, in a TimeRanges object.
187
171
  * @returns {TimeRanges}
188
172
  */
189
- NativeTextSegmentBuffer.prototype.getBufferedRanges = function () {
173
+ getBufferedRanges() {
190
174
  return this._buffered;
191
- };
192
- NativeTextSegmentBuffer.prototype.dispose = function () {
193
- log.debug("NTSB: Aborting NativeTextSegmentBuffer");
175
+ }
176
+ dispose() {
177
+ log_1.default.debug("NTSB: Aborting NativeTextSegmentBuffer");
194
178
  this._removeData(0, Infinity);
195
- var _a = this, _trackElement = _a._trackElement, _videoElement = _a._videoElement;
179
+ const { _trackElement, _videoElement } = this;
196
180
  if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
197
181
  try {
198
182
  _videoElement.removeChild(_trackElement);
199
183
  }
200
184
  catch (e) {
201
- log.warn("NTSB: Can't remove track element from the video");
185
+ log_1.default.warn("NTSB: Can't remove track element from the video");
202
186
  }
203
187
  }
204
188
  this._track.mode = "disabled";
205
189
  if (this._trackElement !== undefined) {
206
190
  this._trackElement.innerHTML = "";
207
191
  }
208
- };
209
- NativeTextSegmentBuffer.prototype._removeData = function (start, end) {
210
- log.debug("NTSB: Removing native text track data", start, end);
211
- var track = this._track;
212
- var cues = track.cues;
192
+ }
193
+ _removeData(start, end) {
194
+ log_1.default.debug("NTSB: Removing native text track data", start, end);
195
+ const track = this._track;
196
+ const cues = track.cues;
213
197
  if (cues !== null) {
214
- for (var i = cues.length - 1; i >= 0; i--) {
215
- var cue = cues[i];
216
- var startTime = cue.startTime, endTime = cue.endTime;
198
+ for (let i = cues.length - 1; i >= 0; i--) {
199
+ const cue = cues[i];
200
+ const { startTime, endTime } = cue;
217
201
  if (startTime >= start && startTime <= end && endTime <= end) {
218
- removeCue(track, cue);
202
+ (0, remove_cue_1.default)(track, cue);
219
203
  }
220
204
  }
221
205
  }
222
206
  this._buffered.remove(start, end);
223
- };
224
- return NativeTextSegmentBuffer;
225
- }(SegmentBuffer));
226
- export default NativeTextSegmentBuffer;
207
+ }
208
+ }
209
+ exports.default = NativeTextSegmentBuffer;
227
210
  /**
228
211
  * Throw if the given input is not in the expected format.
229
212
  * Allows to enforce runtime type-checking as compile-time type-checking here is
@@ -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 features from "../../../../../features";
17
- import log from "../../../../../log";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const features_1 = require("../../../../../features");
19
+ const log_1 = require("../../../../../log");
18
20
  /**
19
21
  * Convert text track data into timed VTT Cues.
20
22
  * @param {string} type - Text track format wanted
@@ -24,14 +26,15 @@ import log from "../../../../../log";
24
26
  * @returns {Array.<VTTCue>}
25
27
  * @throws Error - Throw if no parser is found for the given type
26
28
  */
27
- export default function parseTextTrackToCues(type, data, timestampOffset, language) {
28
- log.debug("NTSB: Finding parser for native text tracks:", type);
29
- var parser = features.nativeTextTracksParsers[type];
29
+ function parseTextTrackToCues(type, data, timestampOffset, language) {
30
+ log_1.default.debug("NTSB: Finding parser for native text tracks:", type);
31
+ const parser = features_1.default.nativeTextTracksParsers[type];
30
32
  if (typeof parser !== "function") {
31
33
  throw new Error("no parser found for the given text track");
32
34
  }
33
- log.debug("NTSB: Parser found, parsing...");
34
- var parsed = parser(data, timestampOffset, language);
35
- log.debug("NTSB: Parsed successfully!", parsed.length);
35
+ log_1.default.debug("NTSB: Parser found, parsing...");
36
+ const parsed = parser(data, timestampOffset, language);
37
+ log_1.default.debug("NTSB: Parsed successfully!", parsed.length);
36
38
  return parsed;
37
39
  }
40
+ exports.default = parseTextTrackToCues;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,7 +14,9 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import SegmentInventory from "../inventory";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SegmentBufferOperation = exports.SegmentBuffer = void 0;
19
+ const inventory_1 = require("../inventory");
17
20
  /**
18
21
  * Class allowing to push segments and remove data to a buffer to be able
19
22
  * to decode them in the future as well as retrieving information about which
@@ -51,10 +54,10 @@ import SegmentInventory from "../inventory";
51
54
  * If operations happens synchronously, this method will just return an empty
52
55
  * array.
53
56
  */
54
- var SegmentBuffer = /** @class */ (function () {
55
- function SegmentBuffer() {
57
+ class SegmentBuffer {
58
+ constructor() {
56
59
  // Use SegmentInventory by default for inventory purposes
57
- this._segmentInventory = new SegmentInventory();
60
+ this._segmentInventory = new inventory_1.default();
58
61
  }
59
62
  /**
60
63
  * The maintained inventory can fall out of sync from garbage collection or
@@ -64,10 +67,10 @@ var SegmentBuffer = /** @class */ (function () {
64
67
  * called before retrieving Segment information from it (e.g. with
65
68
  * `getInventory`).
66
69
  */
67
- SegmentBuffer.prototype.synchronizeInventory = function () {
70
+ synchronizeInventory() {
68
71
  // The default implementation just use the SegmentInventory
69
72
  this._segmentInventory.synchronizeBuffered(this.getBufferedRanges());
70
- };
73
+ }
71
74
  /**
72
75
  * Returns the currently buffered data for which the content is known with
73
76
  * the corresponding content information.
@@ -76,20 +79,20 @@ var SegmentBuffer = /** @class */ (function () {
76
79
  * synchronized.
77
80
  * @returns {Array.<Object>}
78
81
  */
79
- SegmentBuffer.prototype.getInventory = function () {
82
+ getInventory() {
80
83
  // The default implementation just use the SegmentInventory
81
84
  return this._segmentInventory.getInventory();
82
- };
85
+ }
83
86
  /**
84
87
  * Returns the list of every operations that the `SegmentBuffer` is still
85
88
  * processing. From the one with the highest priority (like the one being
86
89
  * processed)
87
90
  * @returns {Array.<Object>}
88
91
  */
89
- SegmentBuffer.prototype.getPendingOperations = function () {
92
+ getPendingOperations() {
90
93
  // Return no pending operation by default (for synchronous SegmentBuffers)
91
94
  return [];
92
- };
95
+ }
93
96
  /**
94
97
  * Returns a recent history of registered operations performed and event
95
98
  * received linked to the segment given in argument.
@@ -103,19 +106,18 @@ var SegmentBuffer = /** @class */ (function () {
103
106
  * @param {Object} context
104
107
  * @returns {Array.<Object>}
105
108
  */
106
- SegmentBuffer.prototype.getSegmentHistory = function (context) {
109
+ getSegmentHistory(context) {
107
110
  return this._segmentInventory.getHistoryFor(context);
108
- };
109
- return SegmentBuffer;
110
- }());
111
- export { SegmentBuffer };
111
+ }
112
+ }
113
+ exports.SegmentBuffer = SegmentBuffer;
112
114
  /**
113
115
  * Enum used by a SegmentBuffer as a discriminant in its queue of
114
116
  * "operations".
115
117
  */
116
- export var SegmentBufferOperation;
118
+ var SegmentBufferOperation;
117
119
  (function (SegmentBufferOperation) {
118
120
  SegmentBufferOperation[SegmentBufferOperation["Push"] = 0] = "Push";
119
121
  SegmentBufferOperation[SegmentBufferOperation["Remove"] = 1] = "Remove";
120
122
  SegmentBufferOperation[SegmentBufferOperation["EndOfSegment"] = 2] = "EndOfSegment";
121
- })(SegmentBufferOperation || (SegmentBufferOperation = {}));
123
+ })(SegmentBufferOperation || (exports.SegmentBufferOperation = SegmentBufferOperation = {}));
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,53 +14,53 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import assert from "../../../../utils/assert";
17
- import { insertInto, keepRangeIntersection, } from "../../../../utils/ranges";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const assert_1 = require("../../../../utils/assert");
19
+ const ranges_1 = require("../../../../utils/ranges");
18
20
  /**
19
21
  * Simulate TimeRanges as returned by SourceBuffer.prototype.buffered.
20
22
  * Add an "insert" and "remove" methods to manually update it.
21
23
  * @class ManualTimeRanges
22
24
  */
23
- var ManualTimeRanges = /** @class */ (function () {
24
- function ManualTimeRanges() {
25
+ class ManualTimeRanges {
26
+ constructor() {
25
27
  this._ranges = [];
26
28
  this.length = 0;
27
29
  }
28
- ManualTimeRanges.prototype.insert = function (start, end) {
30
+ insert(start, end) {
29
31
  if (0 /* __ENVIRONMENT__.CURRENT_ENV */ === 1 /* __ENVIRONMENT__.DEV */) {
30
- assert(start >= 0, "invalid start time");
31
- assert(end - start > 0, "invalid end time");
32
+ (0, assert_1.default)(start >= 0, "invalid start time");
33
+ (0, assert_1.default)(end - start > 0, "invalid end time");
32
34
  }
33
- insertInto(this._ranges, { start: start, end: end });
35
+ (0, ranges_1.insertInto)(this._ranges, { start, end });
34
36
  this.length = this._ranges.length;
35
- };
36
- ManualTimeRanges.prototype.remove = function (start, end) {
37
+ }
38
+ remove(start, end) {
37
39
  if (0 /* __ENVIRONMENT__.CURRENT_ENV */ === 1 /* __ENVIRONMENT__.DEV */) {
38
- assert(start >= 0, "invalid start time");
39
- assert(end - start > 0, "invalid end time");
40
+ (0, assert_1.default)(start >= 0, "invalid start time");
41
+ (0, assert_1.default)(end - start > 0, "invalid end time");
40
42
  }
41
- var rangesToIntersect = [];
43
+ const rangesToIntersect = [];
42
44
  if (start > 0) {
43
45
  rangesToIntersect.push({ start: 0, end: start });
44
46
  }
45
47
  if (end < Infinity) {
46
48
  rangesToIntersect.push({ start: end, end: Infinity });
47
49
  }
48
- this._ranges = keepRangeIntersection(this._ranges, rangesToIntersect);
50
+ this._ranges = (0, ranges_1.keepRangeIntersection)(this._ranges, rangesToIntersect);
49
51
  this.length = this._ranges.length;
50
- };
51
- ManualTimeRanges.prototype.start = function (index) {
52
+ }
53
+ start(index) {
52
54
  if (index >= this._ranges.length) {
53
55
  throw new Error("INDEX_SIZE_ERROR");
54
56
  }
55
57
  return this._ranges[index].start;
56
- };
57
- ManualTimeRanges.prototype.end = function (index) {
58
+ }
59
+ end(index) {
58
60
  if (index >= this._ranges.length) {
59
61
  throw new Error("INDEX_SIZE_ERROR");
60
62
  }
61
63
  return this._ranges[index].end;
62
- };
63
- return ManualTimeRanges;
64
- }());
65
- export default ManualTimeRanges;
64
+ }
65
+ }
66
+ exports.default = ManualTimeRanges;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,15 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import BufferGarbageCollector from "./garbage_collector";
17
- import { SegmentBuffer, SegmentBufferOperation, } from "./implementations";
18
- import { getFirstSegmentAfterPeriod, getLastSegmentBeforePeriod, } from "./inventory";
19
- import SegmentBuffersStore from "./segment_buffers_store";
20
- export default SegmentBuffersStore;
21
- export { BufferGarbageCollector, SegmentBuffer, SegmentBufferOperation, getFirstSegmentAfterPeriod, getLastSegmentBeforePeriod, };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.getLastSegmentBeforePeriod = exports.getFirstSegmentAfterPeriod = exports.SegmentBufferOperation = exports.SegmentBuffer = exports.BufferGarbageCollector = void 0;
19
+ const garbage_collector_1 = require("./garbage_collector");
20
+ exports.BufferGarbageCollector = garbage_collector_1.default;
21
+ const implementations_1 = require("./implementations");
22
+ Object.defineProperty(exports, "SegmentBuffer", { enumerable: true, get: function () { return implementations_1.SegmentBuffer; } });
23
+ Object.defineProperty(exports, "SegmentBufferOperation", { enumerable: true, get: function () { return implementations_1.SegmentBufferOperation; } });
24
+ const inventory_1 = require("./inventory");
25
+ Object.defineProperty(exports, "getFirstSegmentAfterPeriod", { enumerable: true, get: function () { return inventory_1.getFirstSegmentAfterPeriod; } });
26
+ Object.defineProperty(exports, "getLastSegmentBeforePeriod", { enumerable: true, get: function () { return inventory_1.getLastSegmentBeforePeriod; } });
27
+ const segment_buffers_store_1 = require("./segment_buffers_store");
28
+ exports.default = segment_buffers_store_1.default;
@@ -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 { areSameContent } from "../../../manifest";
17
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const manifest_1 = require("../../../manifest");
19
+ const monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
18
20
  /**
19
21
  * Register a short-lived history of buffer information.
20
22
  *
@@ -28,13 +30,13 @@ import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
28
30
  *
29
31
  * @class BufferedHistory
30
32
  */
31
- var BufferedHistory = /** @class */ (function () {
33
+ class BufferedHistory {
32
34
  /**
33
35
  * @param {number} lifetime - Maximum time a history entry should be retained.
34
36
  * @param {number} maxHistoryLength - Maximum number of entries the history
35
37
  * should have.
36
38
  */
37
- function BufferedHistory(lifetime, maxHistoryLength) {
39
+ constructor(lifetime, maxHistoryLength) {
38
40
  this._history = [];
39
41
  this._lifetime = lifetime;
40
42
  this._maxHistoryLength = maxHistoryLength;
@@ -48,30 +50,31 @@ var BufferedHistory = /** @class */ (function () {
48
50
  * @param {Object} context
49
51
  * @param {Array.<number>|null} buffered
50
52
  */
51
- BufferedHistory.prototype.addBufferedSegment = function (context, buffered) {
52
- var now = getMonotonicTimeStamp();
53
- this._history.push({ date: now, buffered: buffered, context: context });
53
+ addBufferedSegment(context, buffered) {
54
+ const now = (0, monotonic_timestamp_1.default)();
55
+ this._history.push({ date: now,
56
+ buffered,
57
+ context });
54
58
  this._cleanHistory(now);
55
- };
59
+ }
56
60
  /**
57
61
  * Returns all entries linked to the given segment.
58
62
  * @param {Object} context
59
63
  * @returns {Array.<Object>}
60
64
  */
61
- BufferedHistory.prototype.getHistoryFor = function (context) {
62
- return this._history.filter(function (el) { return areSameContent(el.context, context); });
63
- };
65
+ getHistoryFor(context) {
66
+ return this._history.filter(el => (0, manifest_1.areSameContent)(el.context, context));
67
+ }
64
68
  /**
65
69
  * If the current history does not satisfy `_lifetime` or `_maxHistoryLength`,
66
70
  * clear older entries until it does.
67
71
  * @param {number} now - Current monotonically-raising timestamp.
68
72
  */
69
- BufferedHistory.prototype._cleanHistory = function (now) {
70
- var historyEarliestLimit = now - this._lifetime;
71
- var firstKeptIndex = 0;
72
- for (var _i = 0, _a = this._history; _i < _a.length; _i++) {
73
- var event_1 = _a[_i];
74
- if (event_1.date < historyEarliestLimit) {
73
+ _cleanHistory(now) {
74
+ const historyEarliestLimit = now - this._lifetime;
75
+ let firstKeptIndex = 0;
76
+ for (const event of this._history) {
77
+ if (event.date < historyEarliestLimit) {
75
78
  firstKeptIndex++;
76
79
  }
77
80
  else {
@@ -82,10 +85,9 @@ var BufferedHistory = /** @class */ (function () {
82
85
  this._history = this._history.splice(firstKeptIndex);
83
86
  }
84
87
  if (this._history.length > this._maxHistoryLength) {
85
- var toRemove = this._history.length - this._maxHistoryLength;
88
+ const toRemove = this._history.length - this._maxHistoryLength;
86
89
  this._history = this._history.splice(toRemove);
87
90
  }
88
- };
89
- return BufferedHistory;
90
- }());
91
- export default BufferedHistory;
91
+ }
92
+ }
93
+ exports.default = BufferedHistory;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import SegmentInventory from "./segment_inventory";
17
- export default SegmentInventory;
18
- export { getFirstSegmentAfterPeriod, getLastSegmentBeforePeriod, } from "./utils";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.getLastSegmentBeforePeriod = exports.getFirstSegmentAfterPeriod = void 0;
19
+ const segment_inventory_1 = require("./segment_inventory");
20
+ exports.default = segment_inventory_1.default;
21
+ var utils_1 = require("./utils");
22
+ Object.defineProperty(exports, "getFirstSegmentAfterPeriod", { enumerable: true, get: function () { return utils_1.getFirstSegmentAfterPeriod; } });
23
+ Object.defineProperty(exports, "getLastSegmentBeforePeriod", { enumerable: true, get: function () { return utils_1.getLastSegmentBeforePeriod; } });