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,10 +14,11 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import config from "../../../../config";
17
- import areCodecsCompatible from "../../../../utils/are_codecs_compatible";
18
- import { convertToRanges, excludeFromRanges, isTimeInRange, isTimeInRanges, keepRangeIntersection, } from "../../../../utils/ranges";
19
- import { getFirstSegmentAfterPeriod, getLastSegmentBeforePeriod, } from "../../../segment_buffers";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const config_1 = require("../../../../config");
19
+ const are_codecs_compatible_1 = require("../../../../utils/are_codecs_compatible");
20
+ const ranges_1 = require("../../../../utils/ranges");
21
+ const segment_buffers_1 = require("../../../segment_buffers");
20
22
  /**
21
23
  * Find out what to do when switching Adaptation, based on the current
22
24
  * situation.
@@ -26,60 +28,60 @@ import { getFirstSegmentAfterPeriod, getLastSegmentBeforePeriod, } from "../../.
26
28
  * @param {Object} playbackInfo
27
29
  * @returns {Object}
28
30
  */
29
- export default function getAdaptationSwitchStrategy(segmentBuffer, period, adaptation, switchingMode, playbackInfo, options) {
31
+ function getAdaptationSwitchStrategy(segmentBuffer, period, adaptation, switchingMode, playbackInfo, options) {
30
32
  if (segmentBuffer.codec !== undefined &&
31
33
  options.onCodecSwitch === "reload" &&
32
34
  !hasCompatibleCodec(adaptation, segmentBuffer.codec)) {
33
35
  return { type: "needs-reload", value: undefined };
34
36
  }
35
- var buffered = segmentBuffer.getBufferedRanges();
37
+ const buffered = segmentBuffer.getBufferedRanges();
36
38
  if (buffered.length === 0) {
37
39
  return { type: "continue", value: undefined };
38
40
  }
39
- var bufferedRanges = convertToRanges(buffered);
40
- var start = period.start;
41
- var end = period.end == null ? Infinity :
41
+ const bufferedRanges = (0, ranges_1.convertToRanges)(buffered);
42
+ const start = period.start;
43
+ const end = period.end == null ? Infinity :
42
44
  period.end;
43
- var intersection = keepRangeIntersection(bufferedRanges, [{ start: start, end: end }]);
45
+ const intersection = (0, ranges_1.keepRangeIntersection)(bufferedRanges, [{ start, end }]);
44
46
  if (intersection.length === 0) {
45
47
  return { type: "continue", value: undefined };
46
48
  }
47
49
  segmentBuffer.synchronizeInventory();
48
- var inventory = segmentBuffer.getInventory();
50
+ const inventory = segmentBuffer.getInventory();
49
51
  // Continue if we have no other Adaptation buffered in the current Period
50
- if (!inventory.some(function (buf) { return buf.infos.period.id === period.id &&
51
- buf.infos.adaptation.id !== adaptation.id; })) {
52
+ if (!inventory.some(buf => buf.infos.period.id === period.id &&
53
+ buf.infos.adaptation.id !== adaptation.id)) {
52
54
  return { type: "continue", value: undefined };
53
55
  }
54
56
  /** Data already in the right Adaptation */
55
- var adaptationInBuffer = getBufferedRangesFromAdaptation(inventory, period, adaptation);
57
+ const adaptationInBuffer = getBufferedRangesFromAdaptation(inventory, period, adaptation);
56
58
  /**
57
59
  * Data different from the wanted Adaptation in the Period's range.
58
60
  * /!\ Could contain some data at the end of the previous Period or at the
59
61
  * beginning of the next one.
60
62
  */
61
- var unwantedRange = excludeFromRanges(intersection, adaptationInBuffer);
63
+ const unwantedRange = (0, ranges_1.excludeFromRanges)(intersection, adaptationInBuffer);
62
64
  if (unwantedRange.length === 0) {
63
65
  return { type: "continue", value: undefined };
64
66
  }
65
- var currentTime = playbackInfo.currentTime;
67
+ const { currentTime } = playbackInfo;
66
68
  if (switchingMode === "reload" &&
67
69
  // We're playing the current Period
68
- isTimeInRange({ start: start, end: end }, currentTime) &&
70
+ (0, ranges_1.isTimeInRange)({ start, end }, currentTime) &&
69
71
  // There is data for the current position or the codecs are differents
70
72
  (playbackInfo.readyState > 1 || !adaptation.getPlayableRepresentations()
71
- .some(function (rep) { var _a; return areCodecsCompatible(rep.getMimeTypeString(), (_a = segmentBuffer.codec) !== null && _a !== void 0 ? _a : ""); })) &&
73
+ .some(rep => { var _a; return (0, are_codecs_compatible_1.default)(rep.getMimeTypeString(), (_a = segmentBuffer.codec) !== null && _a !== void 0 ? _a : ""); })) &&
72
74
  // We're not playing the current wanted video Adaptation
73
- !isTimeInRanges(adaptationInBuffer, currentTime)) {
75
+ !(0, ranges_1.isTimeInRanges)(adaptationInBuffer, currentTime)) {
74
76
  return { type: "needs-reload", value: undefined };
75
77
  }
76
78
  // From here, clean-up data from the previous Adaptation, if one
77
- var shouldCleanAll = switchingMode === "direct";
78
- var rangesToExclude = [];
79
+ const shouldCleanAll = switchingMode === "direct";
80
+ const rangesToExclude = [];
79
81
  // First, we don't want to accidentally remove some segments from the previous
80
82
  // Period (which overlap a little with this one)
81
83
  /** Last segment before one for the current period. */
82
- var lastSegmentBefore = getLastSegmentBeforePeriod(inventory, period);
84
+ const lastSegmentBefore = (0, segment_buffers_1.getLastSegmentBeforePeriod)(inventory, period);
83
85
  if (lastSegmentBefore !== null &&
84
86
  (lastSegmentBefore.bufferedEnd === undefined ||
85
87
  period.start - lastSegmentBefore.bufferedEnd < 1)) // Close to Period's start
@@ -90,14 +92,14 @@ export default function getAdaptationSwitchStrategy(segmentBuffer, period, adapt
90
92
  end: period.start + 1 });
91
93
  }
