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,7 +14,9 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import config from "../../../../../config";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.getSegmentTimeRoundingError = void 0;
19
+ const config_1 = require("../../../../../config");
17
20
  /**
18
21
  * In Javascript, numbers are encoded in a way that a floating number may be
19
22
  * represented internally with a rounding error.
@@ -23,6 +26,7 @@ import config from "../../../../../config";
23
26
  * @param {number} timescale
24
27
  * @returns {boolean}
25
28
  */
26
- export function getSegmentTimeRoundingError(timescale) {
27
- return config.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR * timescale;
29
+ function getSegmentTimeRoundingError(timescale) {
30
+ return config_1.default.getCurrent().DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR * timescale;
28
31
  }
32
+ exports.getSegmentTimeRoundingError = getSegmentTimeRoundingError;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,11 +14,12 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { SUPPORTED_ADAPTATIONS_TYPE } from "../../../../manifest";
17
- import arrayFind from "../../../../utils/array_find";
18
- import arrayIncludes from "../../../../utils/array_includes";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const manifest_1 = require("../../../../manifest");
19
+ const array_find_1 = require("../../../../utils/array_find");
20
+ const array_includes_1 = require("../../../../utils/array_includes");
19
21
  /** Different `role`s a text Adaptation can be. */
20
- var SUPPORTED_TEXT_TYPES = ["subtitle", "caption"];
22
+ const SUPPORTED_TEXT_TYPES = ["subtitle", "caption"];
21
23
  /**
22
24
  * Infers the type of adaptation from codec and mimetypes found in it.
23
25
  *
@@ -35,10 +37,10 @@ var SUPPORTED_TEXT_TYPES = ["subtitle", "caption"];
35
37
  * @param {Array.<Object>|null} adaptationRoles
36
38
  * @returns {string} - "audio"|"video"|"text"|"metadata"|"unknown"
37
39
  */
38
- export default function inferAdaptationType(representations, adaptationMimeType, adaptationCodecs, adaptationRoles) {
40
+ function inferAdaptationType(representations, adaptationMimeType, adaptationCodecs, adaptationRoles) {
39
41
  function fromMimeType(mimeType, roles) {
40
- var topLevel = mimeType.split("/")[0];
41
- if (arrayIncludes(SUPPORTED_ADAPTATIONS_TYPE, topLevel)) {
42
+ const topLevel = mimeType.split("/")[0];
43
+ if ((0, array_includes_1.default)(manifest_1.SUPPORTED_ADAPTATIONS_TYPE, topLevel)) {
42
44
  return topLevel;
43
45
  }
44
46
  if (mimeType === "application/ttml+xml") {
@@ -47,10 +49,8 @@ export default function inferAdaptationType(representations, adaptationMimeType,
47
49
  // manage DASH-IF mp4-embedded subtitles and metadata
48
50
  if (mimeType === "application/mp4") {
49
51
  if (roles != null) {
50
- if (arrayFind(roles, function (role) {
51
- return role.schemeIdUri === "urn:mpeg:dash:role:2011" &&
52
- arrayIncludes(SUPPORTED_TEXT_TYPES, role.value);
53
- }) != null) {
52
+ if ((0, array_find_1.default)(roles, (role) => role.schemeIdUri === "urn:mpeg:dash:role:2011" &&
53
+ (0, array_includes_1.default)(SUPPORTED_TEXT_TYPES, role.value)) != null) {
54
54
  return "text";
55
55
  }
56
56
  }
@@ -78,28 +78,28 @@ export default function inferAdaptationType(representations, adaptationMimeType,
78
78
  }
79
79
  }
80
80
  if (adaptationMimeType !== null) {
81
- var typeFromMimeType = fromMimeType(adaptationMimeType, adaptationRoles);
81
+ const typeFromMimeType = fromMimeType(adaptationMimeType, adaptationRoles);
82
82
  if (typeFromMimeType !== undefined) {
83
83
  return typeFromMimeType;
84
84
  }
85
85
  }
86
86
  if (adaptationCodecs !== null) {
87
- var typeFromCodecs = fromCodecs(adaptationCodecs);
87
+ const typeFromCodecs = fromCodecs(adaptationCodecs);
88
88
  if (typeFromCodecs !== undefined) {
89
89
  return typeFromCodecs;
90
90
  }
91
91
  }
92
- for (var i = 0; i < representations.length; i++) {
93
- var representation = representations[i];
94
- var _a = representation.attributes, mimeType = _a.mimeType, codecs = _a.codecs;
92
+ for (let i = 0; i < representations.length; i++) {
93
+ const representation = representations[i];
94
+ const { mimeType, codecs } = representation.attributes;
95
95
  if (mimeType !== undefined) {
96
- var typeFromMimeType = fromMimeType(mimeType, adaptationRoles);
96
+ const typeFromMimeType = fromMimeType(mimeType, adaptationRoles);
97
97
  if (typeFromMimeType !== undefined) {
98
98
  return typeFromMimeType;
99
99
  }
100
100
  }
101
101
  if (codecs !== undefined) {
102
- var typeFromCodecs = fromCodecs(codecs);
102
+ const typeFromCodecs = fromCodecs(codecs);
103
103
  if (typeFromCodecs !== undefined) {
104
104
  return typeFromCodecs;
105
105
  }
@@ -107,3 +107,4 @@ export default function inferAdaptationType(representations, adaptationMimeType,
107
107
  }
108
108
  return undefined;
109
109
  }
110
+ exports.default = inferAdaptationType;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,7 +14,8 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import getMonotonicTimeStamp from "../../../../utils/monotonic_timestamp";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const monotonic_timestamp_1 = require("../../../../utils/monotonic_timestamp");
17
19
  /**
18
20
  * This class allows to easily calculate the first and last available positions
19
21
  * in a content at any time.
@@ -34,11 +36,11 @@ import getMonotonicTimeStamp from "../../../../utils/monotonic_timestamp";
34
36
  * elements without needing to parse a second time the MPD.
35
37
  * @class ManifestBoundsCalculator
36
38
  */
37
- var ManifestBoundsCalculator = /** @class */ (function () {
39
+ class ManifestBoundsCalculator {
38
40
  /**
39
41
  * @param {Object} args
40
42
  */
41
- function ManifestBoundsCalculator(args) {
43
+ constructor(args) {
42
44
  this._isDynamic = args.isDynamic;
43
45
  this._timeShiftBufferDepth = !args.isDynamic ||
44
46
  args.timeShiftBufferDepth === undefined ?
@@ -61,53 +63,52 @@ var ManifestBoundsCalculator = /** @class */ (function () {
61
63
  * @param {number} lastPosition
62
64
  * @param {number|undefined} positionTime
63
65
  */
64
- ManifestBoundsCalculator.prototype.setLastPosition = function (lastPosition, positionTime) {
66
+ setLastPosition(lastPosition, positionTime) {
65
67
  this._lastPosition = lastPosition;
66
68
  this._positionTime = positionTime;
67
- };
69
+ }
68
70
  /**
69
71
  * Returns `true` if the last position and the position time
70
72
  * (for dynamic content only) have been comunicated.
71
73
  * `false` otherwise.
72
74
  * @returns {boolean}
73
75
  */
74
- ManifestBoundsCalculator.prototype.lastPositionIsKnown = function () {
76
+ lastPositionIsKnown() {
75
77
  if (this._isDynamic) {
76
78
  return this._positionTime != null && this._lastPosition != null;
77
79
  }
78
80
  return this._lastPosition != null;
79
- };
81
+ }
80
82
  /**
81
83
  * Estimate a minimum bound for the content from the last set segment time
82
84
  * and buffer depth.
83
85
  * Consider that it is only an estimation, not the real value.
84
86
  * @return {number|undefined}
85
87
  */
86
- ManifestBoundsCalculator.prototype.estimateMinimumBound = function () {
88
+ estimateMinimumBound() {
87
89
  if (!this._isDynamic || this._timeShiftBufferDepth === null) {
88
90
  return 0;
89
91
  }
90
- var maximumBound = this.estimateMaximumBound();
92
+ const maximumBound = this.estimateMaximumBound();
91
93
  if (maximumBound === undefined) {
92
94
  return undefined;
93
95
  }
94
- var minimumBound = maximumBound - this._timeShiftBufferDepth;
96
+ const minimumBound = maximumBound - this._timeShiftBufferDepth;
95
97
  return minimumBound;
96
- };
98
+ }
97
99
  /**
98
100
  * Estimate a maximum bound for the content from the last set segment time.
99
101
  * Consider that it is only an estimation, not the real value.
100
102
  * @return {number|undefined}
101
103
  */
102
- ManifestBoundsCalculator.prototype.estimateMaximumBound = function () {
104
+ estimateMaximumBound() {
103
105
  if (this._isDynamic &&
104
106
  this._positionTime != null &&
105
107
  this._lastPosition != null) {
106
108
  return Math.max((this._lastPosition - this._positionTime) +
107
- (getMonotonicTimeStamp() / 1000), 0);
109
+ ((0, monotonic_timestamp_1.default)() / 1000), 0);
108
110
  }
109
111
  return this._lastPosition;
110
- };
111
- return ManifestBoundsCalculator;
112
- }());
113
- export default ManifestBoundsCalculator;
112
+ }
113
+ }
114
+ exports.default = ManifestBoundsCalculator;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,17 +14,18 @@
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 { SUPPORTED_ADAPTATIONS_TYPE, } from "../../../../manifest";
18
- import arrayFind from "../../../../utils/array_find";
19
- import arrayFindIndex from "../../../../utils/array_find_index";
20
- import arrayIncludes from "../../../../utils/array_includes";
21
- import isNonEmptyString from "../../../../utils/is_non_empty_string";
22
- import attachTrickModeTrack from "./attach_trickmode_track";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../../../log");
19
+ const manifest_1 = require("../../../../manifest");
20
+ const array_find_1 = require("../../../../utils/array_find");
21
+ const array_find_index_1 = require("../../../../utils/array_find_index");
22
+ const array_includes_1 = require("../../../../utils/array_includes");
23
+ const is_non_empty_string_1 = require("../../../../utils/is_non_empty_string");
24
+ const attach_trickmode_track_1 = require("./attach_trickmode_track");
23
25
  // eslint-disable-next-line max-len
24
- import inferAdaptationType from "./infer_adaptation_type";
25
- import parseRepresentations from "./parse_representations";
26
- import resolveBaseURLs from "./resolve_base_urls";
26
+ const infer_adaptation_type_1 = require("./infer_adaptation_type");
27
+ const parse_representations_1 = require("./parse_representations");
28
+ const resolve_base_urls_1 = require("./resolve_base_urls");
27
29
  /**
28
30
  * Detect if the accessibility given defines an adaptation for the visually
29
31
  * impaired.
@@ -35,9 +37,9 @@ function isVisuallyImpaired(accessibility) {
35
37
  if (accessibility === undefined) {
36
38
  return false;
37
39
  }
38
- var isVisuallyImpairedAudioDvbDash = (accessibility.schemeIdUri === "urn:tva:metadata:cs:AudioPurposeCS:2007" &&
40
+ const isVisuallyImpairedAudioDvbDash = (accessibility.schemeIdUri === "urn:tva:metadata:cs:AudioPurposeCS:2007" &&
39
41
  accessibility.value === "1");
40
- var isVisuallyImpairedDashIf = (accessibility.schemeIdUri === "urn:mpeg:dash:role:2011" &&
42
+ const isVisuallyImpairedDashIf = (accessibility.schemeIdUri === "urn:mpeg:dash:role:2011" &&
41
43
  accessibility.value === "description");
42
44
  return isVisuallyImpairedAudioDvbDash || isVisuallyImpairedDashIf;
43
45
  }
@@ -51,19 +53,15 @@ function isVisuallyImpaired(accessibility) {
51
53
  */
52
54
  function isCaptionning(accessibilities, roles) {
53
55
  if (accessibilities !== undefined) {
54
- var hasDvbClosedCaptionSignaling = accessibilities.some(function (accessibility) {
55
- return (accessibility.schemeIdUri === "urn:tva:metadata:cs:AudioPurposeCS:2007" &&
56
- accessibility.value === "2");
57
- });
56
+ const hasDvbClosedCaptionSignaling = accessibilities.some(accessibility => (accessibility.schemeIdUri === "urn:tva:metadata:cs:AudioPurposeCS:2007" &&
57
+ accessibility.value === "2"));
58
58
  if (hasDvbClosedCaptionSignaling) {
59
59
  return true;
60
60
  }
61
61
  }
62
62
  if (roles !== undefined) {
63
- var hasDashCaptionSinaling = roles.some(function (role) {
64
- return (role.schemeIdUri === "urn:mpeg:dash:role:2011" &&
65
- role.value === "caption");
66
- });
63
+ const hasDashCaptionSinaling = roles.some(role => (role.schemeIdUri === "urn:mpeg:dash:role:2011" &&
64
+ role.value === "caption"));
67
65
  if (hasDashCaptionSinaling) {
68
66
  return true;
69
67
  }
@@ -91,13 +89,13 @@ function hasSignLanguageInterpretation(accessibility) {
91
89
  * @returns {string}
92
90
  */
93
91
  function getAdaptationID(adaptation, infos) {
94
- if (isNonEmptyString(adaptation.attributes.id)) {
92
+ if ((0, is_non_empty_string_1.default)(adaptation.attributes.id)) {
95
93
  return adaptation.attributes.id;
96
94
  }
97
- var isClosedCaption = infos.isClosedCaption, isForcedSubtitle = infos.isForcedSubtitle, isAudioDescription = infos.isAudioDescription, isSignInterpreted = infos.isSignInterpreted, isTrickModeTrack = infos.isTrickModeTrack, type = infos.type;
98
- var idString = type;
99
- if (isNonEmptyString(adaptation.attributes.language)) {
100
- idString += "-".concat(adaptation.attributes.language);
95
+ const { isClosedCaption, isForcedSubtitle, isAudioDescription, isSignInterpreted, isTrickModeTrack, type } = infos;
96
+ let idString = type;
97
+ if ((0, is_non_empty_string_1.default)(adaptation.attributes.language)) {
98
+ idString += `-${adaptation.attributes.language}`;
101
99
  }
102
100
  if (isClosedCaption === true) {
103
101
  idString += "-cc";
@@ -114,17 +112,17 @@ function getAdaptationID(adaptation, infos) {
114
112
  if (isTrickModeTrack) {
115
113
  idString += "-trickMode";
116
114
  }
117
- if (isNonEmptyString(adaptation.attributes.contentType)) {
118
- idString += "-".concat(adaptation.attributes.contentType);
115
+ if ((0, is_non_empty_string_1.default)(adaptation.attributes.contentType)) {
116
+ idString += `-${adaptation.attributes.contentType}`;
119
117
  }
120
- if (isNonEmptyString(adaptation.attributes.codecs)) {
121
- idString += "-".concat(adaptation.attributes.codecs);
118
+ if ((0, is_non_empty_string_1.default)(adaptation.attributes.codecs)) {
119
+ idString += `-${adaptation.attributes.codecs}`;
122
120
  }
123
- if (isNonEmptyString(adaptation.attributes.mimeType)) {
124
- idString += "-".concat(adaptation.attributes.mimeType);
121
+ if ((0, is_non_empty_string_1.default)(adaptation.attributes.mimeType)) {
122
+ idString += `-${adaptation.attributes.mimeType}`;
125
123
  }
126
124
  if (adaptation.attributes.frameRate !== undefined) {
127
- idString += "-".concat(String(adaptation.attributes.frameRate));
125
+ idString += `-${String(adaptation.attributes.frameRate)}`;
128
126
  }
129
127
  return idString;
130
128
  }
@@ -135,15 +133,14 @@ function getAdaptationID(adaptation, infos) {
135
133
  */
136
134
  function getAdaptationSetSwitchingIDs(adaptation) {
137
135
  if (adaptation.children.supplementalProperties != null) {
138
- var supplementalProperties = adaptation.children.supplementalProperties;
139
- for (var _i = 0, supplementalProperties_1 = supplementalProperties; _i < supplementalProperties_1.length; _i++) {
140
- var supplementalProperty = supplementalProperties_1[_i];
136
+ const { supplementalProperties } = adaptation.children;
137
+ for (const supplementalProperty of supplementalProperties) {
141
138
  if (supplementalProperty.schemeIdUri ===
142
139
  "urn:mpeg:dash:adaptation-set-switching:2016" &&
143
140
  supplementalProperty.value != null) {
144
141
  return supplementalProperty.value.split(",")
145
- .map(function (id) { return id.trim(); })
146
- .filter(function (id) { return id; });
142
+ .map(id => id.trim())
143
+ .filter(id => id);
147
144
  }
148
145
  }
149
146
  }
@@ -158,30 +155,30 @@ function getAdaptationSetSwitchingIDs(adaptation) {
158
155
  * @param {Object} context
159
156
  * @returns {Array.<Object>}
160
157
  */
161
- export default function parseAdaptationSets(adaptationsIR, context) {
158
+ function parseAdaptationSets(adaptationsIR, context) {
162
159
  var _a, _b, _c, _d, _e, _f;
163
- var parsedAdaptations = { video: [],
160
+ const parsedAdaptations = { video: [],
164
161
  audio: [],
165
162
  text: [] };
166
- var trickModeAdaptations = [];
167
- var adaptationSwitchingInfos = {};
168
- var parsedAdaptationsIDs = [];
169
- for (var adaptationIdx = 0; adaptationIdx < adaptationsIR.length; adaptationIdx++) {
170
- var adaptation = adaptationsIR[adaptationIdx];
171
- var adaptationChildren = adaptation.children;
172
- var essentialProperties = adaptationChildren.essentialProperties, roles = adaptationChildren.roles, label = adaptationChildren.label;
173
- var isMainAdaptation = Array.isArray(roles) &&
174
- roles.some(function (role) { return role.value === "main"; }) &&
175
- roles.some(function (role) { return role.schemeIdUri === "urn:mpeg:dash:role:2011"; });
176
- var representationsIR = adaptation.children.representations;
177
- var availabilityTimeComplete = (_a = adaptation.attributes.availabilityTimeComplete) !== null && _a !== void 0 ? _a : context.availabilityTimeComplete;
178
- var availabilityTimeOffset = ((_b = adaptation.attributes.availabilityTimeOffset) !== null && _b !== void 0 ? _b : 0) +
163
+ const trickModeAdaptations = [];
164
+ const adaptationSwitchingInfos = {};
165
+ const parsedAdaptationsIDs = [];
166
+ for (let adaptationIdx = 0; adaptationIdx < adaptationsIR.length; adaptationIdx++) {
167
+ const adaptation = adaptationsIR[adaptationIdx];
168
+ const adaptationChildren = adaptation.children;
169
+ const { essentialProperties, roles, label } = adaptationChildren;
170
+ const isMainAdaptation = Array.isArray(roles) &&
171
+ roles.some((role) => role.value === "main") &&
172
+ roles.some((role) => role.schemeIdUri === "urn:mpeg:dash:role:2011");
173
+ const representationsIR = adaptation.children.representations;
174
+ const availabilityTimeComplete = (_a = adaptation.attributes.availabilityTimeComplete) !== null && _a !== void 0 ? _a : context.availabilityTimeComplete;
175
+ const availabilityTimeOffset = ((_b = adaptation.attributes.availabilityTimeOffset) !== null && _b !== void 0 ? _b : 0) +
179
176
  context.availabilityTimeOffset;
180
- var adaptationMimeType = adaptation.attributes.mimeType;
181
- var adaptationCodecs = adaptation.attributes.codecs;
182
- var type = inferAdaptationType(representationsIR, isNonEmptyString(adaptationMimeType) ?
177
+ const adaptationMimeType = adaptation.attributes.mimeType;
178
+ const adaptationCodecs = adaptation.attributes.codecs;
179
+ const type = (0, infer_adaptation_type_1.default)(representationsIR, (0, is_non_empty_string_1.default)(adaptationMimeType) ?
183
180
  adaptationMimeType :
184
- null, isNonEmptyString(adaptationCodecs) ?
181
+ null, (0, is_non_empty_string_1.default)(adaptationCodecs) ?
185
182
  adaptationCodecs :
186
183
  null, adaptationChildren.roles != null ?
187
184
  adaptationChildren.roles :
@@ -189,82 +186,90 @@ export default function parseAdaptationSets(adaptationsIR, context) {
189
186
  if (type === undefined) {
190
187
  continue;
191
188
  }
192
- var priority = (_c = adaptation.attributes.selectionPriority) !== null && _c !== void 0 ? _c : 1;
193
- var originalID = adaptation.attributes.id;
194
- var adaptationSetSwitchingIDs = getAdaptationSetSwitchingIDs(adaptation);
195
- var parentSegmentTemplates = [];
189
+ const priority = (_c = adaptation.attributes.selectionPriority) !== null && _c !== void 0 ? _c : 1;
190
+ const originalID = adaptation.attributes.id;
191
+ const adaptationSetSwitchingIDs = getAdaptationSetSwitchingIDs(adaptation);
192
+ const parentSegmentTemplates = [];
196
193
  if (context.segmentTemplate !== undefined) {
197
194
  parentSegmentTemplates.push(context.segmentTemplate);
198
195
  }
199
196
  if (adaptation.children.segmentTemplate !== undefined) {
200
197
  parentSegmentTemplates.push(adaptation.children.segmentTemplate);
201
198
  }
202
- var reprCtxt = {
203
- availabilityTimeComplete: availabilityTimeComplete,
204
- availabilityTimeOffset: availabilityTimeOffset,
205
- baseURLs: resolveBaseURLs(context.baseURLs, adaptationChildren.baseURLs),
199
+ const reprCtxt = {
200
+ availabilityTimeComplete,
201
+ availabilityTimeOffset,
202
+ baseURLs: (0, resolve_base_urls_1.default)(context.baseURLs, adaptationChildren.baseURLs),
206
203
  manifestBoundsCalculator: context.manifestBoundsCalculator,
207
204
  end: context.end,
208
205
  isDynamic: context.isDynamic,
209
206
  isLastPeriod: context.isLastPeriod,
210
207
  manifestProfiles: context.manifestProfiles,
211
- parentSegmentTemplates: parentSegmentTemplates,
208
+ parentSegmentTemplates,
212
209
  receivedTime: context.receivedTime,
213
210
  start: context.start,
214
211
  timeShiftBufferDepth: context.timeShiftBufferDepth,
215
212
  unsafelyBaseOnPreviousAdaptation: null,
216
213
  };
217
- var trickModeProperty = Array.isArray(essentialProperties) ?
218
- arrayFind(essentialProperties, function (scheme) {
214
+ const trickModeProperty = Array.isArray(essentialProperties) ?
215
+ (0, array_find_1.default)(essentialProperties, (scheme) => {
219
216
  return scheme.schemeIdUri === "http://dashif.org/guidelines/trickmode";
220
217
  }) : undefined;
221
- var trickModeAttachedAdaptationIds = (_d = trickModeProperty === null || trickModeProperty === void 0 ? void 0 : trickModeProperty.value) === null || _d === void 0 ? void 0 : _d.split(" ");
222
- var isTrickModeTrack = trickModeAttachedAdaptationIds !== undefined;
223
- var accessibilities = adaptationChildren.accessibilities;
224
- var isDub = void 0;
218
+ const trickModeAttachedAdaptationIds = (_d = trickModeProperty === null || trickModeProperty === void 0 ? void 0 : trickModeProperty.value) === null || _d === void 0 ? void 0 : _d.split(" ");
219
+ const isTrickModeTrack = trickModeAttachedAdaptationIds !== undefined;
220
+ const { accessibilities } = adaptationChildren;
221
+ let isDub;
225
222
  if (roles !== undefined &&
226
- roles.some(function (role) { return role.value === "dub"; })) {
223
+ roles.some((role) => role.value === "dub")) {
227
224
  isDub = true;
228
225
  }
229
- var isClosedCaption = void 0;
226
+ let isClosedCaption;
230
227
  if (type !== "text") {
231
228
  isClosedCaption = false;
232
229
  }
233
230
  else {
234
231
  isClosedCaption = isCaptionning(accessibilities, roles);
235
232
  }
236
- var isForcedSubtitle = void 0;
233
+ let isForcedSubtitle;
237
234
  if (type === "text" &&
238
235
  roles !== undefined &&
239
- roles.some(function (role) { return role.value === "forced-subtitle" ||
240
- role.value === "forced_subtitle"; })) {
236
+ roles.some((role) => role.value === "forced-subtitle" ||
237
+ role.value === "forced_subtitle")) {
241
238
  isForcedSubtitle = true;
242
239
  }
243
- var isAudioDescription = void 0;
240
+ let isAudioDescription;
244
241
  if (type !== "audio") {
245
242
  isAudioDescription = false;
246
243
  }
247
244
  else if (accessibilities !== undefined) {
248
245
  isAudioDescription = accessibilities.some(isVisuallyImpaired);
249
246
  }
250
- var isSignInterpreted = void 0;
247
+ let isSignInterpreted;
251
248
  if (type !== "video") {
252
249
  isSignInterpreted = false;
253
250
  }
254
251
  else if (accessibilities !== undefined) {
255
252
  isSignInterpreted = accessibilities.some(hasSignLanguageInterpretation);
256
253
  }
257
- var adaptationID = getAdaptationID(adaptation, { isAudioDescription: isAudioDescription, isForcedSubtitle: isForcedSubtitle, isClosedCaption: isClosedCaption, isSignInterpreted: isSignInterpreted, isTrickModeTrack: isTrickModeTrack, type: type });
254
+ let adaptationID = getAdaptationID(adaptation, { isAudioDescription,
255
+ isForcedSubtitle,
256
+ isClosedCaption,
257
+ isSignInterpreted,
258
+ isTrickModeTrack,
259
+ type });
258
260
  // Avoid duplicate IDs
259
- while (arrayIncludes(parsedAdaptationsIDs, adaptationID)) {
261
+ while ((0, array_includes_1.default)(parsedAdaptationsIDs, adaptationID)) {
260
262
  adaptationID += "-dup";
261
263
  }
262
- var newID = adaptationID;
264
+ const newID = adaptationID;
263
265
  parsedAdaptationsIDs.push(adaptationID);
264
266
  reprCtxt.unsafelyBaseOnPreviousAdaptation = (_f = (_e = context
265
267
  .unsafelyBaseOnPreviousPeriod) === null || _e === void 0 ? void 0 : _e.getAdaptation(adaptationID)) !== null && _f !== void 0 ? _f : null;
266
- var representations = parseRepresentations(representationsIR, adaptation, reprCtxt);
267
- var parsedAdaptationSet = { id: adaptationID, representations: representations, type: type, isTrickModeTrack: isTrickModeTrack };
268
+ const representations = (0, parse_representations_1.default)(representationsIR, adaptation, reprCtxt);
269
+ const parsedAdaptationSet = { id: adaptationID,
270
+ representations,
271
+ type,
272
+ isTrickModeTrack };
268
273
  if (adaptation.attributes.language != null) {
269
274
  parsedAdaptationSet.language = adaptation.attributes.language;
270
275
  }
@@ -287,69 +292,64 @@ export default function parseAdaptationSets(adaptationsIR, context) {
287
292
  parsedAdaptationSet.label = label;
288
293
  }
289
294
  if (trickModeAttachedAdaptationIds !== undefined) {
290
- trickModeAdaptations.push({ adaptation: parsedAdaptationSet, trickModeAttachedAdaptationIds: trickModeAttachedAdaptationIds });
295
+ trickModeAdaptations.push({ adaptation: parsedAdaptationSet,
296
+ trickModeAttachedAdaptationIds });
291
297
  }
292
298
  else {
293
299
  // look if we have to merge this into another Adaptation
294
- var mergedIntoIdx = -1;
295
- var _loop_1 = function (id) {
296
- var _g;
297
- var switchingInfos = adaptationSwitchingInfos[id];
300
+ let mergedIntoIdx = -1;
301
+ for (const id of adaptationSetSwitchingIDs) {
302
+ const switchingInfos = adaptationSwitchingInfos[id];
298
303
  if (switchingInfos !== undefined &&
299
304
  switchingInfos.newID !== newID &&
300
- arrayIncludes(switchingInfos.adaptationSetSwitchingIDs, originalID)) {
301
- mergedIntoIdx = arrayFindIndex(parsedAdaptations[type], function (a) { return a[0].id === id; });
302
- var mergedInto = parsedAdaptations[type][mergedIntoIdx];
305
+ (0, array_includes_1.default)(switchingInfos.adaptationSetSwitchingIDs, originalID)) {
306
+ mergedIntoIdx = (0, array_find_index_1.default)(parsedAdaptations[type], (a) => a[0].id === id);
307
+ const mergedInto = parsedAdaptations[type][mergedIntoIdx];
303
308
  if (mergedInto !== undefined &&
304
309
  mergedInto[0].audioDescription ===
305
310
  parsedAdaptationSet.audioDescription &&
306
311
  mergedInto[0].closedCaption ===
307
312
  parsedAdaptationSet.closedCaption &&
308
313
  mergedInto[0].language === parsedAdaptationSet.language) {
309
- log.info("DASH Parser: merging \"switchable\" AdaptationSets", originalID, id);
310
- (_g = mergedInto[0].representations).push.apply(_g, parsedAdaptationSet.representations);
314
+ log_1.default.info("DASH Parser: merging \"switchable\" AdaptationSets", originalID, id);
315
+ mergedInto[0].representations.push(...parsedAdaptationSet.representations);
311
316
  mergedInto[1] = {
312
317
  priority: Math.max(priority, mergedInto[1].priority),
313
318
  isMainAdaptation: isMainAdaptation ||
314
319
  mergedInto[1].isMainAdaptation,
315
320
  indexInMpd: Math.min(adaptationIdx, mergedInto[1].indexInMpd),
316
321
  };
317
- return "break";
322
+ break;
318
323
  }
319
324
  }
320
- };
321
- for (var _i = 0, adaptationSetSwitchingIDs_1 = adaptationSetSwitchingIDs; _i < adaptationSetSwitchingIDs_1.length; _i++) {
322
- var id = adaptationSetSwitchingIDs_1[_i];
323
- var state_1 = _loop_1(id);
324
- if (state_1 === "break")
325
- break;
326
325
  }
327
326
  if (mergedIntoIdx < 0) {
328
327
  parsedAdaptations[type].push([parsedAdaptationSet,
329
- { priority: priority, isMainAdaptation: isMainAdaptation, indexInMpd: adaptationIdx }]);
328
+ { priority,
329
+ isMainAdaptation,
330
+ indexInMpd: adaptationIdx }]);
330
331
  }
331
332
  }
332
333
  if (originalID != null && adaptationSwitchingInfos[originalID] == null) {
333
- adaptationSwitchingInfos[originalID] = { newID: newID, adaptationSetSwitchingIDs: adaptationSetSwitchingIDs };
334
+ adaptationSwitchingInfos[originalID] = { newID,
335
+ adaptationSetSwitchingIDs };
334
336
  }
335
337
  }
336
- var adaptationsPerType = SUPPORTED_ADAPTATIONS_TYPE
337
- .reduce(function (acc, adaptationType) {
338
- var adaptationsParsedForType = parsedAdaptations[adaptationType];
338
+ const adaptationsPerType = manifest_1.SUPPORTED_ADAPTATIONS_TYPE
339
+ .reduce((acc, adaptationType) => {
340
+ const adaptationsParsedForType = parsedAdaptations[adaptationType];
339
341
  if (adaptationsParsedForType.length > 0) {
340
342
  adaptationsParsedForType.sort(compareAdaptations);
341
343
  acc[adaptationType] = adaptationsParsedForType
342
- .map(function (_a) {
343
- var parsedAdaptation = _a[0];
344
- return parsedAdaptation;
345
- });
344
+ .map(([parsedAdaptation]) => parsedAdaptation);
346
345
  }
347
346
  return acc;
348
347
  }, {});
349
348
  parsedAdaptations.video.sort(compareAdaptations);
350
- attachTrickModeTrack(adaptationsPerType, trickModeAdaptations);
349
+ (0, attach_trickmode_track_1.default)(adaptationsPerType, trickModeAdaptations);
351
350
  return adaptationsPerType;
352
351
  }
352
+ exports.default = parseAdaptationSets;
353
353
  /**
354
354
  * Compare groups of parsed AdaptationSet, alongside some ordering metadata,
355
355
  * allowing to easily sort them through JavaScript's `Array.prototype.sort`
@@ -359,7 +359,7 @@ export default function parseAdaptationSets(adaptationsIR, context) {
359
359
  * @returns {number}
360
360
  */
361
361
  function compareAdaptations(a, b) {
362
- var priorityDiff = b[1].priority - a[1].priority;
362
+ const priorityDiff = b[1].priority - a[1].priority;
363
363
  if (priorityDiff !== 0) {
364
364
  return priorityDiff;
365
365
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,12 +14,13 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * Returns the base time of the Manifest.
18
20
  * @param {Object} rootAttributes
19
21
  * @param {number|undefined}
20
22
  */
21
- export default function parseAvailabilityStartTime(rootAttributes, referenceDateTime) {
23
+ function parseAvailabilityStartTime(rootAttributes, referenceDateTime) {
22
24
  if (rootAttributes.type !== "dynamic") {
23
25
  return 0;
24
26
  }
@@ -27,3 +29,4 @@ export default function parseAvailabilityStartTime(rootAttributes, referenceDate
27
29
  }
28
30
  return rootAttributes.availabilityStartTime;
29
31
  }
32
+ exports.default = parseAvailabilityStartTime;