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,20 +14,21 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { isCodecSupported } from "../compat";
17
- import log from "../log";
18
- import areArraysOfNumbersEqual from "../utils/are_arrays_of_numbers_equal";
19
- import idGenerator from "../utils/id_generator";
20
- var generateRepresentationUniqueId = idGenerator();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../compat");
19
+ const log_1 = require("../log");
20
+ const are_arrays_of_numbers_equal_1 = require("../utils/are_arrays_of_numbers_equal");
21
+ const id_generator_1 = require("../utils/id_generator");
22
+ const generateRepresentationUniqueId = (0, id_generator_1.default)();
21
23
  /**
22
24
  * Normalized Representation structure.
23
25
  * @class Representation
24
26
  */
25
- var Representation = /** @class */ (function () {
27
+ class Representation {
26
28
  /**
27
29
  * @param {Object} args
28
30
  */
29
- function Representation(args, opts) {
31
+ constructor(args, opts) {
30
32
  this.id = args.id;
31
33
  this.uniqueId = generateRepresentationUniqueId();
32
34
  this.bitrate = args.bitrate;
@@ -55,10 +57,10 @@ var Representation = /** @class */ (function () {
55
57
  this.cdnMetadata = args.cdnMetadata;
56
58
  this.index = args.index;
57
59
  if (opts.type === "audio" || opts.type === "video") {
58
- var mimeTypeStr = this.getMimeTypeString();
59
- var isSupported = isCodecSupported(mimeTypeStr);
60
+ const mimeTypeStr = this.getMimeTypeString();
61
+ const isSupported = (0, compat_1.isCodecSupported)(mimeTypeStr);
60
62
  if (!isSupported) {
61
- log.info("Unsupported Representation", mimeTypeStr, this.id, this.bitrate);
63
+ log_1.default.info("Unsupported Representation", mimeTypeStr, this.id, this.bitrate);
62
64
  }
63
65
  this.isSupported = isSupported;
64
66
  }
@@ -71,10 +73,10 @@ var Representation = /** @class */ (function () {
71
73
  * which is often needed when interacting with the browser's APIs.
72
74
  * @returns {string}
73
75
  */
74
- Representation.prototype.getMimeTypeString = function () {
76
+ getMimeTypeString() {
75
77
  var _a, _b;
76
- return "".concat((_a = this.mimeType) !== null && _a !== void 0 ? _a : "", ";codecs=\"").concat((_b = this.codec) !== null && _b !== void 0 ? _b : "", "\"");
77
- };
78
+ return `${(_a = this.mimeType) !== null && _a !== void 0 ? _a : ""};codecs="${(_b = this.codec) !== null && _b !== void 0 ? _b : ""}"`;
79
+ }
78
80
  /**
79
81
  * Returns encryption initialization data linked to the given DRM's system ID.
80
82
  * This data may be useful to decrypt encrypted media segments.
@@ -95,18 +97,20 @@ var Representation = /** @class */ (function () {
95
97
  * @param {string} drmSystemId - The hexa-encoded DRM system ID
96
98
  * @returns {Array.<Object>}
97
99
  */
98
- Representation.prototype.getEncryptionData = function (drmSystemId) {
100
+ getEncryptionData(drmSystemId) {
99
101
  var _a, _b;
100
- var allInitData = this.getAllEncryptionData();
101
- var filtered = [];
102
- for (var i = 0; i < allInitData.length; i++) {
103
- var createdObjForType = false;
104
- var initData = allInitData[i];
105
- for (var j = 0; j < initData.values.length; j++) {
102
+ const allInitData = this.getAllEncryptionData();
103
+ const filtered = [];
104
+ for (let i = 0; i < allInitData.length; i++) {
105
+ let createdObjForType = false;
106
+ const initData = allInitData[i];
107
+ for (let j = 0; j < initData.values.length; j++) {
106
108
  if (initData.values[j].systemId.toLowerCase() === drmSystemId.toLowerCase()) {
107
109
  if (!createdObjForType) {
108
- var keyIds = (_b = (_a = this.contentProtections) === null || _a === void 0 ? void 0 : _a.keyIds) === null || _b === void 0 ? void 0 : _b.map(function (val) { return val.keyId; });
109
- filtered.push({ type: initData.type, keyIds: keyIds, values: [initData.values[j]] });
110
+ const keyIds = (_b = (_a = this.contentProtections) === null || _a === void 0 ? void 0 : _a.keyIds) === null || _b === void 0 ? void 0 : _b.map(val => val.keyId);
111
+ filtered.push({ type: initData.type,
112
+ keyIds,
113
+ values: [initData.values[j]] });
110
114
  createdObjForType = true;
111
115
  }
112
116
  else {
@@ -116,7 +120,7 @@ var Representation = /** @class */ (function () {
116
120
  }
117
121
  }
118
122
  return filtered;
119
- };
123
+ }
120
124
  /**
121
125
  * Returns all currently-known encryption initialization data linked to this
122
126
  * Representation.
@@ -143,17 +147,19 @@ var Representation = /** @class */ (function () {
143
147
  * after parsing this Representation's initialization segment, if one exists.
144
148
  * @returns {Array.<Object>}
145
149
  */
146
- Representation.prototype.getAllEncryptionData = function () {
150
+ getAllEncryptionData() {
147
151
  var _a, _b;
148
152
  if (this.contentProtections === undefined ||
149
153
  this.contentProtections.initData.length === 0) {
150
154
  return [];
151
155
  }
152
- var keyIds = (_b = (_a = this.contentProtections) === null || _a === void 0 ? void 0 : _a.keyIds) === null || _b === void 0 ? void 0 : _b.map(function (val) { return val.keyId; });
153
- return this.contentProtections.initData.map(function (x) {
154
- return { type: x.type, keyIds: keyIds, values: x.values };
156
+ const keyIds = (_b = (_a = this.contentProtections) === null || _a === void 0 ? void 0 : _a.keyIds) === null || _b === void 0 ? void 0 : _b.map(val => val.keyId);
157
+ return this.contentProtections.initData.map((x) => {
158
+ return { type: x.type,
159
+ keyIds,
160
+ values: x.values };
155
161
  });
156
- };
162
+ }
157
163
  /**
158
164
  * Add new encryption initialization data to this Representation if it was not
159
165
  * already included.
@@ -170,49 +176,48 @@ var Representation = /** @class */ (function () {
170
176
  * @param {Uint8Array} data
171
177
  * @returns {boolean}
172
178
  */
173
- Representation.prototype.addProtectionData = function (initDataType, keyId, data) {
174
- var hasUpdatedProtectionData = false;
179
+ addProtectionData(initDataType, keyId, data) {
180
+ let hasUpdatedProtectionData = false;
175
181
  if (this.contentProtections === undefined) {
176
- this.contentProtections = { keyIds: keyId !== undefined ? [{ keyId: keyId }] : [],
182
+ this.contentProtections = { keyIds: keyId !== undefined ? [{ keyId }] : [],
177
183
  initData: [{ type: initDataType,
178
184
  values: data }] };
179
185
  return true;
180
186
  }
181
187
  if (keyId !== undefined) {
182
- var keyIds = this.contentProtections.keyIds;
188
+ const keyIds = this.contentProtections.keyIds;
183
189
  if (keyIds === undefined) {
184
- this.contentProtections.keyIds = [{ keyId: keyId }];
190
+ this.contentProtections.keyIds = [{ keyId }];
185
191
  }
186
192
  else {
187
- var foundKeyId = false;
188
- for (var _i = 0, keyIds_1 = keyIds; _i < keyIds_1.length; _i++) {
189
- var knownKeyId = keyIds_1[_i];
190
- if (areArraysOfNumbersEqual(knownKeyId.keyId, keyId)) {
193
+ let foundKeyId = false;
194
+ for (const knownKeyId of keyIds) {
195
+ if ((0, are_arrays_of_numbers_equal_1.default)(knownKeyId.keyId, keyId)) {
191
196
  foundKeyId = true;
192
197
  }
193
198
  }
194
199
  if (!foundKeyId) {
195
- log.warn("Manifest: found unanounced key id.");
196
- keyIds.push({ keyId: keyId });
200
+ log_1.default.warn("Manifest: found unanounced key id.");
201
+ keyIds.push({ keyId });
197
202
  }
198
203
  }
199
204
  }
200
- var cInitData = this.contentProtections.initData;
201
- for (var i = 0; i < cInitData.length; i++) {
205
+ const cInitData = this.contentProtections.initData;
206
+ for (let i = 0; i < cInitData.length; i++) {
202
207
  if (cInitData[i].type === initDataType) {
203
- var cValues = cInitData[i].values;
208
+ const cValues = cInitData[i].values;
204
209
  // loop through data
205
- for (var dataI = 0; dataI < data.length; dataI++) {
206
- var dataToAdd = data[dataI];
207
- var cValuesIdx = void 0;
210
+ for (let dataI = 0; dataI < data.length; dataI++) {
211
+ const dataToAdd = data[dataI];
212
+ let cValuesIdx;
208
213
  for (cValuesIdx = 0; cValuesIdx < cValues.length; cValuesIdx++) {
209
214
  if (dataToAdd.systemId === cValues[cValuesIdx].systemId) {
210
- if (areArraysOfNumbersEqual(dataToAdd.data, cValues[cValuesIdx].data)) {
215
+ if ((0, are_arrays_of_numbers_equal_1.default)(dataToAdd.data, cValues[cValuesIdx].data)) {
211
216
  // go to next dataToAdd
212
217
  break;
213
218
  }
214
219
  else {
215
- log.warn("Manifest: different init data for the same system ID");
220
+ log_1.default.warn("Manifest: different init data for the same system ID");
216
221
  }
217
222
  }
218
223
  }
@@ -230,31 +235,43 @@ var Representation = /** @class */ (function () {
230
235
  this.contentProtections.initData.push({ type: initDataType,
231
236
  values: data });
232
237
  return true;
233
- };
238
+ }
234
239
  /**
235
240
  * Format Representation as an `IAudioRepresentation`.
236
241
  * @returns {Object}
237
242
  */
238
- Representation.prototype.toAudioRepresentation = function () {
239
- var _a = this, id = _a.id, bitrate = _a.bitrate, codec = _a.codec, isSpatialAudio = _a.isSpatialAudio, isSupported = _a.isSupported, decipherable = _a.decipherable;
240
- return { id: id, bitrate: bitrate, codec: codec, isSpatialAudio: isSpatialAudio, isCodecSupported: isSupported, decipherable: decipherable };
241
- };
243
+ toAudioRepresentation() {
244
+ const { id, bitrate, codec, isSpatialAudio, isSupported, decipherable } = this;
245
+ return { id,
246
+ bitrate,
247
+ codec,
248
+ isSpatialAudio,
249
+ isCodecSupported: isSupported,
250
+ decipherable };
251
+ }
242
252
  /**
243
253
  * Format Representation as an `IVideoRepresentation`.
244
254
  * @returns {Object}
245
255
  */
246
- Representation.prototype.toVideoRepresentation = function () {
247
- var _a = this, id = _a.id, bitrate = _a.bitrate, frameRate = _a.frameRate, width = _a.width, height = _a.height, codec = _a.codec, hdrInfo = _a.hdrInfo, isSupported = _a.isSupported, decipherable = _a.decipherable;
248
- return { id: id, bitrate: bitrate, frameRate: frameRate, width: width, height: height, codec: codec, hdrInfo: hdrInfo, isCodecSupported: isSupported, decipherable: decipherable };
249
- };
256
+ toVideoRepresentation() {
257
+ const { id, bitrate, frameRate, width, height, codec, hdrInfo, isSupported, decipherable } = this;
258
+ return { id,
259
+ bitrate,
260
+ frameRate,
261
+ width,
262
+ height,
263
+ codec,
264
+ hdrInfo,
265
+ isCodecSupported: isSupported,
266
+ decipherable };
267
+ }
250
268
  /**
251
269
  * Returns `true` if this Representation can be played (that is: not
252
270
  * undecipherable and with a supported codec).
253
271
  * @returns {Array.<Representation>}
254
272
  */
255
- Representation.prototype.isPlayable = function () {
273
+ isPlayable() {
256
274
  return this.isSupported && this.decipherable !== false;
257
- };
258
- return Representation;
259
- }());
260
- export default Representation;
275
+ }
276
+ }
277
+ exports.default = Representation;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,5 +14,7 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import StaticRepresentationIndex from "./static";
17
- export { StaticRepresentationIndex, };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.StaticRepresentationIndex = void 0;
19
+ const static_1 = require("./static");
20
+ exports.StaticRepresentationIndex = static_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,16 +14,17 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../log");
17
19
  /**
18
20
  * Simple RepresentationIndex implementation for static files.
19
21
  * @class StaticRepresentationIndex
20
22
  */
21
- var StaticRepresentationIndex = /** @class */ (function () {
23
+ class StaticRepresentationIndex {
22
24
  /**
23
25
  * @param {Object} infos
24
26
  */
25
- function StaticRepresentationIndex(infos) {
27
+ constructor(infos) {
26
28
  this._url = infos.media;
27
29
  }
28
30
  /**
@@ -30,14 +32,14 @@ var StaticRepresentationIndex = /** @class */ (function () {
30
32
  * Just return null.
31
33
  * @returns {null}
32
34
  */
33
- StaticRepresentationIndex.prototype.getInitSegment = function () {
35
+ getInitSegment() {
34
36
  return null;
35
- };
37
+ }
36
38
  /**
37
39
  * Returns the only Segment available here.
38
40
  * @returns {Array.<Object>}
39
41
  */
40
- StaticRepresentationIndex.prototype.getSegments = function () {
42
+ getSegments() {
41
43
  return [{ id: "0",
42
44
  isInit: false,
43
45
  number: 0,
@@ -48,29 +50,29 @@ var StaticRepresentationIndex = /** @class */ (function () {
48
50
  complete: true,
49
51
  privateInfos: {},
50
52
  timescale: 1 }];
51
- };
53
+ }
52
54
  /**
53
55
  * Returns first position in index.
54
56
  * @returns {undefined}
55
57
  */
56
- StaticRepresentationIndex.prototype.getFirstAvailablePosition = function () {
58
+ getFirstAvailablePosition() {
57
59
  return;
58
- };
60
+ }
59
61
  /**
60
62
  * Returns last position in index.
61
63
  * @returns {undefined}
62
64
  */
63
- StaticRepresentationIndex.prototype.getLastAvailablePosition = function () {
65
+ getLastAvailablePosition() {
64
66
  return;
65
- };
67
+ }
66
68
  /**
67
69
  * Returns the absolute end in seconds this RepresentationIndex can reach once
68
70
  * all segments are available.
69
71
  * @returns {number|null|undefined}
70
72
  */
71
- StaticRepresentationIndex.prototype.getEnd = function () {
73
+ getEnd() {
72
74
  return;
73
- };
75
+ }
74
76
  /**
75
77
  * Returns:
76
78
  * - `true` if in the given time interval, at least one new segment is
@@ -83,59 +85,58 @@ var StaticRepresentationIndex = /** @class */ (function () {
83
85
  * be directly available.
84
86
  * @returns {boolean}
85
87
  */
86
- StaticRepresentationIndex.prototype.awaitSegmentBetween = function () {
88
+ awaitSegmentBetween() {
87
89
  return false;
88
- };
90
+ }
89
91
  /**
90
92
  * Returns false as a static file never need to be refreshed.
91
93
  * @returns {Boolean}
92
94
  */
93
- StaticRepresentationIndex.prototype.shouldRefresh = function () {
95
+ shouldRefresh() {
94
96
  return false;
95
- };
97
+ }
96
98
  /**
97
99
  * @returns {null}
98
100
  */
99
- StaticRepresentationIndex.prototype.checkDiscontinuity = function () {
101
+ checkDiscontinuity() {
100
102
  return null;
101
- };
103
+ }
102
104
  /**
103
105
  * Returns true as a static file should never need lose availability.
104
106
  * @returns {Boolean}
105
107
  */
106
- StaticRepresentationIndex.prototype.isSegmentStillAvailable = function () {
108
+ isSegmentStillAvailable() {
107
109
  return true;
108
- };
110
+ }
109
111
  /**
110
112
  * @returns {Boolean}
111
113
  */
112
- StaticRepresentationIndex.prototype.canBeOutOfSyncError = function () {
114
+ canBeOutOfSyncError() {
113
115
  return false;
114
- };
116
+ }
115
117
  /**
116
118
  * @returns {Boolean}
117
119
  */
118
- StaticRepresentationIndex.prototype.isFinished = function () {
120
+ isFinished() {
119
121
  return true;
120
- };
122
+ }
121
123
  /**
122
124
  * @returns {Boolean}
123
125
  */
124
- StaticRepresentationIndex.prototype.isInitialized = function () {
126
+ isInitialized() {
125
127
  return true;
126
- };
127
- StaticRepresentationIndex.prototype.initialize = function () {
128
- log.error("A `StaticRepresentationIndex` does not need to be initialized");
129
- };
130
- StaticRepresentationIndex.prototype.addPredictedSegments = function () {
131
- log.warn("Cannot add predicted segments to a `StaticRepresentationIndex`");
132
- };
133
- StaticRepresentationIndex.prototype._replace = function () {
134
- log.warn("Tried to replace a static RepresentationIndex");
135
- };
136
- StaticRepresentationIndex.prototype._update = function () {
137
- log.warn("Tried to update a static RepresentationIndex");
138
- };
139
- return StaticRepresentationIndex;
140
- }());
141
- export default StaticRepresentationIndex;
128
+ }
129
+ initialize() {
130
+ log_1.default.error("A `StaticRepresentationIndex` does not need to be initialized");
131
+ }
132
+ addPredictedSegments() {
133
+ log_1.default.warn("Cannot add predicted segments to a `StaticRepresentationIndex`");
134
+ }
135
+ _replace() {
136
+ log_1.default.warn("Tried to replace a static RepresentationIndex");
137
+ }
138
+ _update() {
139
+ log_1.default.warn("Tried to update a static RepresentationIndex");
140
+ }
141
+ }
142
+ exports.default = StaticRepresentationIndex;
@@ -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,8 +14,10 @@
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 });
18
+ exports.MANIFEST_UPDATE_TYPE = void 0;
16
19
  /** Enumerate the different ways a Manifest update can be done. */
17
- export var MANIFEST_UPDATE_TYPE;
20
+ var MANIFEST_UPDATE_TYPE;
18
21
  (function (MANIFEST_UPDATE_TYPE) {
19
22
  /**
20
23
  * Manifest is updated entirely thanks to a re-downloaded version of
@@ -27,4 +30,4 @@ export var MANIFEST_UPDATE_TYPE;
27
30
  * from the original one.
28
31
  */
29
32
  MANIFEST_UPDATE_TYPE[MANIFEST_UPDATE_TYPE["Partial"] = 1] = "Partial";
30
- })(MANIFEST_UPDATE_TYPE || (MANIFEST_UPDATE_TYPE = {}));
33
+ })(MANIFEST_UPDATE_TYPE || (exports.MANIFEST_UPDATE_TYPE = MANIFEST_UPDATE_TYPE = {}));
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import log from "../log";
17
- import arrayFindIndex from "../utils/array_find_index";
18
- import { MANIFEST_UPDATE_TYPE } from "./types";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../log");
19
+ const array_find_index_1 = require("../utils/array_find_index");
20
+ const types_1 = require("./types");
19
21
  /**
20
22
  * Update oldPeriod attributes with the one from newPeriod (e.g. when updating
21
23
  * the Manifest).
@@ -24,8 +26,8 @@ import { MANIFEST_UPDATE_TYPE } from "./types";
24
26
  * @param {number} updateType
25
27
  * @returns {Object}
26
28
  */
27
- export default function updatePeriodInPlace(oldPeriod, newPeriod, updateType) {
28
- var res = {
29
+ function updatePeriodInPlace(oldPeriod, newPeriod, updateType) {
30
+ const res = {
29
31
  updatedAdaptations: [],
30
32
  removedAdaptations: [],
31
33
  addedAdaptations: [],
@@ -34,78 +36,65 @@ export default function updatePeriodInPlace(oldPeriod, newPeriod, updateType) {
34
36
  oldPeriod.end = newPeriod.end;
35
37
  oldPeriod.duration = newPeriod.duration;
36
38
  oldPeriod.streamEvents = newPeriod.streamEvents;
37
- var oldAdaptations = oldPeriod.getAdaptations();
38
- var newAdaptations = newPeriod.getAdaptations();
39
- var _loop_1 = function (j) {
40
- var _a;
41
- var oldAdaptation = oldAdaptations[j];
42
- var newAdaptationIdx = arrayFindIndex(newAdaptations, function (a) { return a.id === oldAdaptation.id; });
39
+ const oldAdaptations = oldPeriod.getAdaptations();
40
+ const newAdaptations = newPeriod.getAdaptations();
41
+ for (let j = 0; j < oldAdaptations.length; j++) {
42
+ const oldAdaptation = oldAdaptations[j];
43
+ const newAdaptationIdx = (0, array_find_index_1.default)(newAdaptations, a => a.id === oldAdaptation.id);
43
44
  if (newAdaptationIdx === -1) {
44
- log.warn("Manifest: Adaptation \"" +
45
+ log_1.default.warn("Manifest: Adaptation \"" +
45
46
  oldAdaptations[j].id +
46
47
  "\" not found when merging.");
47
- var removed = oldAdaptations.splice(j, 1)[0];
48
+ const [removed] = oldAdaptations.splice(j, 1);
48
49
  j--;
49
50
  res.removedAdaptations.push(removed);
50
51
  }
51
52
  else {
52
- var newAdaptation = newAdaptations.splice(newAdaptationIdx, 1)[0];
53
- var updatedRepresentations = [];
54
- var addedRepresentations = [];
55
- var removedRepresentations = [];
56
- res.updatedAdaptations.push({ adaptation: oldAdaptation, updatedRepresentations: updatedRepresentations, addedRepresentations: addedRepresentations, removedRepresentations: removedRepresentations });
57
- var oldRepresentations = oldAdaptation.representations;
58
- var newRepresentations = newAdaptation.representations.slice();
59
- var _loop_2 = function (k) {
60
- var oldRepresentation = oldRepresentations[k];
61
- var newRepresentationIdx = arrayFindIndex(newRepresentations, function (representation) {
62
- return representation.id === oldRepresentation.id;
63
- });
53
+ const [newAdaptation] = newAdaptations.splice(newAdaptationIdx, 1);
54
+ const updatedRepresentations = [];
55
+ const addedRepresentations = [];
56
+ const removedRepresentations = [];
57
+ res.updatedAdaptations.push({ adaptation: oldAdaptation,
58
+ updatedRepresentations,
59
+ addedRepresentations,
60
+ removedRepresentations });
61
+ const oldRepresentations = oldAdaptation.representations;
62
+ const newRepresentations = newAdaptation.representations.slice();
63
+ for (let k = 0; k < oldRepresentations.length; k++) {
64
+ const oldRepresentation = oldRepresentations[k];
65
+ const newRepresentationIdx = (0, array_find_index_1.default)(newRepresentations, representation => representation.id === oldRepresentation.id);
64
66
  if (newRepresentationIdx === -1) {
65
- log.warn("Manifest: Representation \"".concat(oldRepresentations[k].id, "\" ") +
67
+ log_1.default.warn(`Manifest: Representation "${oldRepresentations[k].id}" ` +
66
68
  "not found when merging.");
67
- var removed = oldRepresentations.splice(k, 1)[0];
69
+ const [removed] = oldRepresentations.splice(k, 1);
68
70
  k--;
69
71
  removedRepresentations.push(removed);
70
72
  }
71
73
  else {
72
- var newRepresentation = newRepresentations.splice(newRepresentationIdx, 1)[0];
74
+ const [newRepresentation] = newRepresentations.splice(newRepresentationIdx, 1);
73
75
  updatedRepresentations.push(oldRepresentation);
74
76
  oldRepresentation.cdnMetadata = newRepresentation.cdnMetadata;
75
- if (updateType === MANIFEST_UPDATE_TYPE.Full) {
77
+ if (updateType === types_1.MANIFEST_UPDATE_TYPE.Full) {
76
78
  oldRepresentation.index._replace(newRepresentation.index);
77
79
  }
78
80
  else {
79
81
  oldRepresentation.index._update(newRepresentation.index);
80
82
  }
81
83
  }
82
- out_k_1 = k;
83
- };
84
- var out_k_1;
85
- for (var k = 0; k < oldRepresentations.length; k++) {
86
- _loop_2(k);
87
- k = out_k_1;
88
84
  }
89
85
  if (newRepresentations.length > 0) {
90
- log.warn("Manifest: ".concat(newRepresentations.length, " new Representations ") +
86
+ log_1.default.warn(`Manifest: ${newRepresentations.length} new Representations ` +
91
87
  "found when merging.");
92
- (_a = oldAdaptation.representations).push.apply(_a, newRepresentations);
93
- addedRepresentations.push.apply(addedRepresentations, newRepresentations);
88
+ oldAdaptation.representations.push(...newRepresentations);
89
+ addedRepresentations.push(...newRepresentations);
94
90
  }
95
91
  }
96
- out_j_1 = j;
97
- };
98
- var out_j_1;
99
- for (var j = 0; j < oldAdaptations.length; j++) {
100
- _loop_1(j);
101
- j = out_j_1;
102
92
  }
103
93
  if (newAdaptations.length > 0) {
104
- log.warn("Manifest: ".concat(newAdaptations.length, " new Adaptations ") +
94
+ log_1.default.warn(`Manifest: ${newAdaptations.length} new Adaptations ` +
105
95
  "found when merging.");
106
- for (var _i = 0, newAdaptations_1 = newAdaptations; _i < newAdaptations_1.length; _i++) {
107
- var adap = newAdaptations_1[_i];
108
- var prevAdaps = oldPeriod.adaptations[adap.type];
96
+ for (const adap of newAdaptations) {
97
+ const prevAdaps = oldPeriod.adaptations[adap.type];
109
98
  if (prevAdaps === undefined) {
110
99
  oldPeriod.adaptations[adap.type] = [adap];
111
100
  }
@@ -117,3 +106,4 @@ export default function updatePeriodInPlace(oldPeriod, newPeriod, updateType) {
117
106
  }
118
107
  return res;
119
108
  }
109
+ exports.default = updatePeriodInPlace;