92
94
  // Next, exclude data around current position to avoid decoding issues
93
- var bufferType = adaptation.type;
94
- var ADAP_REP_SWITCH_BUFFER_PADDINGS = config.getCurrent().ADAP_REP_SWITCH_BUFFER_PADDINGS;
95
+ const bufferType = adaptation.type;
96
+ const { ADAP_REP_SWITCH_BUFFER_PADDINGS } = config_1.default.getCurrent();
95
97
  /** Ranges that won't be cleaned from the current buffer. */
96
- var paddingBefore = ADAP_REP_SWITCH_BUFFER_PADDINGS[bufferType].before;
98
+ let paddingBefore = ADAP_REP_SWITCH_BUFFER_PADDINGS[bufferType].before;
97
99
  if (paddingBefore == null) {
98
100
  paddingBefore = 0;
99
101
  }
100
- var paddingAfter = ADAP_REP_SWITCH_BUFFER_PADDINGS[bufferType].after;
102
+ let paddingAfter = ADAP_REP_SWITCH_BUFFER_PADDINGS[bufferType].after;
101
103
  if (paddingAfter == null) {
102
104
  paddingAfter = 0;
103
105
  }
@@ -109,7 +111,7 @@ export default function getAdaptationSwitchStrategy(segmentBuffer, period, adapt
109
111
  // next Period
110
112
  if (period.end !== undefined) {
111
113
  /** first segment after for the current period. */
112
- var firstSegmentAfter = getFirstSegmentAfterPeriod(inventory, period);
114
+ const firstSegmentAfter = (0, segment_buffers_1.getFirstSegmentAfterPeriod)(inventory, period);
113
115
  if (firstSegmentAfter !== null &&
114
116
  (firstSegmentAfter.bufferedStart === undefined ||
115
117
  (firstSegmentAfter.bufferedStart - period.end) < 1)) // Close to Period's end
@@ -118,7 +120,7 @@ export default function getAdaptationSwitchStrategy(segmentBuffer, period, adapt
118
120
  end: Number.MAX_VALUE });
119
121
  }
