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,12 +14,13 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { getMDHDTimescale, getSegmentsFromSidx, } from "../../parsers/containers/isobmff";
17
- import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
18
- import takeFirstSet from "../../utils/take_first_set";
19
- import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
20
- import inferSegmentContainer from "../utils/infer_segment_container";
21
- import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../utils/parse_text_track";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const isobmff_1 = require("../../parsers/containers/isobmff");
19
+ const string_parsing_1 = require("../../utils/string_parsing");
20
+ const take_first_set_1 = require("../../utils/take_first_set");
21
+ const get_isobmff_timing_infos_1 = require("../utils/get_isobmff_timing_infos");
22
+ const infer_segment_container_1 = require("../utils/infer_segment_container");
23
+ const parse_text_track_1 = require("../utils/parse_text_track");
22
24
  /**
23
25
  * Parse TextTrack data when it is embedded in an ISOBMFF file.
24
26
  *
@@ -39,13 +41,13 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
39
41
  * @returns {Object}
40
42
  */
41
43
  function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale, __priv_patchLastSegmentInSidx) {
42
- var segment = context.segment;
43
- var isInit = segment.isInit, indexRange = segment.indexRange;
44
- var chunkBytes = typeof data === "string" ? strToUtf8(data) :
44
+ const { segment } = context;
45
+ const { isInit, indexRange } = segment;
46
+ const chunkBytes = typeof data === "string" ? (0, string_parsing_1.strToUtf8)(data) :
45
47
  data instanceof Uint8Array ? data :
46
48
  new Uint8Array(data);
47
49
  if (isInit) {
48
- var segmentList = getSegmentsFromSidx(chunkBytes, Array.isArray(indexRange) ? indexRange[0] :
50
+ const segmentList = (0, isobmff_1.getSegmentsFromSidx)(chunkBytes, Array.isArray(indexRange) ? indexRange[0] :
49
51
  0);
50
52
  // This is a very specific handling for streams we know have a very
51
53
  // specific problem at Canal+: The last reference gives a truncated
@@ -57,12 +59,12 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale,
57
59
  if (__priv_patchLastSegmentInSidx === true &&
58
60
  segmentList !== null &&
59
61
  segmentList.length > 0) {
60
- var lastSegment = segmentList[segmentList.length - 1];
62
+ const lastSegment = segmentList[segmentList.length - 1];
61
63
  if (Array.isArray(lastSegment.range)) {
62
64
  lastSegment.range[1] = Infinity;
63
65
  }
64
66
  }
65
- var mdhdTimescale = getMDHDTimescale(chunkBytes);
67
+ const mdhdTimescale = (0, isobmff_1.getMDHDTimescale)(chunkBytes);
66
68
  return { segmentType: "init",
67
69
  initializationData: null,
68
70
  initializationDataSize: 0,
@@ -70,10 +72,15 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale,
70
72
  initTimescale: mdhdTimescale,
71
73
  segmentList: segmentList !== null && segmentList !== void 0 ? segmentList : undefined };
72
74
  }
73
- var chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
74
- var chunkData = getISOBMFFEmbeddedTextTrackData(context, chunkBytes, chunkInfos, isChunked);
75
- var chunkOffset = takeFirstSet(segment.timestampOffset, 0);
76
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: [],
75
+ const chunkInfos = (0, get_isobmff_timing_infos_1.default)(chunkBytes, isChunked, segment, initTimescale);
76
+ const chunkData = (0, parse_text_track_1.getISOBMFFEmbeddedTextTrackData)(context, chunkBytes, chunkInfos, isChunked);
77
+ const chunkOffset = (0, take_first_set_1.default)(segment.timestampOffset, 0);
78
+ return { segmentType: "media",
79
+ chunkData,
80
+ chunkSize: chunkBytes.length,
81
+ chunkInfos,
82
+ chunkOffset,
83
+ protectionData: [],
77
84
  appendWindow: [context.periodStart, context.periodEnd] };
78
85
  }
79
86
  /**
@@ -88,8 +95,8 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale,
88
95
  * @returns {Object}
89
96
  */
90
97
  function parsePlainTextTrack(data, isChunked, context) {
91
- var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
92
- var _a = segment.timestampOffset, timestampOffset = _a === void 0 ? 0 : _a;
98
+ const { periodStart, periodEnd, segment } = context;
99
+ const { timestampOffset = 0 } = segment;
93
100
  if (segment.isInit) {
94
101
  return { segmentType: "init",
95
102
  initializationData: null,
@@ -97,19 +104,22 @@ function parsePlainTextTrack(data, isChunked, context) {
97
104
  protectionData: [],
98
105
  initTimescale: undefined };
99
106
  }
100
- var textTrackData;
101
- var chunkSize;
107
+ let textTrackData;
108
+ let chunkSize;
102
109
  if (typeof data !== "string") {
103
- var bytesData = data instanceof Uint8Array ? data :
110
+ const bytesData = data instanceof Uint8Array ? data :
104
111
  new Uint8Array(data);
105
- textTrackData = utf8ToStr(bytesData);
112
+ textTrackData = (0, string_parsing_1.utf8ToStr)(bytesData);
106
113
  chunkSize = bytesData.length;
107
114
  }
108
115
  else {
109
116
  textTrackData = data;
110
117
  }
111
- var chunkData = getPlainTextTrackData(context, textTrackData, isChunked);
112
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkSize, chunkInfos: null,
118
+ const chunkData = (0, parse_text_track_1.getPlainTextTrackData)(context, textTrackData, isChunked);
119
+ return { segmentType: "media",
120
+ chunkData,
121
+ chunkSize,
122
+ chunkInfos: null,
113
123
  chunkOffset: timestampOffset,
114
124
  protectionData: [],
115
125
  appendWindow: [periodStart, periodEnd] };
@@ -120,8 +130,7 @@ function parsePlainTextTrack(data, isChunked, context) {
120
130
  * @param {Object} config
121
131
  * @returns {Function}
122
132
  */
123
- export default function generateTextTrackParser(_a) {
124
- var __priv_patchLastSegmentInSidx = _a.__priv_patchLastSegmentInSidx;
133
+ function generateTextTrackParser({ __priv_patchLastSegmentInSidx }) {
125
134
  /**
126
135
  * Parse TextTrack data.
127
136
  * @param {Object} loadedSegment
@@ -131,8 +140,8 @@ export default function generateTextTrackParser(_a) {
131
140
  */
132
141
  return function textTrackParser(loadedSegment, context, initTimescale) {
133
142
  var _a;
134
- var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
135
- var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
143
+ const { periodStart, periodEnd, segment } = context;
144
+ const { data, isChunked } = loadedSegment;
136
145
  if (data === null) {
137
146
  // No data, just return an empty placeholder object
138
147
  return segment.isInit ? { segmentType: "init",
@@ -148,7 +157,7 @@ export default function generateTextTrackParser(_a) {
148
157
  protectionData: [],
149
158
  appendWindow: [periodStart, periodEnd] };
150
159
  }
151
- var containerType = inferSegmentContainer(context.type, context.mimeType);
160
+ const containerType = (0, infer_segment_container_1.default)(context.type, context.mimeType);
152
161
  // TODO take a look to check if this is an ISOBMFF/webm when undefined?
153
162
  if (containerType === "webm") {
154
163
  // TODO Handle webm containers
@@ -162,3 +171,4 @@ export default function generateTextTrackParser(_a) {
162
171
  }
163
172
  };
164
173
  }
174
+ exports.default = generateTextTrackParser;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,4 +14,19 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- export * from "./types";
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
29
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ __exportStar(require("./types"), exports);
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,5 +14,6 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import LocalManifestPipelines from "./pipelines";
17
- export default LocalManifestPipelines;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const pipelines_1 = require("./pipelines");
19
+ exports.default = pipelines_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,53 +14,55 @@
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 Manifest from "../../manifest";
21
- import parseLocalManifest from "../../parsers/manifest/local";
22
- import isNullOrUndefined from "../../utils/is_null_or_undefined";
23
- import callCustomManifestLoader from "../utils/call_custom_manifest_loader";
24
- import segmentLoader from "./segment_loader";
25
- import segmentParser from "./segment_parser";
26
- import textTrackParser from "./text_parser";
22
+ const manifest_1 = require("../../manifest");
23
+ const local_1 = require("../../parsers/manifest/local");
24
+ const is_null_or_undefined_1 = require("../../utils/is_null_or_undefined");
25
+ const call_custom_manifest_loader_1 = require("../utils/call_custom_manifest_loader");
26
+ const segment_loader_1 = require("./segment_loader");
27
+ const segment_parser_1 = require("./segment_parser");
28
+ const text_parser_1 = require("./text_parser");
27
29
  /**
28
30
  * Returns pipelines used for local Manifest streaming.
29
31
  * @param {Object} transportOptions
30
32
  * @returns {Object}
31
33
  */
32
- export default function getLocalManifestPipelines(transportOptions) {
33
- var customManifestLoader = transportOptions.manifestLoader;
34
- var manifestPipeline = {
35
- loadManifest: function (url, loaderOptions, cancelSignal) {
36
- if (isNullOrUndefined(customManifestLoader)) {
34
+ function getLocalManifestPipelines(transportOptions) {
35
+ const customManifestLoader = transportOptions.manifestLoader;
36
+ const manifestPipeline = {
37
+ loadManifest(url, loaderOptions, cancelSignal) {
38
+ if ((0, is_null_or_undefined_1.default)(customManifestLoader)) {
37
39
  throw new Error("A local Manifest is not loadable through regular HTTP(S) " +
38
40
  " calls. You have to set a `manifestLoader` when calling " +
39
41
  "`loadVideo`");
40
42
  }
41
- return callCustomManifestLoader(customManifestLoader, function () {
43
+ return (0, call_custom_manifest_loader_1.default)(customManifestLoader, () => {
42
44
  throw new Error("Cannot fallback from the `manifestLoader` of a " +
43
45
  "`local` transport");
44
46
  })(url, loaderOptions, cancelSignal);
45
47
  },
46
- parseManifest: function (manifestData) {
47
- var loadedManifest = manifestData.responseData;
48
+ parseManifest(manifestData) {
49
+ const loadedManifest = manifestData.responseData;
48
50
  if (typeof manifestData !== "object") {
49
51
  throw new Error("Wrong format for the manifest data");
50
52
  }
51
- var parsed = parseLocalManifest(loadedManifest);
52
- var warnings = [];
53
- var manifest = new Manifest(parsed, transportOptions, warnings);
54
- return { manifest: manifest, url: undefined, warnings: warnings };
53
+ const parsed = (0, local_1.default)(loadedManifest);
54
+ const warnings = [];
55
+ const manifest = new manifest_1.default(parsed, transportOptions, warnings);
56
+ return { manifest, url: undefined, warnings };
55
57
  },
56
58
  };
57
- var segmentPipeline = { loadSegment: segmentLoader,
58
- parseSegment: segmentParser };
59
- var textTrackPipeline = { loadSegment: segmentLoader,
60
- parseSegment: textTrackParser };
59
+ const segmentPipeline = { loadSegment: segment_loader_1.default,
60
+ parseSegment: segment_parser_1.default };
61
+ const textTrackPipeline = { loadSegment: segment_loader_1.default,
62
+ parseSegment: text_parser_1.default };
61
63
  return { manifest: manifestPipeline,
62
64
  audio: segmentPipeline,
63
65
  video: segmentPipeline,
64
66
  text: textTrackPipeline };
65
67
  }
68
+ exports.default = getLocalManifestPipelines;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,23 +14,24 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { CustomLoaderError } from "../../errors";
17
- import createCancellablePromise from "../../utils/create_cancellable_promise";
18
- import isNullOrUndefined from "../../utils/is_null_or_undefined";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const errors_1 = require("../../errors");
19
+ const create_cancellable_promise_1 = require("../../utils/create_cancellable_promise");
20
+ const is_null_or_undefined_1 = require("../../utils/is_null_or_undefined");
19
21
  /**
20
22
  * @param {Function} customSegmentLoader
21
23
  * @param {Object} cancelSignal
22
24
  * @returns {Promise}
23
25
  */
24
26
  function loadInitSegment(customSegmentLoader, cancelSignal) {
25
- return createCancellablePromise(cancelSignal, function (res, rej) {
27
+ return (0, create_cancellable_promise_1.default)(cancelSignal, (res, rej) => {
26
28
  /** `true` when the custom segmentLoader should not be active anymore. */
27
- var hasFinished = false;
29
+ let hasFinished = false;
28
30
  /**
29
31
  * Callback triggered when the custom segment loader has a response.
30
32
  * @param {Object} _args
31
33
  */
32
- var resolve = function (_args) {
34
+ const resolve = (_args) => {
33
35
  if (hasFinished || cancelSignal.isCancelled()) {
34
36
  return;
35
37
  }
@@ -43,16 +45,16 @@ function loadInitSegment(customSegmentLoader, cancelSignal) {
43
45
  * Callback triggered when the custom segment loader fails
44
46
  * @param {*} err - The corresponding error encountered
45
47
  */
46
- var reject = function (err) {
48
+ const reject = (err) => {
47
49
  if (hasFinished || cancelSignal.isCancelled()) {
48
50
  return;
49
51
  }
50
52
  hasFinished = true;
51
53
  rej(err);
52
54
  };
53
- var abort = customSegmentLoader({ resolve: resolve, reject: reject });
55
+ const abort = customSegmentLoader({ resolve, reject });
54
56
  /** The logic to run when this loader is cancelled while pending. */
55
- return function () {
57
+ return () => {
56
58
  if (hasFinished) {
57
59
  return;
58
60
  }
@@ -70,14 +72,14 @@ function loadInitSegment(customSegmentLoader, cancelSignal) {
70
72
  * @returns {Promise.<Object>}
71
73
  */
72
74
  function loadSegment(segment, customSegmentLoader, cancelSignal) {
73
- return createCancellablePromise(cancelSignal, function (res, rej) {
75
+ return (0, create_cancellable_promise_1.default)(cancelSignal, (res, rej) => {
74
76
  /** `true` when the custom segmentLoader should not be active anymore. */
75
- var hasFinished = false;
77
+ let hasFinished = false;
76
78
  /**
77
79
  * Callback triggered when the custom segment loader has a response.
78
80
  * @param {Object} _args
79
81
  */
80
- var resolve = function (_args) {
82
+ const resolve = (_args) => {
81
83
  if (hasFinished || cancelSignal.isCancelled()) {
82
84
  return;
83
85
  }
@@ -91,22 +93,22 @@ function loadSegment(segment, customSegmentLoader, cancelSignal) {
91
93
  * Callback triggered when the custom segment loader fails
92
94
  * @param {*} err - The corresponding error encountered
93
95
  */
94
- var reject = function (err) {
96
+ const reject = (err) => {
95
97
  var _a, _b;
96
98
  if (hasFinished || cancelSignal.isCancelled()) {
97
99
  return;
98
100
  }
99
101
  hasFinished = true;
100
102
  // Format error and send it
101
- var castedErr = err;
102
- var message = (_a = castedErr === null || castedErr === void 0 ? void 0 : castedErr.message) !== null && _a !== void 0 ? _a : "Unknown error when fetching a local segment through a " +
103
+ const castedErr = err;
104
+ const message = (_a = castedErr === null || castedErr === void 0 ? void 0 : castedErr.message) !== null && _a !== void 0 ? _a : "Unknown error when fetching a local segment through a " +
103
105
  "custom segmentLoader.";
104
- var emittedErr = new CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
106
+ const emittedErr = new errors_1.CustomLoaderError(message, (_b = castedErr === null || castedErr === void 0 ? void 0 : castedErr.canRetry) !== null && _b !== void 0 ? _b : false, castedErr === null || castedErr === void 0 ? void 0 : castedErr.xhr);
105
107
  rej(emittedErr);
106
108
  };
107
- var abort = customSegmentLoader(segment, { resolve: resolve, reject: reject });
109
+ const abort = customSegmentLoader(segment, { resolve, reject });
108
110
  /** The logic to run when this loader is cancelled while pending. */
109
- return function () {
111
+ return () => {
110
112
  if (hasFinished) {
111
113
  return;
112
114
  }
@@ -125,20 +127,21 @@ function loadSegment(segment, customSegmentLoader, cancelSignal) {
125
127
  * @param {Object} _callbacks
126
128
  * @returns {Promise}
127
129
  */
128
- export default function segmentLoader(_wantedCdn, content, _loaderOptions, // TODO use timeout?
130
+ function segmentLoader(_wantedCdn, content, _loaderOptions, // TODO use timeout?
129
131
  cancelSignal, _callbacks) {
130
- var segment = content.segment;
131
- var privateInfos = segment.privateInfos;
132
+ const { segment } = content;
133
+ const privateInfos = segment.privateInfos;
132
134
  if (segment.isInit) {
133
135
  if (privateInfos === undefined ||
134
- isNullOrUndefined(privateInfos.localManifestInitSegment)) {
136
+ (0, is_null_or_undefined_1.default)(privateInfos.localManifestInitSegment)) {
135
137
  throw new Error("Segment is not a local Manifest segment");
136
138
  }
137
139
  return loadInitSegment(privateInfos.localManifestInitSegment.load, cancelSignal);
138
140
  }
139
141
  if (privateInfos === undefined ||
140
- isNullOrUndefined(privateInfos.localManifestSegment)) {
142
+ (0, is_null_or_undefined_1.default)(privateInfos.localManifestSegment)) {
141
143
  throw new Error("Segment is not an local Manifest segment");
142
144
  }
143
145
  return loadSegment(privateInfos.localManifestSegment.segment, privateInfos.localManifestSegment.load, cancelSignal);
144
146
  }
147
+ exports.default = segmentLoader;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,17 +14,18 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { getMDHDTimescale, takePSSHOut, } from "../../parsers/containers/isobmff";
17
- import { getKeyIdFromInitSegment } from "../../parsers/containers/isobmff/utils";
18
- import { getTimeCodeScale } from "../../parsers/containers/matroska";
19
- import takeFirstSet from "../../utils/take_first_set";
20
- import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
21
- import inferSegmentContainer from "../utils/infer_segment_container";
22
- export default function segmentParser(loadedSegment, context, initTimescale) {
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const isobmff_1 = require("../../parsers/containers/isobmff");
19
+ const utils_1 = require("../../parsers/containers/isobmff/utils");
20
+ const matroska_1 = require("../../parsers/containers/matroska");
21
+ const take_first_set_1 = require("../../utils/take_first_set");
22
+ const get_isobmff_timing_infos_1 = require("../utils/get_isobmff_timing_infos");
23
+ const infer_segment_container_1 = require("../utils/infer_segment_container");
24
+ function segmentParser(loadedSegment, context, initTimescale) {
23
25
  var _a;
24
- var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
25
- var data = loadedSegment.data;
26
- var appendWindow = [periodStart, periodEnd];
26
+ const { segment, periodStart, periodEnd } = context;
27
+ const { data } = loadedSegment;
28
+ const appendWindow = [periodStart, periodEnd];
27
29
  if (data === null) {
28
30
  if (segment.isInit) {
29
31
  return { segmentType: "init",
@@ -37,34 +39,43 @@ export default function segmentParser(loadedSegment, context, initTimescale) {
37
39
  chunkSize: 0,
38
40
  chunkInfos: null,
39
41
  chunkOffset: 0,
40
- protectionData: [], appendWindow: appendWindow };
42
+ protectionData: [],
43
+ appendWindow };
41
44
  }
42
- var chunkData = new Uint8Array(data);
43
- var containerType = inferSegmentContainer(context.type, context.mimeType);
45
+ const chunkData = new Uint8Array(data);
46
+ const containerType = (0, infer_segment_container_1.default)(context.type, context.mimeType);
44
47
  // TODO take a look to check if this is an ISOBMFF/webm?
45
- var seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
46
- var protectionData = [];
48
+ const seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
49
+ const protectionData = [];
47
50
  if (seemsToBeMP4) {
48
- var psshInfo = takePSSHOut(chunkData);
49
- var keyId = void 0;
51
+ const psshInfo = (0, isobmff_1.takePSSHOut)(chunkData);
52
+ let keyId;
50
53
  if (segment.isInit) {
51
- keyId = (_a = getKeyIdFromInitSegment(chunkData)) !== null && _a !== void 0 ? _a : undefined;
54
+ keyId = (_a = (0, utils_1.getKeyIdFromInitSegment)(chunkData)) !== null && _a !== void 0 ? _a : undefined;
52
55
  }
53
56
  if (psshInfo.length > 0 || keyId !== undefined) {
54
- protectionData.push({ initDataType: "cenc", keyId: keyId, initData: psshInfo });
57
+ protectionData.push({ initDataType: "cenc", keyId, initData: psshInfo });
55
58
  }
56
59
  }
57
60
  if (segment.isInit) {
58
- var timescale = containerType === "webm" ? getTimeCodeScale(chunkData, 0) :
61
+ const timescale = containerType === "webm" ? (0, matroska_1.getTimeCodeScale)(chunkData, 0) :
59
62
  // assume ISOBMFF-compliance
60
- getMDHDTimescale(chunkData);
63
+ (0, isobmff_1.getMDHDTimescale)(chunkData);
61
64
  return { segmentType: "init",
62
65
  initializationData: chunkData,
63
66
  initializationDataSize: 0,
64
- initTimescale: timescale !== null && timescale !== void 0 ? timescale : undefined, protectionData: protectionData };
67
+ initTimescale: timescale !== null && timescale !== void 0 ? timescale : undefined,
68
+ protectionData };
65
69
  }
66
- var chunkInfos = seemsToBeMP4 ? getISOBMFFTimingInfos(chunkData, false, segment, initTimescale) :
70
+ const chunkInfos = seemsToBeMP4 ? (0, get_isobmff_timing_infos_1.default)(chunkData, false, segment, initTimescale) :
67
71
  null; // TODO extract time info from webm
68
- var chunkOffset = takeFirstSet(segment.timestampOffset, 0);
69
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkData.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: protectionData, appendWindow: appendWindow };
72
+ const chunkOffset = (0, take_first_set_1.default)(segment.timestampOffset, 0);
73
+ return { segmentType: "media",
74
+ chunkData,
75
+ chunkSize: chunkData.length,
76
+ chunkInfos,
77
+ chunkOffset,
78
+ protectionData,
79
+ appendWindow };
70
80
  }
81
+ exports.default = segmentParser;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,12 +14,13 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import { getMDHDTimescale } from "../../parsers/containers/isobmff";
17
- import { strToUtf8, utf8ToStr, } from "../../utils/string_parsing";
18
- import takeFirstSet from "../../utils/take_first_set";
19
- import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
20
- import inferSegmentContainer from "../utils/infer_segment_container";
21
- import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../utils/parse_text_track";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const isobmff_1 = require("../../parsers/containers/isobmff");
19
+ const string_parsing_1 = require("../../utils/string_parsing");
20
+ const take_first_set_1 = require("../../utils/take_first_set");
21
+ const get_isobmff_timing_infos_1 = require("../utils/get_isobmff_timing_infos");
22
+ const infer_segment_container_1 = require("../utils/infer_segment_container");
23
+ const parse_text_track_1 = require("../utils/parse_text_track");
22
24
  /**
23
25
  * Parse TextTrack data when it is embedded in an ISOBMFF file.
24
26
  * @param {ArrayBuffer|Uint8Array|string} data - The segment data.
@@ -35,22 +37,27 @@ import { getISOBMFFEmbeddedTextTrackData, getPlainTextTrackData, } from "../util
35
37
  * @returns {Object}
36
38
  */
37
39
  function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale) {
38
- var periodStart = context.periodStart, periodEnd = context.periodEnd, segment = context.segment;
39
- var chunkBytes = typeof data === "string" ? strToUtf8(data) :
40
+ const { periodStart, periodEnd, segment } = context;
41
+ const chunkBytes = typeof data === "string" ? (0, string_parsing_1.strToUtf8)(data) :
40
42
  data instanceof Uint8Array ? data :
41
43
  new Uint8Array(data);
42
44
  if (segment.isInit) {
43
- var mdhdTimescale = getMDHDTimescale(chunkBytes);
45
+ const mdhdTimescale = (0, isobmff_1.getMDHDTimescale)(chunkBytes);
44
46
  return { segmentType: "init",
45
47
  initializationData: null,
46
48
  initializationDataSize: 0,
47
49
  initTimescale: mdhdTimescale,
48
50
  protectionData: [] };
49
51
  }
50
- var chunkInfos = getISOBMFFTimingInfos(chunkBytes, isChunked, segment, initTimescale);
51
- var chunkData = getISOBMFFEmbeddedTextTrackData(context, chunkBytes, chunkInfos, isChunked);
52
- var chunkOffset = takeFirstSet(segment.timestampOffset, 0);
53
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkBytes.length, chunkInfos: chunkInfos, chunkOffset: chunkOffset, protectionData: [],
52
+ const chunkInfos = (0, get_isobmff_timing_infos_1.default)(chunkBytes, isChunked, segment, initTimescale);
53
+ const chunkData = (0, parse_text_track_1.getISOBMFFEmbeddedTextTrackData)(context, chunkBytes, chunkInfos, isChunked);
54
+ const chunkOffset = (0, take_first_set_1.default)(segment.timestampOffset, 0);
55
+ return { segmentType: "media",
56
+ chunkData,
57
+ chunkSize: chunkBytes.length,
58
+ chunkInfos,
59
+ chunkOffset,
60
+ protectionData: [],
54
61
  appendWindow: [periodStart, periodEnd] };
55
62
  }
56
63
  /**
@@ -64,7 +71,7 @@ function parseISOBMFFEmbeddedTextTrack(data, isChunked, context, initTimescale)
64
71
  * @returns {Object}
65
72
  */
66
73
  function parsePlainTextTrack(data, isChunked, context) {
67
- var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
74
+ const { segment, periodStart, periodEnd } = context;
68
75
  if (segment.isInit) {
69
76
  return { segmentType: "init",
70
77
  initializationData: null,
@@ -72,20 +79,25 @@ function parsePlainTextTrack(data, isChunked, context) {
72
79
  initTimescale: undefined,
73
80
  protectionData: [] };
74
81
  }
75
- var textTrackData;
76
- var chunkSize;
82
+ let textTrackData;
83
+ let chunkSize;
77
84
  if (typeof data !== "string") {
78
- var bytesData = data instanceof Uint8Array ? data :
85
+ const bytesData = data instanceof Uint8Array ? data :
79
86
  new Uint8Array(data);
80
- textTrackData = utf8ToStr(bytesData);
87
+ textTrackData = (0, string_parsing_1.utf8ToStr)(bytesData);
81
88
  chunkSize = bytesData.length;
82
89
  }
83
90
  else {
84
91
  textTrackData = data;
85
92
  }
86
- var chunkData = getPlainTextTrackData(context, textTrackData, isChunked);
87
- var chunkOffset = takeFirstSet(segment.timestampOffset, 0);
88
- return { segmentType: "media", chunkData: chunkData, chunkSize: chunkSize, chunkInfos: null, chunkOffset: chunkOffset, protectionData: [],
93
+ const chunkData = (0, parse_text_track_1.getPlainTextTrackData)(context, textTrackData, isChunked);
94
+ const chunkOffset = (0, take_first_set_1.default)(segment.timestampOffset, 0);
95
+ return { segmentType: "media",
96
+ chunkData,
97
+ chunkSize,
98
+ chunkInfos: null,
99
+ chunkOffset,
100
+ protectionData: [],
89
101
  appendWindow: [periodStart, periodEnd] };
90
102
  }
91
103
  /**
@@ -95,10 +107,10 @@ function parsePlainTextTrack(data, isChunked, context) {
95
107
  * @param {number | undefined} initTimescale
96
108
  * @returns {Object}
97
109
  */
98
- export default function textTrackParser(loadedSegment, context, initTimescale) {
110
+ function textTrackParser(loadedSegment, context, initTimescale) {
99
111
  var _a;
100
- var segment = context.segment, periodStart = context.periodStart, periodEnd = context.periodEnd;
101
- var data = loadedSegment.data, isChunked = loadedSegment.isChunked;
112
+ const { segment, periodStart, periodEnd } = context;
113
+ const { data, isChunked } = loadedSegment;
102
114
  if (data === null) {
103
115
  // No data, just return an empty placeholder object
104
116
  if (segment.isInit) {
@@ -108,14 +120,16 @@ export default function textTrackParser(loadedSegment, context, initTimescale) {
108
120
  protectionData: [],
109
121
  initTimescale: undefined };
110
122
  }
111
- var chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
123
+ const chunkOffset = (_a = segment.timestampOffset) !== null && _a !== void 0 ? _a : 0;
112
124
  return { segmentType: "media",
113
125
  chunkData: null,
114
126
  chunkSize: 0,
115
- chunkInfos: null, chunkOffset: chunkOffset, protectionData: [],
127
+ chunkInfos: null,
128
+ chunkOffset,
129
+ protectionData: [],
116
130
  appendWindow: [periodStart, periodEnd] };
117
131
  }
118
- var containerType = inferSegmentContainer(context.type, context.mimeType);
132
+ const containerType = (0, infer_segment_container_1.default)(context.type, context.mimeType);
119
133
  // TODO take a look to check if this is an ISOBMFF/webm when undefined?
120
134
  if (containerType === "webm") {
121
135
  // TODO Handle webm containers
@@ -128,3 +142,4 @@ export default function textTrackParser(loadedSegment, context, initTimescale) {
128
142
  return parsePlainTextTrack(data, isChunked, context);
129
143
  }
130
144
  }
145
+ exports.default = textTrackParser;