rx-player 4.0.0-dev.2023092900 → 4.0.0-dev.2023102700

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/CHANGELOG.md +221 -12
  2. package/FILES.md +0 -4
  3. package/MAINTAINERS.md +1 -0
  4. package/README.md +0 -21
  5. package/VERSION +1 -1
  6. package/dist/_esm5.processed/compat/add_class_name.js +6 -3
  7. package/dist/_esm5.processed/compat/add_text_track.js +11 -8
  8. package/dist/_esm5.processed/compat/browser_compatibility_types.js +13 -9
  9. package/dist/_esm5.processed/compat/browser_detection.js +49 -34
  10. package/dist/_esm5.processed/compat/browser_version.js +11 -8
  11. package/dist/_esm5.processed/compat/can_patch_isobmff.js +6 -3
  12. package/dist/_esm5.processed/compat/can_rely_on_video_visibility_and_size.js +9 -6
  13. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -3
  14. package/dist/_esm5.processed/compat/change_source_buffer_type.js +6 -3
  15. package/dist/_esm5.processed/compat/clear_element_src.js +12 -9
  16. package/dist/_esm5.processed/compat/eme/close_session.js +45 -106
  17. package/dist/_esm5.processed/compat/eme/constants.js +6 -3
  18. package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +18 -22
  19. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +78 -102
  20. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +16 -6
  21. package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.js +18 -15
  22. package/dist/_esm5.processed/compat/eme/custom_media_keys/ms_media_keys_constructor.js +7 -5
  23. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +70 -88
  24. package/dist/_esm5.processed/compat/eme/custom_media_keys/types.js +2 -1
  25. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +91 -117
  26. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +7 -7
  27. package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +82 -83
  28. package/dist/_esm5.processed/compat/eme/generate_key_request.js +36 -31
  29. package/dist/_esm5.processed/compat/eme/get_init_data.js +28 -25
  30. package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +8 -5
  31. package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +17 -14
  32. package/dist/_esm5.processed/compat/eme/index.js +13 -7
  33. package/dist/_esm5.processed/compat/eme/load_session.js +26 -69
  34. package/dist/_esm5.processed/compat/enable_audio_track.js +7 -4
  35. package/dist/_esm5.processed/compat/event_listeners.js +130 -102
  36. package/dist/_esm5.processed/compat/get_start_date.js +7 -4
  37. package/dist/_esm5.processed/compat/global_scope.js +7 -5
  38. package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +6 -3
  39. package/dist/_esm5.processed/compat/index.js +47 -24
  40. package/dist/_esm5.processed/compat/is_codec_supported.js +8 -5
  41. package/dist/_esm5.processed/compat/is_debug_mode_enabled.js +4 -1
  42. package/dist/_esm5.processed/compat/is_node.js +5 -3
  43. package/dist/_esm5.processed/compat/is_seeking_approximate.js +5 -3
  44. package/dist/_esm5.processed/compat/is_vtt_cue.js +6 -3
  45. package/dist/_esm5.processed/compat/is_worker.js +3 -1
  46. package/dist/_esm5.processed/compat/make_vtt_cue.js +10 -7
  47. package/dist/_esm5.processed/compat/on_height_width_change.js +25 -22
  48. package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +19 -17
  49. package/dist/_esm5.processed/compat/remove_cue.js +12 -9
  50. package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +7 -4
  51. package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +4 -1
  52. package/dist/_esm5.processed/compat/should_renew_media_key_system_access.js +6 -3
  53. package/dist/_esm5.processed/compat/should_unset_media_keys.js +6 -3
  54. package/dist/_esm5.processed/compat/should_validate_metadata.js +6 -3
  55. package/dist/_esm5.processed/compat/should_wait_for_data_before_loaded.js +6 -3
  56. package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.js +6 -3
  57. package/dist/_esm5.processed/config.js +15 -14
  58. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +123 -94
  59. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +43 -42
  60. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +37 -44
  61. package/dist/_esm5.processed/core/adaptive/index.js +4 -2
  62. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +75 -74
  63. package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +24 -23
  64. package/dist/_esm5.processed/core/adaptive/utils/ewma.js +13 -12
  65. package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.js +9 -6
  66. package/dist/_esm5.processed/core/adaptive/utils/filter_by_resolution.js +18 -19
  67. package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +10 -7
  68. package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.js +8 -7
  69. package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.js +26 -23
  70. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +25 -23
  71. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +6 -3
  72. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +41 -40
  73. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +31 -30
  74. package/dist/_esm5.processed/core/api/debug/constants.js +4 -1
  75. package/dist/_esm5.processed/core/api/debug/index.js +4 -2
  76. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +64 -72
  77. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +49 -46
  78. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +15 -12
  79. package/dist/_esm5.processed/core/api/debug/render.js +16 -13
  80. package/dist/_esm5.processed/core/api/debug/utils.js +18 -13
  81. package/dist/_esm5.processed/core/api/index.js +7 -4
  82. package/dist/_esm5.processed/core/api/option_utils.js +85 -58
  83. package/dist/_esm5.processed/core/api/playback_observer.js +135 -124
  84. package/dist/_esm5.processed/core/api/public_api.js +610 -684
  85. package/dist/_esm5.processed/core/api/track_management/index.js +19 -3
  86. package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +233 -247
  87. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +45 -58
  88. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +300 -324
  89. package/dist/_esm5.processed/core/api/utils.js +32 -24
  90. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +155 -185
  91. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +42 -81
  92. package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +15 -12
  93. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +392 -510
  94. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +44 -90
  95. package/dist/_esm5.processed/core/decrypt/create_session.js +90 -149
  96. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +24 -67
  97. package/dist/_esm5.processed/core/decrypt/find_key_system.js +94 -155
  98. package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +6 -3
  99. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +59 -109
  100. package/dist/_esm5.processed/core/decrypt/index.js +26 -7
  101. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +17 -59
  102. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +84 -155
  103. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +50 -103
  104. package/dist/_esm5.processed/core/decrypt/types.js +5 -2
  105. package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +22 -19
  106. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +40 -61
  107. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +17 -61
  108. package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.js +8 -5
  109. package/dist/_esm5.processed/core/decrypt/utils/get_drm_system_id.js +8 -5
  110. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +23 -23
  111. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +15 -12
  112. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +14 -21
  113. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +26 -27
  114. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +206 -310
  115. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +8 -6
  116. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +103 -102
  117. package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +13 -12
  118. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +18 -16
  119. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +37 -56
  120. package/dist/_esm5.processed/core/fetchers/index.js +7 -3
  121. package/dist/_esm5.processed/core/fetchers/manifest/index.js +4 -2
  122. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +233 -313
  123. package/dist/_esm5.processed/core/fetchers/segment/index.js +4 -2
  124. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +12 -9
  125. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +218 -234
  126. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +20 -19
  127. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +73 -74
  128. package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +8 -5
  129. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +210 -261
  130. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +73 -99
  131. package/dist/_esm5.processed/core/init/index.js +5 -1
  132. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +256 -320
  133. package/dist/_esm5.processed/core/init/types.js +7 -24
  134. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +109 -135
  135. package/dist/_esm5.processed/core/init/utils/create_media_source.js +35 -30
  136. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +12 -10
  137. package/dist/_esm5.processed/core/init/utils/end_of_stream.js +30 -26
  138. package/dist/_esm5.processed/core/init/utils/get_initial_time.js +41 -38
  139. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +13 -10
  140. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +29 -26
  141. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +30 -27
  142. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +58 -60
  143. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +140 -161
  144. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +3 -1
  145. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.js +4 -2
  146. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +28 -30
  147. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +71 -90
  148. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.js +2 -1
  149. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +16 -13
  150. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +75 -126
  151. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +130 -147
  152. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/index.js +4 -2
  153. package/dist/_esm5.processed/core/segment_buffers/implementations/index.js +20 -3
  154. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +106 -125
  155. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/index.js +4 -2
  156. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/parsers.js +11 -8
  157. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +48 -47
  158. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/types.js +2 -1
  159. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +18 -15
  160. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +22 -15
  161. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/index.js +4 -2
  162. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +65 -82
  163. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.js +11 -8
  164. package/dist/_esm5.processed/core/segment_buffers/implementations/types.js +19 -17
  165. package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +23 -22
  166. package/dist/_esm5.processed/core/segment_buffers/index.js +13 -6
  167. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +24 -22
  168. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +8 -3
  169. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +151 -150
  170. package/dist/_esm5.processed/core/segment_buffers/inventory/types.js +2 -1
  171. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +9 -4
  172. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +82 -89
  173. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +118 -166
  174. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +31 -28
  175. package/dist/_esm5.processed/core/stream/adaptation/index.js +19 -3
  176. package/dist/_esm5.processed/core/stream/adaptation/types.js +2 -1
  177. package/dist/_esm5.processed/core/stream/index.js +4 -2
  178. package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +14 -16
  179. package/dist/_esm5.processed/core/stream/orchestrator/index.js +4 -2
  180. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +175 -222
  181. package/dist/_esm5.processed/core/stream/period/index.js +19 -3
  182. package/dist/_esm5.processed/core/stream/period/period_stream.js +172 -216
  183. package/dist/_esm5.processed/core/stream/period/types.js +2 -1
  184. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -33
  185. package/dist/_esm5.processed/core/stream/representation/index.js +19 -3
  186. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +80 -68
  187. package/dist/_esm5.processed/core/stream/representation/types.js +2 -1
  188. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +33 -84
  189. package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +32 -29
  190. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +126 -145
  191. package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +32 -88
  192. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +61 -48
  193. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +71 -69
  194. package/dist/_esm5.processed/core/stream/representation/utils/get_segment_priority.js +8 -5
  195. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +22 -63
  196. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +49 -86
  197. package/dist/_esm5.processed/default_config.js +4 -2
  198. package/dist/_esm5.processed/errors/assertion_error.js +10 -26
  199. package/dist/_esm5.processed/errors/custom_loader_error.js +12 -28
  200. package/dist/_esm5.processed/errors/encrypted_media_error.js +16 -32
  201. package/dist/_esm5.processed/errors/error_codes.js +9 -4
  202. package/dist/_esm5.processed/errors/error_message.js +5 -2
  203. package/dist/_esm5.processed/errors/format_error.js +9 -7
  204. package/dist/_esm5.processed/errors/index.js +25 -11
  205. package/dist/_esm5.processed/errors/is_known_error.js +14 -11
  206. package/dist/_esm5.processed/errors/media_error.js +17 -33
  207. package/dist/_esm5.processed/errors/network_error.js +21 -37
  208. package/dist/_esm5.processed/errors/other_error.js +15 -31
  209. package/dist/_esm5.processed/errors/request_error.js +17 -33
  210. package/dist/_esm5.processed/experimental/features/dash_wasm.js +14 -11
  211. package/dist/_esm5.processed/experimental/features/debug_element.js +7 -4
  212. package/dist/_esm5.processed/experimental/features/index.d.ts +1 -0
  213. package/dist/_esm5.processed/experimental/features/index.js +11 -3
  214. package/dist/_esm5.processed/experimental/features/local.js +9 -6
  215. package/dist/_esm5.processed/experimental/features/metaplaylist.js +9 -6
  216. package/dist/_esm5.processed/experimental/index.js +5 -2
  217. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.js +6 -3
  218. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +6 -3
  219. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +7 -3
  220. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +22 -16
  221. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +22 -19
  222. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -3
  223. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.js +2 -1
  224. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +125 -186
  225. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.js +11 -27
  226. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +76 -119
  227. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +24 -15
  228. package/dist/_esm5.processed/experimental/tools/index.js +11 -5
  229. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +38 -43
  230. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +31 -34
  231. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +21 -18
  232. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +4 -2
  233. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/log.js +5 -3
  234. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +20 -17
  235. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -18
  236. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +13 -10
  237. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +16 -13
  238. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.js +16 -14
  239. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +14 -11
  240. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +14 -11
  241. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +19 -16
  242. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +11 -8
  243. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.js +5 -2
  244. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +25 -22
  245. package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +7 -4
  246. package/dist/_esm5.processed/features/add_features.js +11 -8
  247. package/dist/_esm5.processed/features/features_object.js +4 -2
  248. package/dist/_esm5.processed/features/index.js +7 -4
  249. package/dist/_esm5.processed/features/list/dash.js +11 -8
  250. package/dist/_esm5.processed/features/list/directfile.js +9 -5
  251. package/dist/_esm5.processed/features/list/eme.js +7 -4
  252. package/dist/_esm5.processed/features/list/html_sami_parser.js +9 -6
  253. package/dist/_esm5.processed/features/list/html_srt_parser.js +9 -6
  254. package/dist/_esm5.processed/features/list/html_text_buffer.js +7 -4
  255. package/dist/_esm5.processed/features/list/html_ttml_parser.js +9 -6
  256. package/dist/_esm5.processed/features/list/html_vtt_parser.js +9 -6
  257. package/dist/_esm5.processed/features/list/index.js +31 -14
  258. package/dist/_esm5.processed/features/list/native_sami_parser.js +9 -6
  259. package/dist/_esm5.processed/features/list/native_srt_parser.js +9 -6
  260. package/dist/_esm5.processed/features/list/native_text_buffer.js +7 -4
  261. package/dist/_esm5.processed/features/list/native_ttml_parser.js +9 -6
  262. package/dist/_esm5.processed/features/list/native_vtt_parser.js +9 -6
  263. package/dist/_esm5.processed/features/list/smooth.js +9 -6
  264. package/dist/_esm5.processed/features/types.js +2 -1
  265. package/dist/_esm5.processed/index.js +24 -9
  266. package/dist/_esm5.processed/log.js +5 -3
  267. package/dist/_esm5.processed/manifest/adaptation.js +52 -55
  268. package/dist/_esm5.processed/manifest/index.js +32 -13
  269. package/dist/_esm5.processed/manifest/manifest.js +112 -134
  270. package/dist/_esm5.processed/manifest/period.js +38 -42
  271. package/dist/_esm5.processed/manifest/representation.js +78 -61
  272. package/dist/_esm5.processed/manifest/representation_index/index.js +5 -2
  273. package/dist/_esm5.processed/manifest/representation_index/static.js +43 -42
  274. package/dist/_esm5.processed/manifest/representation_index/types.js +2 -1
  275. package/dist/_esm5.processed/manifest/types.js +5 -2
  276. package/dist/_esm5.processed/manifest/update_period_in_place.js +38 -48
  277. package/dist/_esm5.processed/manifest/update_periods.js +59 -69
  278. package/dist/_esm5.processed/manifest/utils.js +14 -9
  279. package/dist/_esm5.processed/minimal.js +9 -7
  280. package/dist/_esm5.processed/parsers/containers/isobmff/constants.js +4 -1
  281. package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +14 -10
  282. package/dist/_esm5.processed/parsers/containers/isobmff/drm/index.js +5 -1
  283. package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +15 -11
  284. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +48 -40
  285. package/dist/_esm5.processed/parsers/containers/isobmff/index.js +27 -6
  286. package/dist/_esm5.processed/parsers/containers/isobmff/read.js +20 -14
  287. package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +25 -20
  288. package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +130 -112
  289. package/dist/_esm5.processed/parsers/containers/matroska/index.js +6 -1
  290. package/dist/_esm5.processed/parsers/containers/matroska/utils.js +67 -63
  291. package/dist/_esm5.processed/parsers/images/bif.js +40 -29
  292. package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.js +10 -12
  293. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +10 -7
  294. package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.js +8 -5
  295. package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +10 -6
  296. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +7 -6
  297. package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +10 -6
  298. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +14 -9
  299. package/dist/_esm5.processed/parsers/manifest/dash/common/index.js +10 -4
  300. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +73 -67
  301. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +9 -4
  302. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +32 -25
  303. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.js +11 -5
  304. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +81 -70
  305. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +130 -123
  306. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +15 -12
  307. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +35 -32
  308. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +14 -9
  309. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +30 -22
  310. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.js +4 -2
  311. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +14 -11
  312. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +131 -129
  313. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +16 -10
  314. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/utils.js +7 -3
  315. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +19 -18
  316. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +18 -17
  317. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +111 -111
  318. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.js +4 -1
  319. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +86 -85
  320. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +97 -82
  321. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +39 -37
  322. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +61 -69
  323. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +12 -9
  324. package/dist/_esm5.processed/parsers/manifest/dash/index.js +8 -1
  325. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/index.js +4 -2
  326. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +66 -62
  327. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +7 -4
  328. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.js +7 -4
  329. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.js +22 -19
  330. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +22 -19
  331. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +11 -8
  332. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +38 -34
  333. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +34 -30
  334. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +44 -40
  335. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +24 -21
  336. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.js +15 -12
  337. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +21 -18
  338. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.js +6 -3
  339. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +12 -9
  340. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +60 -64
  341. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +33 -27
  342. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.js +2 -1
  343. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.js +2 -1
  344. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.js +4 -2
  345. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +192 -238
  346. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +67 -62
  347. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +8 -4
  348. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +11 -7
  349. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +17 -13
  350. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +29 -24
  351. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +38 -33
  352. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +37 -32
  353. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +43 -38
  354. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +9 -5
  355. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +16 -12
  356. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +11 -7
  357. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +20 -16
  358. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +11 -7
  359. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +11 -7
  360. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/index.js +5 -1
  361. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +10 -6
  362. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +22 -20
  363. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.js +2 -1
  364. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +6 -2
  365. package/dist/_esm5.processed/parsers/manifest/index.js +17 -1
  366. package/dist/_esm5.processed/parsers/manifest/local/index.js +4 -2
  367. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +30 -27
  368. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +71 -84
  369. package/dist/_esm5.processed/parsers/manifest/local/types.js +2 -1
  370. package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.js +4 -2
  371. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +75 -72
  372. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +52 -52
  373. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +200 -176
  374. package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +13 -8
  375. package/dist/_esm5.processed/parsers/manifest/smooth/index.js +7 -4
  376. package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +17 -14
  377. package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +17 -15
  378. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +102 -98
  379. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +49 -48
  380. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  381. package/dist/_esm5.processed/parsers/manifest/smooth/utils/parseBoolean.js +4 -1
  382. package/dist/_esm5.processed/parsers/manifest/smooth/utils/reduceChildren.js +6 -3
  383. package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +5 -1
  384. package/dist/_esm5.processed/parsers/manifest/types.js +2 -1
  385. package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +27 -24
  386. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +10 -7
  387. package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +8 -5
  388. package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +8 -5
  389. package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +15 -12
  390. package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +15 -12
  391. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +31 -22
  392. package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +9 -6
  393. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +38 -45
  394. package/dist/_esm5.processed/parsers/texttracks/index.js +2 -1
  395. package/dist/_esm5.processed/parsers/texttracks/sami/html.js +45 -43
  396. package/dist/_esm5.processed/parsers/texttracks/sami/native.js +41 -39
  397. package/dist/_esm5.processed/parsers/texttracks/srt/find_end_of_cue_block.js +7 -4
  398. package/dist/_esm5.processed/parsers/texttracks/srt/get_cue_blocks.js +11 -8
  399. package/dist/_esm5.processed/parsers/texttracks/srt/html.js +32 -29
  400. package/dist/_esm5.processed/parsers/texttracks/srt/native.js +16 -13
  401. package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +21 -18
  402. package/dist/_esm5.processed/parsers/texttracks/srt/parse_timestamp.js +10 -7
  403. package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +37 -30
  404. package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.js +48 -48
  405. package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +14 -11
  406. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +7 -2
  407. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +15 -12
  408. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +15 -12
  409. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +11 -8
  410. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +15 -12
  411. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +25 -22
  412. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +117 -124
  413. package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +11 -8
  414. package/dist/_esm5.processed/parsers/texttracks/ttml/html/index.js +4 -2
  415. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +12 -8
  416. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.js +14 -11
  417. package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +10 -7
  418. package/dist/_esm5.processed/parsers/texttracks/ttml/native/index.js +4 -2
  419. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +38 -35
  420. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +11 -8
  421. package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +58 -58
  422. package/dist/_esm5.processed/parsers/texttracks/ttml/regexps.js +27 -13
  423. package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.js +18 -18
  424. package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +28 -26
  425. package/dist/_esm5.processed/parsers/texttracks/ttml/xml_utils.js +37 -25
  426. package/dist/_esm5.processed/parsers/texttracks/types.js +2 -1
  427. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +12 -9
  428. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +14 -11
  429. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.js +11 -8
  430. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +8 -5
  431. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +60 -60
  432. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +30 -27
  433. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.js +4 -2
  434. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +23 -26
  435. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +20 -17
  436. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +23 -18
  437. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/index.js +4 -2
  438. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +19 -16
  439. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.js +20 -17
  440. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +8 -5
  441. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +26 -18
  442. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +10 -7
  443. package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +15 -7
  444. package/dist/_esm5.processed/public_types.js +2 -1
  445. package/dist/_esm5.processed/tools/TextTrackRenderer/index.js +13 -6
  446. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +26 -24
  447. package/dist/_esm5.processed/tools/index.js +6 -4
  448. package/dist/_esm5.processed/tools/string_utils.js +10 -1
  449. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +16 -24
  450. package/dist/_esm5.processed/transports/dash/construct_segment_url.js +6 -3
  451. package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +17 -14
  452. package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +19 -16
  453. package/dist/_esm5.processed/transports/dash/index.js +4 -2
  454. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +47 -27
  455. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +23 -16
  456. package/dist/_esm5.processed/transports/dash/manifest_parser.js +68 -60
  457. package/dist/_esm5.processed/transports/dash/pipelines.js +20 -17
  458. package/dist/_esm5.processed/transports/dash/segment_loader.js +49 -39
  459. package/dist/_esm5.processed/transports/dash/segment_parser.js +58 -39
  460. package/dist/_esm5.processed/transports/dash/text_loader.js +36 -30
  461. package/dist/_esm5.processed/transports/dash/text_parser.js +39 -29
  462. package/dist/_esm5.processed/transports/index.js +17 -1
  463. package/dist/_esm5.processed/transports/local/index.js +4 -2
  464. package/dist/_esm5.processed/transports/local/pipelines.js +26 -23
  465. package/dist/_esm5.processed/transports/local/segment_loader.js +26 -23
  466. package/dist/_esm5.processed/transports/local/segment_parser.js +36 -25
  467. package/dist/_esm5.processed/transports/local/text_parser.js +42 -27
  468. package/dist/_esm5.processed/transports/metaplaylist/index.js +4 -2
  469. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +11 -7
  470. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +91 -96
  471. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +26 -20
  472. package/dist/_esm5.processed/transports/smooth/index.js +4 -2
  473. package/dist/_esm5.processed/transports/smooth/is_mp4_embedded_track.js +4 -1
  474. package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +22 -19
  475. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +92 -67
  476. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +29 -26
  477. package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +9 -6
  478. package/dist/_esm5.processed/transports/smooth/isobmff/create_video_init_segment.js +23 -20
  479. package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +10 -7
  480. package/dist/_esm5.processed/transports/smooth/isobmff/index.js +13 -6
  481. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +19 -16
  482. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +9 -6
  483. package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +41 -38
  484. package/dist/_esm5.processed/transports/smooth/pipelines.js +106 -96
  485. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +2 -2
  486. package/dist/_esm5.processed/transports/smooth/segment_loader.js +149 -153
  487. package/dist/_esm5.processed/transports/smooth/utils.js +7 -3
  488. package/dist/_esm5.processed/transports/types.js +2 -1
  489. package/dist/_esm5.processed/transports/utils/byte_range.js +6 -4
  490. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +23 -18
  491. package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +14 -11
  492. package/dist/_esm5.processed/transports/utils/find_complete_box.js +11 -8
  493. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +22 -14
  494. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +13 -10
  495. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +4 -1
  496. package/dist/_esm5.processed/transports/utils/parse_text_track.js +40 -26
  497. package/dist/_esm5.processed/utils/are_arrays_of_numbers_equal.js +5 -2
  498. package/dist/_esm5.processed/utils/are_codecs_compatible.js +11 -9
  499. package/dist/_esm5.processed/utils/array_find.js +7 -4
  500. package/dist/_esm5.processed/utils/array_find_index.js +6 -3
  501. package/dist/_esm5.processed/utils/array_includes.js +12 -11
  502. package/dist/_esm5.processed/utils/assert.js +13 -9
  503. package/dist/_esm5.processed/utils/assert_unreachable.js +6 -3
  504. package/dist/_esm5.processed/utils/base64.js +23 -18
  505. package/dist/_esm5.processed/utils/byte_parsing.js +30 -17
  506. package/dist/_esm5.processed/utils/cancellable_sleep.js +8 -5
  507. package/dist/_esm5.processed/utils/create_cancellable_promise.js +7 -4
  508. package/dist/_esm5.processed/utils/deep_merge.js +10 -21
  509. package/dist/_esm5.processed/utils/event_emitter.js +24 -24
  510. package/dist/_esm5.processed/utils/flat_map.js +7 -4
  511. package/dist/_esm5.processed/utils/get_fuzzed_delay.js +6 -3
  512. package/dist/_esm5.processed/utils/hash_buffer.js +7 -4
  513. package/dist/_esm5.processed/utils/id_generator.js +6 -3
  514. package/dist/_esm5.processed/utils/initialization_segment_cache.js +11 -12
  515. package/dist/_esm5.processed/utils/is_non_empty_string.js +4 -1
  516. package/dist/_esm5.processed/utils/is_null_or_undefined.js +4 -1
  517. package/dist/_esm5.processed/utils/languages/ISO_639-1_to_ISO_639-3.js +4 -2
  518. package/dist/_esm5.processed/utils/languages/ISO_639-2_to_ISO_639-3.js +4 -2
  519. package/dist/_esm5.processed/utils/languages/index.js +7 -3
  520. package/dist/_esm5.processed/utils/languages/normalize.js +26 -20
  521. package/dist/_esm5.processed/utils/logger.js +24 -23
  522. package/dist/_esm5.processed/utils/monotonic_timestamp.js +4 -1
  523. package/dist/_esm5.processed/utils/noop.js +4 -1
  524. package/dist/_esm5.processed/utils/object_assign.js +8 -10
  525. package/dist/_esm5.processed/utils/object_values.js +6 -3
  526. package/dist/_esm5.processed/utils/ranges.js +94 -71
  527. package/dist/_esm5.processed/utils/reference.js +48 -52
  528. package/dist/_esm5.processed/utils/request/fetch.js +79 -109
  529. package/dist/_esm5.processed/utils/request/index.js +9 -4
  530. package/dist/_esm5.processed/utils/request/xhr.js +49 -37
  531. package/dist/_esm5.processed/utils/resolve_url.js +18 -18
  532. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +34 -81
  533. package/dist/_esm5.processed/utils/sleep.js +5 -2
  534. package/dist/_esm5.processed/utils/slice_uint8array.js +3 -1
  535. package/dist/_esm5.processed/utils/sorted_list.js +37 -40
  536. package/dist/_esm5.processed/utils/starts_with.js +5 -2
  537. package/dist/_esm5.processed/utils/string_parsing.js +84 -73
  538. package/dist/_esm5.processed/utils/take_first_set.js +9 -10
  539. package/dist/_esm5.processed/utils/task_canceller.js +51 -71
  540. package/dist/_esm5.processed/utils/warn_once.js +7 -4
  541. package/dist/_esm5.processed/utils/weak_map_memory.js +12 -11
  542. package/dist/_esm5.processed/utils/wrapInPromise.js +5 -2
  543. package/dist/mpd-parser.wasm +0 -0
  544. package/dist/rx-player.js +43758 -45493
  545. package/dist/rx-player.min.js +1 -1
  546. package/jest.config.js +1 -22
  547. package/package.json +22 -23
  548. package/scripts/build/constants.d.ts +1 -23
  549. package/scripts/build/generate_build.js +1 -1
  550. package/scripts/check_nodejs_import_compatibility.js +1 -1
  551. package/scripts/update-version +1 -4
  552. package/sonar-project.properties +1 -1
  553. package/src/compat/event_listeners.ts +8 -8
  554. package/src/compat/global_scope.ts +2 -0
  555. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +3 -3
  556. package/src/core/adaptive/adaptive_representation_selector.ts +27 -9
  557. package/src/core/adaptive/buffer_based_chooser.ts +1 -1
  558. package/src/core/adaptive/network_analyzer.ts +5 -4
  559. package/src/core/api/public_api.ts +2 -2
  560. package/src/core/api/track_management/track_dispatcher.ts +2 -1
  561. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +1 -1
  562. package/src/core/fetchers/cdn_prioritizer.ts +1 -1
  563. package/src/experimental/features/__tests__/index.test.ts +19 -0
  564. package/src/experimental/features/index.ts +1 -0
  565. package/src/features/list/__tests__/index.test.ts +49 -0
  566. package/src/index.ts +28 -3
  567. package/src/transports/smooth/segment_loader.ts +4 -4
  568. package/src/typings/globals.d.ts +0 -42
  569. package/src/utils/request/fetch.ts +1 -1
  570. package/src/utils/request/xhr.ts +1 -1
  571. package/tsconfig.json +1 -1
  572. package/tsconfig.modules.json +3 -3
  573. package/dist/_esm5.processed/features/initialize_features.d.ts +0 -19
  574. package/dist/_esm5.processed/features/initialize_features.js +0 -108
  575. package/src/features/__tests__/initialize_features.test.ts +0 -657
  576. package/src/features/initialize_features.ts +0 -129
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,35 +14,37 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { getUuidContent } from "../../../parsers/containers/isobmff";
17
- import { be4toi, be8toi, } from "../../../utils/byte_parsing";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const isobmff_1 = require("../../../parsers/containers/isobmff");
19
+ const byte_parsing_1 = require("../../../utils/byte_parsing");
18
20
  /**
19
21
  * @param {Uint8Array} traf
20
22
  * @returns {Array.<Object>}
21
23
  */