120
122
  }
121
- var toRemove = excludeFromRanges(unwantedRange, rangesToExclude);
123
+ const toRemove = (0, ranges_1.excludeFromRanges)(unwantedRange, rangesToExclude);
122
124
  if (toRemove.length === 0) {
123
125
  return { type: "continue", value: undefined };
124
126
  }
@@ -126,6 +128,7 @@ export default function getAdaptationSwitchStrategy(segmentBuffer, period, adapt
126
128
  { type: "flush-buffer", value: toRemove } :
127
129
  { type: "clean-buffer", value: toRemove };
128
130
  }
131
+ exports.default = getAdaptationSwitchStrategy;
129
132
  /**
130
133
  * Returns `true` if at least one codec of the Representations in the given
131
134
  * Adaptation has a codec compatible with the given SegmentBuffer's codec.
@@ -134,9 +137,7 @@ export default function getAdaptationSwitchStrategy(segmentBuffer, period, adapt
134
137
  * @returns {boolean}
135
138
  */
136
139
  function hasCompatibleCodec(adaptation, segmentBufferCodec) {
137
- return adaptation.getPlayableRepresentations().some(function (rep) {
138
- return areCodecsCompatible(rep.getMimeTypeString(), segmentBufferCodec);
139
- });
140
+ return adaptation.getPlayableRepresentations().some(rep => (0, are_codecs_compatible_1.default)(rep.getMimeTypeString(), segmentBufferCodec));
140
141
  }
141
142
  /**
142
143
  * Returns buffered ranges of what we know correspond to the given `adaptation`
@@ -147,12 +148,12 @@ function hasCompatibleCodec(adaptation, segmentBufferCodec) {
147
148
  * @returns {Array.<Object>}
148
149
  */
