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,34 +14,20 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __extends = (this && this.__extends) || (function () {
17
- var extendStatics = function (d, b) {
18
- extendStatics = Object.setPrototypeOf ||
19
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21
- return extendStatics(d, b);
22
- };
23
- return function (d, b) {
24
- if (typeof b !== "function" && b !== null)
25
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
26
- extendStatics(d, b);
27
- function __() { this.constructor = d; }
28
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
- };
30
- })();
31
- import isSeekingApproximate from "../../../compat/is_seeking_approximate";
32
- import config from "../../../config";
33
- import { MediaError } from "../../../errors";
34
- import log from "../../../log";
35
- import EventEmitter from "../../../utils/event_emitter";
36
- import getMonotonicTimeStamp from "../../../utils/monotonic_timestamp";
37
- import { getNextBufferedTimeRangeGap } from "../../../utils/ranges";
38
- import TaskCanceller from "../../../utils/task_canceller";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const is_seeking_approximate_1 = require("../../../compat/is_seeking_approximate");
19
+ const config_1 = require("../../../config");
20
+ const errors_1 = require("../../../errors");
21
+ const log_1 = require("../../../log");
22
+ const event_emitter_1 = require("../../../utils/event_emitter");
23
+ const monotonic_timestamp_1 = require("../../../utils/monotonic_timestamp");
24
+ const ranges_1 = require("../../../utils/ranges");
25
+ const task_canceller_1 = require("../../../utils/task_canceller");
39
26
  /**
40
27
  * Work-around rounding errors with floating points by setting an acceptable,
41
28
  * very short, deviation when checking equalities.
42
29
  */
43
- var EPSILON = 1 / 60;
30
+ const EPSILON = 1 / 60;
44
31
  /**
45
32
  * Monitor playback, trying to avoid stalling situation.
46
33
  * If stopping the player to build buffer is needed, temporarily set the
@@ -49,27 +36,24 @@ var EPSILON = 1 / 60;
49
36
  * Emit "stalled" then "unstalled" respectively when an unavoidable stall is
50
37
  * encountered and exited.
51
38
  */
52
- var RebufferingController = /** @class */ (function (_super) {
53
- __extends(RebufferingController, _super);
39
+ class RebufferingController extends event_emitter_1.default {
54
40
  /**
55
41
  * @param {object} playbackObserver - emit the current playback conditions.
56
42
  * @param {Object} manifest - The Manifest of the currently-played content.
57
43
  * @param {Object} speed - The last speed set by the user
58
44
  */
59
- function RebufferingController(playbackObserver, manifest, segmentBuffersStore, speed) {
60
- var _this = _super.call(this) || this;
61
- _this._playbackObserver = playbackObserver;
62
- _this._manifest = manifest;
63
- _this._segmentBuffersStore = segmentBuffersStore;
64
- _this._speed = speed;
65
- _this._discontinuitiesStore = [];
66
- _this._isStarted = false;
67
- _this._canceller = new TaskCanceller();
68
- _this._currentFreezeTimestamp = null;
69
- return _this;
45
+ constructor(playbackObserver, manifest, segmentBuffersStore, speed) {
46
+ super();
47
+ this._playbackObserver = playbackObserver;
48
+ this._manifest = manifest;
49
+ this._segmentBuffersStore = segmentBuffersStore;
50
+ this._speed = speed;
51
+ this._discontinuitiesStore = [];
52
+ this._isStarted = false;
53
+ this._canceller = new task_canceller_1.default();
54
+ this._currentFreezeTimestamp = null;
70
55
  }
71
- RebufferingController.prototype.start = function () {
72
- var _this = this;
56
+ start() {
73
57
  if (this._isStarted) {
74
58
  return;
75
59
  }
@@ -88,7 +72,7 @@ var RebufferingController = /** @class */ (function (_super) {
88
72
  * seek after that). When browsers seek back to a position behind a
89
73
  * discontinuity, they are usually able to skip them without our help.
90
74
  */
91
- var lastSeekingPosition;
75
+ let lastSeekingPosition;
92
76
  /**
93
77
  * In some conditions (see `lastSeekingPosition`), we might want to not
94
78
  * automatically seek over discontinuities because the browser might do it
@@ -98,39 +82,39 @@ var RebufferingController = /** @class */ (function (_super) {
98
82
  * This variable allows to store the timestamp at which a discontinuity began
99
83
  * to be ignored.
100
84
  */
101
- var ignoredStallTimeStamp = null;
102
- var playbackRateUpdater = new PlaybackRateUpdater(this._playbackObserver, this._speed);
103
- this._canceller.signal.register(function () {
85
+ let ignoredStallTimeStamp = null;
86
+ const playbackRateUpdater = new PlaybackRateUpdater(this._playbackObserver, this._speed);
87
+ this._canceller.signal.register(() => {
104
88
  playbackRateUpdater.dispose();
105
89
  });
106
- var prevFreezingState = null;
107
- this._playbackObserver.listen(function (observation) {
90
+ let prevFreezingState = null;
91
+ this._playbackObserver.listen((observation) => {
108
92
  var _a;
109
- var discontinuitiesStore = _this._discontinuitiesStore;
110
- var buffered = observation.buffered, position = observation.position, readyState = observation.readyState, rebuffering = observation.rebuffering, freezing = observation.freezing;
111
- var _b = config.getCurrent(), BUFFER_DISCONTINUITY_THRESHOLD = _b.BUFFER_DISCONTINUITY_THRESHOLD, FORCE_DISCONTINUITY_SEEK_DELAY = _b.FORCE_DISCONTINUITY_SEEK_DELAY, FREEZING_STALLED_DELAY = _b.FREEZING_STALLED_DELAY, UNFREEZING_SEEK_DELAY = _b.UNFREEZING_SEEK_DELAY, UNFREEZING_DELTA_POSITION = _b.UNFREEZING_DELTA_POSITION;
93
+ const discontinuitiesStore = this._discontinuitiesStore;
94
+ const { buffered, position, readyState, rebuffering, freezing } = observation;
95
+ const { BUFFER_DISCONTINUITY_THRESHOLD, FORCE_DISCONTINUITY_SEEK_DELAY, FREEZING_STALLED_DELAY, UNFREEZING_SEEK_DELAY, UNFREEZING_DELTA_POSITION } = config_1.default.getCurrent();
112
96
  if (!observation.seeking &&
113
- isSeekingApproximate &&
97
+ is_seeking_approximate_1.default &&
114
98
  ignoredStallTimeStamp === null &&
115
99
  lastSeekingPosition !== null && observation.position < lastSeekingPosition) {
116
- log.debug("Init: the device appeared to have seeked back by itself.");
117
- var now = getMonotonicTimeStamp();
100
+ log_1.default.debug("Init: the device appeared to have seeked back by itself.");
101
+ const now = (0, monotonic_timestamp_1.default)();
118
102
  ignoredStallTimeStamp = now;
119
103
  }
120
104
  lastSeekingPosition = observation.seeking ?
121
105
  Math.max((_a = observation.pendingInternalSeek) !== null && _a !== void 0 ? _a : 0, observation.position) :
122
106
  null;
123
- if (_this._checkDecipherabilityFreeze(observation)) {
107
+ if (this._checkDecipherabilityFreeze(observation)) {
124
108
  return;
125
109
  }
126
110
  if (freezing !== null) {
127
- var now = getMonotonicTimeStamp();
128
- var referenceTimestamp = prevFreezingState === null ?
111
+ const now = (0, monotonic_timestamp_1.default)();
112
+ const referenceTimestamp = prevFreezingState === null ?
129
113
  freezing.timestamp :
130
114
  prevFreezingState.attemptTimestamp;
131
115
  if (now - referenceTimestamp > UNFREEZING_SEEK_DELAY) {
132
- log.warn("Init: trying to seek to un-freeze player");
133
- _this._playbackObserver.setCurrentTime(_this._playbackObserver.getCurrentTime() + UNFREEZING_DELTA_POSITION);
116
+ log_1.default.warn("Init: trying to seek to un-freeze player");
117
+ this._playbackObserver.setCurrentTime(this._playbackObserver.getCurrentTime() + UNFREEZING_DELTA_POSITION);
134
118
  prevFreezingState = { attemptTimestamp: now };
135
119
  }
136
120
  if (now - freezing.timestamp > FREEZING_STALLED_DELAY) {
@@ -140,7 +124,7 @@ var RebufferingController = /** @class */ (function (_super) {
140
124
  else {
141
125
  playbackRateUpdater.startRebuffering();
142
126
  }
143
- _this.trigger("stalled", "freezing");
127
+ this.trigger("stalled", "freezing");
144
128
  return;
145
129
  }
146
130
  }
@@ -152,7 +136,7 @@ var RebufferingController = /** @class */ (function (_super) {
152
136
  if (readyState === 1) {
153
137
  // With a readyState set to 1, we should still not be able to play:
154
138
  // Return that we're stalled
155
- var reason = void 0;
139
+ let reason;
156
140
  if (observation.seeking) {
157
141
  reason = observation.pendingInternalSeek !== null ? "internal-seek" :
158
142
  "seeking";
@@ -160,56 +144,56 @@ var RebufferingController = /** @class */ (function (_super) {
160
144
  else {
161
145
  reason = "not-ready";
162
146
  }
163
- _this.trigger("stalled", reason);
147
+ this.trigger("stalled", reason);
164
148
  return;
165
149
  }
166
- _this.trigger("unstalled", null);
150
+ this.trigger("unstalled", null);
167
151
  return;
168
152
  }
169
153
  // We want to separate a stall situation when a seek is due to a seek done
170
154
  // internally by the player to when its due to a regular user seek.
171
- var stalledReason = rebuffering.reason === "seeking" &&
155
+ const stalledReason = rebuffering.reason === "seeking" &&
172
156
  observation.pendingInternalSeek !== null ?
173
157
  "internal-seek" :
174
158
  rebuffering.reason;
175
159
  if (ignoredStallTimeStamp !== null) {
176
- var now = getMonotonicTimeStamp();
160
+ const now = (0, monotonic_timestamp_1.default)();
177
161
  if (now - ignoredStallTimeStamp < FORCE_DISCONTINUITY_SEEK_DELAY) {
178
162
  playbackRateUpdater.stopRebuffering();
179
- log.debug("Init: letting the device get out of a stall by itself");
180
- _this.trigger("stalled", stalledReason);
163
+ log_1.default.debug("Init: letting the device get out of a stall by itself");
164
+ this.trigger("stalled", stalledReason);
181
165
  return;
182
166
  }
183
167
  else {
184
- log.warn("Init: ignored stall for too long, considering it", now - ignoredStallTimeStamp);
168
+ log_1.default.warn("Init: ignored stall for too long, considering it", now - ignoredStallTimeStamp);
185
169
  }
186
170
  }
187
171
  ignoredStallTimeStamp = null;
188
172
  playbackRateUpdater.startRebuffering();
189
- if (_this._manifest === null) {
190
- _this.trigger("stalled", stalledReason);
173
+ if (this._manifest === null) {
174
+ this.trigger("stalled", stalledReason);
191
175
  return;
192
176
  }
193
177
  /** Position at which data is awaited. */
194
- var stalledPosition = rebuffering.position;
178
+ const { position: stalledPosition } = rebuffering;
195
179
  if (stalledPosition !== null &&
196
180
  stalledPosition !== undefined &&
197
- _this._speed.getValue() > 0) {
198
- var skippableDiscontinuity = findSeekableDiscontinuity(discontinuitiesStore, _this._manifest, stalledPosition);
181
+ this._speed.getValue() > 0) {
182
+ const skippableDiscontinuity = findSeekableDiscontinuity(discontinuitiesStore, this._manifest, stalledPosition);
199
183
  if (skippableDiscontinuity !== null) {
200
- var realSeekTime = skippableDiscontinuity + 0.001;
201
- if (realSeekTime <= _this._playbackObserver.getCurrentTime()) {
202
- log.info("Init: position to seek already reached, no seeking", _this._playbackObserver.getCurrentTime(), realSeekTime);
184
+ const realSeekTime = skippableDiscontinuity + 0.001;
185
+ if (realSeekTime <= this._playbackObserver.getCurrentTime()) {
186
+ log_1.default.info("Init: position to seek already reached, no seeking", this._playbackObserver.getCurrentTime(), realSeekTime);
203
187
  }
204
188
  else {
205
- log.warn("SA: skippable discontinuity found in the stream", position, realSeekTime);
206
- _this._playbackObserver.setCurrentTime(realSeekTime);
207
- _this.trigger("warning", generateDiscontinuityError(stalledPosition, realSeekTime));
189
+ log_1.default.warn("SA: skippable discontinuity found in the stream", position, realSeekTime);
190
+ this._playbackObserver.setCurrentTime(realSeekTime);
191
+ this.trigger("warning", generateDiscontinuityError(stalledPosition, realSeekTime));
208
192
  return;
209
193
  }
210
194
  }
211
195
  }
212
- var freezePosition = stalledPosition !== null && stalledPosition !== void 0 ? stalledPosition : position;
196
+ const freezePosition = stalledPosition !== null && stalledPosition !== void 0 ? stalledPosition : position;
213
197
  // Is it a very short discontinuity in buffer ? -> Seek at the beginning of the
214
198
  // next range
215
199
  //
@@ -217,49 +201,49 @@ var RebufferingController = /** @class */ (function (_super) {
217
201
  // calculate a stalled state. This is useful for some
218
202
  // implementation that might drop an injected segment, or in
219
203
  // case of small discontinuity in the content.
220
- var nextBufferRangeGap = getNextBufferedTimeRangeGap(buffered, freezePosition);
221
- if (_this._speed.getValue() > 0 &&
204
+ const nextBufferRangeGap = (0, ranges_1.getNextBufferedTimeRangeGap)(buffered, freezePosition);
205
+ if (this._speed.getValue() > 0 &&
222
206
  nextBufferRangeGap < BUFFER_DISCONTINUITY_THRESHOLD) {
223
- var seekTo = (freezePosition + nextBufferRangeGap + EPSILON);
224
- if (_this._playbackObserver.getCurrentTime() < seekTo) {
225
- log.warn("Init: discontinuity encountered inferior to the threshold", freezePosition, seekTo, BUFFER_DISCONTINUITY_THRESHOLD);
226
- _this._playbackObserver.setCurrentTime(seekTo);
227
- _this.trigger("warning", generateDiscontinuityError(freezePosition, seekTo));
207
+ const seekTo = (freezePosition + nextBufferRangeGap + EPSILON);
208
+ if (this._playbackObserver.getCurrentTime() < seekTo) {
209
+ log_1.default.warn("Init: discontinuity encountered inferior to the threshold", freezePosition, seekTo, BUFFER_DISCONTINUITY_THRESHOLD);
210
+ this._playbackObserver.setCurrentTime(seekTo);
211
+ this.trigger("warning", generateDiscontinuityError(freezePosition, seekTo));
228
212
  return;
229
213
  }
230
214
  }
231
215
  // Are we in a discontinuity between periods ? -> Seek at the beginning of the
232
216
  // next period
233
- for (var i = _this._manifest.periods.length - 2; i >= 0; i--) {
234
- var period = _this._manifest.periods[i];
217
+ for (let i = this._manifest.periods.length - 2; i >= 0; i--) {
218
+ const period = this._manifest.periods[i];
235
219
  if (period.end !== undefined && period.end <= freezePosition) {
236
- if (_this._manifest.periods[i + 1].start > freezePosition &&
237
- _this._manifest.periods[i + 1].start >
238
- _this._playbackObserver.getCurrentTime()) {
239
- var nextPeriod = _this._manifest.periods[i + 1];
240
- _this._playbackObserver.setCurrentTime(nextPeriod.start);
241
- _this.trigger("warning", generateDiscontinuityError(freezePosition, nextPeriod.start));
220
+ if (this._manifest.periods[i + 1].start > freezePosition &&
221
+ this._manifest.periods[i + 1].start >
222
+ this._playbackObserver.getCurrentTime()) {
223
+ const nextPeriod = this._manifest.periods[i + 1];
224
+ this._playbackObserver.setCurrentTime(nextPeriod.start);
225
+ this.trigger("warning", generateDiscontinuityError(freezePosition, nextPeriod.start));
242
226
  return;
243
227
  }
244
228
  break;
245
229
  }
246
230
  }
247
- _this.trigger("stalled", stalledReason);
231
+ this.trigger("stalled", stalledReason);
248
232
  }, { includeLastObservation: true, clearSignal: this._canceller.signal });
249
- };
233
+ }
250
234
  /**
251
235
  * Update information on an upcoming discontinuity for a given buffer type and
252
236
  * Period.
253
237
  * Each new update for the same Period and type overwrites the previous one.
254
238
  * @param {Object} evt
255
239
  */
256
- RebufferingController.prototype.updateDiscontinuityInfo = function (evt) {
240
+ updateDiscontinuityInfo(evt) {
257
241
  if (!this._isStarted) {
258
242
  this.start();
259
243
  }
260
- var lastObservation = this._playbackObserver.getReference().getValue();
244
+ const lastObservation = this._playbackObserver.getReference().getValue();
261
245
  updateDiscontinuitiesStore(this._discontinuitiesStore, evt, lastObservation);
262
- };
246
+ }
263
247
  /**
264
248
  * Function to call when a Stream is currently locked, i.e. we cannot load
265
249
  * segments for the corresponding Period and buffer type until it is seeked
@@ -268,35 +252,35 @@ var RebufferingController = /** @class */ (function (_super) {
268
252
  * currently load.
269
253
  * @param {Object} period - Period for which no segment will currently load.
270
254
  */
271
- RebufferingController.prototype.onLockedStream = function (bufferType, period) {
255
+ onLockedStream(bufferType, period) {
272
256
  var _a;
273
257
  if (!this._isStarted) {
274
258
  this.start();
275
259
  }
276
- var observation = this._playbackObserver.getReference().getValue();
260
+ const observation = this._playbackObserver.getReference().getValue();
277
261
  if (!observation.rebuffering ||
278
262
  observation.paused ||
279
263
  this._speed.getValue() <= 0 || (bufferType !== "audio" &&
280
264
  bufferType !== "video")) {
281
265
  return;
282
266
  }
283
- var currPos = observation.position;
284
- var rebufferingPos = (_a = observation.rebuffering.position) !== null && _a !== void 0 ? _a : currPos;
285
- var lockedPeriodStart = period.start;
267
+ const currPos = observation.position;
268
+ const rebufferingPos = (_a = observation.rebuffering.position) !== null && _a !== void 0 ? _a : currPos;
269
+ const lockedPeriodStart = period.start;
286
270
  if (currPos < lockedPeriodStart &&
287
271
  Math.abs(rebufferingPos - lockedPeriodStart) < 1) {
288
- log.warn("Init: rebuffering because of a future locked stream.\n" +
272
+ log_1.default.warn("Init: rebuffering because of a future locked stream.\n" +
289
273
  "Trying to unlock by seeking to the next Period");
290
274
  this._playbackObserver.setCurrentTime(lockedPeriodStart + 0.001);
291
275
  }
292
- };
276
+ }
293
277
  /**
294
278
  * Stops the `RebufferingController` from montoring stalling situations,
295
279
  * forever.
296
280
  */
297
- RebufferingController.prototype.destroy = function () {
281
+ destroy() {
298
282
  this._canceller.cancel();
299
- };
283
+ }
300
284
  /**
301
285
  * Support of contents with DRM on all the platforms out there is a pain in
302
286
  * the *ss considering all the DRM-related bugs there are.
@@ -317,10 +301,10 @@ var RebufferingController = /** @class */ (function (_super) {
317
301
  * decipherability freeze, in which case this method already performed the
318
302
  * right handling steps.
319
303
  */
320
- RebufferingController.prototype._checkDecipherabilityFreeze = function (observation) {
304
+ _checkDecipherabilityFreeze(observation) {
321
305
  // XXX TODO allow this in in-worker configuration
322
- var readyState = observation.readyState, rebuffering = observation.rebuffering, freezing = observation.freezing;
323
- var bufferGap = observation.bufferGap !== undefined &&
306
+ const { readyState, rebuffering, freezing } = observation;
307
+ const bufferGap = observation.bufferGap !== undefined &&
324
308
  isFinite(observation.bufferGap) ? observation.bufferGap :
325
309
  0;
326
310
  if (this._segmentBuffersStore === null ||
@@ -330,26 +314,24 @@ var RebufferingController = /** @class */ (function (_super) {
330
314
  this._currentFreezeTimestamp = null;
331
315
  return false;
332
316
  }
333
- var now = getMonotonicTimeStamp();
317
+ const now = (0, monotonic_timestamp_1.default)();
334
318
  if (this._currentFreezeTimestamp === null) {
335
319
  this._currentFreezeTimestamp = now;
336
320
  }
337
- var rebufferingForTooLong = rebuffering !== null && now - rebuffering.timestamp > 4000;
338
- var frozenForTooLong = freezing !== null && now - freezing.timestamp > 4000;
321
+ const rebufferingForTooLong = rebuffering !== null && now - rebuffering.timestamp > 4000;
322
+ const frozenForTooLong = freezing !== null && now - freezing.timestamp > 4000;
339
323
  if ((rebufferingForTooLong || frozenForTooLong) &&
340
- getMonotonicTimeStamp() - this._currentFreezeTimestamp > 4000) {
341
- var statusAudio = this._segmentBuffersStore.getStatus("audio");
342
- var statusVideo = this._segmentBuffersStore.getStatus("video");
343
- var hasOnlyDecipherableSegments = true;
344
- var isClear = true;
345
- for (var _i = 0, _a = [statusAudio, statusVideo]; _i < _a.length; _i++) {
346
- var status_1 = _a[_i];
347
- if (status_1.type === "initialized") {
348
- for (var _b = 0, _c = status_1.value.getInventory(); _b < _c.length; _b++) {
349
- var segment = _c[_b];
350
- var representation = segment.infos.representation;
324
+ (0, monotonic_timestamp_1.default)() - this._currentFreezeTimestamp > 4000) {
325
+ const statusAudio = this._segmentBuffersStore.getStatus("audio");
326
+ const statusVideo = this._segmentBuffersStore.getStatus("video");
327
+ let hasOnlyDecipherableSegments = true;
328
+ let isClear = true;
329
+ for (const status of [statusAudio, statusVideo]) {
330
+ if (status.type === "initialized") {
331
+ for (const segment of status.value.getInventory()) {
332
+ const { representation } = segment.infos;
351
333
  if (representation.decipherable === false) {
352
- log.warn("Init: we have undecipherable segments left in the buffer, reloading");
334
+ log_1.default.warn("Init: we have undecipherable segments left in the buffer, reloading");
353
335
  this._currentFreezeTimestamp = null;
354
336
  this.trigger("needsReload", null);
355
337
  return true;
@@ -364,7 +346,7 @@ var RebufferingController = /** @class */ (function (_super) {
364
346
  }
365
347
  }
366
348
  if (!isClear && hasOnlyDecipherableSegments) {
367
- log.warn("Init: we are frozen despite only having decipherable " +
349
+ log_1.default.warn("Init: we are frozen despite only having decipherable " +
368
350
  "segments left in the buffer, reloading");
369
351
  this._currentFreezeTimestamp = null;
370
352
  this.trigger("needsReload", null);
@@ -372,10 +354,9 @@ var RebufferingController = /** @class */ (function (_super) {
372
354
  }
373
355
  }
374
356
  return false;
375
- };
376
- return RebufferingController;
377
- }(EventEmitter));
378
- export default RebufferingController;
357
+ }
358
+ }
359
+ exports.default = RebufferingController;
379
360
  /**
380
361
  * @param {Array.<Object>} discontinuitiesStore
381
362
  * @param {Object} manifest
@@ -386,25 +367,25 @@ function findSeekableDiscontinuity(discontinuitiesStore, manifest, stalledPositi
386
367
  if (discontinuitiesStore.length === 0) {
387
368
  return null;
388
369
  }
389
- var maxDiscontinuityEnd = null;
390
- for (var i = 0; i < discontinuitiesStore.length; i++) {
391
- var period = discontinuitiesStore[i].period;
370
+ let maxDiscontinuityEnd = null;
371
+ for (let i = 0; i < discontinuitiesStore.length; i++) {
372
+ const { period } = discontinuitiesStore[i];
392
373
  if (period.start > stalledPosition) {
393
374
  return maxDiscontinuityEnd;
394
375
  }
395
- var discontinuityEnd = void 0;
376
+ let discontinuityEnd;
396
377
  if (period.end === undefined || period.end > stalledPosition) {
397
- var _a = discontinuitiesStore[i], discontinuity = _a.discontinuity, position = _a.position;
398
- var start = discontinuity.start, end = discontinuity.end;
399
- var discontinuityLowerLimit = start !== null && start !== void 0 ? start : position;
378
+ const { discontinuity, position } = discontinuitiesStore[i];
379
+ const { start, end } = discontinuity;
380
+ const discontinuityLowerLimit = start !== null && start !== void 0 ? start : position;
400
381
  if (stalledPosition >= (discontinuityLowerLimit - EPSILON)) {
401
382
  if (end === null) {
402
- var nextPeriod = manifest.getPeriodAfter(period);
383
+ const nextPeriod = manifest.getPeriodAfter(period);
403
384
  if (nextPeriod !== null) {
404
385
  discontinuityEnd = nextPeriod.start + EPSILON;
405
386
  }
406
387
  else {
407
- log.warn("Init: discontinuity at Period's end but no next Period");
388
+ log_1.default.warn("Init: discontinuity at Period's end but no next Period");
408
389
  }
409
390
  }
410
391
  else if (stalledPosition < (end + EPSILON)) {
@@ -412,7 +393,7 @@ function findSeekableDiscontinuity(discontinuitiesStore, manifest, stalledPositi
412
393
  }
413
394
  }
414
395
  if (discontinuityEnd !== undefined) {
415
- log.info("Init: discontinuity found", stalledPosition, discontinuityEnd);
396
+ log_1.default.info("Init: discontinuity found", stalledPosition, discontinuityEnd);
416
397
  maxDiscontinuityEnd =
417
398
  maxDiscontinuityEnd !== null &&
418
399
  maxDiscontinuityEnd > discontinuityEnd ? maxDiscontinuityEnd :
@@ -452,11 +433,11 @@ function updateDiscontinuitiesStore(discontinuitiesStore, evt, observation) {
452
433
  discontinuitiesStore[0].period.end + 10 < observation.position) {
453
434
  discontinuitiesStore.shift();
454
435
  }
455
- var period = evt.period, bufferType = evt.bufferType;
436
+ const { period, bufferType } = evt;
456
437
  if (bufferType !== "audio" && bufferType !== "video") {
457
438
  return;
458
439
  }
459
- for (var i = 0; i < discontinuitiesStore.length; i++) {
440
+ for (let i = 0; i < discontinuitiesStore.length; i++) {
460
441
  if (discontinuitiesStore[i].period.id === period.id) {
461
442
  if (discontinuitiesStore[i].bufferType === bufferType) {
462
443
  if (!eventContainsDiscontinuity(evt)) {
@@ -487,7 +468,7 @@ function updateDiscontinuitiesStore(discontinuitiesStore, evt, observation) {
487
468
  * @returns {Error}
488
469
  */
489
470
  function generateDiscontinuityError(stalledPosition, seekTo) {
490
- return new MediaError("DISCONTINUITY_ENCOUNTERED", "A discontinuity has been encountered at position " +
471
+ return new errors_1.MediaError("DISCONTINUITY_ENCOUNTERED", "A discontinuity has been encountered at position " +
491
472
  String(stalledPosition) + ", seeked at position " +
492
473
  String(seekTo));
493
474
  }
@@ -501,14 +482,14 @@ function generateDiscontinuityError(stalledPosition, seekTo) {
501
482
  * anymore.
502
483
  * @class PlaybackRateUpdater
503
484
  */
504
- var PlaybackRateUpdater = /** @class */ (function () {
485
+ class PlaybackRateUpdater {
505
486
  /**
506
487
  * Create a new `PlaybackRateUpdater`.
507
488
  * @param {Object} playbackObserver
508
489
  * @param {Object} speed
509
490
  */
510
- function PlaybackRateUpdater(playbackObserver, speed) {
511
- this._speedUpdateCanceller = new TaskCanceller();
491
+ constructor(playbackObserver, speed) {
492
+ this._speedUpdateCanceller = new task_canceller_1.default();
512
493
  this._isRebuffering = false;
513
494
  this._playbackObserver = playbackObserver;
514
495
  this._isDisposed = false;
@@ -520,29 +501,29 @@ var PlaybackRateUpdater = /** @class */ (function () {
520
501
  *
521
502
  * You can call `stopRebuffering` when you want the rebuffering phase to end.
522
503
  */
523
- PlaybackRateUpdater.prototype.startRebuffering = function () {
504
+ startRebuffering() {
524
505
  if (this._isRebuffering || this._isDisposed) {
525
506
  return;
526
507
  }
527
508
  this._isRebuffering = true;
528
509
  this._speedUpdateCanceller.cancel();
529
- log.info("Init: Pause playback to build buffer");
510
+ log_1.default.info("Init: Pause playback to build buffer");
530
511
  this._playbackObserver.setPlaybackRate(0);
531
- };
512
+ }
532
513
  /**
533
514
  * If in a rebuffering phase (during which the playback rate is forced to
534
515
  * `0`), exit that phase to apply the wanted playback rate instead.
535
516
  *
536
517
  * Do nothing if not in a rebuffering phase.
537
518
  */
538
- PlaybackRateUpdater.prototype.stopRebuffering = function () {
519
+ stopRebuffering() {
539
520
  if (!this._isRebuffering || this._isDisposed) {
540
521
  return;
541
522
  }
542
523
  this._isRebuffering = false;
543
- this._speedUpdateCanceller = new TaskCanceller();
524
+ this._speedUpdateCanceller = new task_canceller_1.default();
544
525
  this._updateSpeed();
545
- };
526
+ }
546
527
  /**
547
528
  * The `PlaybackRateUpdater` allocate resources to for example listen to
548
529
  * wanted speed changes and react to it.
@@ -550,16 +531,14 @@ var PlaybackRateUpdater = /** @class */ (function () {
550
531
  * Consequently, you should call the `dispose` method, when you don't want the
551
532
  * `PlaybackRateUpdater` to have an effect anymore.
552
533
  */
553
- PlaybackRateUpdater.prototype.dispose = function () {
534
+ dispose() {
554
535
  this._speedUpdateCanceller.cancel();
555
536
  this._isDisposed = true;
556
- };
557
- PlaybackRateUpdater.prototype._updateSpeed = function () {
558
- var _this = this;
559
- this._speed.onUpdate(function (lastSpeed) {
560
- log.info("Init: Resume playback speed", lastSpeed);
561
- _this._playbackObserver.setPlaybackRate(lastSpeed);
537
+ }
538
+ _updateSpeed() {
539
+ this._speed.onUpdate((lastSpeed) => {
540
+ log_1.default.info("Init: Resume playback speed", lastSpeed);
541
+ this._playbackObserver.setPlaybackRate(lastSpeed);
562
542
  }, { clearSignal: this._speedUpdateCanceller.signal, emitCurrentValue: true });
563
- };
564
- return PlaybackRateUpdater;
565
- }());
543
+ }
544
+ }
@@ -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
  * Compare 2 events.
18
20
  * As the payload of two events may be the same, but the JS objects may not
@@ -32,4 +34,4 @@ function areSameStreamEvents(evt1, evt2) {
32
34
  evt1.start === evt2.start &&
33
35
  evt1.end === evt2.end;
34
36
  }
35
- export default areSameStreamEvents;
37
+ exports.default = areSameStreamEvents;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,5 +14,6 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import streamEventsEmitter from "./stream_events_emitter";
17
- export default streamEventsEmitter;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const stream_events_emitter_1 = require("./stream_events_emitter");
19
+ exports.default = stream_events_emitter_1.default;