22
- export default function parseTfrf(traf) {
23
- var tfrf = getUuidContent(traf, 0xD4807EF2, 0xCA394695, 0x8E5426CB, 0x9E46A79F);
24
+ function parseTfrf(traf) {
25
+ const tfrf = (0, isobmff_1.getUuidContent)(traf, 0xD4807EF2, 0xCA394695, 0x8E5426CB, 0x9E46A79F);
24
26
  if (tfrf === undefined) {
25
27
  return [];
26
28
  }
27
- var frags = [];
28
- var version = tfrf[0];
29
- var fragCount = tfrf[4];
30
- for (var i = 0; i < fragCount; i++) {
31
- var duration = void 0;
32
- var time = void 0;
29
+ const frags = [];
30
+ const version = tfrf[0];
31
+ const fragCount = tfrf[4];
32
+ for (let i = 0; i < fragCount; i++) {
33
+ let duration;
34
+ let time;
33
35
  if (version === 1) {
34
- time = be8toi(tfrf, i * 16 + 5);
35
- duration = be8toi(tfrf, i * 16 + 5 + 8);
36
+ time = (0, byte_parsing_1.be8toi)(tfrf, i * 16 + 5);
37
+ duration = (0, byte_parsing_1.be8toi)(tfrf, i * 16 + 5 + 8);
36
38
  }
37
39
  else {
38
- time = be4toi(tfrf, i * 8 + 5);
39
- duration = be4toi(tfrf, i * 8 + 5 + 4);
40
+ time = (0, byte_parsing_1.be4toi)(tfrf, i * 8 + 5);
41
+ duration = (0, byte_parsing_1.be4toi)(tfrf, i * 8 + 5 + 4);
40
42
  }
41
43
  frags.push({
42
- time: time,
43
- duration: duration,
44
+ time,
45
+ duration,
44
46
  });
45
47
  }
46
48
  return frags;
47
49
  }
50
+ exports.default = parseTfrf;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,19 +14,21 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { getUuidContent } from "../../../parsers/containers/isobmff";
17
- import { be8toi } from "../../../utils/byte_parsing";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const isobmff_1 = require("../../../parsers/containers/isobmff");
19
+ const byte_parsing_1 = require("../../../utils/byte_parsing");
18
20
  /**
19
21
  * @param {Uint8Array} traf
20
22
  * @returns {Object|undefined}
21
23
  */
22
- export default function parseTfxd(traf) {
23
- var tfxd = getUuidContent(traf, 0x6D1D9B05, 0x42D544E6, 0x80E2141D, 0xAFF757B2);
24
+ function parseTfxd(traf) {
25
+ const tfxd = (0, isobmff_1.getUuidContent)(traf, 0x6D1D9B05, 0x42D544E6, 0x80E2141D, 0xAFF757B2);
24
26
  if (tfxd === undefined) {
25
27
  return undefined;
26
28
  }
27
29
  return {
28
- duration: be8toi(tfxd, 12),
29
- time: be8toi(tfxd, 4),
30
+ duration: (0, byte_parsing_1.be8toi)(tfxd, 12),
31
+ time: (0, byte_parsing_1.be8toi)(tfxd, 4),
30
32
  };
31
33
  }
34
+ exports.default = parseTfxd;
@@ -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 { canPatchISOBMFFSegment } from "../../../compat";
17
- import { createBoxWithChildren, getBox, getBoxContent, getBoxOffsets, getUuidContent, updateBoxLength, } from "../../../parsers/containers/isobmff";
18
- import { itobe4 } from "../../../utils/byte_parsing";
19
- import { createFreeBox, createTfdtBox, } from "./create_boxes";
20
- import createTrafBox from "./create_traf_box";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../../../compat");
19
+ const isobmff_1 = require("../../../parsers/containers/isobmff");
20
+ const byte_parsing_1 = require("../../../utils/byte_parsing");
21
+ const create_boxes_1 = require("./create_boxes");
22
+ const create_traf_box_1 = require("./create_traf_box");
21
23
  /**
22
24
  * Update ISOBMFF Segment downloaded in Smooth Streaming so it is playable on
23
25
  * the browser.
@@ -25,39 +27,39 @@ import createTrafBox from "./create_traf_box";
25
27
  * @param {Number} decodeTime
26
28
  * @return {Uint8Array}
27
29
  */
28
- export default function patchSegment(segment, decodeTime) {
29
- var oldMoofOffsets = getBoxOffsets(segment, 0x6D6F6F66 /* moof */);
30
+ function patchSegment(segment, decodeTime) {
31
+ const oldMoofOffsets = (0, isobmff_1.getBoxOffsets)(segment, 0x6D6F6F66 /* moof */);
30
32
  if (oldMoofOffsets === null) {
31
33
  throw new Error("Smooth: Invalid ISOBMFF given");
32
34
  }
33
- var oldMoofContent = segment.subarray(oldMoofOffsets[1], oldMoofOffsets[2]);
34
- var mfhdBox = getBox(oldMoofContent, 0x6D666864 /* mfhd */);
35
- var trafContent = getBoxContent(oldMoofContent, 0x74726166 /* traf */);
35
+ const oldMoofContent = segment.subarray(oldMoofOffsets[1], oldMoofOffsets[2]);
36
+ const mfhdBox = (0, isobmff_1.getBox)(oldMoofContent, 0x6D666864 /* mfhd */);
37
+ const trafContent = (0, isobmff_1.getBoxContent)(oldMoofContent, 0x74726166 /* traf */);
36
38
  if (trafContent === null || mfhdBox === null) {
37
39
  throw new Error("Smooth: Invalid ISOBMFF given");
38
40
  }
39
- var tfhdOffsets = getBoxOffsets(trafContent, 0x74666864 /* tfhd */);
40
- var oldTrunOffsets = getBoxOffsets(trafContent, 0x7472756E /* trun */);
41
+ const tfhdOffsets = (0, isobmff_1.getBoxOffsets)(trafContent, 0x74666864 /* tfhd */);
42
+ const oldTrunOffsets = (0, isobmff_1.getBoxOffsets)(trafContent, 0x7472756E /* trun */);
41
43
  if (tfhdOffsets === null || oldTrunOffsets === null) {
42
44
  throw new Error("Smooth: Invalid ISOBMFF given");
43
45
  }
44
- var tfhdBox = trafContent.subarray(tfhdOffsets[0], tfhdOffsets[2]);
45
- var oldTrunBox = trafContent.subarray(oldTrunOffsets[0], oldTrunOffsets[2]);
46
+ const tfhdBox = trafContent.subarray(tfhdOffsets[0], tfhdOffsets[2]);
47
+ const oldTrunBox = trafContent.subarray(oldTrunOffsets[0], oldTrunOffsets[2]);
46
48
  // force trackId=1 since trackIds are not always reliable...
47
49
  tfhdBox.set([0, 0, 0, 1], tfhdOffsets[1] - tfhdOffsets[0] + 4 /* version + flags */);
48
- var tfdtBox = createTfdtBox(decodeTime);
49
- var newTrunBox = updateTrunDataOffset(oldTrunBox, oldTrunOffsets[1] - oldTrunOffsets[0]);
50
- var sencContent = getUuidContent(trafContent, 0xA2394F52, 0x5A9B4F14, 0xA2446C42, 0x7C648DF4);
51
- var newTrafBox = createTrafBox(tfhdBox, tfdtBox, newTrunBox, mfhdBox, sencContent);
52
- var newMoof = createBoxWithChildren("moof", [mfhdBox, newTrafBox]);
53
- var newMoofOffsets = getBoxOffsets(newMoof, 0x6D6F6F66 /* moof */);
54
- var newTrafOffsets = getBoxOffsets(newTrafBox, 0x74726166 /* traf */);
55
- var newTrunOffsets = getBoxOffsets(newTrunBox, 0x7472756E /* trun */);
50
+ const tfdtBox = (0, create_boxes_1.createTfdtBox)(decodeTime);
51
+ const newTrunBox = updateTrunDataOffset(oldTrunBox, oldTrunOffsets[1] - oldTrunOffsets[0]);
52
+ const sencContent = (0, isobmff_1.getUuidContent)(trafContent, 0xA2394F52, 0x5A9B4F14, 0xA2446C42, 0x7C648DF4);
53
+ const newTrafBox = (0, create_traf_box_1.default)(tfhdBox, tfdtBox, newTrunBox, mfhdBox, sencContent);
54
+ const newMoof = (0, isobmff_1.createBoxWithChildren)("moof", [mfhdBox, newTrafBox]);
55
+ const newMoofOffsets = (0, isobmff_1.getBoxOffsets)(newMoof, 0x6D6F6F66 /* moof */);
56
+ const newTrafOffsets = (0, isobmff_1.getBoxOffsets)(newTrafBox, 0x74726166 /* traf */);
57
+ const newTrunOffsets = (0, isobmff_1.getBoxOffsets)(newTrunBox, 0x7472756E /* trun */);
56
58
  if (newMoofOffsets === null || newTrafOffsets === null || newTrunOffsets === null) {
57
59
  throw new Error("Smooth: Invalid moof, trun or traf generation");
58
60
  }
59
61
  /** index of the `data_offset` property from the trun box in the whole "moof". */
60
- var indexOfTrunDataOffsetInMoof = (newMoofOffsets[1] - newMoofOffsets[0]) +
62
+ const indexOfTrunDataOffsetInMoof = (newMoofOffsets[1] - newMoofOffsets[0]) +
61
63
  mfhdBox.length +
62
64
  /* new traf size + name */
63
65
  (newTrafOffsets[1] - newTrafOffsets[0]) +
@@ -66,36 +68,37 @@ export default function patchSegment(segment, decodeTime) {
66
68
  /* new trun size + name */
67
69
  (newTrunOffsets[1] - newTrunOffsets[0]) +
68
70
  8 /* trun version + flags + `sample_count` */;
69
- var oldMoofLength = oldMoofOffsets[2] - oldMoofOffsets[0];
70
- var newMoofSizeDiff = newMoof.length - oldMoofLength;
71
- var oldMdatOffset = getBoxOffsets(segment, 0x6D646174 /* "mdat" */);
71
+ const oldMoofLength = oldMoofOffsets[2] - oldMoofOffsets[0];
72
+ const newMoofSizeDiff = newMoof.length - oldMoofLength;
73
+ const oldMdatOffset = (0, isobmff_1.getBoxOffsets)(segment, 0x6D646174 /* "mdat" */);
72
74
  if (oldMdatOffset === null) {
73
75
  throw new Error("Smooth: Invalid ISOBMFF given");
74
76
  }
75
- if (canPatchISOBMFFSegment() && (newMoofSizeDiff === 0 || newMoofSizeDiff <= -8)) {
77
+ if ((0, compat_1.canPatchISOBMFFSegment)() && (newMoofSizeDiff === 0 || newMoofSizeDiff <= -8)) {
76
78
  // patch trun data_offset
77
- var mdatContentOffset = oldMdatOffset[1];
78
- newMoof.set(itobe4(mdatContentOffset), indexOfTrunDataOffsetInMoof);
79
+ const mdatContentOffset = oldMdatOffset[1];
80
+ newMoof.set((0, byte_parsing_1.itobe4)(mdatContentOffset), indexOfTrunDataOffsetInMoof);
79
81
  segment.set(newMoof, oldMoofOffsets[0]);
80
82
  // add "free" box for the remaining space
81
83
  if (newMoofSizeDiff <= -8) {
82
- segment.set(createFreeBox(-newMoofSizeDiff), newMoof.length);
84
+ segment.set((0, create_boxes_1.createFreeBox)(-newMoofSizeDiff), newMoof.length);
83
85
  }
84
86
  return segment;
85
87
  }
86
88
  else {
87
89
  // patch trun data_offset
88
- var mdatContentOffset = oldMdatOffset[1] + newMoofSizeDiff;
89
- newMoof.set(itobe4(mdatContentOffset), indexOfTrunDataOffsetInMoof);
90
- var newSegment = new Uint8Array(segment.length + newMoofSizeDiff);
91
- var beforeMoof = segment.subarray(0, oldMoofOffsets[0]);
92
- var afterMoof = segment.subarray(oldMoofOffsets[2], segment.length);
90
+ const mdatContentOffset = oldMdatOffset[1] + newMoofSizeDiff;
91
+ newMoof.set((0, byte_parsing_1.itobe4)(mdatContentOffset), indexOfTrunDataOffsetInMoof);
92
+ const newSegment = new Uint8Array(segment.length + newMoofSizeDiff);
93
+ const beforeMoof = segment.subarray(0, oldMoofOffsets[0]);
94
+ const afterMoof = segment.subarray(oldMoofOffsets[2], segment.length);
93
95
  newSegment.set(beforeMoof, 0);
94
96
  newSegment.set(newMoof, beforeMoof.length);
95
97
  newSegment.set(afterMoof, beforeMoof.length + newMoof.length);
96
98
  return newSegment;
97
99
  }
98
100
  }
101
+ exports.default = patchSegment;
99
102
  /**
100
103
  * Update `trun` box given or create a new one from it to add a data offset
101
104
  * flag and the corresponding space to set a data offset.
@@ -110,12 +113,12 @@ export default function patchSegment(segment, decodeTime) {
110
113
  * @returns {Uint8Array}
111
114
  */
112
115
  function updateTrunDataOffset(oldTrunBox, initialDataOffset) {
113
- var trunHasDataOffset = (oldTrunBox[initialDataOffset + 3 /* last flag */] & 0x01) > 0;
116
+ const trunHasDataOffset = (oldTrunBox[initialDataOffset + 3 /* last flag */] & 0x01) > 0;
114
117
  if (trunHasDataOffset) {
115
118
  return oldTrunBox;
116
119
  }
117
120
  // If no data_offset is present, we create another "trun" with one
118
- var newTrunBox = new Uint8Array(oldTrunBox.length + 4);
121
+ const newTrunBox = new Uint8Array(oldTrunBox.length + 4);
119
122
  // copy size + name + version=1 + flags=3 + sample_count=4
120
123
  newTrunBox.set(oldTrunBox.subarray(0, initialDataOffset + 8), 0);
121
124
  // add data_offset flag
@@ -123,5 +126,5 @@ function updateTrunDataOffset(oldTrunBox, initialDataOffset) {
123
126
  newTrunBox.set([0, 0, 0, 0], initialDataOffset + 8); // add data offset
124
127
  // add the rest
125
128
  newTrunBox.set(oldTrunBox.subarray(initialDataOffset + 8, oldTrunBox.length), initialDataOffset + 12);
126
- return updateBoxLength(newTrunBox); // update the trun box's length
129
+ return (0, isobmff_1.updateBoxLength)(newTrunBox); // update the trun box's length
127
130
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,57 +14,47 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __assign = (this && this.__assign) || function () {
17
- __assign = Object.assign || function(t) {
18
- for (var s, i = 1, n = arguments.length; i < n; i++) {
19
- s = arguments[i];
20
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
- t[p] = s[p];
22
- }
23
- return t;
24
- };
25
- return __assign.apply(this, arguments);
26
- };
27
- import log from "../../log";
28
- import Manifest from "../../manifest";
29
- import { getMDAT } from "../../parsers/containers/isobmff";
30
- import createSmoothManifestParser from "../../parsers/manifest/smooth";
31
- import request from "../../utils/request";
32
- import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
33
- import checkISOBMFFIntegrity from "../utils/check_isobmff_integrity";
34
- import generateManifestLoader from "../utils/generate_manifest_loader";
35
- import extractTimingsInfos from "./extract_timings_infos";
36
- import isMP4EmbeddedTrack from "./is_mp4_embedded_track";
37
- import { patchSegment } from "./isobmff";
38
- import generateSegmentLoader from "./segment_loader";
39
- import { constructSegmentUrl } from "./utils";
40
- export default function (transportOptions) {
41
- var smoothManifestParser = createSmoothManifestParser(transportOptions);
42
- var segmentLoader = generateSegmentLoader(transportOptions);
43
- var manifestLoaderOptions = { customManifestLoader: transportOptions.manifestLoader };
44
- var manifestLoader = generateManifestLoader(manifestLoaderOptions, "text");
45
- var manifestPipeline = {
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const log_1 = require("../../log");
19
+ const manifest_1 = require("../../manifest");
20
+ const isobmff_1 = require("../../parsers/containers/isobmff");
21
+ const smooth_1 = require("../../parsers/manifest/smooth");
22
+ const request_1 = require("../../utils/request");
23
+ const string_parsing_1 = require("../../utils/string_parsing");
24
+ const check_isobmff_integrity_1 = require("../utils/check_isobmff_integrity");
25
+ const generate_manifest_loader_1 = require("../utils/generate_manifest_loader");
26
+ const extract_timings_infos_1 = require("./extract_timings_infos");
27
+ const is_mp4_embedded_track_1 = require("./is_mp4_embedded_track");
28
+ const isobmff_2 = require("./isobmff");
29
+ const segment_loader_1 = require("./segment_loader");
30
+ const utils_1 = require("./utils");
31
+ function default_1(transportOptions) {
32
+ const smoothManifestParser = (0, smooth_1.default)(transportOptions);
33
+ const segmentLoader = (0, segment_loader_1.default)(transportOptions);
34
+ const manifestLoaderOptions = { customManifestLoader: transportOptions.manifestLoader };
35
+ const manifestLoader = (0, generate_manifest_loader_1.default)(manifestLoaderOptions, "text");
36
+ const manifestPipeline = {
46
37
  loadManifest: manifestLoader,
47
- parseManifest: function (manifestData, parserOptions) {
38
+ parseManifest(manifestData, parserOptions) {
48
39
  var _a;
49
- var url = (_a = manifestData.url) !== null && _a !== void 0 ? _a : parserOptions.originalUrl;
50
- var manifestReceivedTime = manifestData.receivedTime, responseData = manifestData.responseData;
51
- var documentData = typeof responseData === "string" ?
40
+ const url = (_a = manifestData.url) !== null && _a !== void 0 ? _a : parserOptions.originalUrl;
41
+ const { receivedTime: manifestReceivedTime, responseData } = manifestData;
42
+ const documentData = typeof responseData === "string" ?
52
43
  new DOMParser().parseFromString(responseData, "text/xml") :
53
44
  responseData; // TODO find a way to check if Document?
54
- var parserResult = smoothManifestParser(documentData, url, manifestReceivedTime);
55
- var warnings = [];
56
- var manifest = new Manifest(parserResult, {
45
+ const parserResult = smoothManifestParser(documentData, url, manifestReceivedTime);
46
+ const warnings = [];
47
+ const manifest = new manifest_1.default(parserResult, {
57
48
  representationFilter: transportOptions.representationFilter,
58
49
  }, warnings);
59
- return { manifest: manifest, url: url, warnings: warnings };
50
+ return { manifest, url, warnings };
60
51
  },
61
52
  };
62
53
  /**
63
54
  * Export functions allowing to load and parse audio and video smooth
64
55
  * segments.
65
56
  */
66
- var audioVideoPipeline = {
57
+ const audioVideoPipeline = {
67
58
  /**
68
59
  * Load a Smooth audio/video segment.
69
60
  * @param {Object|null} wantedCdn
@@ -73,14 +64,14 @@ export default function (transportOptions) {
73
64
  * @param {Object} callbacks
74
65
  * @returns {Promise}
75
66
  */
76
- loadSegment: function (wantedCdn, context, loaderOptions, cancelSignal, callbacks) {
77
- var url = constructSegmentUrl(wantedCdn, context.segment);
67
+ loadSegment(wantedCdn, context, loaderOptions, cancelSignal, callbacks) {
68
+ const url = (0, utils_1.constructSegmentUrl)(wantedCdn, context.segment);
78
69
  return segmentLoader(url, context, loaderOptions, cancelSignal, callbacks);
79
70
  },
80
- parseSegment: function (loadedSegment, context, initTimescale) {
71
+ parseSegment(loadedSegment, context, initTimescale) {
81
72
  var _a, _b;
82
- var segment = context.segment;
83
- var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
73
+ const { segment } = context;
74
+ const { data, isChunked } = loadedSegment;
84
75
  if (data === null) {
85
76
  if (segment.isInit) {
86
77
  return { segmentType: "init",
@@ -97,10 +88,10 @@ export default function (transportOptions) {
97
88
  protectionData: [],
98
89
  appendWindow: [undefined, undefined] };
99
90
  }
100
- var responseBuffer = data instanceof Uint8Array ? data :
91
+ const responseBuffer = data instanceof Uint8Array ? data :
101
92
  new Uint8Array(data);
102
93
  if (segment.isInit) {
103
- var timescale = (_b = (_a = segment.privateInfos) === null || _a === void 0 ? void 0 : _a.smoothInitSegment) === null || _b === void 0 ? void 0 : _b.timescale;
94
+ const timescale = (_b = (_a = segment.privateInfos) === null || _a === void 0 ? void 0 : _a.smoothInitSegment) === null || _b === void 0 ? void 0 : _b.timescale;
104
95
  return { segmentType: "init",
105
96
  initializationData: data,
106
97
  initializationDataSize: data.byteLength,
@@ -109,59 +100,70 @@ export default function (transportOptions) {
109
100
  initTimescale: timescale,
110
101
  protectionData: [] };
111
102
  }
112
- var timingInfos = initTimescale !== undefined ?
113
- extractTimingsInfos(responseBuffer, isChunked, initTimescale, segment, context.isLive) :
103
+ const timingInfos = initTimescale !== undefined ?
104
+ (0, extract_timings_infos_1.default)(responseBuffer, isChunked, initTimescale, segment, context.isLive) :
114
105
  null;
115
106
  if (timingInfos === null ||
116
107
  timingInfos.chunkInfos === null ||
117
108
  timingInfos.scaledSegmentTime === undefined) {
118
109
  throw new Error("Smooth Segment without time information");
119
110
  }
120
- var nextSegments = timingInfos.nextSegments, chunkInfos = timingInfos.chunkInfos, scaledSegmentTime = timingInfos.scaledSegmentTime;
121
- var chunkData = patchSegment(responseBuffer, scaledSegmentTime);
122
- var predictedSegments = nextSegments.length > 0 ? nextSegments :
111
+ const { nextSegments, chunkInfos, scaledSegmentTime } = timingInfos;
112
+ const chunkData = (0, isobmff_2.patchSegment)(responseBuffer, scaledSegmentTime);
113
+ const predictedSegments = nextSegments.length > 0 ? nextSegments :
123
114
  undefined;
124
- return { segmentType: "media", chunkData: chunkData, chunkInfos: chunkInfos, chunkOffset: 0,
115
+ return { segmentType: "media",
116
+ chunkData,
117
+ chunkInfos,
118
+ chunkOffset: 0,
125
119
  chunkSize: chunkData.length,
126
- protectionData: [], predictedSegments: predictedSegments, appendWindow: [undefined, undefined] };
120
+ protectionData: [],
121
+ predictedSegments,
122
+ appendWindow: [undefined, undefined] };
127
123
  },
128
124
  };
129
- var textTrackPipeline = {
130
- loadSegment: function (wantedCdn, context, loaderOptions, cancelSignal, callbacks) {
131
- var segment = context.segment;
132
- var url = constructSegmentUrl(wantedCdn, segment);
125
+ const textTrackPipeline = {
126
+ loadSegment(wantedCdn, context, loaderOptions, cancelSignal, callbacks) {
127
+ const { segment } = context;
128
+ const url = (0, utils_1.constructSegmentUrl)(wantedCdn, segment);
133
129
  if (segment.isInit || url === null) {
134
130
  return Promise.resolve({ resultType: "segment-created",
135
131
  resultData: null });
136
132
  }
137
- var isMP4 = isMP4EmbeddedTrack(context.mimeType);
133
+ const isMP4 = (0, is_mp4_embedded_track_1.default)(context.mimeType);
138
134
  if (!isMP4) {
139
- return request({ url: url, responseType: "text",
140
- timeout: loaderOptions.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress })
141
- .then(function (data) { return ({ resultType: "segment-loaded",
142
- resultData: data }); });
135
+ return (0, request_1.default)({ url,
136
+ responseType: "text",
137
+ timeout: loaderOptions.timeout,
138
+ cancelSignal,
139
+ onProgress: callbacks.onProgress })
140
+ .then((data) => ({ resultType: "segment-loaded",
141
+ resultData: data }));
143
142
  }
144
143
  else {
145
- return request({ url: url, responseType: "arraybuffer",
146
- timeout: loaderOptions.timeout, cancelSignal: cancelSignal, onProgress: callbacks.onProgress })
147
- .then(function (data) {
144
+ return (0, request_1.default)({ url,
145
+ responseType: "arraybuffer",
146
+ timeout: loaderOptions.timeout,
147
+ cancelSignal,
148
+ onProgress: callbacks.onProgress })
149
+ .then((data) => {
148
150
  if (transportOptions.checkMediaSegmentIntegrity !== true) {
149
151
  return { resultType: "segment-loaded",
150
152
  resultData: data };
151
153
  }
152
- var dataU8 = new Uint8Array(data.responseData);
153
- checkISOBMFFIntegrity(dataU8, context.segment.isInit);
154
+ const dataU8 = new Uint8Array(data.responseData);
155
+ (0, check_isobmff_integrity_1.default)(dataU8, context.segment.isInit);
154
156
  return { resultType: "segment-loaded",
155
- resultData: __assign(__assign({}, data), { responseData: dataU8 }) };
157
+ resultData: Object.assign(Object.assign({}, data), { responseData: dataU8 }) };
156
158
  });
157
159
  }
158
160
  },
159
- parseSegment: function (loadedSegment, context, initTimescale) {
161
+ parseSegment(loadedSegment, context, initTimescale) {
160
162
  var _a;
161
- var segment = context.segment, language = context.language, _b = context.mimeType, mimeType = _b === void 0 ? "" : _b, _c = context.codecs, codecs = _c === void 0 ? "" : _c;
162
- var isMP4 = isMP4EmbeddedTrack(context.mimeType);
163
- var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
164
- var chunkSize;
163
+ const { segment, language, mimeType = "", codecs = "" } = context;
164
+ const isMP4 = (0, is_mp4_embedded_track_1.default)(context.mimeType);
165
+ const { data, isChunked } = loadedSegment;
166
+ let chunkSize;
165
167
  if (segment.isInit) { // text init segment has no use in HSS
166
168
  return { segmentType: "init",
167
169
  initializationData: null,
@@ -178,30 +180,30 @@ export default function (transportOptions) {
178
180
  protectionData: [],
179
181
  appendWindow: [undefined, undefined] };
180
182
  }
181
- var nextSegments;
182
- var chunkInfos = null;
183
- var segmentStart;
184
- var segmentEnd;
185
- var _sdData;
186
- var _sdType;
183
+ let nextSegments;
184
+ let chunkInfos = null;
185
+ let segmentStart;
186
+ let segmentEnd;
187
+ let _sdData;
188
+ let _sdType;
187
189
  if (isMP4) {
188
- var chunkBytes = void 0;
190
+ let chunkBytes;
189
191
  if (typeof data === "string") {
190
- chunkBytes = strToUtf8(data);
192
+ chunkBytes = (0, string_parsing_1.strToUtf8)(data);
191
193
  }
192
194
  else {
193
195
  chunkBytes = data instanceof Uint8Array ? data :
194
196
  new Uint8Array(data);
195
197
  }
196
198
  chunkSize = chunkBytes.length;
197
- var timingInfos = initTimescale !== undefined ?
198
- extractTimingsInfos(chunkBytes, isChunked, initTimescale, segment, context.isLive) :
199
+ const timingInfos = initTimescale !== undefined ?
200
+ (0, extract_timings_infos_1.default)(chunkBytes, isChunked, initTimescale, segment, context.isLive) :
199
201
  null;
200
202
  nextSegments = timingInfos === null || timingInfos === void 0 ? void 0 : timingInfos.nextSegments;
201
203
  chunkInfos = (_a = timingInfos === null || timingInfos === void 0 ? void 0 : timingInfos.chunkInfos) !== null && _a !== void 0 ? _a : null;
202
204
  if (chunkInfos === null) {
203
205
  if (isChunked) {
204
- log.warn("Smooth: Unavailable time data for current text track.");
206
+ log_1.default.warn("Smooth: Unavailable time data for current text track.");
205
207
  }
206
208
  else {
207
209
  segmentStart = segment.time;
@@ -214,7 +216,7 @@ export default function (transportOptions) {
214
216
  chunkInfos.time + chunkInfos.duration :
215
217
  segment.end;
216
218
  }
217
- var lcCodec = codecs.toLowerCase();
219
+ const lcCodec = codecs.toLowerCase();
218
220
  if (mimeType === "application/ttml+xml+mp4" ||
219
221
  lcCodec === "stpp" ||
220
222
  lcCodec === "stpp.ttml.im1t") {
@@ -224,21 +226,21 @@ export default function (transportOptions) {
224
226
  _sdType = "vtt";
225
227
  }
226
228
  else {
227
- throw new Error("could not find a text-track parser for the type ".concat(mimeType));
229
+ throw new Error(`could not find a text-track parser for the type ${mimeType}`);
228
230
  }
229
- var mdat = getMDAT(chunkBytes);
231
+ const mdat = (0, isobmff_1.getMDAT)(chunkBytes);
230
232
  _sdData = mdat === null ? "" :
231
- utf8ToStr(mdat);
233
+ (0, string_parsing_1.utf8ToStr)(mdat);
232
234
  }
233
235
  else { // not MP4
234
236
  segmentStart = segment.time;
235
237
  segmentEnd = segment.end;
236
- var chunkString = void 0;
238
+ let chunkString;
237
239
  if (typeof data !== "string") {
238
- var bytesData = data instanceof Uint8Array ? data :
240
+ const bytesData = data instanceof Uint8Array ? data :
239
241
  new Uint8Array(data);
240
242
  chunkSize = bytesData.length;
241
- chunkString = utf8ToStr(bytesData);
243
+ chunkString = (0, string_parsing_1.utf8ToStr)(bytesData);
242
244
  }
243
245
  else {
244
246
  chunkString = data;
@@ -256,25 +258,32 @@ export default function (transportOptions) {
256
258
  break;
257
259
  }
258
260
  if (_sdType === undefined) {
259
- var lcCodec = codecs.toLowerCase();
261
+ const lcCodec = codecs.toLowerCase();
260
262
  if (lcCodec === "srt") {
261
263
  _sdType = "srt";
262
264
  }
263
265
  else {
264
- throw new Error("could not find a text-track parser for the type ".concat(mimeType));
266
+ throw new Error(`could not find a text-track parser for the type ${mimeType}`);
265
267
  }
266
268
  }
267
269
  _sdData = chunkString;
268
270
  }
269
- var predictedSegments = Array.isArray(nextSegments) &&
271
+ const predictedSegments = Array.isArray(nextSegments) &&
270
272
  nextSegments.length > 0 ? nextSegments :
271
273
  undefined;
272
- var chunkOffset = segmentStart !== null && segmentStart !== void 0 ? segmentStart : 0;
274
+ const chunkOffset = segmentStart !== null && segmentStart !== void 0 ? segmentStart : 0;
273
275
  return { segmentType: "media",
274
276
  chunkData: { type: _sdType,
275
277
  data: _sdData,
276
278
  start: segmentStart,
277
- end: segmentEnd, language: language }, chunkSize: chunkSize, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: [], predictedSegments: predictedSegments, appendWindow: [undefined, undefined] };
279
+ end: segmentEnd,
280
+ language },
281
+ chunkSize,
282
+ chunkInfos,
283
+ chunkOffset,
284
+ protectionData: [],
285
+ predictedSegments,
286
+ appendWindow: [undefined, undefined] };
278
287
  },
279
288
  };
280
289
  return { manifest: manifestPipeline,
@@ -282,3 +291,4 @@ export default function (transportOptions) {
282
291
  video: audioVideoPipeline,
283
292
  text: textTrackPipeline };
284
293
  }
294
+ exports.default = default_1;
@@ -20,8 +20,8 @@ import { ISegmentContext, ISegmentLoaderCallbacks, ISegmentLoaderOptions, ISegme
20
20
  * Defines the url for the request, load the right loader (custom/default
21
21
  * one).
22
22
  */
23
- declare const generateSegmentLoader: ({ checkMediaSegmentIntegrity, customSegmentLoader, }: {
23
+ declare const generateSegmentLoader: ({ checkMediaSegmentIntegrity, segmentLoader, }: {
24
24
  checkMediaSegmentIntegrity?: boolean | undefined;
25
- customSegmentLoader?: ICustomSegmentLoader | undefined;
25
+ segmentLoader?: ICustomSegmentLoader | undefined;
26
26
  }) => (url: string | null, context: ISegmentContext, loaderOptions: ISegmentLoaderOptions, cancelSignal: CancellationSignal, callbacks: ISegmentLoaderCallbacks<Uint8Array | ArrayBuffer | null>) => Promise<ISegmentLoaderResultSegmentLoaded<Uint8Array | ArrayBuffer | null> | ISegmentLoaderResultSegmentCreated<Uint8Array | ArrayBuffer | null>>;
27
27
  export default generateSegmentLoader;