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,32 +14,18 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __extends = (this && this.__extends) || (function () {
17
- var extendStatics = function (d, b) {
18
- extendStatics = Object.setPrototypeOf ||
19
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21
- return extendStatics(d, b);
22
- };
23
- return function (d, b) {
24
- if (typeof b !== "function" && b !== null)
25
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
26
- extendStatics(d, b);
27
- function __() { this.constructor = d; }
28
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
- };
30
- })();
31
- import { MediaError } from "../errors";
32
- import log from "../log";
33
- import arrayFind from "../utils/array_find";
34
- import EventEmitter from "../utils/event_emitter";
35
- import idGenerator from "../utils/id_generator";
36
- import getMonotonicTimeStamp from "../utils/monotonic_timestamp";
37
- import warnOnce from "../utils/warn_once";
38
- import Period from "./period";
39
- import { MANIFEST_UPDATE_TYPE } from "./types";
40
- import { replacePeriods, updatePeriods, } from "./update_periods";
41
- var generateNewManifestId = idGenerator();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const errors_1 = require("../errors");
19
+ const log_1 = require("../log");
20
+ const array_find_1 = require("../utils/array_find");
21
+ const event_emitter_1 = require("../utils/event_emitter");
22
+ const id_generator_1 = require("../utils/id_generator");
23
+ const monotonic_timestamp_1 = require("../utils/monotonic_timestamp");
24
+ const warn_once_1 = require("../utils/warn_once");
25
+ const period_1 = require("./period");
26
+ const types_1 = require("./types");
27
+ const update_periods_1 = require("./update_periods");
28
+ const generateNewManifestId = (0, id_generator_1.default)();
42
29
  /**
43
30
  * Normalized Manifest structure.
44
31
  *
@@ -58,8 +45,7 @@ var generateNewManifestId = idGenerator();
58
45
  *
59
46
  * @class Manifest
60
47
  */
61
- var Manifest = /** @class */ (function (_super) {
62
- __extends(Manifest, _super);
48
+ class Manifest extends event_emitter_1.default {
63
49
  /**
64
50
  * Construct a Manifest instance from a parsed Manifest object (as returned by
65
51
  * Manifest parsers) and options.
@@ -71,21 +57,21 @@ var Manifest = /** @class */ (function (_super) {
71
57
  * @param {Array.<Object>} warnings - After construction, will be optionally
72
58
  * filled by errors expressing minor issues seen while parsing the Manifest.
73
59
  */
74
- function Manifest(parsedManifest, options, warnings) {
60
+ constructor(parsedManifest, options, warnings) {
75
61
  var _a;
76
- var _this = _super.call(this) || this;
77
- var representationFilter = options.representationFilter, manifestUpdateUrl = options.manifestUpdateUrl;
78
- _this.id = generateNewManifestId();
79
- _this.expired = (_a = parsedManifest.expired) !== null && _a !== void 0 ? _a : null;
80
- _this.transport = parsedManifest.transportType;
81
- _this.clockOffset = parsedManifest.clockOffset;
82
- var unsupportedAdaptations = [];
83
- _this.periods = parsedManifest.periods.map(function (parsedPeriod) {
84
- var period = new Period(parsedPeriod, unsupportedAdaptations, representationFilter);
62
+ super();
63
+ const { representationFilter, manifestUpdateUrl } = options;
64
+ this.id = generateNewManifestId();
65
+ this.expired = (_a = parsedManifest.expired) !== null && _a !== void 0 ? _a : null;
66
+ this.transport = parsedManifest.transportType;
67
+ this.clockOffset = parsedManifest.clockOffset;
68
+ const unsupportedAdaptations = [];
69
+ this.periods = parsedManifest.periods.map((parsedPeriod) => {
70
+ const period = new period_1.default(parsedPeriod, unsupportedAdaptations, representationFilter);
85
71
  return period;
86
- }).sort(function (a, b) { return a.start - b.start; });
72
+ }).sort((a, b) => a.start - b.start);
87
73
  if (unsupportedAdaptations.length > 0) {
88
- var error = new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR", "An Adaptation contains only incompatible codecs.", { adaptations: unsupportedAdaptations });
74
+ const error = new errors_1.MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR", "An Adaptation contains only incompatible codecs.", { adaptations: unsupportedAdaptations });
89
75
  warnings.push(error);
90
76
  }
91
77
  /**
@@ -93,21 +79,20 @@ var Manifest = /** @class */ (function (_super) {
93
79
  * v3.x.x manages adaptations at the Manifest level
94
80
  */
95
81
  /* eslint-disable import/no-deprecated */
96
- _this.adaptations = _this.periods[0] === undefined ? {} :
97
- _this.periods[0].adaptations;
82
+ this.adaptations = this.periods[0] === undefined ? {} :
83
+ this.periods[0].adaptations;
98
84
  /* eslint-enable import/no-deprecated */
99
- _this._timeBounds = parsedManifest.timeBounds;
100
- _this.isDynamic = parsedManifest.isDynamic;
101
- _this.isLive = parsedManifest.isLive;
102
- _this.isLastPeriodKnown = parsedManifest.isLastPeriodKnown;
103
- _this.uris = parsedManifest.uris === undefined ? [] :
85
+ this._timeBounds = parsedManifest.timeBounds;
86
+ this.isDynamic = parsedManifest.isDynamic;
87
+ this.isLive = parsedManifest.isLive;
88
+ this.isLastPeriodKnown = parsedManifest.isLastPeriodKnown;
89
+ this.uris = parsedManifest.uris === undefined ? [] :
104
90
  parsedManifest.uris;
105
- _this.updateUrl = manifestUpdateUrl;
106
- _this.lifetime = parsedManifest.lifetime;
107
- _this.suggestedPresentationDelay = parsedManifest.suggestedPresentationDelay;
108
- _this.availabilityStartTime = parsedManifest.availabilityStartTime;
109
- _this.publishTime = parsedManifest.publishTime;
110
- return _this;
91
+ this.updateUrl = manifestUpdateUrl;
92
+ this.lifetime = parsedManifest.lifetime;
93
+ this.suggestedPresentationDelay = parsedManifest.suggestedPresentationDelay;
94
+ this.availabilityStartTime = parsedManifest.availabilityStartTime;
95
+ this.publishTime = parsedManifest.publishTime;
111
96
  }
112
97
  /**
113
98
  * Returns the Period corresponding to the given `id`.
@@ -115,67 +100,67 @@ var Manifest = /** @class */ (function (_super) {
115
100
  * @param {string} id
116
101
  * @returns {Object|undefined}
117
102
  */
118
- Manifest.prototype.getPeriod = function (id) {
119
- return arrayFind(this.periods, function (period) {
103
+ getPeriod(id) {
104
+ return (0, array_find_1.default)(this.periods, (period) => {
120
105
  return id === period.id;
121
106
  });
122
- };
107
+ }
123
108
  /**
124
109
  * Returns the Period encountered at the given time.
125
110
  * Returns `undefined` if there is no Period exactly at the given time.
126
111
  * @param {number} time
127
112
  * @returns {Object|undefined}
128
113
  */
129
- Manifest.prototype.getPeriodForTime = function (time) {
130
- return arrayFind(this.periods, function (period) {
114
+ getPeriodForTime(time) {
115
+ return (0, array_find_1.default)(this.periods, (period) => {
131
116
  return time >= period.start &&
132
117
  (period.end === undefined || period.end > time);
133
118
  });
134
- };
119
+ }
135
120
  /**
136
121
  * Returns the first Period starting strictly after the given time.
137
122
  * Returns `undefined` if there is no Period starting after that time.
138
123
  * @param {number} time
139
124
  * @returns {Object|undefined}
140
125
  */
141
- Manifest.prototype.getNextPeriod = function (time) {
142
- return arrayFind(this.periods, function (period) {
126
+ getNextPeriod(time) {
127
+ return (0, array_find_1.default)(this.periods, (period) => {
143
128
  return period.start > time;
144
129
  });
145
- };
130
+ }
146
131
  /**
147
132
  * Returns the Period coming chronologically just after another given Period.
148
133
  * Returns `undefined` if not found.
149
134
  * @param {Object} period
150
135
  * @returns {Object|null}
151
136
  */
152
- Manifest.prototype.getPeriodAfter = function (period) {
153
- var endOfPeriod = period.end;
137
+ getPeriodAfter(period) {
138
+ const endOfPeriod = period.end;
154
139
  if (endOfPeriod === undefined) {
155
140
  return null;
156
141
  }
157
- var nextPeriod = arrayFind(this.periods, function (_period) {
142
+ const nextPeriod = (0, array_find_1.default)(this.periods, (_period) => {
158
143
  return _period.end === undefined || endOfPeriod < _period.end;
159
144
  });
160
145
  return nextPeriod === undefined ? null :
161
146
  nextPeriod;
162
- };
147
+ }
163
148
  /**
164
149
  * Returns the most important URL from which the Manifest can be refreshed.
165
150
  * `undefined` if no URL is found.
166
151
  * @returns {Array.<string>}
167
152
  */
168
- Manifest.prototype.getUrls = function () {
153
+ getUrls() {
169
154
  return this.uris;
170
- };
155
+ }
171
156
  /**
172
157
  * Update the current Manifest properties by giving a new updated version.
173
158
  * This instance will be updated with the new information coming from it.
174
159
  * @param {Object} newManifest
175
160
  */
176
- Manifest.prototype.replace = function (newManifest) {
177
- this._performUpdate(newManifest, MANIFEST_UPDATE_TYPE.Full);
178
- };
161
+ replace(newManifest) {
162
+ this._performUpdate(newManifest, types_1.MANIFEST_UPDATE_TYPE.Full);
163
+ }
179
164
  /**
180
165
  * Update the current Manifest properties by giving a new but shorter version
181
166
  * of it.
@@ -186,62 +171,62 @@ var Manifest = /** @class */ (function (_super) {
186
171
  * update the Manifest.
187
172
  * @param {Object} newManifest
188
173
  */
189
- Manifest.prototype.update = function (newManifest) {
190
- this._performUpdate(newManifest, MANIFEST_UPDATE_TYPE.Partial);
191
- };
174
+ update(newManifest) {
175
+ this._performUpdate(newManifest, types_1.MANIFEST_UPDATE_TYPE.Partial);
176
+ }
192
177
  /**
193
178
  * Returns the theoretical minimum playable position on the content
194
179
  * regardless of the current Adaptation chosen, as estimated at parsing
195
180
  * time.
196
181
  * @returns {number}
197
182
  */
198
- Manifest.prototype.getMinimumSafePosition = function () {
183
+ getMinimumSafePosition() {
199
184
  var _a, _b;
200
- var windowData = this._timeBounds;
185
+ const windowData = this._timeBounds;
201
186
  if (windowData.timeshiftDepth === null) {
202
187
  return (_a = windowData.minimumSafePosition) !== null && _a !== void 0 ? _a : 0;
203
188
  }
204
- var maximumTimeData = windowData.maximumTimeData;
205
- var maximumTime;
189
+ const { maximumTimeData } = windowData;
190
+ let maximumTime;
206
191
  if (!windowData.maximumTimeData.isLinear) {
207
192
  maximumTime = maximumTimeData.maximumSafePosition;
208
193
  }
209
194
  else {
210
- var timeDiff = getMonotonicTimeStamp() - maximumTimeData.time;
195
+ const timeDiff = (0, monotonic_timestamp_1.default)() - maximumTimeData.time;
211
196
  maximumTime = maximumTimeData.maximumSafePosition + timeDiff / 1000;
212
197
  }
213
- var theoricalMinimum = maximumTime - windowData.timeshiftDepth;
198
+ const theoricalMinimum = maximumTime - windowData.timeshiftDepth;
214
199
  return Math.max((_b = windowData.minimumSafePosition) !== null && _b !== void 0 ? _b : 0, theoricalMinimum);
215
- };
200
+ }
216
201
  /**
217
202
  * Get the position of the live edge - that is, the position of what is
218
203
  * currently being broadcasted, in seconds.
219
204
  * @returns {number|undefined}
220
205
  */
221
- Manifest.prototype.getLivePosition = function () {
222
- var maximumTimeData = this._timeBounds.maximumTimeData;
206
+ getLivePosition() {
207
+ const { maximumTimeData } = this._timeBounds;
223
208
  if (!this.isLive || maximumTimeData.livePosition === undefined) {
224
209
  return undefined;
225
210
  }
226
211
  if (!maximumTimeData.isLinear) {
227
212
  return maximumTimeData.livePosition;
228
213
  }
229
- var timeDiff = getMonotonicTimeStamp() - maximumTimeData.time;
214
+ const timeDiff = (0, monotonic_timestamp_1.default)() - maximumTimeData.time;
230
215
  return maximumTimeData.livePosition + timeDiff / 1000;
231
- };
216
+ }
232
217
  /**
233
218
  * Returns the theoretical maximum playable position on the content
234
219
  * regardless of the current Adaptation chosen, as estimated at parsing
235
220
  * time.
236
221
  */
237
- Manifest.prototype.getMaximumSafePosition = function () {
238
- var maximumTimeData = this._timeBounds.maximumTimeData;
222
+ getMaximumSafePosition() {
223
+ const { maximumTimeData } = this._timeBounds;
239
224
  if (!maximumTimeData.isLinear) {
240
225
  return maximumTimeData.maximumSafePosition;
241
226
  }
242
- var timeDiff = getMonotonicTimeStamp() - maximumTimeData.time;
227
+ const timeDiff = (0, monotonic_timestamp_1.default)() - maximumTimeData.time;
243
228
  return maximumTimeData.maximumSafePosition + timeDiff / 1000;
244
- };
229
+ }
245
230
  /**
246
231
  * Look in the Manifest for Representations linked to the given key ID,
247
232
  * and mark them as being impossible to decrypt.
@@ -249,67 +234,64 @@ var Manifest = /** @class */ (function (_super) {
249
234
  * changes performed.
250
235
  * @param {Function} isDecipherableCb
251
236
  */
252
- Manifest.prototype.updateRepresentationsDeciperability = function (isDecipherableCb) {
253
- var updates = updateDeciperability(this, isDecipherableCb);
237
+ updateRepresentationsDeciperability(isDecipherableCb) {
238
+ const updates = updateDeciperability(this, isDecipherableCb);
254
239
  if (updates.length > 0) {
255
240
  this.trigger("decipherabilityUpdate", updates);
256
241
  }
257
- };
242
+ }
258
243
  /**
259
244
  * @deprecated only returns adaptations for the first period
260
245
  * @returns {Array.<Object>}
261
246
  */
262
- Manifest.prototype.getAdaptations = function () {
263
- warnOnce("manifest.getAdaptations() is deprecated." +
247
+ getAdaptations() {
248
+ (0, warn_once_1.default)("manifest.getAdaptations() is deprecated." +
264
249
  " Please use manifest.period[].getAdaptations() instead");
265
- var firstPeriod = this.periods[0];
250
+ const firstPeriod = this.periods[0];
266
251
  if (firstPeriod === undefined) {
267
252
  return [];
268
253
  }
269
- var adaptationsByType = firstPeriod.adaptations;
270
- var adaptationsList = [];
271
- for (var adaptationType in adaptationsByType) {
254
+ const adaptationsByType = firstPeriod.adaptations;
255
+ const adaptationsList = [];
256
+ for (const adaptationType in adaptationsByType) {
272
257
  if (adaptationsByType.hasOwnProperty(adaptationType)) {
273
- var adaptations = adaptationsByType[adaptationType];
274
- adaptationsList.push.apply(adaptationsList, adaptations);
258
+ const adaptations = adaptationsByType[adaptationType];
259
+ adaptationsList.push(...adaptations);
275
260
  }
276
261
  }
277
262
  return adaptationsList;
278
- };
263
+ }
279
264
  /**
280
265
  * @deprecated only returns adaptations for the first period
281
266
  * @returns {Array.<Object>}
282
267
  */
283
- Manifest.prototype.getAdaptationsForType = function (adaptationType) {
284
- warnOnce("manifest.getAdaptationsForType(type) is deprecated." +
268
+ getAdaptationsForType(adaptationType) {
269
+ (0, warn_once_1.default)("manifest.getAdaptationsForType(type) is deprecated." +
285
270
  " Please use manifest.period[].getAdaptationsForType(type) instead");
286
- var firstPeriod = this.periods[0];
271
+ const firstPeriod = this.periods[0];
287
272
  if (firstPeriod === undefined) {
288
273
  return [];
289
274
  }
290
- var adaptationsForType = firstPeriod.adaptations[adaptationType];
275
+ const adaptationsForType = firstPeriod.adaptations[adaptationType];
291
276
  return adaptationsForType === undefined ? [] :
292
277
  adaptationsForType;
293
- };
278
+ }
294
279
  /**
295
280
  * @deprecated only returns adaptations for the first period
296
281
  * @returns {Array.<Object>}
297
282
  */
298
- Manifest.prototype.getAdaptation = function (wantedId) {
299
- warnOnce("manifest.getAdaptation(id) is deprecated." +
283
+ getAdaptation(wantedId) {
284
+ (0, warn_once_1.default)("manifest.getAdaptation(id) is deprecated." +
300
285
  " Please use manifest.period[].getAdaptation(id) instead");
301
286
  /* eslint-disable import/no-deprecated */
302
- return arrayFind(this.getAdaptations(), function (_a) {
303
- var id = _a.id;
304
- return wantedId === id;
305
- });
287
+ return (0, array_find_1.default)(this.getAdaptations(), ({ id }) => wantedId === id);
306
288
  /* eslint-enable import/no-deprecated */
307
- };
289
+ }
308
290
  /**
309
291
  * @param {Object} newManifest
310
292
  * @param {number} updateType
311
293
  */
312
- Manifest.prototype._performUpdate = function (newManifest, updateType) {
294
+ _performUpdate(newManifest, updateType) {
313
295
  this.availabilityStartTime = newManifest.availabilityStartTime;
314
296
  this.expired = newManifest.expired;
315
297
  this.isDynamic = newManifest.isDynamic;
@@ -319,22 +301,22 @@ var Manifest = /** @class */ (function (_super) {
319
301
  this.suggestedPresentationDelay = newManifest.suggestedPresentationDelay;
320
302
  this.transport = newManifest.transport;
321
303
  this.publishTime = newManifest.publishTime;
322
- var updatedPeriodsResult;
323
- if (updateType === MANIFEST_UPDATE_TYPE.Full) {
304
+ let updatedPeriodsResult;
305
+ if (updateType === types_1.MANIFEST_UPDATE_TYPE.Full) {
324
306
  this._timeBounds = newManifest._timeBounds;
325
307
  this.uris = newManifest.uris;
326
- updatedPeriodsResult = replacePeriods(this.periods, newManifest.periods);
308
+ updatedPeriodsResult = (0, update_periods_1.replacePeriods)(this.periods, newManifest.periods);
327
309
  }
328
310
  else {
329
311
  this._timeBounds.maximumTimeData = newManifest._timeBounds.maximumTimeData;
330
312
  this.updateUrl = newManifest.uris[0];
331
- updatedPeriodsResult = updatePeriods(this.periods, newManifest.periods);
313
+ updatedPeriodsResult = (0, update_periods_1.updatePeriods)(this.periods, newManifest.periods);
332
314
  // Partial updates do not remove old Periods.
333
315
  // This can become a memory problem when playing a content long enough.
334
316
  // Let's clean manually Periods behind the minimum possible position.
335
- var min = this.getMinimumSafePosition();
317
+ const min = this.getMinimumSafePosition();
336
318
  while (this.periods.length > 0) {
337
- var period = this.periods[0];
319
+ const period = this.periods[0];
338
320
  if (period.end === undefined || period.end > min) {
339
321
  break;
340
322
  }
@@ -351,10 +333,9 @@ var Manifest = /** @class */ (function (_super) {
351
333
  // We do not want the current Manifest object to be incomplete when those
352
334
  // happen.
353
335
  this.trigger("manifestUpdate", updatedPeriodsResult);
354
- };
355
- return Manifest;
356
- }(EventEmitter));
357
- export default Manifest;
336
+ }
337
+ }
338
+ exports.default = Manifest;
358
339
  /**
359
340
  * Update `decipherable` property of every `Representation` found in the
360
341
  * Manifest based on the result of a `isDecipherable` callback:
@@ -367,18 +348,15 @@ export default Manifest;
367
348
  * @returns {Array.<Object>}
368
349
  */
369
350
  function updateDeciperability(manifest, isDecipherable) {
370
- var updates = [];
371
- for (var _i = 0, _a = manifest.periods; _i < _a.length; _i++) {
372
- var period = _a[_i];
373
- for (var _b = 0, _c = period.getAdaptations(); _b < _c.length; _b++) {
374
- var adaptation = _c[_b];
375
- for (var _d = 0, _e = adaptation.representations; _d < _e.length; _d++) {
376
- var representation = _e[_d];
377
- var result = isDecipherable(representation);
351
+ const updates = [];
352
+ for (const period of manifest.periods) {
353
+ for (const adaptation of period.getAdaptations()) {
354
+ for (const representation of adaptation.representations) {
355
+ const result = isDecipherable(representation);
378
356
  if (result !== representation.decipherable) {
379
- updates.push({ manifest: manifest, period: period, adaptation: adaptation, representation: representation });
357
+ updates.push({ manifest, period, adaptation, representation });
380
358
  representation.decipherable = result;
381
- log.debug("Decipherability changed for \"".concat(representation.id, "\""), "(".concat(representation.bitrate, ")"), String(representation.decipherable));
359
+ log_1.default.debug(`Decipherability changed for "${representation.id}"`, `(${representation.bitrate})`, String(representation.decipherable));
382
360
  }
383
361
  }
384
362
  }
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
1
3
  /**
2
4
  * Copyright 2015 CANAL+ Group
3
5
  *
@@ -13,44 +15,42 @@
13
15
  * See the License for the specific language governing permissions and
14
16
  * limitations under the License.
15
17
  */
16
- import { MediaError } from "../errors";
17
- import arrayFind from "../utils/array_find";
18
- import objectValues from "../utils/object_values";
19
- import Adaptation from "./adaptation";
18
+ const errors_1 = require("../errors");
19
+ const array_find_1 = require("../utils/array_find");
20
+ const object_values_1 = require("../utils/object_values");
21
+ const adaptation_1 = require("./adaptation");
20
22
  /**
21
23
  * Class representing the tracks and qualities available from a given time
22
24
  * period in the the Manifest.
23
25
  * @class Period
24
26
  */
25
- var Period = /** @class */ (function () {
27
+ class Period {
26
28
  /**
27
29
  * @constructor
28
30
  * @param {Object} args
29
31
  * @param {function|undefined} [representationFilter]
30
32
  */
31
- function Period(args, unsupportedAdaptations, representationFilter) {
33
+ constructor(args, unsupportedAdaptations, representationFilter) {
32
34
  this.id = args.id;
33
35
  this.adaptations = Object.keys(args.adaptations)
34
- .reduce(function (acc, type) {
35
- var adaptationsForType = args.adaptations[type];
36
+ .reduce((acc, type) => {
37
+ const adaptationsForType = args.adaptations[type];
36
38
  if (adaptationsForType == null) {
37
39
  return acc;
38
40
  }
39
- var filteredAdaptations = adaptationsForType
40
- .map(function (adaptation) {
41
- var newAdaptation = new Adaptation(adaptation, { representationFilter: representationFilter });
41
+ const filteredAdaptations = adaptationsForType
42
+ .map((adaptation) => {
43
+ const newAdaptation = new adaptation_1.default(adaptation, { representationFilter });
42
44
  if (newAdaptation.representations.length > 0 && !newAdaptation.isSupported) {
43
45
  unsupportedAdaptations.push(newAdaptation);
44
46
  }
45
47
  return newAdaptation;
46
48
  })
47
- .filter(function (adaptation) {
48
- return adaptation.representations.length > 0;
49
- });
50
- if (filteredAdaptations.every(function (adaptation) { return !adaptation.isSupported; }) &&
49
+ .filter((adaptation) => adaptation.representations.length > 0);
50
+ if (filteredAdaptations.every(adaptation => !adaptation.isSupported) &&
51
51
  adaptationsForType.length > 0 &&
52
52
  (type === "video" || type === "audio")) {
53
- throw new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR", "No supported " + type + " adaptations", { adaptations: undefined });
53
+ throw new errors_1.MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR", "No supported " + type + " adaptations", { adaptations: undefined });
54
54
  }
55
55
  if (filteredAdaptations.length > 0) {
56
56
  acc[type] = filteredAdaptations;
@@ -59,7 +59,7 @@ var Period = /** @class */ (function () {
59
59
  }, {});
60
60
  if (!Array.isArray(this.adaptations.video) &&
61
61
  !Array.isArray(this.adaptations.audio)) {
62
- throw new MediaError("MANIFEST_PARSE_ERROR", "No supported audio and video tracks.");
62
+ throw new errors_1.MediaError("MANIFEST_PARSE_ERROR", "No supported audio and video tracks.");
63
63
  }
64
64
  this.duration = args.duration;
65
65
  this.start = args.start;
@@ -75,64 +75,60 @@ var Period = /** @class */ (function () {
75
75
  * Array.
76
76
  * @returns {Array.<Object>}
77
77
  */
78
- Period.prototype.getAdaptations = function () {
79
- var adaptationsByType = this.adaptations;
80
- return objectValues(adaptationsByType).reduce(
78
+ getAdaptations() {
79
+ const adaptationsByType = this.adaptations;
80
+ return (0, object_values_1.default)(adaptationsByType).reduce(
81
81
  // Note: the second case cannot happen. TS is just being dumb here
82
- function (acc, adaptations) { return adaptations != null ? acc.concat(adaptations) :
83
- acc; }, []);
84
- };
82
+ (acc, adaptations) => adaptations != null ? acc.concat(adaptations) :
83
+ acc, []);
84
+ }
85
85
  /**
86
86
  * Returns every `Adaptations` (or `tracks`) linked to that Period for a
87
87
  * given type.
88
88
  * @param {string} adaptationType
89
89
  * @returns {Array.<Object>}
90
90
  */
91
- Period.prototype.getAdaptationsForType = function (adaptationType) {
92
- var adaptationsForType = this.adaptations[adaptationType];
91
+ getAdaptationsForType(adaptationType) {
92
+ const adaptationsForType = this.adaptations[adaptationType];
93
93
  return adaptationsForType == null ? [] :
94
94
  adaptationsForType;
95
- };
95
+ }
96
96
  /**
97
97
  * Returns the Adaptation linked to the given ID.
98
98
  * @param {number|string} wantedId
99
99
  * @returns {Object|undefined}
100
100
  */
101
- Period.prototype.getAdaptation = function (wantedId) {
102
- return arrayFind(this.getAdaptations(), function (_a) {
103
- var id = _a.id;
104
- return wantedId === id;
105
- });
106
- };
101
+ getAdaptation(wantedId) {
102
+ return (0, array_find_1.default)(this.getAdaptations(), ({ id }) => wantedId === id);
103
+ }
107
104
  /**
108
105
  * Returns Adaptations that contain Representations in supported codecs.
109
106
  * @param {string|undefined} type - If set filter on a specific Adaptation's
110
107
  * type. Will return for all types if `undefined`.
111
108
  * @returns {Array.<Adaptation>}
112
109
  */
113
- Period.prototype.getSupportedAdaptations = function (type) {
110
+ getSupportedAdaptations(type) {
114
111
  if (type === undefined) {
115
- return this.getAdaptations().filter(function (ada) {
112
+ return this.getAdaptations().filter(ada => {
116
113
  return ada.isSupported;
117
114
  });
118
115
  }
119
- var adaptationsForType = this.adaptations[type];
116
+ const adaptationsForType = this.adaptations[type];
120
117
  if (adaptationsForType === undefined) {
121
118
  return [];
122
119
  }
123
- return adaptationsForType.filter(function (ada) {
120
+ return adaptationsForType.filter(ada => {
124
121
  return ada.isSupported;
125
122
  });
126
- };
123
+ }
127
124
  /**
128
125
  * Returns true if the give time is in the time boundaries of this `Period`.
129
126
  * @param {number} time
130
127
  * @returns {boolean}
131
128
  */
132
- Period.prototype.containsTime = function (time) {
129
+ containsTime(time) {
133
130
  return time >= this.start && (this.end === undefined ||
134
131
  time < this.end);
135
- };
136
- return Period;
137
- }());
138
- export default Period;
132
+ }
133
+ }
134
+ exports.default = Period;