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,8 +14,9 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { be4toi } from "../../utils/byte_parsing";
17
- import findCompleteBox from "../utils/find_complete_box";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const byte_parsing_1 = require("../../utils/byte_parsing");
19
+ const find_complete_box_1 = require("../utils/find_complete_box");
18
20
  /**
19
21
  * Take a chunk of ISOBMFF data and extract complete `moof`+`mdat` subsegments
20
22
  * which are ready to be decoded.
@@ -23,37 +25,38 @@ import findCompleteBox from "../utils/find_complete_box";
23
25
  * @param {Uint8Array} buffer
24
26
  * @returns {Array}
25
27
  */
26
- export default function extractCompleteChunks(buffer) {
27
- var _position = 0;
28
- var chunks = [];
28
+ function extractCompleteChunks(buffer) {
29
+ let _position = 0;
30
+ const chunks = [];
29
31
  while (_position < buffer.length) {
30
- var currentBuffer = buffer.subarray(_position, Infinity);
31
- var moofIndex = findCompleteBox(currentBuffer, 0x6D6F6F66 /* moof */);
32
+ const currentBuffer = buffer.subarray(_position, Infinity);
33
+ const moofIndex = (0, find_complete_box_1.default)(currentBuffer, 0x6D6F6F66 /* moof */);
32
34
  if (moofIndex < 0) {
33
35
  // no moof, not a segment.
34
36
  return [chunks, currentBuffer];
35
37
  }
36
- var moofLen = be4toi(buffer, moofIndex + _position);
37
- var moofEnd = _position + moofIndex + moofLen;
38
+ const moofLen = (0, byte_parsing_1.be4toi)(buffer, moofIndex + _position);
39
+ const moofEnd = _position + moofIndex + moofLen;
38
40
  if (moofEnd > buffer.length) {
39
41
  // not a complete moof segment
40
42
  return [chunks, currentBuffer];
41
43
  }
42
- var mdatIndex = findCompleteBox(currentBuffer, 0x6D646174 /* mdat */);
44
+ const mdatIndex = (0, find_complete_box_1.default)(currentBuffer, 0x6D646174 /* mdat */);
43
45
  if (mdatIndex < 0) {
44
46
  // no mdat, not a segment.
45
47
  return [chunks, currentBuffer];
46
48
  }
47
- var mdatLen = be4toi(buffer, mdatIndex + _position);
48
- var mdatEnd = _position + mdatIndex + mdatLen;
49
+ const mdatLen = (0, byte_parsing_1.be4toi)(buffer, mdatIndex + _position);
50
+ const mdatEnd = _position + mdatIndex + mdatLen;
49
51
  if (mdatEnd > buffer.length) {
50
52
  // not a complete mdat segment
51
53
  return [chunks, currentBuffer];
52
54
  }
53
- var maxEnd = Math.max(moofEnd, mdatEnd);
54
- var chunk = buffer.subarray(_position, maxEnd);
55
+ const maxEnd = Math.max(moofEnd, mdatEnd);
56
+ const chunk = buffer.subarray(_position, maxEnd);
55
57
  chunks.push(chunk);
56
58
  _position = maxEnd;
57
59
  }
58
60
  return [chunks, null];
59
61
  }
62
+ exports.default = extractCompleteChunks;
@@ -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 { utf8ToStr } from "../../utils/string_parsing";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const string_parsing_1 = require("../../utils/string_parsing");
17
19
  /**
18
20
  * From an array of EMSGs with manifest validity scheme id,
19
21
  * tells if the manifest needs to be refreshed.
@@ -26,13 +28,13 @@ function manifestNeedsToBeRefreshed(emsgs, manifestPublishTime) {
26
28
  if (emsgs.length <= 0) {
27
29
  return false;
28
30
  }
29
- var len = emsgs.length;
30
- for (var i = 0; i < len; i++) {
31
- var manifestRefreshEventFromEMSGs = emsgs[i];
32
- var currentManifestPublishTime = manifestPublishTime;
33
- var messageData = manifestRefreshEventFromEMSGs.messageData;
34
- var strPublishTime = utf8ToStr(messageData);
35
- var eventManifestPublishTime = Date.parse(strPublishTime);
31
+ const len = emsgs.length;
32
+ for (let i = 0; i < len; i++) {
33
+ const manifestRefreshEventFromEMSGs = emsgs[i];
34
+ const currentManifestPublishTime = manifestPublishTime;
35
+ const { messageData } = manifestRefreshEventFromEMSGs;
36
+ const strPublishTime = (0, string_parsing_1.utf8ToStr)(messageData);
37
+ const eventManifestPublishTime = Date.parse(strPublishTime);
36
38
  if (currentManifestPublishTime === undefined ||
37
39
  eventManifestPublishTime === undefined ||
38
40
  isNaN(eventManifestPublishTime) ||
@@ -58,12 +60,12 @@ function manifestNeedsToBeRefreshed(emsgs, manifestPublishTime) {
58
60
  * @param {undefined | number} manifestPublishTime
59
61
  * @returns {Object}
60
62
  */
61
- export default function getEventsOutOfEMSGs(parsedEMSGs, manifestPublishTime) {
63
+ function getEventsOutOfEMSGs(parsedEMSGs, manifestPublishTime) {
62
64
  if (parsedEMSGs.length === 0) {
63
65
  return undefined;
64
66
  }
65
- var _a = parsedEMSGs
66
- .reduce(function (acc, val) {
67
+ const { manifestRefreshEventsFromEMSGs, EMSGs } = parsedEMSGs
68
+ .reduce((acc, val) => {
67
69
  // Scheme that signals manifest update
68
70
  if (val.schemeIdUri === "urn:mpeg:dash:event:2012" &&
69
71
  // TODO support value 2 and 3
@@ -81,12 +83,13 @@ export default function getEventsOutOfEMSGs(parsedEMSGs, manifestPublishTime) {
81
83
  }
82
84
  return acc;
83
85
  }, { manifestRefreshEventsFromEMSGs: undefined,
84
- EMSGs: undefined }), manifestRefreshEventsFromEMSGs = _a.manifestRefreshEventsFromEMSGs, EMSGs = _a.EMSGs;
85
- var inbandEvents = EMSGs === null || EMSGs === void 0 ? void 0 : EMSGs.map(function (evt) { return ({ type: "emsg",
86
- value: evt }); });
87
- var needsManifestRefresh = (manifestPublishTime === undefined ||
86
+ EMSGs: undefined });
87
+ const inbandEvents = EMSGs === null || EMSGs === void 0 ? void 0 : EMSGs.map((evt) => ({ type: "emsg",
88
+ value: evt }));
89
+ const needsManifestRefresh = (manifestPublishTime === undefined ||
88
90
  manifestRefreshEventsFromEMSGs === undefined) ?
89
91
  false :
90
92
  manifestNeedsToBeRefreshed(manifestRefreshEventsFromEMSGs, manifestPublishTime);
91
- return { inbandEvents: inbandEvents, needsManifestRefresh: needsManifestRefresh };
93
+ return { inbandEvents, needsManifestRefresh };
92
94
  }
95
+ exports.default = getEventsOutOfEMSGs;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
16
18
  /**
17
19
  * /!\ This file is feature-switchable.
18
20
  * It always should be imported through the `features` object.
19
21
  */
20
- import DASHPipelines from "./pipelines";
21
- export default DASHPipelines;
22
+ const pipelines_1 = require("./pipelines");
23
+ exports.default = pipelines_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,9 +14,10 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { concat } from "../../utils/byte_parsing";
17
- import request from "../../utils/request";
18
- import byteRange from "../utils/byte_range";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const byte_parsing_1 = require("../../utils/byte_parsing");
19
+ const request_1 = require("../../utils/request");
20
+ const byte_range_1 = require("../utils/byte_range");
19
21
  /**
20
22
  * Perform a request for an initialization segment, agnostic to the container.
21
23
  * @param {string} url
@@ -25,44 +27,62 @@ import byteRange from "../utils/byte_range";
25
27
  * @param {Object} callbacks
26
28
  * @returns {Promise}
27
29
  */
28
- export default function initSegmentLoader(url, segment, options, cancelSignal, callbacks) {
30
+ function initSegmentLoader(url, segment, options, cancelSignal, callbacks) {
29
31
  if (segment.range === undefined) {
30
- return request({ url: url, responseType: "arraybuffer",
31
- timeout: options.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress })
32
- .then(function (data) { return ({ resultType: "segment-loaded",
33
- resultData: data }); });
32
+ return (0, request_1.default)({ url,
33
+ responseType: "arraybuffer",
34
+ timeout: options.timeout,
35
+ cancelSignal,
36
+ onProgress: callbacks.onProgress })
37
+ .then(data => ({ resultType: "segment-loaded",
38
+ resultData: data }));
34
39
  }
35
40
  if (segment.indexRange === undefined) {
36
- return request({ url: url, headers: { Range: byteRange(segment.range) },
41
+ return (0, request_1.default)({ url,
42
+ headers: { Range: (0, byte_range_1.default)(segment.range) },
37
43
  responseType: "arraybuffer",
38
- timeout: options.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress })
39
- .then(function (data) { return ({ resultType: "segment-loaded",
40
- resultData: data }); });
44
+ timeout: options.timeout,
45
+ cancelSignal,
46
+ onProgress: callbacks.onProgress })
47
+ .then(data => ({ resultType: "segment-loaded",
48
+ resultData: data }));
41
49
  }
42
50
  // range and indexRange are contiguous (99% of the cases)
43
51
  if (segment.range[1] + 1 === segment.indexRange[0]) {
44
- return request({ url: url, headers: { Range: byteRange([segment.range[0],
52
+ return (0, request_1.default)({ url,
53
+ headers: { Range: (0, byte_range_1.default)([segment.range[0],
45
54
  segment.indexRange[1]]) },
46
55
  responseType: "arraybuffer",
47
- timeout: options.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress })
48
- .then(function (data) { return ({ resultType: "segment-loaded",
49
- resultData: data }); });
56
+ timeout: options.timeout,
57
+ cancelSignal,
58
+ onProgress: callbacks.onProgress })
59
+ .then(data => ({ resultType: "segment-loaded",
60
+ resultData: data }));
50
61
  }
51
- var rangeRequest$ = request({ url: url, headers: { Range: byteRange(segment.range) },
62
+ const rangeRequest$ = (0, request_1.default)({ url,
63
+ headers: { Range: (0, byte_range_1.default)(segment.range) },
52
64
  responseType: "arraybuffer",
53
- timeout: options.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress });
54
- var indexRequest$ = request({ url: url, headers: { Range: byteRange(segment.indexRange) },
65
+ timeout: options.timeout,
66
+ cancelSignal,
67
+ onProgress: callbacks.onProgress });
68
+ const indexRequest$ = (0, request_1.default)({ url,
69
+ headers: { Range: (0, byte_range_1.default)(segment.indexRange) },
55
70
  responseType: "arraybuffer",
56
- timeout: options.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress });
71
+ timeout: options.timeout,
72
+ cancelSignal,
73
+ onProgress: callbacks.onProgress });
57
74
  return Promise.all([rangeRequest$, indexRequest$])
58
- .then(function (_a) {
59
- var initData = _a[0], indexData = _a[1];
60
- var data = concat(new Uint8Array(initData.responseData), new Uint8Array(indexData.responseData));
61
- var sendingTime = Math.min(initData.sendingTime, indexData.sendingTime);
62
- var receivedTime = Math.max(initData.receivedTime, indexData.receivedTime);
75
+ .then(([initData, indexData]) => {
76
+ const data = (0, byte_parsing_1.concat)(new Uint8Array(initData.responseData), new Uint8Array(indexData.responseData));
77
+ const sendingTime = Math.min(initData.sendingTime, indexData.sendingTime);
78
+ const receivedTime = Math.max(initData.receivedTime, indexData.receivedTime);
63
79
  return { resultType: "segment-loaded",
64
- resultData: { url: url, responseData: data,
80
+ resultData: { url,
81
+ responseData: data,
65
82
  size: initData.size + indexData.size,
66
- requestDuration: receivedTime - sendingTime, sendingTime: sendingTime, receivedTime: receivedTime } };
83
+ requestDuration: receivedTime - sendingTime,
84
+ sendingTime,
85
+ receivedTime } };
67
86
  });
68
87
  }
88
+ exports.default = initSegmentLoader;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,10 +14,11 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { concat } from "../../utils/byte_parsing";
17
- import fetchRequest from "../../utils/request/fetch";
18
- import byteRange from "../utils/byte_range";
19
- import extractCompleteChunks from "./extract_complete_chunks";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const byte_parsing_1 = require("../../utils/byte_parsing");
19
+ const fetch_1 = require("../../utils/request/fetch");
20
+ const byte_range_1 = require("../utils/byte_range");
21
+ const extract_complete_chunks_1 = require("./extract_complete_chunks");
20
22
  /**
21
23
  * Load segments through a "chunk" mode (decodable chunk by decodable chunk).
22
24
  *
@@ -29,23 +31,23 @@ import extractCompleteChunks from "./extract_complete_chunks";
29
31
  * @param {CancellationSignal} cancelSignal
30
32
  * @returns {Promise}
31
33
  */
32
- export default function lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal) {
33
- var segment = content.segment;
34
- var headers = segment.range !== undefined ? { Range: byteRange(segment.range) } :
34
+ function lowLatencySegmentLoader(url, content, options, callbacks, cancelSignal) {
35
+ const { segment } = content;
36
+ const headers = segment.range !== undefined ? { Range: (0, byte_range_1.default)(segment.range) } :
35
37
  undefined;
36
- var partialChunk = null;
38
+ let partialChunk = null;
37
39
  /**
38
40
  * Called each time `fetch` has new data available.
39
41
  * @param {Object} info
40
42
  */
41
43
  function onData(info) {
42
- var chunk = new Uint8Array(info.chunk);
43
- var concatenated = partialChunk !== null ? concat(partialChunk, chunk) :
44
+ const chunk = new Uint8Array(info.chunk);
45
+ const concatenated = partialChunk !== null ? (0, byte_parsing_1.concat)(partialChunk, chunk) :
44
46
  chunk;
45
- var res = extractCompleteChunks(concatenated);
46
- var completeChunks = res[0];
47
+ const res = (0, extract_complete_chunks_1.default)(concatenated);
48
+ const completeChunks = res[0];
47
49
  partialChunk = res[1];
48
- for (var i = 0; i < completeChunks.length; i++) {
50
+ for (let i = 0; i < completeChunks.length; i++) {
49
51
  callbacks.onNewChunk(completeChunks[i]);
50
52
  if (cancelSignal.isCancelled()) {
51
53
  return;
@@ -58,7 +60,12 @@ export default function lowLatencySegmentLoader(url, content, options, callbacks
58
60
  return;
59
61
  }
60
62
  }
61
- return fetchRequest({ url: url, headers: headers, onData: onData, timeout: options.timeout, cancelSignal: cancelSignal })
62
- .then(function (res) { return ({ resultType: "chunk-complete",
63
- resultData: res }); });
63
+ return (0, fetch_1.default)({ url,
64
+ headers,
65
+ onData,
66
+ timeout: options.timeout,
67
+ cancelSignal })
68
+ .then((res) => ({ resultType: "chunk-complete",
69
+ resultData: res }));
64
70
  }
71
+ exports.default = lowLatencySegmentLoader;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,60 +14,64 @@
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
- import { formatError } from "../../errors";
18
- import features from "../../features";
19
- import log from "../../log";
20
- import Manifest from "../../manifest";
21
- import objectAssign from "../../utils/object_assign";
22
- import request from "../../utils/request";
23
- import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
24
- export default function generateManifestParser(options) {
25
- var referenceDateTime = options.referenceDateTime;
26
- var serverTimeOffset = options.serverSyncInfos !== undefined ?
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const config_1 = require("../../config");
19
+ const errors_1 = require("../../errors");
20
+ const features_1 = require("../../features");
21
+ const log_1 = require("../../log");
22
+ const manifest_1 = require("../../manifest");
23
+ const object_assign_1 = require("../../utils/object_assign");
24
+ const request_1 = require("../../utils/request");
25
+ const string_parsing_1 = require("../../utils/string_parsing");
26
+ function generateManifestParser(options) {
27
+ const { referenceDateTime } = options;
28
+ const serverTimeOffset = options.serverSyncInfos !== undefined ?
27
29
  options.serverSyncInfos.serverTimestamp - options.serverSyncInfos.clientTime :
28
30
  undefined;
29
31
  return function manifestParser(manifestData, parserOptions, onWarnings, cancelSignal, scheduleRequest) {
30
32
  var _a;
31
- var responseData = manifestData.responseData;
32
- var argClockOffset = parserOptions.externalClockOffset;
33
- var url = (_a = manifestData.url) !== null && _a !== void 0 ? _a : parserOptions.originalUrl;
34
- var externalClockOffset = serverTimeOffset !== null && serverTimeOffset !== void 0 ? serverTimeOffset : argClockOffset;
35
- var unsafelyBaseOnPreviousManifest = parserOptions.unsafeMode ?
33
+ const { responseData } = manifestData;
34
+ const argClockOffset = parserOptions.externalClockOffset;
35
+ const url = (_a = manifestData.url) !== null && _a !== void 0 ? _a : parserOptions.originalUrl;
36
+ const externalClockOffset = serverTimeOffset !== null && serverTimeOffset !== void 0 ? serverTimeOffset : argClockOffset;
37
+ const unsafelyBaseOnPreviousManifest = parserOptions.unsafeMode ?
36
38
  parserOptions.previousManifest :
37
39
  null;
38
- var dashParserOpts = { unsafelyBaseOnPreviousManifest: unsafelyBaseOnPreviousManifest, url: url, referenceDateTime: referenceDateTime, externalClockOffset: externalClockOffset };
39
- var parsers = features.dashParsers;
40
+ const dashParserOpts = { unsafelyBaseOnPreviousManifest,
41
+ url,
42
+ referenceDateTime,
43
+ externalClockOffset };
44
+ const parsers = features_1.default.dashParsers;
40
45
  if (parsers.wasm === null ||
41
46
  parsers.wasm.status === "uninitialized" ||
42
47
  parsers.wasm.status === "failure") {
43
- log.debug("DASH: WASM MPD Parser not initialized. Running JS one.");
48
+ log_1.default.debug("DASH: WASM MPD Parser not initialized. Running JS one.");
44
49
  return runDefaultJsParser();
45
50
  }
46
51
  else {
47
- var manifestAB_1 = getManifestAsArrayBuffer(responseData);
48
- if (!doesXmlSeemsUtf8Encoded(manifestAB_1)) {
49
- log.info("DASH: MPD doesn't seem to be UTF-8-encoded. " +
52
+ const manifestAB = getManifestAsArrayBuffer(responseData);
53
+ if (!doesXmlSeemsUtf8Encoded(manifestAB)) {
54
+ log_1.default.info("DASH: MPD doesn't seem to be UTF-8-encoded. " +
50
55
  "Running JS parser instead of the WASM one.");
51
56
  return runDefaultJsParser();
52
57
  }
53
58
  if (parsers.wasm.status === "initialized") {
54
- log.debug("DASH: Running WASM MPD Parser.");
55
- var parsed = parsers.wasm.runWasmParser(manifestAB_1, dashParserOpts);
59
+ log_1.default.debug("DASH: Running WASM MPD Parser.");
60
+ const parsed = parsers.wasm.runWasmParser(manifestAB, dashParserOpts);
56
61
  return processMpdParserResponse(parsed);
57
62
  }
58
63
  else {
59
- log.debug("DASH: Awaiting WASM initialization before parsing the MPD.");
60
- var initProm = parsers.wasm.waitForInitialization()
61
- .catch(function () { });
62
- return initProm.then(function () {
64
+ log_1.default.debug("DASH: Awaiting WASM initialization before parsing the MPD.");
65
+ const initProm = parsers.wasm.waitForInitialization()
66
+ .catch(() => { });
67
+ return initProm.then(() => {
63
68
  if (parsers.wasm === null || parsers.wasm.status !== "initialized") {
64
- log.warn("DASH: WASM MPD parser initialization failed. " +
69
+ log_1.default.warn("DASH: WASM MPD parser initialization failed. " +
65
70
  "Running JS parser instead");
66
71
  return runDefaultJsParser();
67
72
  }
68
- log.debug("DASH: Running WASM MPD Parser.");
69
- var parsed = parsers.wasm.runWasmParser(manifestAB_1, dashParserOpts);
73
+ log_1.default.debug("DASH: Running WASM MPD Parser.");
74
+ const parsed = parsers.wasm.runWasmParser(manifestAB, dashParserOpts);
70
75
  return processMpdParserResponse(parsed);
71
76
  });
72
77
  }
@@ -81,8 +86,8 @@ export default function generateManifestParser(options) {
81
86
  if (parsers.js === null) {
82
87
  throw new Error("No MPD parser is imported");
83
88
  }
84
- var manifestDoc = getManifestAsDocument(responseData);
85
- var parsedManifest = parsers.js(manifestDoc, dashParserOpts);
89
+ const manifestDoc = getManifestAsDocument(responseData);
90
+ const parsedManifest = parsers.js(manifestDoc, dashParserOpts);
86
91
  return processMpdParserResponse(parsedManifest);
87
92
  }
88
93
  /**
@@ -99,26 +104,28 @@ export default function generateManifestParser(options) {
99
104
  if (cancelSignal.isCancelled()) {
100
105
  return Promise.reject(cancelSignal.cancellationError);
101
106
  }
102
- var warnings = [];
103
- var manifest = new Manifest(parserResponse.value.parsed, options, warnings);
104
- return { manifest: manifest, url: url, warnings: warnings };
107
+ const warnings = [];
108
+ const manifest = new manifest_1.default(parserResponse.value.parsed, options, warnings);
109
+ return { manifest, url, warnings };
105
110
  }
106
- var value = parserResponse.value;
107
- var externalResources = value.urls.map(function (resourceUrl) {
108
- return scheduleRequest(function () {
109
- var defaultTimeout = config.getCurrent().DEFAULT_REQUEST_TIMEOUT;
110
- return value.format === "string" ? request({ url: resourceUrl,
111
+ const { value } = parserResponse;
112
+ const externalResources = value.urls.map(resourceUrl => {
113
+ return scheduleRequest(() => {
114
+ const defaultTimeout = config_1.default.getCurrent().DEFAULT_REQUEST_TIMEOUT;
115
+ return value.format === "string" ? (0, request_1.default)({ url: resourceUrl,
111
116
  responseType: "text",
112
- timeout: defaultTimeout, cancelSignal: cancelSignal }) :
113
- request({ url: resourceUrl,
117
+ timeout: defaultTimeout,
118
+ cancelSignal }) :
119
+ (0, request_1.default)({ url: resourceUrl,
114
120
  responseType: "arraybuffer",
115
- timeout: defaultTimeout, cancelSignal: cancelSignal });
116
- }).then(function (res) {
121
+ timeout: defaultTimeout,
122
+ cancelSignal });
123
+ }).then((res) => {
117
124
  if (value.format === "string") {
118
125
  if (typeof res.responseData !== "string") {
119
126
  throw new Error("External DASH resources should have been a string");
120
127
  }
121
- return objectAssign(res, {
128
+ return (0, object_assign_1.default)(res, {
122
129
  responseData: {
123
130
  success: true,
124
131
  data: res.responseData
@@ -129,29 +136,29 @@ export default function generateManifestParser(options) {
129
136
  if (!(res.responseData instanceof ArrayBuffer)) {
130
137
  throw new Error("External DASH resources should have been ArrayBuffers");
131
138
  }
132
- return objectAssign(res, {
139
+ return (0, object_assign_1.default)(res, {
133
140
  responseData: {
134
141
  success: true,
135
142
  data: res.responseData
136
143
  },
137
144
  });
138
145
  }
139
- }, function (err) {
140
- var error = formatError(err, {
146
+ }, (err) => {
147
+ const error = (0, errors_1.formatError)(err, {
141
148
  defaultCode: "PIPELINE_PARSE_ERROR",
142
149
  defaultReason: "An unknown error occured when parsing ressources.",
143
150
  });
144
- return objectAssign({}, {
151
+ return (0, object_assign_1.default)({}, {
145
152
  size: undefined,
146
153
  requestDuration: undefined,
147
154
  responseData: {
148
155
  success: false,
149
- error: error
156
+ error
150
157
  },
151
158
  });
152
159
  });
153
160
  });
154
- return Promise.all(externalResources).then(function (loadedResources) {
161
+ return Promise.all(externalResources).then(loadedResources => {
155
162
  if (value.format === "string") {
156
163
  assertLoadedResourcesFormatString(loadedResources);
157
164
  return processMpdParserResponse(value.continue(loadedResources));
@@ -164,6 +171,7 @@ export default function generateManifestParser(options) {
164
171
  }
165
172
  };
166
173
  }
174
+ exports.default = generateManifestParser;
167
175
  /**
168
176
  * Throw if the given input is not in the expected format.
169
177
  * Allows to enforce runtime type-checking as compile-time type-checking here is
@@ -176,8 +184,8 @@ function assertLoadedResourcesFormatString(loadedResources) {
176
184
  if (0 /* __ENVIRONMENT__.CURRENT_ENV */ === 0 /* __ENVIRONMENT__.PRODUCTION */) {
177
185
  return;
178
186
  }
179
- loadedResources.forEach(function (loadedResource) {
180
- var responseData = loadedResource.responseData;
187
+ loadedResources.forEach((loadedResource) => {
188
+ const { responseData } = loadedResource;
181
189
  if (responseData.success && typeof responseData.data === "string") {
182
190
  return;
183
191
  }
@@ -199,8 +207,8 @@ function assertLoadedResourcesFormatArrayBuffer(loadedResources) {
199
207
  if (0 /* __ENVIRONMENT__.CURRENT_ENV */ === 0 /* __ENVIRONMENT__.PRODUCTION */) {
200
208
  return;
201
209
  }
202
- loadedResources.forEach(function (loadedResource) {
203
- var responseData = loadedResource.responseData;
210
+ loadedResources.forEach((loadedResource) => {
211
+ const { responseData } = loadedResource;
204
212
  if (responseData.success && responseData.data instanceof ArrayBuffer) {
205
213
  return;
206
214
  }
@@ -221,7 +229,7 @@ function assertLoadedResourcesFormatArrayBuffer(loadedResources) {
221
229
  function getManifestAsDocument(manifestSrc) {
222
230
  if (manifestSrc instanceof ArrayBuffer) {
223
231
  return new DOMParser()
224
- .parseFromString(utf8ToStr(new Uint8Array(manifestSrc)), "text/xml");
232
+ .parseFromString((0, string_parsing_1.utf8ToStr)(new Uint8Array(manifestSrc)), "text/xml");
225
233
  }
226
234
  else if (typeof manifestSrc === "string") {
227
235
  return new DOMParser().parseFromString(manifestSrc, "text/xml");
@@ -244,10 +252,10 @@ function getManifestAsArrayBuffer(manifestSrc) {
244
252
  return manifestSrc;
245
253
  }
246
254
  else if (typeof manifestSrc === "string") {
247
- return strToUtf8(manifestSrc).buffer;
255
+ return (0, string_parsing_1.strToUtf8)(manifestSrc).buffer;
248
256
  }
249
257
  else if (manifestSrc instanceof Document) {
250
- return strToUtf8(manifestSrc.documentElement.innerHTML).buffer;
258
+ return (0, string_parsing_1.strToUtf8)(manifestSrc.documentElement.innerHTML).buffer;
251
259
  }
252
260
  else {
253
261
  throw new Error("DASH Manifest Parser: Unrecognized Manifest format");
@@ -262,7 +270,7 @@ function getManifestAsArrayBuffer(manifestSrc) {
262
270
  * @returns {boolean}
263
271
  */
264
272
  function doesXmlSeemsUtf8Encoded(xmlData) {
265
- var dv = new DataView(xmlData);
273
+ const dv = new DataView(xmlData);
266
274
  if (dv.getUint16(0) === 0xEFBB && dv.getUint8(2) === 0XBF) {
267
275
  // (UTF-8 BOM)
268
276
  return true;