149
150
  function getBufferedRangesFromAdaptation(inventory, period, adaptation) {
150
- return inventory.reduce(function (acc, chunk) {
151
+ return inventory.reduce((acc, chunk) => {
151
152
  if (chunk.infos.period.id !== period.id ||
152
153
  chunk.infos.adaptation.id !== adaptation.id) {
153
154
  return acc;
154
155
  }
155
- var bufferedStart = chunk.bufferedStart, bufferedEnd = chunk.bufferedEnd;
156
+ const { bufferedStart, bufferedEnd } = chunk;
156
157
  if (bufferedStart === undefined || bufferedEnd === undefined) {
157
158
  return acc;
158
159
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,21 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import RepresentationStream from "./representation_stream";
17
- export * from "./types";
18
- export default RepresentationStream;
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
29
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ const representation_stream_1 = require("./representation_stream");
33
+ __exportStar(require("./types"), exports);
34
+ exports.default = representation_stream_1.default;
@@ -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
  * This file allows to create RepresentationStreams.
18
20
  *
@@ -21,16 +23,16 @@
21
23
  * It chooses which segments should be downloaded according to the current
22
24
  * position and what is currently buffered.
23
25
  */
24
- import config from "../../../config";
25
- import log from "../../../log";
26
- import objectAssign from "../../../utils/object_assign";
27
- import SharedReference from "../../../utils/reference";
28
- import TaskCanceller, { CancellationError, } from "../../../utils/task_canceller";
29
- import DownloadingQueue from "./utils/downloading_queue";
30
- import getBufferStatus from "./utils/get_buffer_status";
31
- import getSegmentPriority from "./utils/get_segment_priority";
32
- import pushInitSegment from "./utils/push_init_segment";
33
- import pushMediaSegment from "./utils/push_media_segment";
26
+ const config_1 = require("../../../config");
27
+ const log_1 = require("../../../log");
28
+ const object_assign_1 = require("../../../utils/object_assign");
29
+ const reference_1 = require("../../../utils/reference");
30
+ const task_canceller_1 = require("../../../utils/task_canceller");
31
+ const downloading_queue_1 = require("./utils/downloading_queue");
32
+ const get_buffer_status_1 = require("./utils/get_buffer_status");
33
+ const get_segment_priority_1 = require("./utils/get_segment_priority");
34
+ const push_init_segment_1 = require("./utils/push_init_segment");
35
+ const push_media_segment_1 = require("./utils/push_media_segment");
34
36
  /**
35
37
  * Perform the logic to load the right segments for the given Representation and
36
38
  * push them to the given `SegmentBuffer`.
@@ -66,40 +68,39 @@ import pushMediaSegment from "./utils/push_media_segment";
66
68
  * triggered, to immediately stop all operations the `RepresentationStream` is
67
69
  * doing.
68
70
  */
69
- export default function RepresentationStream(_a, callbacks, parentCancelSignal) {
70
- var content = _a.content, options = _a.options, playbackObserver = _a.playbackObserver, segmentBuffer = _a.segmentBuffer, segmentFetcher = _a.segmentFetcher, terminate = _a.terminate;
71
- var period = content.period, adaptation = content.adaptation, representation = content.representation;
72
- var bufferGoal = options.bufferGoal, maxBufferSize = options.maxBufferSize, drmSystemId = options.drmSystemId, fastSwitchThreshold = options.fastSwitchThreshold;
73
- var bufferType = adaptation.type;
71
+ function RepresentationStream({ content, options, playbackObserver, segmentBuffer, segmentFetcher, terminate }, callbacks, parentCancelSignal) {
72
+ const { period, adaptation, representation } = content;
73
+ const { bufferGoal, maxBufferSize, drmSystemId, fastSwitchThreshold } = options;
74
+ const bufferType = adaptation.type;
74
75
  /** `TaskCanceller` stopping ALL operations performed by the `RepresentationStream` */
75
- var globalCanceller = new TaskCanceller();
76
+ const globalCanceller = new task_canceller_1.default();
76
77
  globalCanceller.linkToSignal(parentCancelSignal);
77
78
  /**
78
79
  * `TaskCanceller` allowing to only stop segment loading and checking operations.
79
80
  * This allows to stop only tasks linked to network resource usage, which is
80
81
  * often a limited resource, while still letting buffer operations to finish.
81
82
  */
82
- var segmentsLoadingCanceller = new TaskCanceller();
83
+ const segmentsLoadingCanceller = new task_canceller_1.default();
83
84
  segmentsLoadingCanceller.linkToSignal(globalCanceller.signal);
84
85
  /** Saved initialization segment state for this representation. */
85
- var initSegmentState = {
86
+ const initSegmentState = {
86
87
  segment: representation.index.getInitSegment(),
87
88
  uniqueId: null,
88
89
  isLoaded: false,
89
90
  };
90
- globalCanceller.signal.register(function () {
91
+ globalCanceller.signal.register(() => {
91
92
  // Free initialization segment if one has been declared
92
93
  if (initSegmentState.uniqueId !== null) {
93
94
  segmentBuffer.freeInitSegment(initSegmentState.uniqueId);
94
95
  }
95
96
  });
96
97
  /** Emit the last scheduled downloading queue for segments. */
97
- var lastSegmentQueue = new SharedReference({
98
+ const lastSegmentQueue = new reference_1.default({
98
99
  initSegment: null,
99
100
  segmentQueue: [],
100
101
  }, segmentsLoadingCanceller.signal);
101
102
  /** If `true`, the current Representation has a linked initialization segment. */
102
- var hasInitSegment = initSegmentState.segment !== null;
103
+ const hasInitSegment = initSegmentState.segment !== null;
103
104
  if (!hasInitSegment) {
104
105
  initSegmentState.isLoaded = true;
105
106
  }
@@ -108,25 +109,25 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
108
109
  * constructed.
109
110
  * Allows to avoid sending multiple times protection events.
110
111
  */
111
- var hasSentEncryptionData = false;
112
+ let hasSentEncryptionData = false;
112
113
  // If the DRM system id is already known, and if we already have encryption data
113
114
  // for it, we may not need to wait until the initialization segment is loaded to
114
115
  // signal required protection data, thus performing License negotiations sooner
115
116
  if (drmSystemId !== undefined) {
116
- var encryptionData = representation.getEncryptionData(drmSystemId);
117
+ const encryptionData = representation.getEncryptionData(drmSystemId);
117
118
  // If some key ids are not known yet, it may be safer to wait for this initialization
118
119
  // segment to be loaded first
119
- if (encryptionData.length > 0 && encryptionData.every(function (e) { return e.keyIds !== undefined; })) {
120
+ if (encryptionData.length > 0 && encryptionData.every(e => e.keyIds !== undefined)) {
120
121
  hasSentEncryptionData = true;
121
- callbacks.encryptionDataEncountered(encryptionData.map(function (d) { return objectAssign({ content: content }, d); }));
122
+ callbacks.encryptionDataEncountered(encryptionData.map(d => (0, object_assign_1.default)({ content }, d)));
122
123
  if (globalCanceller.isUsed()) {
123
124
  return; // previous callback has stopped everything by side-effect
124
125
  }
125
126
  }
126
127
  }
127
128
  /** Will load every segments in `lastSegmentQueue` */
128
- var downloadingQueue = new DownloadingQueue(content, lastSegmentQueue, segmentFetcher, hasInitSegment);
129
- downloadingQueue.addEventListener("error", function (err) {
129
+ const downloadingQueue = new downloading_queue_1.default(content, lastSegmentQueue, segmentFetcher, hasInitSegment);
130
+ downloadingQueue.addEventListener("error", (err) => {
130
131
  if (segmentsLoadingCanceller.signal.isCancelled()) {
131
132
  return; // ignore post requests-cancellation loading-related errors,
132
133
  }
@@ -136,13 +137,13 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
136
137
  downloadingQueue.addEventListener("parsedInitSegment", onParsedChunk);
137
138
  downloadingQueue.addEventListener("parsedMediaSegment", onParsedChunk);
138
139
  downloadingQueue.addEventListener("emptyQueue", checkStatus);
139
- downloadingQueue.addEventListener("requestRetry", function (payload) {
140
+ downloadingQueue.addEventListener("requestRetry", (payload) => {
140
141
  callbacks.warning(payload.error);
141
142
  if (segmentsLoadingCanceller.signal.isCancelled()) {
142
143
  return; // If the previous callback led to loading operations being stopped, skip
143
144
  }
144
- var retriedSegment = payload.segment;
145
- var index = representation.index;
145
+ const retriedSegment = payload.segment;
146
+ const { index } = representation;
146
147
  if (index.isSegmentStillAvailable(retriedSegment) === false) {
147
148
  checkStatus();
148
149
  }
@@ -150,12 +151,12 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
150
151
  callbacks.manifestMightBeOufOfSync();
151
152
  }
152
153
  });
153
- downloadingQueue.addEventListener("fullyLoadedSegment", function (segment) {
154
- segmentBuffer.endOfSegment(objectAssign({ segment: segment }, content), globalCanceller.signal)
154
+ downloadingQueue.addEventListener("fullyLoadedSegment", (segment) => {
155
+ segmentBuffer.endOfSegment((0, object_assign_1.default)({ segment }, content), globalCanceller.signal)
155
156
  .catch(onFatalBufferError);
156
157
  });
157
158
  downloadingQueue.start();
158
- segmentsLoadingCanceller.signal.register(function () {
159
+ segmentsLoadingCanceller.signal.register(() => {
159
160
  downloadingQueue.removeEventListener();
160
161
  downloadingQueue.stop();
161
162
  });
@@ -188,40 +189,40 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
188
189
  if (segmentsLoadingCanceller.isUsed()) {
189
190
  return; // Stop all buffer status checking if load operations are stopped
190
191
  }
191
- var observation = playbackObserver.getReference().getValue();
192
- var initialWantedTime = (_a = observation.position.pending) !== null && _a !== void 0 ? _a : observation.position.last;
193
- var status = getBufferStatus(content, initialWantedTime, playbackObserver, fastSwitchThreshold.getValue(), bufferGoal.getValue(), maxBufferSize.getValue(), segmentBuffer);
194
- var neededSegments = status.neededSegments;
195
- var neededInitSegment = null;
192
+ const observation = playbackObserver.getReference().getValue();
193
+ const initialWantedTime = (_a = observation.position.pending) !== null && _a !== void 0 ? _a : observation.position.last;
194
+ const status = (0, get_buffer_status_1.default)(content, initialWantedTime, playbackObserver, fastSwitchThreshold.getValue(), bufferGoal.getValue(), maxBufferSize.getValue(), segmentBuffer);
195
+ const { neededSegments } = status;
196
+ let neededInitSegment = null;
196
197
  // Add initialization segment if required
197
198
  if (!representation.index.isInitialized()) {
198
199
  if (initSegmentState.segment === null) {
199
- log.warn("Stream: Uninitialized index without an initialization segment");
200
+ log_1.default.warn("Stream: Uninitialized index without an initialization segment");
200
201
  }
201
202
  else if (initSegmentState.isLoaded) {
202
- log.warn("Stream: Uninitialized index with an already loaded " +
203
+ log_1.default.warn("Stream: Uninitialized index with an already loaded " +
203
204
  "initialization segment");
204
205
  }
205
206
  else {
206
- var wantedStart = (_b = observation.position.pending) !== null && _b !== void 0 ? _b : observation.position.last;
207
+ const wantedStart = (_b = observation.position.pending) !== null && _b !== void 0 ? _b : observation.position.last;
207
208
  neededInitSegment = { segment: initSegmentState.segment,
208
- priority: getSegmentPriority(period.start, wantedStart) };
209
+ priority: (0, get_segment_priority_1.default)(period.start, wantedStart) };
209
210
  }
210
211
  }
211
212
  else if (neededSegments.length > 0 &&
212
213
  !initSegmentState.isLoaded &&
213
214
  initSegmentState.segment !== null) {
214
- var initSegmentPriority = neededSegments[0].priority;
215
+ const initSegmentPriority = neededSegments[0].priority;
215
216
  neededInitSegment = { segment: initSegmentState.segment,
216
217
  priority: initSegmentPriority };
217
218
  }
218
- var terminateVal = terminate.getValue();
219
+ const terminateVal = terminate.getValue();
219
220
  if (terminateVal === null) {
220
221
  lastSegmentQueue.setValue({ initSegment: neededInitSegment,
221
222
  segmentQueue: neededSegments });
222
223
  }
223
224
  else if (terminateVal.urgent) {
224
- log.debug("Stream: Urgent switch, terminate now.", bufferType);
225
+ log_1.default.debug("Stream: Urgent switch, terminate now.", bufferType);
225
226
  lastSegmentQueue.setValue({ initSegment: null, segmentQueue: [] });
226
227
  lastSegmentQueue.finish();
227
228
  segmentsLoadingCanceller.cancel();
@@ -233,36 +234,39 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
233
234
  // End the download of the current media segment if pending and
234
235
  // terminate once either that request is finished or another segment
235
236
  // is wanted instead, whichever comes first.
236
- var mostNeededSegment = neededSegments[0];
237
- var initSegmentRequest = downloadingQueue.getRequestedInitSegment();
238
- var currentSegmentRequest = downloadingQueue.getRequestedMediaSegment();
239
- var nextQueue = currentSegmentRequest === null ||
237
+ const mostNeededSegment = neededSegments[0];
238
+ const initSegmentRequest = downloadingQueue.getRequestedInitSegment();
239
+ const currentSegmentRequest = downloadingQueue.getRequestedMediaSegment();
240
+ const nextQueue = currentSegmentRequest === null ||
240
241
  mostNeededSegment === undefined ||
241
242
  currentSegmentRequest.id !== mostNeededSegment.segment.id ?
242
243
  [] :
243
244
  [mostNeededSegment];
244
- var nextInit = initSegmentRequest === null ? null :
245
+ const nextInit = initSegmentRequest === null ? null :
245
246
  neededInitSegment;
246
247
  lastSegmentQueue.setValue({ initSegment: nextInit,
247
248
  segmentQueue: nextQueue });
248
249
  if (nextQueue.length === 0 && nextInit === null) {
249
- log.debug("Stream: No request left, terminate", bufferType);
250
+ log_1.default.debug("Stream: No request left, terminate", bufferType);
250
251
  lastSegmentQueue.finish();
251
252
  segmentsLoadingCanceller.cancel();
252
253
  callbacks.terminating();
253
254
  return;
254
255
  }
255
256
  }
256
- callbacks.streamStatusUpdate({ period: period, position: observation.position.last, bufferType: bufferType, imminentDiscontinuity: status.imminentDiscontinuity,
257
+ callbacks.streamStatusUpdate({ period,
258
+ position: observation.position.last,
259
+ bufferType,
260
+ imminentDiscontinuity: status.imminentDiscontinuity,
257
261
  isEmptyStream: false,
258
262
  hasFinishedLoading: status.hasFinishedLoading,
259
263
  neededSegments: status.neededSegments });
260
264
  if (segmentsLoadingCanceller.signal.isCancelled()) {
261
265
  return; // previous callback has stopped loading operations by side-effect
262
266
  }
263
- var UPTO_CURRENT_POSITION_CLEANUP = config.getCurrent().UPTO_CURRENT_POSITION_CLEANUP;
267
+ const { UPTO_CURRENT_POSITION_CLEANUP } = config_1.default.getCurrent();
264
268
  if (status.isBufferFull) {
265
- var gcedPosition = Math.max(0, initialWantedTime - UPTO_CURRENT_POSITION_CLEANUP);
269
+ const gcedPosition = Math.max(0, initialWantedTime - UPTO_CURRENT_POSITION_CLEANUP);
266
270
  if (gcedPosition > 0) {
267
271
  segmentBuffer.removeBuffer(0, gcedPosition, globalCanceller.signal)
268
272
  .catch(onFatalBufferError);
@@ -284,8 +288,7 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
284
288
  return;
285
289
  }
286
290
  // Supplementary encryption information might have been parsed.
287
- for (var _i = 0, _a = evt.protectionData; _i < _a.length; _i++) {
288
- var protInfo = _a[_i];
291
+ for (const protInfo of evt.protectionData) {
289
292
  // TODO better handle use cases like key rotation by not always grouping
290
293
  // every protection data together? To check.
291
294
  representation.addProtectionData(protInfo.initDataType, protInfo.keyId, protInfo.initData);
@@ -294,9 +297,9 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
294
297
  // included encryption information - take care of the encryption event
295
298
  // if not already done.
296
299
  if (!hasSentEncryptionData) {
297
- var allEncryptionData = representation.getAllEncryptionData();
300
+ const allEncryptionData = representation.getAllEncryptionData();
298
301
  if (allEncryptionData.length > 0) {
299
- callbacks.encryptionDataEncountered(allEncryptionData.map(function (p) { return objectAssign({ content: content }, p); }));
302
+ callbacks.encryptionDataEncountered(allEncryptionData.map(p => (0, object_assign_1.default)({ content }, p)));
300
303
  hasSentEncryptionData = true;
301
304
  // previous callback could have lead to cancellation
302
305
  if (globalCanceller.isUsed()) {
@@ -311,12 +314,16 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
311
314
  }
312
315
  initSegmentState.isLoaded = true;
313
316
  if (evt.initializationData !== null) {
314
- var initSegmentUniqueId = representation.uniqueId;
317
+ const initSegmentUniqueId = representation.uniqueId;
315
318
  initSegmentState.uniqueId = initSegmentUniqueId;
316
319
  segmentBuffer.declareInitSegment(initSegmentUniqueId, evt.initializationData);
317
- pushInitSegment({ playbackObserver: playbackObserver, content: content, initSegmentUniqueId: initSegmentUniqueId, segment: evt.segment,
318
- segmentData: evt.initializationData, segmentBuffer: segmentBuffer }, globalCanceller.signal)
319
- .then(function (result) {
320
+ (0, push_init_segment_1.default)({ playbackObserver,
321
+ content,
322
+ initSegmentUniqueId,
323
+ segment: evt.segment,
324
+ segmentData: evt.initializationData,
325
+ segmentBuffer }, globalCanceller.signal)
326
+ .then((result) => {
320
327
  if (result !== null) {
321
328
  callbacks.addedSegment(result);
322
329
  }
@@ -329,7 +336,7 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
329
336
  return;
330
337
  }
331
338
  else {
332
- var inbandEvents = evt.inbandEvents, predictedSegments = evt.predictedSegments, needsManifestRefresh = evt.needsManifestRefresh;
339
+ const { inbandEvents, predictedSegments, needsManifestRefresh } = evt;
333
340
  if (predictedSegments !== undefined) {
334
341
  representation.index.addPredictedSegments(predictedSegments, evt.segment);
335
342
  }
@@ -345,10 +352,14 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
345
352
  return; // previous callback has stopped everything by side-effect
346
353
  }
347
354
  }
348
- var initSegmentUniqueId = initSegmentState.uniqueId;
349
- pushMediaSegment({ playbackObserver: playbackObserver, content: content, initSegmentUniqueId: initSegmentUniqueId, parsedSegment: evt,
350
- segment: evt.segment, segmentBuffer: segmentBuffer }, globalCanceller.signal)
351
- .then(function (result) {
355
+ const initSegmentUniqueId = initSegmentState.uniqueId;
356
+ (0, push_media_segment_1.default)({ playbackObserver,
357
+ content,
358
+ initSegmentUniqueId,
359
+ parsedSegment: evt,
360
+ segment: evt.segment,
361
+ segmentBuffer }, globalCanceller.signal)
362
+ .then((result) => {
352
363
  if (result !== null) {
353
364
  callbacks.addedSegment(result);
354
365
  }
@@ -363,7 +374,7 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
363
374
  * @param {*} err
364
375
  */
365
376
  function onFatalBufferError(err) {
366
- if (globalCanceller.isUsed() && err instanceof CancellationError) {
377
+ if (globalCanceller.isUsed() && err instanceof task_canceller_1.CancellationError) {
367
378
  // The error is linked to cancellation AND we explicitely cancelled buffer
368
379
  // operations.
369
380
  // We can thus ignore it, it is very unlikely to lead to true buffer issues.
@@ -373,3 +384,4 @@ export default function RepresentationStream(_a, callbacks, parentCancelSignal)
373
384
  callbacks.error(err);
374
385
  }
375
386
  }
387
+ exports.default = RepresentationStream;
@@ -1 +1,2 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });