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,35 +14,36 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import log from "../../../log";
17
- import getFirstPositionFromAdaptation from "./get_first_time_from_adaptation";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../log");
19
+ const get_first_time_from_adaptation_1 = require("./get_first_time_from_adaptation");
18
20
  /**
19
21
  * @param {Object} manifest
20
22
  * @returns {number | undefined}
21
23
  */
22
- export default function getMinimumPosition(periods) {
23
- for (var i = 0; i <= periods.length - 1; i++) {
24
- var periodAdaptations = periods[i].adaptations;
25
- var firstAudioAdaptationFromPeriod = periodAdaptations.audio === undefined ?
24
+ function getMinimumPosition(periods) {
25
+ for (let i = 0; i <= periods.length - 1; i++) {
26
+ const periodAdaptations = periods[i].adaptations;
27
+ const firstAudioAdaptationFromPeriod = periodAdaptations.audio === undefined ?
26
28
  undefined :
27
29
  periodAdaptations.audio[0];
28
- var firstVideoAdaptationFromPeriod = periodAdaptations.video === undefined ?
30
+ const firstVideoAdaptationFromPeriod = periodAdaptations.video === undefined ?
29
31
  undefined :
30
32
  periodAdaptations.video[0];
31
33
  if (firstAudioAdaptationFromPeriod !== undefined ||
32
34
  firstVideoAdaptationFromPeriod !== undefined) {
33
35
  // null == no segment
34
- var minimumAudioPosition = null;
35
- var minimumVideoPosition = null;
36
+ let minimumAudioPosition = null;
37
+ let minimumVideoPosition = null;
36
38
  if (firstAudioAdaptationFromPeriod !== undefined) {
37
- var firstPosition = getFirstPositionFromAdaptation(firstAudioAdaptationFromPeriod);
39
+ const firstPosition = (0, get_first_time_from_adaptation_1.default)(firstAudioAdaptationFromPeriod);
38
40
  if (firstPosition === undefined) {
39
41
  return undefined;
40
42
  }
41
43
  minimumAudioPosition = firstPosition;
42
44
  }
43
45
  if (firstVideoAdaptationFromPeriod !== undefined) {
44
- var firstPosition = getFirstPositionFromAdaptation(firstVideoAdaptationFromPeriod);
46
+ const firstPosition = (0, get_first_time_from_adaptation_1.default)(firstVideoAdaptationFromPeriod);
45
47
  if (firstPosition === undefined) {
46
48
  return undefined;
47
49
  }
@@ -51,7 +53,7 @@ export default function getMinimumPosition(periods) {
51
53
  minimumAudioPosition === null) ||
52
54
  (firstVideoAdaptationFromPeriod !== undefined &&
53
55
  minimumVideoPosition === null)) {
54
- log.info("Parser utils: found Period with no segment. ", "Going to next one to calculate first position");
56
+ log_1.default.info("Parser utils: found Period with no segment. ", "Going to next one to calculate first position");
55
57
  return undefined;
56
58
  }
57
59
  if (minimumVideoPosition !== null) {
@@ -66,3 +68,4 @@ export default function getMinimumPosition(periods) {
66
68
  }
67
69
  }
68
70
  }
71
+ exports.default = getMinimumPosition;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,7 +14,9 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import isNullOrUndefined from "../../../utils/is_null_or_undefined";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.checkDiscontinuity = exports.getTimescaledRange = exports.fromIndexTime = exports.toIndexTime = exports.getIndexSegmentEnd = exports.calculateRepeat = void 0;
19
+ const is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
17
20
  /**
18
21
  * Calculate the number of times a timeline element repeats based on the next
19
22
  * element.
@@ -22,8 +25,8 @@ import isNullOrUndefined from "../../../utils/is_null_or_undefined";
22
25
  * @param {number|undefined} maxPosition
23
26
  * @returns {Number}
24
27
  */
25
- export function calculateRepeat(element, nextElement, maxPosition) {
26
- var repeatCount = element.repeatCount;
28
+ function calculateRepeat(element, nextElement, maxPosition) {
29
+ const { repeatCount } = element;
27
30
  if (repeatCount >= 0) {
28
31
  return repeatCount;
29
32
  }
@@ -31,8 +34,8 @@ export function calculateRepeat(element, nextElement, maxPosition) {
31
34
  // that the duration indicated in @d attribute repeats until the
32
35
  // start of the next S element, the end of the Period or until the
33
36
  // next MPD update.
34
- var segmentEnd;
35
- if (!isNullOrUndefined(nextElement)) {
37
+ let segmentEnd;
38
+ if (!(0, is_null_or_undefined_1.default)(nextElement)) {
36
39
  segmentEnd = nextElement.start;
37
40
  }
38
41
  else if (maxPosition !== undefined) {
@@ -43,6 +46,7 @@ export function calculateRepeat(element, nextElement, maxPosition) {
43
46
  }
44
47
  return Math.ceil((segmentEnd - element.start) / element.duration) - 1;
45
48
  }
49
+ exports.calculateRepeat = calculateRepeat;
46
50
  /**
47
51
  * Returns end of the segment given, in index time.
48
52
  * @param {Object} segment
@@ -50,14 +54,15 @@ export function calculateRepeat(element, nextElement, maxPosition) {
50
54
  * @param {number} maxPosition
51
55
  * @returns {Number}
52
56
  */
53
- export function getIndexSegmentEnd(segment, nextSegment, maxPosition) {
54
- var start = segment.start, duration = segment.duration;
57
+ function getIndexSegmentEnd(segment, nextSegment, maxPosition) {
58
+ const { start, duration } = segment;
55
59
  if (duration <= 0) {
56
60
  return start;
57
61
  }
58
- var repeat = calculateRepeat(segment, nextSegment, maxPosition);
62
+ const repeat = calculateRepeat(segment, nextSegment, maxPosition);
59
63
  return start + (repeat + 1) * duration;
60
64
  }
65
+ exports.getIndexSegmentEnd = getIndexSegmentEnd;
61
66
  /**
62
67
  * Convert from `presentationTime`, the time of the segment at the moment it
63
68
  * is decoded to `mediaTime`, the original time the segments point at.
@@ -65,10 +70,11 @@ export function getIndexSegmentEnd(segment, nextSegment, maxPosition) {
65
70
  * @param {Object} indexOptions
66
71
  * @returns {number}
67
72
  */
68
- export function toIndexTime(time, indexOptions) {
73
+ function toIndexTime(time, indexOptions) {
69
74
  var _a;
70
75
  return time * indexOptions.timescale + ((_a = indexOptions.indexTimeOffset) !== null && _a !== void 0 ? _a : 0);
71
76
  }
77
+ exports.toIndexTime = toIndexTime;
72
78
  /**
73
79
  * Convert from `mediaTime`, the original time the segments point at to
74
80
  * `presentationTime`, the time of the segment at the moment it is decoded.
@@ -76,10 +82,11 @@ export function toIndexTime(time, indexOptions) {
76
82
  * @param {Object} indexOptions
77
83
  * @returns {number}
78
84
  */
79
- export function fromIndexTime(time, indexOptions) {
85
+ function fromIndexTime(time, indexOptions) {
80
86
  var _a;
81
87
  return (time - ((_a = indexOptions.indexTimeOffset) !== null && _a !== void 0 ? _a : 0)) / indexOptions.timescale;
82
88
  }
89
+ exports.fromIndexTime = fromIndexTime;
83
90
  /**
84
91
  * @param {Number} start
85
92
  * @param {Number} duration
@@ -88,10 +95,11 @@ export function fromIndexTime(time, indexOptions) {
88
95
  * - up {Number}: timescaled timestamp of the beginning time
89
96
  * - to {Number}: timescaled timestamp of the end time (start time + duration)
90
97
  */
91
- export function getTimescaledRange(start, duration, timescale) {
98
+ function getTimescaledRange(start, duration, timescale) {
92
99
  return [start * timescale,
93
100
  (start + duration) * timescale];
94
101
  }
102
+ exports.getTimescaledRange = getTimescaledRange;
95
103
  /**
96
104
  * Get index of the last segment in the timeline starting before/at the given
97
105
  * timescaled time.
@@ -102,10 +110,10 @@ export function getTimescaledRange(start, duration, timescale) {
102
110
  * @returns {Number}
103
111
  */
104
112
  function getIndexOfLastObjectBefore(timeline, timeTScaled) {
105
- var low = 0;
106
- var high = timeline.length;
113
+ let low = 0;
114
+ let high = timeline.length;
107
115
  while (low < high) {
108
- var mid = (low + high) >>> 1; // Divide by two + floor
116
+ const mid = (low + high) >>> 1; // Divide by two + floor
109
117
  if (timeline[mid].start <= timeTScaled) {
110
118
  low = mid + 1;
111
119
  }
@@ -121,27 +129,28 @@ function getIndexOfLastObjectBefore(timeline, timeTScaled) {
121
129
  * @param {number} [maxPosition]
122
130
  * @returns {number|null}
123
131
  */
124
- export function checkDiscontinuity(index, timeSec, maxPosition) {
125
- var timeline = index.timeline;
126
- var scaledTime = toIndexTime(timeSec, index);
132
+ function checkDiscontinuity(index, timeSec, maxPosition) {
133
+ const { timeline } = index;
134
+ const scaledTime = toIndexTime(timeSec, index);
127
135
  if (scaledTime < 0) {
128
136
  return null;
129
137
  }
130
- var segmentIndex = getIndexOfLastObjectBefore(timeline, scaledTime);
138
+ const segmentIndex = getIndexOfLastObjectBefore(timeline, scaledTime);
131
139
  if (segmentIndex < 0 || segmentIndex >= timeline.length - 1) {
132
140
  return null;
133
141
  }
134
- var timelineItem = timeline[segmentIndex];
142
+ const timelineItem = timeline[segmentIndex];
135
143
  if (timelineItem.duration <= 0) {
136
144
  return null;
137
145
  }
138
- var nextTimelineItem = timeline[segmentIndex + 1];
146
+ const nextTimelineItem = timeline[segmentIndex + 1];
139
147
  if (nextTimelineItem === undefined) {
140
148
  return null;
141
149
  }
142
- var nextStart = nextTimelineItem.start;
143
- var segmentEnd = getIndexSegmentEnd(timelineItem, nextTimelineItem, maxPosition);
150
+ const nextStart = nextTimelineItem.start;
151
+ const segmentEnd = getIndexSegmentEnd(timelineItem, nextTimelineItem, maxPosition);
144
152
  return scaledTime >= segmentEnd &&
145
153
  scaledTime < nextStart ? fromIndexTime(nextStart, index) :
146
154
  null;
147
155
  }
156
+ exports.checkDiscontinuity = checkDiscontinuity;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,7 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * Returns true if a Segment returned by the corresponding index is still
18
20
  * considered available.
@@ -24,10 +26,10 @@
24
26
  * @param {number} timeline
25
27
  * @returns {Boolean|undefined}
26
28
  */
27
- export default function isSegmentStillAvailable(segment, timeline, timescale, indexTimeOffset) {
28
- for (var i = 0; i < timeline.length; i++) {
29
- var tSegment = timeline[i];
30
- var tSegmentTime = (tSegment.start - indexTimeOffset) / timescale;
29
+ function isSegmentStillAvailable(segment, timeline, timescale, indexTimeOffset) {
30
+ for (let i = 0; i < timeline.length; i++) {
31
+ const tSegment = timeline[i];
32
+ const tSegmentTime = (tSegment.start - indexTimeOffset) / timescale;
31
33
  if (tSegmentTime > segment.time) {
32
34
  return false;
33
35
  }
@@ -41,11 +43,12 @@ export default function isSegmentStillAvailable(segment, timeline, timescale, in
41
43
  }
42
44
  else { // tSegment.start < segment.time
43
45
  if (tSegment.repeatCount >= 0 && tSegment.duration !== undefined) {
44
- var timeDiff = tSegmentTime - tSegment.start;
45
- var repeat = (timeDiff / tSegment.duration) - 1;
46
+ const timeDiff = tSegmentTime - tSegment.start;
47
+ const repeat = (timeDiff / tSegment.duration) - 1;
46
48
  return repeat % 1 === 0 && repeat <= tSegment.repeatCount;
47
49
  }
48
50
  }
49
51
  }
50
52
  return false;
51
53
  }
54
+ exports.default = isSegmentStillAvailable;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,18 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
17
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
18
- if (ar || !(i in from)) {
19
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
20
- ar[i] = from[i];
21
- }
22
- }
23
- return to.concat(ar || Array.prototype.slice.call(from));
24
- };
25
- import { MediaError } from "../../../errors";
26
- import log from "../../../log";
27
- import { getIndexSegmentEnd, } from "./index_helpers";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const errors_1 = require("../../../errors");
19
+ const log_1 = require("../../../log");
20
+ const index_helpers_1 = require("./index_helpers");
28
21
  /**
29
22
  * Update a complete array of segments in a given timeline with a [generally]
30
23
  * smaller but [generally] newer set of segments.
@@ -41,36 +34,36 @@ import { getIndexSegmentEnd, } from "./index_helpers";
41
34
  * @param {Array.<Object>} newTimeline
42
35
  * @returns {boolean}
43
36
  */
44
- export default function updateSegmentTimeline(oldTimeline, newTimeline) {
37
+ function updateSegmentTimeline(oldTimeline, newTimeline) {
45
38
  if (oldTimeline.length === 0) {
46
- oldTimeline.push.apply(oldTimeline, newTimeline);
39
+ oldTimeline.push(...newTimeline);
47
40
  return true;
48
41
  }
49
42
  else if (newTimeline.length === 0) {
50
43
  return false;
51
44
  }
52
- var prevTimelineLength = oldTimeline.length;
53
- var newIndexStart = newTimeline[0].start;
54
- var oldLastElt = oldTimeline[prevTimelineLength - 1];
55
- var oldIndexEnd = getIndexSegmentEnd(oldLastElt, newTimeline[0]);
45
+ const prevTimelineLength = oldTimeline.length;
46
+ const newIndexStart = newTimeline[0].start;
47
+ const oldLastElt = oldTimeline[prevTimelineLength - 1];
48
+ const oldIndexEnd = (0, index_helpers_1.getIndexSegmentEnd)(oldLastElt, newTimeline[0]);
56
49
  if (oldIndexEnd < newIndexStart) {
57
- throw new MediaError("MANIFEST_UPDATE_ERROR", "Cannot perform partial update: not enough data");
50
+ throw new errors_1.MediaError("MANIFEST_UPDATE_ERROR", "Cannot perform partial update: not enough data");
58
51
  }
59
- for (var i = prevTimelineLength - 1; i >= 0; i--) {
60
- var currStart = oldTimeline[i].start;
52
+ for (let i = prevTimelineLength - 1; i >= 0; i--) {
53
+ const currStart = oldTimeline[i].start;
61
54
  if (currStart === newIndexStart) {
62
55
  // replace that one and those after it
63
- var nbEltsToRemove = prevTimelineLength - i;
64
- oldTimeline.splice.apply(oldTimeline, __spreadArray([i, nbEltsToRemove], newTimeline, false));
56
+ const nbEltsToRemove = prevTimelineLength - i;
57
+ oldTimeline.splice(i, nbEltsToRemove, ...newTimeline);
65
58
  return false;
66
59
  }
67
60
  else if (currStart < newIndexStart) { // first to be before
68
- var currElt = oldTimeline[i];
61
+ const currElt = oldTimeline[i];
69
62
  if (currElt.start + currElt.duration > newIndexStart) {
70
63
  // The new Manifest overlaps a previous segment (weird)
71
64
  // In that improbable case, we'll just completely replace segments
72
- log.warn("RepresentationIndex: Manifest update removed all previous segments");
73
- oldTimeline.splice.apply(oldTimeline, __spreadArray([0, prevTimelineLength], newTimeline, false));
65
+ log_1.default.warn("RepresentationIndex: Manifest update removed all previous segments");
66
+ oldTimeline.splice(0, prevTimelineLength, ...newTimeline);
74
67
  return true;
75
68
  }
76
69
  else if (currElt.repeatCount === undefined || currElt.repeatCount <= 0) {
@@ -78,61 +71,61 @@ export default function updateSegmentTimeline(oldTimeline, newTimeline) {
78
71
  currElt.repeatCount = Math.floor((newIndexStart - currElt.start) /
79
72
  currElt.duration) - 1;
80
73
  }
81
- oldTimeline.splice.apply(oldTimeline, __spreadArray([i + 1, prevTimelineLength - (i + 1)], newTimeline, false));
74
+ oldTimeline.splice(i + 1, prevTimelineLength - (i + 1), ...newTimeline);
82
75
  return false;
83
76
  }
84
77
  // else, there is a positive repeat we might want to update
85
- var eltLastTime = currElt.start + currElt.duration * (currElt.repeatCount + 1);
78
+ const eltLastTime = currElt.start + currElt.duration * (currElt.repeatCount + 1);
86
79
  if (eltLastTime <= newIndexStart) { // our new index comes directly after
87
80
  // put it after this one
88
- oldTimeline.splice.apply(// our new index comes directly after
89
- oldTimeline, __spreadArray([i + 1, prevTimelineLength - (i + 1)], newTimeline, false));
81
+ oldTimeline.splice(i + 1, prevTimelineLength - (i + 1), ...newTimeline);
90
82
  return false;
91
83
  }
92
- var newCurrRepeat = ((newIndexStart - currElt.start) / currElt.duration) - 1;
84
+ const newCurrRepeat = ((newIndexStart - currElt.start) / currElt.duration) - 1;
93
85
  if (newCurrRepeat % 1 === 0 && currElt.duration === newTimeline[0].duration) {
94
- var newRepeatCount = newTimeline[0].repeatCount < 0 ?
86
+ const newRepeatCount = newTimeline[0].repeatCount < 0 ?
95
87
  -1 : // === maximum possible repeat
96
88
  newTimeline[0].repeatCount + newCurrRepeat + 1;
97
89
  // replace that one and those after it
98
- oldTimeline.splice.apply(oldTimeline, __spreadArray([i, prevTimelineLength - i], newTimeline, false));
90
+ oldTimeline.splice(i, prevTimelineLength - i, ...newTimeline);
99
91
  oldTimeline[i].start = currElt.start;
100
92
  oldTimeline[i].repeatCount = newRepeatCount;
101
93
  return false;
102
94
  }
103
- log.warn("RepresentationIndex: Manifest update removed previous segments");
95
+ log_1.default.warn("RepresentationIndex: Manifest update removed previous segments");
104
96
  oldTimeline[i].repeatCount = Math.floor(newCurrRepeat);
105
97
  // put it after this one
106
- oldTimeline.splice.apply(oldTimeline, __spreadArray([i + 1, prevTimelineLength - (i + 1)], newTimeline, false));
98
+ oldTimeline.splice(i + 1, prevTimelineLength - (i + 1), ...newTimeline);
107
99
  return false;
108
100
  }
109
101
  }
110
102
  // if we got here, it means that every segments in the previous manifest are
111
103
  // after the new one. This is unusual.
112
104
  // Either the new one has more depth or it's an older one.
113
- var prevLastElt = oldTimeline[oldTimeline.length - 1];
114
- var newLastElt = newTimeline[newTimeline.length - 1];
105
+ const prevLastElt = oldTimeline[oldTimeline.length - 1];
106
+ const newLastElt = newTimeline[newTimeline.length - 1];
115
107
  if (prevLastElt.repeatCount !== undefined && prevLastElt.repeatCount < 0) {
116
108
  if (prevLastElt.start > newLastElt.start) {
117
- log.warn("RepresentationIndex: The new index is older than the previous one");
109
+ log_1.default.warn("RepresentationIndex: The new index is older than the previous one");
118
110
  return false;
119
111
  }
120
112
  else { // the new has more depth
121
- log.warn("RepresentationIndex: The new index is \"bigger\" than the previous one");
122
- oldTimeline.splice.apply(oldTimeline, __spreadArray([0, prevTimelineLength], newTimeline, false));
113
+ log_1.default.warn("RepresentationIndex: The new index is \"bigger\" than the previous one");
114
+ oldTimeline.splice(0, prevTimelineLength, ...newTimeline);
123
115
  return true;
124
116
  }
125
117
  }
126
- var prevLastTime = prevLastElt.start + prevLastElt.duration *
118
+ const prevLastTime = prevLastElt.start + prevLastElt.duration *
127
119
  (prevLastElt.repeatCount + 1);
128
- var newLastTime = newLastElt.start + newLastElt.duration *
120
+ const newLastTime = newLastElt.start + newLastElt.duration *
129
121
  (newLastElt.repeatCount + 1);
130
122
  if (prevLastTime >= newLastTime) {
131
- log.warn("RepresentationIndex: The new index is older than the previous one");
123
+ log_1.default.warn("RepresentationIndex: The new index is older than the previous one");
132
124
  return false;
133
125
  }
134
126
  // the new one has more depth. full update
135
- log.warn("RepresentationIndex: The new index is \"bigger\" than the previous one");
136
- oldTimeline.splice.apply(oldTimeline, __spreadArray([0, prevTimelineLength], newTimeline, false));
127
+ log_1.default.warn("RepresentationIndex: The new index is \"bigger\" than the previous one");
128
+ oldTimeline.splice(0, prevTimelineLength, ...newTimeline);
137
129
  return true;
138
130
  }
131
+ exports.default = updateSegmentTimeline;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,4 +14,4 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- export {};
17
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,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
  // __VERY__ simple SAMI parser, based on ugly-but-working REGEXP:
17
19
  // - the text, start and end times are correctly parsed.
18
20
  // - only text for the given language is parsed.
@@ -25,26 +27,26 @@
25
27
  * /!\ This file is feature-switchable.
26
28
  * It always should be imported through the `features` object.
27
29
  */
28
- import isNonEmptyString from "../../../utils/is_non_empty_string";
29
- var HTML_ENTITIES = /&#([0-9]+);/g;
30
- var BR = /<br>/gi;
31
- var STYLE = /<style[^>]*>([\s\S]*?)<\/style[^>]*>/i;
32
- var PARAG = /\s*<p (?:class=([^>]+))?>(.*)/i;
33
- var START = /<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;
30
+ const is_non_empty_string_1 = require("../../../utils/is_non_empty_string");
31
+ const HTML_ENTITIES = /&#([0-9]+);/g;
32
+ const BR = /<br>/gi;
33
+ const STYLE = /<style[^>]*>([\s\S]*?)<\/style[^>]*>/i;
34
+ const PARAG = /\s*<p (?:class=([^>]+))?>(.*)/i;
35
+ const START = /<sync[^>]+?start="?([0-9]*)"?[^0-9]/i;
34
36
  /**
35
37
  * Returns classnames for every languages.
36
38
  * @param {string} str
37
39
  * @returns {Object}
38
40
  */
39
41
  function getClassNameByLang(str) {
40
- var ruleRe = /\.(\S+)\s*{([^}]*)}/gi;
41
- var langs = {};
42
- var m = ruleRe.exec(str);
42
+ const ruleRe = /\.(\S+)\s*{([^}]*)}/gi;
43
+ const langs = {};
44
+ let m = ruleRe.exec(str);
43
45
  while (m !== null) {
44
- var name_1 = m[1];
45
- var lang = getCSSProperty(m[2], "lang");
46
- if (name_1 != null && lang != null) {
47
- langs[lang] = name_1;
46
+ const name = m[1];
47
+ const lang = getCSSProperty(m[2], "lang");
48
+ if (name != null && lang != null) {
49
+ langs[lang] = name;
48
50
  }
49
51
  m = ruleRe.exec(str);
50
52
  }
@@ -57,8 +59,8 @@ function getClassNameByLang(str) {
57
59
  * @returns {string}
58
60
  */
59
61
  function getPCSSRules(str) {
60
- var pRuleRegex = /p\s*{([^}]*)}/gi;
61
- var rule = pRuleRegex.exec(str);
62
+ const pRuleRegex = /p\s*{([^}]*)}/gi;
63
+ const rule = pRuleRegex.exec(str);
62
64
  if (rule === null) {
63
65
  return "";
64
66
  }
@@ -70,7 +72,7 @@ function getPCSSRules(str) {
70
72
  * @returns {string|null} - value of the property. Null if not found.
71
73
  */
72
74
  function getCSSProperty(str, name) {
73
- var matches = (new RegExp("\\s*" + name + ":\\s*(\\S+);", "i")).exec(str);
75
+ const matches = (new RegExp("\\s*" + name + ":\\s*(\\S+);", "i")).exec(str);
74
76
  return Array.isArray(matches) ? matches[1] :
75
77
  null;
76
78
  }
@@ -80,7 +82,7 @@ function getCSSProperty(str, name) {
80
82
  */
81
83
  function decodeEntities(text) {
82
84
  return text
83
- .replace(HTML_ENTITIES, function (_, $1) { return String.fromCharCode(Number($1)); });
85
+ .replace(HTML_ENTITIES, (_, $1) => String.fromCharCode(Number($1)));
84
86
  }
85
87
  /**
86
88
  * Because sami is not really html... we have to use
@@ -94,24 +96,24 @@ function decodeEntities(text) {
94
96
  * @param {string} lang
95
97
  */
96
98
  function parseSami(smi, timeOffset, lang) {
97
- var syncOpen = /<sync[ >]/ig;
98
- var syncClose = /<sync[ >]|<\/body>/ig;
99
- var subs = [];
100
- var styleMatches = STYLE.exec(smi);
101
- var css = Array.isArray(styleMatches) ? styleMatches[1] :
99
+ const syncOpen = /<sync[ >]/ig;
100
+ const syncClose = /<sync[ >]|<\/body>/ig;
101
+ const subs = [];
102
+ const styleMatches = STYLE.exec(smi);
103
+ const css = Array.isArray(styleMatches) ? styleMatches[1] :
102
104
  "";
103
- var up;
104
- var to;
105
+ let up;
106
+ let to;
105
107
  // FIXME Is that wanted?
106
108
  // previously written as let to = SyncClose.exec(smi); but never used
107
109
  syncClose.exec(smi);
108
- var langs = getClassNameByLang(css);
109
- var pCSS = getPCSSRules(css);
110
- var klass;
111
- if (isNonEmptyString(lang)) {
110
+ const langs = getClassNameByLang(css);
111
+ const pCSS = getPCSSRules(css);
112
+ let klass;
113
+ if ((0, is_non_empty_string_1.default)(lang)) {
112
114
  klass = langs[lang];
113
115
  if (klass === undefined) {
114
- throw new Error("sami: could not find lang ".concat(lang, " in CSS"));
116
+ throw new Error(`sami: could not find lang ${lang} in CSS`);
115
117
  }
116
118
  }
117
119
  while (true) {
@@ -123,12 +125,12 @@ function parseSami(smi, timeOffset, lang) {
123
125
  if (up === null || to === null || up.index >= to.index) {
124
126
  throw new Error("parse error");
125
127
  }
126
- var str = smi.slice(up.index, to.index);
127
- var tim = START.exec(str);
128
+ const str = smi.slice(up.index, to.index);
129
+ const tim = START.exec(str);
128
130
  if (!Array.isArray(tim)) {
129
131
  throw new Error("parse error (sync time attribute)");
130
132
  }
131
- var start = +tim[1];
133
+ const start = +tim[1];
132
134
  if (isNaN(start)) {
133
135
  throw new Error("parse error (sync time attribute NaN)");
134
136
  }
@@ -136,13 +138,13 @@ function parseSami(smi, timeOffset, lang) {
136
138
  }
137
139
  return subs;
138
140
  function appendToSubs(lines, start) {
139
- var i = lines.length;
141
+ let i = lines.length;
140
142
  while (--i >= 0) {
141
- var paragraphInfos = PARAG.exec(lines[i]);
143
+ const paragraphInfos = PARAG.exec(lines[i]);
142
144
  if (!Array.isArray(paragraphInfos)) {
143
145
  continue;
144
146
  }
145
- var className = paragraphInfos[1], txt = paragraphInfos[2];
147
+ const [, className, txt] = paragraphInfos;
146
148
  if (klass !== className) {
147
149
  continue;
148
150
  }
@@ -150,9 +152,9 @@ function parseSami(smi, timeOffset, lang) {
150
152
  subs[subs.length - 1].end = start;
151
153
  }
152
154
  else {
153
- var wrapperEl = document.createElement("DIV");
155
+ const wrapperEl = document.createElement("DIV");
154
156
  wrapperEl.className = "rxp-texttrack-region";
155
- var divEl = document.createElement("DIV");
157
+ const divEl = document.createElement("DIV");
156
158
  divEl.className = "rxp-texttrack-div";
157
159
  divEl.style.position = "absolute";
158
160
  divEl.style.bottom = "0";
@@ -162,17 +164,17 @@ function parseSami(smi, timeOffset, lang) {
162
164
  "1px -1px 0 #000," +
163
165
  "-1px 1px 0 #000," +
164
166
  "1px 1px 0 #000";
165
- var pEl = document.createElement("div");
167
+ const pEl = document.createElement("div");
166
168
  pEl.className = "rxp-texttrack-p";
167
- if (isNonEmptyString(pCSS)) {
169
+ if ((0, is_non_empty_string_1.default)(pCSS)) {
168
170
  pEl.style.cssText = pCSS;
169
171
  }
170
- var textEls = txt.split(BR);
171
- for (var j = 0; j < textEls.length; j++) {
172
+ const textEls = txt.split(BR);
173
+ for (let j = 0; j < textEls.length; j++) {
172
174
  if (j !== 0) {
173
175
  pEl.appendChild(document.createElement("BR"));
174
176
  }
175
- var spanEl = document.createElement("SPAN");
177
+ const spanEl = document.createElement("SPAN");
176
178
  spanEl.className = "rxp-texttrack-span";
177
179
  spanEl.textContent = decodeEntities(textEls[j]);
178
180
  pEl.appendChild(spanEl);
@@ -186,4 +188,4 @@ function parseSami(smi, timeOffset, lang) {
186
188
  }
187
189
  }
188
190
  }
189
- export default parseSami;
191
+ exports.default = parseSami;