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,11 +14,13 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { clearElementSrc, events, MediaSource_, } from "../../../compat";
17
- import { MediaError } from "../../../errors";
18
- import log from "../../../log";
19
- import createCancellablePromise from "../../../utils/create_cancellable_promise";
20
- import isNonEmptyString from "../../../utils/is_non_empty_string";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.resetMediaSource = void 0;
19
+ const compat_1 = require("../../../compat");
20
+ const errors_1 = require("../../../errors");
21
+ const log_1 = require("../../../log");
22
+ const create_cancellable_promise_1 = require("../../../utils/create_cancellable_promise");
23
+ const is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
21
24
  /**
22
25
  * Dispose of ressources taken by the MediaSource:
23
26
  * - Clear the MediaSource' SourceBuffers
@@ -27,39 +30,40 @@ import isNonEmptyString from "../../../utils/is_non_empty_string";
27
30
  * @param {MediaSource|null} mediaSource
28
31
  * @param {string|null} mediaSourceURL
29
32
  */
30
- export function resetMediaSource(mediaElement, mediaSource, mediaSourceURL) {
33
+ function resetMediaSource(mediaElement, mediaSource, mediaSourceURL) {
31
34
  if (mediaSource !== null && mediaSource.readyState !== "closed") {
32
- var readyState = mediaSource.readyState, sourceBuffers = mediaSource.sourceBuffers;
33
- for (var i = sourceBuffers.length - 1; i >= 0; i--) {
34
- var sourceBuffer = sourceBuffers[i];
35
+ const { readyState, sourceBuffers } = mediaSource;
36
+ for (let i = sourceBuffers.length - 1; i >= 0; i--) {
37
+ const sourceBuffer = sourceBuffers[i];
35
38
  try {
36
39
  if (readyState === "open") {
37
- log.info("Init: Aborting SourceBuffer before removing");
40
+ log_1.default.info("Init: Aborting SourceBuffer before removing");
38
41
  sourceBuffer.abort();
39
42
  }
40
- log.info("Init: Removing SourceBuffer from mediaSource");
43
+ log_1.default.info("Init: Removing SourceBuffer from mediaSource");
41
44
  mediaSource.removeSourceBuffer(sourceBuffer);
42
45
  }
43
46
  catch (e) {
44
- log.warn("Init: Error while disposing SourceBuffer", e instanceof Error ? e : "");
47
+ log_1.default.warn("Init: Error while disposing SourceBuffer", e instanceof Error ? e : "");
45
48
  }
46
49
  }
47
50
  if (sourceBuffers.length > 0) {
48
- log.warn("Init: Not all SourceBuffers could have been removed.");
51
+ log_1.default.warn("Init: Not all SourceBuffers could have been removed.");
49
52
  }
50
53
  }
51
- log.info("Init: Clearing HTMLMediaElement's src");
52
- clearElementSrc(mediaElement);
54
+ log_1.default.info("Init: Clearing HTMLMediaElement's src");
55
+ (0, compat_1.clearElementSrc)(mediaElement);
53
56
  if (mediaSourceURL !== null) {
54
57
  try {
55
- log.debug("Init: Revoking previous URL");
58
+ log_1.default.debug("Init: Revoking previous URL");
56
59
  URL.revokeObjectURL(mediaSourceURL);
57
60
  }
58
61
  catch (e) {
59
- log.warn("Init: Error while revoking the media source URL", e instanceof Error ? e : "");
62
+ log_1.default.warn("Init: Error while revoking the media source URL", e instanceof Error ? e : "");
60
63
  }
61
64
  }
62
65
  }
66
+ exports.resetMediaSource = resetMediaSource;
63
67
  /**
64
68
  * Create a MediaSource instance and attach it to the given mediaElement element's
65
69
  * src attribute.
@@ -74,19 +78,19 @@ export function resetMediaSource(mediaElement, mediaSource, mediaSourceURL) {
74
78
  * @returns {MediaSource}
75
79
  */
76
80
  function createMediaSource(mediaElement, unlinkSignal) {
77
- if (MediaSource_ == null) {
78
- throw new MediaError("MEDIA_SOURCE_NOT_SUPPORTED", "No MediaSource Object was found in the current browser.");
81
+ if (compat_1.MediaSource_ == null) {
82
+ throw new errors_1.MediaError("MEDIA_SOURCE_NOT_SUPPORTED", "No MediaSource Object was found in the current browser.");
79
83
  }
80
84
  // make sure the media has been correctly reset
81
- var oldSrc = isNonEmptyString(mediaElement.src) ? mediaElement.src :
85
+ const oldSrc = (0, is_non_empty_string_1.default)(mediaElement.src) ? mediaElement.src :
82
86
  null;
83
87
  resetMediaSource(mediaElement, null, oldSrc);
84
- log.info("Init: Creating MediaSource");
85
- var mediaSource = new MediaSource_();
86
- var objectURL = URL.createObjectURL(mediaSource);
87
- log.info("Init: Attaching MediaSource URL to the media element", objectURL);
88
+ log_1.default.info("Init: Creating MediaSource");
89
+ const mediaSource = new compat_1.MediaSource_();
90
+ const objectURL = URL.createObjectURL(mediaSource);
91
+ log_1.default.info("Init: Attaching MediaSource URL to the media element", objectURL);
88
92
  mediaElement.src = objectURL;
89
- unlinkSignal.register(function () {
93
+ unlinkSignal.register(() => {
90
94
  resetMediaSource(mediaElement, mediaSource, objectURL);
91
95
  });
92
96
  return mediaSource;
@@ -101,12 +105,13 @@ function createMediaSource(mediaElement, unlinkSignal) {
101
105
  * @param {Object} unlinkSignal
102
106
  * @returns {Promise}
103
107
  */
104
- export default function openMediaSource(mediaElement, unlinkSignal) {
105
- return createCancellablePromise(unlinkSignal, function (resolve) {
106
- var mediaSource = createMediaSource(mediaElement, unlinkSignal);
107
- events.onSourceOpen(mediaSource, function () {
108
- log.info("Init: MediaSource opened");
108
+ function openMediaSource(mediaElement, unlinkSignal) {
109
+ return (0, create_cancellable_promise_1.default)(unlinkSignal, (resolve) => {
110
+ const mediaSource = createMediaSource(mediaElement, unlinkSignal);
111
+ compat_1.events.onSourceOpen(mediaSource, () => {
112
+ log_1.default.info("Init: MediaSource opened");
109
113
  resolve(mediaSource);
110
114
  }, unlinkSignal);
111
115
  });
112
116
  }
117
+ exports.default = openMediaSource;
@@ -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 SharedReference from "../../../utils/reference";
17
- import TaskCanceller from "../../../utils/task_canceller";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const reference_1 = require("../../../utils/reference");
19
+ const task_canceller_1 = require("../../../utils/task_canceller");
18
20
  /**
19
21
  * Create PlaybackObserver for the `Stream` part of the code.
20
22
  * @param {Object} srcPlaybackObserver - Base `PlaybackObserver` from which we
@@ -24,13 +26,12 @@ import TaskCanceller from "../../../utils/task_canceller";
24
26
  * @param {Object} fnCancelSignal - Abort the created PlaybackObserver.
25
27
  * @returns {Object}
26
28
  */
27
- export default function createStreamPlaybackObserver(srcPlaybackObserver, _a, fnCancelSignal) {
28
- var autoPlay = _a.autoPlay, initialPlayPerformed = _a.initialPlayPerformed, initialSeekPerformed = _a.initialSeekPerformed, manifest = _a.manifest, speed = _a.speed, startTime = _a.startTime;
29
+ function createStreamPlaybackObserver(srcPlaybackObserver, { autoPlay, initialPlayPerformed, initialSeekPerformed, manifest, speed, startTime }, fnCancelSignal) {
29
30
  return srcPlaybackObserver.deriveReadOnlyObserver(function transform(observationRef, parentObserverCancelSignal) {
30
- var canceller = new TaskCanceller();
31
+ const canceller = new task_canceller_1.default();
31
32
  canceller.linkToSignal(parentObserverCancelSignal);
32
33
  canceller.linkToSignal(fnCancelSignal);
33
- var newRef = new SharedReference(constructStreamPlaybackObservation(), canceller.signal);
34
+ const newRef = new reference_1.default(constructStreamPlaybackObservation(), canceller.signal);
34
35
  speed.onUpdate(emitStreamPlaybackObservation, {
35
36
  clearSignal: canceller.signal,
36
37
  emitCurrentValue: false,
@@ -41,9 +42,9 @@ export default function createStreamPlaybackObserver(srcPlaybackObserver, _a, fn
41
42
  });
42
43
  return newRef;
43
44
  function constructStreamPlaybackObservation() {
44
- var observation = observationRef.getValue();
45
- var lastSpeed = speed.getValue();
46
- var pendingPosition;
45
+ const observation = observationRef.getValue();
46
+ const lastSpeed = speed.getValue();
47
+ let pendingPosition;
47
48
  if (!initialSeekPerformed.getValue()) {
48
49
  pendingPosition = startTime;
49
50
  }
@@ -54,7 +55,7 @@ export default function createStreamPlaybackObserver(srcPlaybackObserver, _a, fn
54
55
  // For now, this behavior is implicitely forced by making as if we
55
56
  // want to seek one second before the period's end (despite never
56
57
  // doing it).
57
- var lastPeriod = manifest.periods[manifest.periods.length - 1];
58
+ const lastPeriod = manifest.periods[manifest.periods.length - 1];
58
59
  if (lastPeriod !== undefined &&
59
60
  lastPeriod.end !== undefined &&
60
61
  observation.position > lastPeriod.end) {
@@ -84,3 +85,4 @@ export default function createStreamPlaybackObserver(srcPlaybackObserver, _a, fn
84
85
  }
85
86
  });
86
87
  }
88
+ exports.default = createStreamPlaybackObserver;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,21 +14,23 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { events } from "../../../compat";
17
- import log from "../../../log";
18
- import TaskCanceller from "../../../utils/task_canceller";
19
- var onRemoveSourceBuffers = events.onRemoveSourceBuffers, onSourceOpen = events.onSourceOpen, onSourceBufferUpdate = events.onSourceBufferUpdate;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.maintainEndOfStream = void 0;
19
+ const compat_1 = require("../../../compat");
20
+ const log_1 = require("../../../log");
21
+ const task_canceller_1 = require("../../../utils/task_canceller");
22
+ const { onRemoveSourceBuffers, onSourceOpen, onSourceBufferUpdate } = compat_1.events;
20
23
  /**
21
24
  * Get "updating" SourceBuffers from a SourceBufferList.
22
25
  * @param {SourceBufferList} sourceBuffers
23
26
  * @returns {Array.<SourceBuffer>}
24
27
  */
25
28
  function getUpdatingSourceBuffers(sourceBuffers) {
26
- var updatingSourceBuffers = [];
27
- for (var i = 0; i < sourceBuffers.length; i++) {
28
- var SourceBuffer_1 = sourceBuffers[i];
29
- if (SourceBuffer_1.updating) {
30
- updatingSourceBuffers.push(SourceBuffer_1);
29
+ const updatingSourceBuffers = [];
30
+ for (let i = 0; i < sourceBuffers.length; i++) {
31
+ const SourceBuffer = sourceBuffers[i];
32
+ if (SourceBuffer.updating) {
33
+ updatingSourceBuffers.push(SourceBuffer);
31
34
  }
32
35
  }
33
36
  return updatingSourceBuffers;
@@ -41,49 +44,50 @@ function getUpdatingSourceBuffers(sourceBuffers) {
41
44
  * @param {MediaSource} mediaSource
42
45
  * @param {Object} cancelSignal
43
46
  */
44
- export default function triggerEndOfStream(mediaSource, cancelSignal) {
45
- log.debug("Init: Trying to call endOfStream");
47
+ function triggerEndOfStream(mediaSource, cancelSignal) {
48
+ log_1.default.debug("Init: Trying to call endOfStream");
46
49
  if (mediaSource.readyState !== "open") {
47
- log.debug("Init: MediaSource not open, cancel endOfStream");
50
+ log_1.default.debug("Init: MediaSource not open, cancel endOfStream");
48
51
  return;
49
52
  }
50
- var sourceBuffers = mediaSource.sourceBuffers;
51
- var updatingSourceBuffers = getUpdatingSourceBuffers(sourceBuffers);
53
+ const { sourceBuffers } = mediaSource;
54
+ const updatingSourceBuffers = getUpdatingSourceBuffers(sourceBuffers);
52
55
  if (updatingSourceBuffers.length === 0) {
53
- log.info("Init: Triggering end of stream");
56
+ log_1.default.info("Init: Triggering end of stream");
54
57
  mediaSource.endOfStream();
55
58
  return;
56
59
  }
57
- log.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");
58
- var innerCanceller = new TaskCanceller();
60
+ log_1.default.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");
61
+ const innerCanceller = new task_canceller_1.default();
59
62
  innerCanceller.linkToSignal(cancelSignal);
60
- for (var _i = 0, updatingSourceBuffers_1 = updatingSourceBuffers; _i < updatingSourceBuffers_1.length; _i++) {
61
- var sourceBuffer = updatingSourceBuffers_1[_i];
62
- onSourceBufferUpdate(sourceBuffer, function () {
63
+ for (const sourceBuffer of updatingSourceBuffers) {
64
+ onSourceBufferUpdate(sourceBuffer, () => {
63
65
  innerCanceller.cancel();
64
66
  triggerEndOfStream(mediaSource, cancelSignal);
65
67
  }, innerCanceller.signal);
66
68
  }
67
- onRemoveSourceBuffers(sourceBuffers, function () {
69
+ onRemoveSourceBuffers(sourceBuffers, () => {
68
70
  innerCanceller.cancel();
69
71
  triggerEndOfStream(mediaSource, cancelSignal);
70
72
  }, innerCanceller.signal);
71
73
  }
74
+ exports.default = triggerEndOfStream;
72
75
  /**
73
76
  * Trigger the `endOfStream` method of a MediaSource each times it opens.
74
77
  * @see triggerEndOfStream
75
78
  * @param {MediaSource} mediaSource
76
79
  * @param {Object} cancelSignal
77
80
  */
78
- export function maintainEndOfStream(mediaSource, cancelSignal) {
79
- var endOfStreamCanceller = new TaskCanceller();
81
+ function maintainEndOfStream(mediaSource, cancelSignal) {
82
+ let endOfStreamCanceller = new task_canceller_1.default();
80
83
  endOfStreamCanceller.linkToSignal(cancelSignal);
81
- onSourceOpen(mediaSource, function () {
82
- log.debug("Init: MediaSource re-opened while end-of-stream is active");
84
+ onSourceOpen(mediaSource, () => {
85
+ log_1.default.debug("Init: MediaSource re-opened while end-of-stream is active");
83
86
  endOfStreamCanceller.cancel();
84
- endOfStreamCanceller = new TaskCanceller();
87
+ endOfStreamCanceller = new task_canceller_1.default();
85
88
  endOfStreamCanceller.linkToSignal(cancelSignal);
86
89
  triggerEndOfStream(mediaSource, endOfStreamCanceller.signal);
87
90
  }, cancelSignal);
88
91
  triggerEndOfStream(mediaSource, endOfStreamCanceller.signal);
89
92
  }
93
+ exports.maintainEndOfStream = maintainEndOfStream;
@@ -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 log from "../../../log";
18
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
19
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const config_1 = require("../../../config");
19
+ const log_1 = require("../../../log");
20
+ const is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
21
+ const monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
20
22
  /**
21
23
  * Returns the calculated initial time for the content described by the given
22
24
  * Manifest:
@@ -30,81 +32,82 @@ import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
30
32
  * @param {Object} startAt
31
33
  * @returns {Number}
32
34
  */
33
- export default function getInitialTime(manifest, lowLatencyMode, startAt) {
34
- if (!isNullOrUndefined(startAt)) {
35
- var min = manifest.getMinimumSafePosition();
36
- var max = void 0;
35
+ function getInitialTime(manifest, lowLatencyMode, startAt) {
36
+ if (!(0, is_null_or_undefined_1.default)(startAt)) {
37
+ const min = manifest.getMinimumSafePosition();
38
+ let max;
37
39
  if (manifest.isLive) {
38
40
  max = manifest.getLivePosition();
39
41
  }
40
42
  if (max === undefined) {
41
43
  max = manifest.getMaximumSafePosition();
42
44
  }
43
- if (!isNullOrUndefined(startAt.position)) {
44
- log.debug("Init: using startAt.minimumPosition");
45
+ if (!(0, is_null_or_undefined_1.default)(startAt.position)) {
46
+ log_1.default.debug("Init: using startAt.minimumPosition");
45
47
  return Math.max(Math.min(startAt.position, max), min);
46
48
  }
47
- else if (!isNullOrUndefined(startAt.wallClockTime)) {
48
- log.debug("Init: using startAt.wallClockTime");
49
- var ast = manifest.availabilityStartTime === undefined ?
49
+ else if (!(0, is_null_or_undefined_1.default)(startAt.wallClockTime)) {
50
+ log_1.default.debug("Init: using startAt.wallClockTime");
51
+ const ast = manifest.availabilityStartTime === undefined ?
50
52
  0 :
51
53
  manifest.availabilityStartTime;
52
- var position = startAt.wallClockTime - ast;
54
+ const position = startAt.wallClockTime - ast;
53
55
  return Math.max(Math.min(position, max), min);
54
56
  }
55
- else if (!isNullOrUndefined(startAt.fromFirstPosition)) {
56
- log.debug("Init: using startAt.fromFirstPosition");
57
- var fromFirstPosition = startAt.fromFirstPosition;
57
+ else if (!(0, is_null_or_undefined_1.default)(startAt.fromFirstPosition)) {
58
+ log_1.default.debug("Init: using startAt.fromFirstPosition");
59
+ const { fromFirstPosition } = startAt;
58
60
  return fromFirstPosition <= 0 ? min :
59
61
  Math.min(max, min + fromFirstPosition);
60
62
  }
61
- else if (!isNullOrUndefined(startAt.fromLastPosition)) {
62
- log.debug("Init: using startAt.fromLastPosition");
63
- var fromLastPosition = startAt.fromLastPosition;
63
+ else if (!(0, is_null_or_undefined_1.default)(startAt.fromLastPosition)) {
64
+ log_1.default.debug("Init: using startAt.fromLastPosition");
65
+ const { fromLastPosition } = startAt;
64
66
  return fromLastPosition >= 0 ? max :
65
67
  Math.max(min, max + fromLastPosition);
66
68
  }
67
- else if (!isNullOrUndefined(startAt.percentage)) {
68
- log.debug("Init: using startAt.percentage");
69
- var percentage = startAt.percentage;
69
+ else if (!(0, is_null_or_undefined_1.default)(startAt.percentage)) {
70
+ log_1.default.debug("Init: using startAt.percentage");
71
+ const { percentage } = startAt;
70
72
  if (percentage > 100) {
71
73
  return max;
72
74
  }
73
75
  else if (percentage < 0) {
74
76
  return min;
75
77
  }
76
- var ratio = +percentage / 100;
77
- var extent = max - min;
78
+ const ratio = +percentage / 100;
79
+ const extent = max - min;
78
80
  return min + extent * ratio;
79
81
  }
80
82
  }
81
- var minimumPosition = manifest.getMinimumSafePosition();
83
+ const minimumPosition = manifest.getMinimumSafePosition();
82
84
  if (manifest.isLive) {
83
- var suggestedPresentationDelay = manifest.suggestedPresentationDelay, clockOffset = manifest.clockOffset;
84
- var maximumPosition = manifest.getMaximumSafePosition();
85
- var liveTime = void 0;
86
- var DEFAULT_LIVE_GAP = config.getCurrent().DEFAULT_LIVE_GAP;
85
+ const { suggestedPresentationDelay, clockOffset } = manifest;
86
+ const maximumPosition = manifest.getMaximumSafePosition();
87
+ let liveTime;
88
+ const { DEFAULT_LIVE_GAP } = config_1.default.getCurrent();
87
89
  if (clockOffset === undefined) {
88
- log.info("Init: no clock offset found for a live content, " +
90
+ log_1.default.info("Init: no clock offset found for a live content, " +
89
91
  "starting close to maximum available position");
90
92
  liveTime = maximumPosition;
91
93
  }
92
94
  else {
93
- log.info("Init: clock offset found for a live content, " +
95
+ log_1.default.info("Init: clock offset found for a live content, " +
94
96
  "checking if we can start close to it");
95
- var ast = manifest.availabilityStartTime === undefined ?
97
+ const ast = manifest.availabilityStartTime === undefined ?
96
98
  0 :
97
99
  manifest.availabilityStartTime;
98
- var clockRelativeLiveTime = (getMonotonicTimeStamp() + clockOffset) / 1000 - ast;
100
+ const clockRelativeLiveTime = ((0, monotonic_timestamp_1.default)() + clockOffset) / 1000 - ast;
99
101
  liveTime = Math.min(maximumPosition, clockRelativeLiveTime);
100
102
  }
101
- var diffFromLiveTime = suggestedPresentationDelay !== undefined ? suggestedPresentationDelay :
103
+ const diffFromLiveTime = suggestedPresentationDelay !== undefined ? suggestedPresentationDelay :
102
104
  lowLatencyMode ? DEFAULT_LIVE_GAP.LOW_LATENCY :
103
105
  DEFAULT_LIVE_GAP.DEFAULT;
104
- log.debug("Init: ".concat(liveTime, " defined as the live time, applying a live gap") +
105
- " of ".concat(diffFromLiveTime));
106
+ log_1.default.debug(`Init: ${liveTime} defined as the live time, applying a live gap` +
107
+ ` of ${diffFromLiveTime}`);
106
108
  return Math.max(liveTime - diffFromLiveTime, minimumPosition);
107
109
  }
108
- log.info("Init: starting at the minimum available position:", minimumPosition);
110
+ log_1.default.info("Init: starting at the minimum available position:", minimumPosition);
109
111
  return minimumPosition;
110
112
  }
113
+ exports.default = getInitialTime;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { shouldValidateMetadata, shouldWaitForDataBeforeLoaded, shouldWaitForHaveEnoughData, } from "../../../compat";
17
- import SharedReference from "../../../utils/reference";
18
- import TaskCanceller from "../../../utils/task_canceller";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../../../compat");
19
+ const reference_1 = require("../../../utils/reference");
20
+ const task_canceller_1 = require("../../../utils/task_canceller");
19
21
  /**
20
22
  * Returns an `IReadOnlySharedReference` that switches to `true` once the
21
23
  * content is considered loaded (i.e. once it can begin to be played).
@@ -25,27 +27,27 @@ import TaskCanceller from "../../../utils/task_canceller";
25
27
  * @param {Object} cancelSignal
26
28
  * @returns {Object}
27
29
  */
28
- export default function getLoadedReference(playbackObserver, mediaElement, isDirectfile, cancelSignal) {
29
- var listenCanceller = new TaskCanceller();
30
+ function getLoadedReference(playbackObserver, mediaElement, isDirectfile, cancelSignal) {
31
+ const listenCanceller = new task_canceller_1.default();
30
32
  listenCanceller.linkToSignal(cancelSignal);
31
- var isLoaded = new SharedReference(false, listenCanceller.signal);
32
- playbackObserver.listen(function (observation) {
33
+ const isLoaded = new reference_1.default(false, listenCanceller.signal);
34
+ playbackObserver.listen((observation) => {
33
35
  if (observation.rebuffering !== null ||
34
36
  observation.freezing !== null ||
35
37
  observation.readyState === 0) {
36
38
  return;
37
39
  }
38
- if (!shouldWaitForDataBeforeLoaded(isDirectfile, mediaElement.hasAttribute("playsinline"))) {
40
+ if (!(0, compat_1.shouldWaitForDataBeforeLoaded)(isDirectfile, mediaElement.hasAttribute("playsinline"))) {
39
41
  if (mediaElement.duration > 0) {
40
42
  isLoaded.setValue(true);
41
43
  listenCanceller.cancel();
42
44
  return;
43
45
  }
44
46
  }
45
- var minReadyState = shouldWaitForHaveEnoughData() ? 4 :
47
+ const minReadyState = (0, compat_1.shouldWaitForHaveEnoughData)() ? 4 :
46
48
  3;
47
49
  if (observation.readyState >= minReadyState && observation.currentRange !== null) {
48
- if (!shouldValidateMetadata() || mediaElement.duration > 0) {
50
+ if (!(0, compat_1.shouldValidateMetadata)() || mediaElement.duration > 0) {
49
51
  isLoaded.setValue(true);
50
52
  listenCanceller.cancel();
51
53
  return;
@@ -54,3 +56,4 @@ export default function getLoadedReference(playbackObserver, mediaElement, isDir
54
56
  }, { includeLastObservation: true, clearSignal: listenCanceller.signal });
55
57
  return isLoaded;
56
58
  }
59
+ exports.default = getLoadedReference;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,11 +14,12 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { shouldValidateMetadata } from "../../../compat";
17
- import { READY_STATES } from "../../../compat/browser_compatibility_types";
18
- import { MediaError } from "../../../errors";
19
- import log from "../../../log";
20
- import SharedReference from "../../../utils/reference";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../../../compat");
19
+ const browser_compatibility_types_1 = require("../../../compat/browser_compatibility_types");
20
+ const errors_1 = require("../../../errors");
21
+ const log_1 = require("../../../log");
22
+ const reference_1 = require("../../../utils/reference");
21
23
  /**
22
24
  * Seek as soon as possible at the initially wanted position and play if
23
25
  * autoPlay is wanted.
@@ -29,41 +31,41 @@ import SharedReference from "../../../utils/reference";
29
31
  * @param {Object} cancelSignal
30
32
  * @returns {Object}
31
33
  */
32
- export default function performInitialSeekAndPlay(mediaElement, playbackObserver, startTime, mustAutoPlay, onWarning, cancelSignal) {
33
- var resolveAutoPlay;
34
- var rejectAutoPlay;
35
- var autoPlayResult = new Promise(function (res, rej) {
34
+ function performInitialSeekAndPlay(mediaElement, playbackObserver, startTime, mustAutoPlay, onWarning, cancelSignal) {
35
+ let resolveAutoPlay;
36
+ let rejectAutoPlay;
37
+ const autoPlayResult = new Promise((res, rej) => {
36
38
  resolveAutoPlay = res;
37
39
  rejectAutoPlay = rej;
38
40
  });
39
- var initialSeekPerformed = new SharedReference(false, cancelSignal);
40
- var initialPlayPerformed = new SharedReference(false, cancelSignal);
41
+ const initialSeekPerformed = new reference_1.default(false, cancelSignal);
42
+ const initialPlayPerformed = new reference_1.default(false, cancelSignal);
41
43
  mediaElement.addEventListener("loadedmetadata", onLoadedMetadata);
42
- var deregisterCancellation = cancelSignal.register(function (err) {
44
+ const deregisterCancellation = cancelSignal.register((err) => {
43
45
  mediaElement.removeEventListener("loadedmetadata", onLoadedMetadata);
44
46
  rejectAutoPlay(err);
45
47
  });
46
- if (mediaElement.readyState >= READY_STATES.HAVE_METADATA) {
48
+ if (mediaElement.readyState >= browser_compatibility_types_1.READY_STATES.HAVE_METADATA) {
47
49
  onLoadedMetadata();
48
50
  }
49
- return { autoPlayResult: autoPlayResult, initialPlayPerformed: initialPlayPerformed, initialSeekPerformed: initialSeekPerformed };
51
+ return { autoPlayResult, initialPlayPerformed, initialSeekPerformed };
50
52
  function onLoadedMetadata() {
51
53
  mediaElement.removeEventListener("loadedmetadata", onLoadedMetadata);
52
- var initialTime = typeof startTime === "function" ? startTime() :
54
+ const initialTime = typeof startTime === "function" ? startTime() :
53
55
  startTime;
54
- log.info("Init: Set initial time", initialTime);
56
+ log_1.default.info("Init: Set initial time", initialTime);
55
57
  playbackObserver.setCurrentTime(initialTime);
56
58
  initialSeekPerformed.setValue(true);
57
59
  initialSeekPerformed.finish();
58
- if (shouldValidateMetadata() && mediaElement.duration === 0) {
59
- var error = new MediaError("MEDIA_ERR_NOT_LOADED_METADATA", "Cannot load automatically: your browser " +
60
+ if ((0, compat_1.shouldValidateMetadata)() && mediaElement.duration === 0) {
61
+ const error = new errors_1.MediaError("MEDIA_ERR_NOT_LOADED_METADATA", "Cannot load automatically: your browser " +
60
62
  "falsely announced having loaded the content.");
61
63
  onWarning(error);
62
64
  }
63
65
  if (cancelSignal.isCancelled()) {
64
66
  return;
65
67
  }
66
- playbackObserver.listen(function (observation, stopListening) {
68
+ playbackObserver.listen((observation, stopListening) => {
67
69
  if (!observation.seeking &&
68
70
  observation.rebuffering === null &&
69
71
  observation.readyState >= 1) {
@@ -74,10 +76,10 @@ export default function performInitialSeekAndPlay(mediaElement, playbackObserver
74
76
  }
75
77
  function onPlayable() {
76
78
  var _a;
77
- log.info("Init: Can begin to play content");
79
+ log_1.default.info("Init: Can begin to play content");
78
80
  if (!mustAutoPlay) {
79
81
  if (mediaElement.autoplay) {
80
- log.warn("Init: autoplay is enabled on HTML media element. " +
82
+ log_1.default.warn("Init: autoplay is enabled on HTML media element. " +
81
83
  "Media will play as soon as possible.");
82
84
  }
83
85
  initialPlayPerformed.setValue(true);
@@ -85,7 +87,7 @@ export default function performInitialSeekAndPlay(mediaElement, playbackObserver
85
87
  deregisterCancellation();
86
88
  return resolveAutoPlay({ type: "skipped" });
87
89
  }
88
- var playResult;
90
+ let playResult;
89
91
  try {
90
92
  playResult = (_a = mediaElement.play()) !== null && _a !== void 0 ? _a : Promise.resolve();
91
93
  }
@@ -94,7 +96,7 @@ export default function performInitialSeekAndPlay(mediaElement, playbackObserver
94
96
  return rejectAutoPlay(playError);
95
97
  }
96
98
  playResult
97
- .then(function () {
99
+ .then(() => {
98
100
  if (cancelSignal.isCancelled()) {
99
101
  return;
100
102
  }
@@ -103,16 +105,16 @@ export default function performInitialSeekAndPlay(mediaElement, playbackObserver
103
105
  deregisterCancellation();
104
106
  return resolveAutoPlay({ type: "autoplay" });
105
107
  })
106
- .catch(function (playError) {
108
+ .catch((playError) => {
107
109
  deregisterCancellation();
108
110
  if (cancelSignal.isCancelled()) {
109
111
  return;
110
112
  }
111
113
  if (playError instanceof Error && playError.name === "NotAllowedError") {
112
114
  // auto-play was probably prevented.
113
- log.warn("Init: Media element can't play." +
115
+ log_1.default.warn("Init: Media element can't play." +
114
116
  " It may be due to browser auto-play policies.");
115
- var error = new MediaError("MEDIA_ERR_BLOCKED_AUTOPLAY", "Cannot trigger auto-play automatically: " +
117
+ const error = new errors_1.MediaError("MEDIA_ERR_BLOCKED_AUTOPLAY", "Cannot trigger auto-play automatically: " +
116
118
  "your browser does not allow it.");
117
119
  onWarning(error);
118
120
  if (cancelSignal.isCancelled()) {
@@ -126,3 +128,4 @@ export default function performInitialSeekAndPlay(mediaElement, playbackObserver
126
128
  });
127
129
  }
128
130
  }
131
+ exports.default = performInitialSeekAndPlay;