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,31 +14,17 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- var __extends = (this && this.__extends) || (function () {
17
- var extendStatics = function (d, b) {
18
- extendStatics = Object.setPrototypeOf ||
19
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21
- return extendStatics(d, b);
22
- };
23
- return function (d, b) {
24
- if (typeof b !== "function" && b !== null)
25
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
26
- extendStatics(d, b);
27
- function __() { this.constructor = d; }
28
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
- };
30
- })();
31
- import { tryToChangeSourceBufferType, } from "../../../../compat";
32
- import config from "../../../../config";
33
- import log from "../../../../log";
34
- import { getLoggableSegmentId } from "../../../../manifest";
35
- import assertUnreachable from "../../../../utils/assert_unreachable";
36
- import createCancellablePromise from "../../../../utils/create_cancellable_promise";
37
- import noop from "../../../../utils/noop";
38
- import objectAssign from "../../../../utils/object_assign";
39
- import TaskCanceller, { CancellationError, } from "../../../../utils/task_canceller";
40
- import { SegmentBuffer, SegmentBufferOperation, } from "../types";
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const compat_1 = require("../../../../compat");
19
+ const config_1 = require("../../../../config");
20
+ const log_1 = require("../../../../log");
21
+ const manifest_1 = require("../../../../manifest");
22
+ const assert_unreachable_1 = require("../../../../utils/assert_unreachable");
23
+ const create_cancellable_promise_1 = require("../../../../utils/create_cancellable_promise");
24
+ const noop_1 = require("../../../../utils/noop");
25
+ const object_assign_1 = require("../../../../utils/object_assign");
26
+ const task_canceller_1 = require("../../../../utils/task_canceller");
27
+ const types_1 = require("../types");
41
28
  /**
42
29
  * Allows to push and remove new segments to a SourceBuffer in a FIFO queue (not
43
30
  * doing so can lead to browser Errors) while keeping an inventory of what has
@@ -48,53 +35,51 @@ import { SegmentBuffer, SegmentBufferOperation, } from "../types";
48
35
  *
49
36
  * @class AudioVideoSegmentBuffer
50
37
  */
51
- var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
52
- __extends(AudioVideoSegmentBuffer, _super);
38
+ class AudioVideoSegmentBuffer extends types_1.SegmentBuffer {
53
39
  /**
54
40
  * @constructor
55
41
  * @param {string} bufferType
56
42
  * @param {string} codec
57
43
  * @param {MediaSource} mediaSource
58
44
  */
59
- function AudioVideoSegmentBuffer(bufferType, codec, mediaSource) {
60
- var _this = _super.call(this) || this;
61
- log.info("AVSB: calling `mediaSource.addSourceBuffer`", codec);
62
- var sourceBuffer = mediaSource.addSourceBuffer(codec);
63
- _this._canceller = new TaskCanceller();
64
- _this.bufferType = bufferType;
65
- _this._mediaSource = mediaSource;
66
- _this._sourceBuffer = sourceBuffer;
67
- _this._queue = [];
68
- _this._pendingTask = null;
69
- _this._lastInitSegmentUniqueId = null;
70
- _this.codec = codec;
71
- _this._initSegmentsMap = new Map();
72
- var onError = _this._onPendingTaskError.bind(_this);
73
- var reCheck = _this._flush.bind(_this);
45
+ constructor(bufferType, codec, mediaSource) {
46
+ super();
47
+ log_1.default.info("AVSB: calling `mediaSource.addSourceBuffer`", codec);
48
+ const sourceBuffer = mediaSource.addSourceBuffer(codec);
49
+ this._canceller = new task_canceller_1.default();
50
+ this.bufferType = bufferType;
51
+ this._mediaSource = mediaSource;
52
+ this._sourceBuffer = sourceBuffer;
53
+ this._queue = [];
54
+ this._pendingTask = null;
55
+ this._lastInitSegmentUniqueId = null;
56
+ this.codec = codec;
57
+ this._initSegmentsMap = new Map();
58
+ const onError = this._onPendingTaskError.bind(this);
59
+ const reCheck = this._flush.bind(this);
74
60
  // Some browsers (happened with firefox 66) sometimes "forget" to send us
75
61
  // `update` or `updateend` events.
76
62
  // In that case, we're completely unable to continue the queue here and
77
63
  // stay locked in a waiting state.
78
64
  // This interval is here to check at regular intervals if the underlying
79
65
  // SourceBuffer is currently updating.
80
- var SOURCE_BUFFER_FLUSHING_INTERVAL = config.getCurrent().SOURCE_BUFFER_FLUSHING_INTERVAL;
81
- var intervalId = setInterval(reCheck, SOURCE_BUFFER_FLUSHING_INTERVAL);
82
- _this._sourceBuffer.addEventListener("error", onError);
83
- _this._sourceBuffer.addEventListener("updateend", reCheck);
84
- _this._canceller.signal.register(function () {
66
+ const { SOURCE_BUFFER_FLUSHING_INTERVAL } = config_1.default.getCurrent();
67
+ const intervalId = setInterval(reCheck, SOURCE_BUFFER_FLUSHING_INTERVAL);
68
+ this._sourceBuffer.addEventListener("error", onError);
69
+ this._sourceBuffer.addEventListener("updateend", reCheck);
70
+ this._canceller.signal.register(() => {
85
71
  clearInterval(intervalId);
86
- _this._sourceBuffer.removeEventListener("error", onError);
87
- _this._sourceBuffer.removeEventListener("updateend", reCheck);
72
+ this._sourceBuffer.removeEventListener("error", onError);
73
+ this._sourceBuffer.removeEventListener("updateend", reCheck);
88
74
  });
89
- return _this;
90
75
  }
91
- AudioVideoSegmentBuffer.prototype.declareInitSegment = function (uniqueId, initSegmentData) {
76
+ declareInitSegment(uniqueId, initSegmentData) {
92
77
  assertDataIsBufferSource(initSegmentData);
93
78
  this._initSegmentsMap.set(uniqueId, initSegmentData);
94
- };
95
- AudioVideoSegmentBuffer.prototype.freeInitSegment = function (uniqueId) {
79
+ }
80
+ freeInitSegment(uniqueId) {
96
81
  this._initSegmentsMap.delete(uniqueId);
97
- };
82
+ }
98
83
  /**
99
84
  * Push a chunk of the media segment given to the attached SourceBuffer, in a
100
85
  * FIFO queue.
@@ -122,12 +107,12 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
122
107
  * @param {Object} cancellationSignal
123
108
  * @returns {Promise}
124
109
  */
125
- AudioVideoSegmentBuffer.prototype.pushChunk = function (infos, cancellationSignal) {
110
+ pushChunk(infos, cancellationSignal) {
126
111
  assertDataIsBufferSource(infos.data.chunk);
127
- log.debug("AVSB: receiving order to push data to the SourceBuffer", this.bufferType, getLoggableSegmentId(infos.inventoryInfos));
128
- return this._addToQueue({ type: SegmentBufferOperation.Push,
112
+ log_1.default.debug("AVSB: receiving order to push data to the SourceBuffer", this.bufferType, (0, manifest_1.getLoggableSegmentId)(infos.inventoryInfos));
113
+ return this._addToQueue({ type: types_1.SegmentBufferOperation.Push,
129
114
  value: infos }, cancellationSignal);
130
- };
115
+ }
131
116
  /**
132
117
  * Remove buffered data (added to the same FIFO queue than `pushChunk`).
133
118
  * @param {number} start - start position, in seconds
@@ -135,11 +120,11 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
135
120
  * @param {Object} cancellationSignal
136
121
  * @returns {Promise}
137
122
  */
138
- AudioVideoSegmentBuffer.prototype.removeBuffer = function (start, end, cancellationSignal) {
139
- log.debug("AVSB: receiving order to remove data from the SourceBuffer", this.bufferType, start, end);
140
- return this._addToQueue({ type: SegmentBufferOperation.Remove,
141
- value: { start: start, end: end } }, cancellationSignal);
142
- };
123
+ removeBuffer(start, end, cancellationSignal) {
124
+ log_1.default.debug("AVSB: receiving order to remove data from the SourceBuffer", this.bufferType, start, end);
125
+ return this._addToQueue({ type: types_1.SegmentBufferOperation.Remove,
126
+ value: { start, end } }, cancellationSignal);
127
+ }
143
128
  /**
144
129
  * Indicate that every chunks from a Segment has been given to pushChunk so
145
130
  * far.
@@ -149,41 +134,41 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
149
134
  * @param {Object} infos
150
135
  * @returns {Promise}
151
136
  */
152
- AudioVideoSegmentBuffer.prototype.endOfSegment = function (infos, cancellationSignal) {
153
- log.debug("AVSB: receiving order for validating end of segment", this.bufferType, getLoggableSegmentId(infos));
154
- return this._addToQueue({ type: SegmentBufferOperation.EndOfSegment,
137
+ endOfSegment(infos, cancellationSignal) {
138
+ log_1.default.debug("AVSB: receiving order for validating end of segment", this.bufferType, (0, manifest_1.getLoggableSegmentId)(infos));
139
+ return this._addToQueue({ type: types_1.SegmentBufferOperation.EndOfSegment,
155
140
  value: infos }, cancellationSignal);
156
- };
141
+ }
157
142
  /**
158
143
  * Returns the currently buffered data, in a TimeRanges object.
159
144
  * @returns {TimeRanges}
160
145
  */
161
- AudioVideoSegmentBuffer.prototype.getBufferedRanges = function () {
146
+ getBufferedRanges() {
162
147
  return this._sourceBuffer.buffered;
163
- };
148
+ }
164
149
  /**
165
150
  * Returns the list of every operations that the `AudioVideoSegmentBuffer` is
166
151
  * still processing. From the one with the highest priority (like the one
167
152
  * being processed)
168
153
  * @returns {Array.<Object>}
169
154
  */
170
- AudioVideoSegmentBuffer.prototype.getPendingOperations = function () {
171
- var parseQueuedOperation = function (op) {
155
+ getPendingOperations() {
156
+ const parseQueuedOperation = (op) => {
172
157
  // Had to be written that way for TypeScript
173
158
  switch (op.type) {
174
- case SegmentBufferOperation.Push:
159
+ case types_1.SegmentBufferOperation.Push:
175
160
  return { type: op.type, value: op.value };
176
- case SegmentBufferOperation.Remove:
161
+ case types_1.SegmentBufferOperation.Remove:
177
162
  return { type: op.type, value: op.value };
178
- case SegmentBufferOperation.EndOfSegment:
163
+ case types_1.SegmentBufferOperation.EndOfSegment:
179
164
  return { type: op.type, value: op.value };
180
165
  }
181
166
  };
182
- var queued = this._queue.map(parseQueuedOperation);
167
+ const queued = this._queue.map(parseQueuedOperation);
183
168
  return this._pendingTask === null ?
184
169
  queued :
185
170
  [parseQueuedOperation(this._pendingTask)].concat(queued);
186
- };
171
+ }
187
172
  /**
188
173
  * Dispose of the resources used by this AudioVideoSegmentBuffer.
189
174
  *
@@ -191,100 +176,99 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
191
176
  * function.
192
177
  * @private
193
178
  */
194
- AudioVideoSegmentBuffer.prototype.dispose = function () {
179
+ dispose() {
195
180
  this._canceller.cancel();
196
181
  if (this._pendingTask !== null) {
197
- this._pendingTask.reject(new CancellationError());
182
+ this._pendingTask.reject(new task_canceller_1.CancellationError());
198
183
  this._pendingTask = null;
199
184
  }
200
185
  while (this._queue.length > 0) {
201
- var nextElement = this._queue.shift();
186
+ const nextElement = this._queue.shift();
202
187
  if (nextElement !== undefined) {
203
- nextElement.reject(new CancellationError());
188
+ nextElement.reject(new task_canceller_1.CancellationError());
204
189
  }
205
190
  }
206
191
  if (this._mediaSource.readyState === "open") {
207
192
  try {
208
- log.debug("AVSB: Calling `abort` on the SourceBuffer");
193
+ log_1.default.debug("AVSB: Calling `abort` on the SourceBuffer");
209
194
  this._sourceBuffer.abort();
210
195
  }
211
196
  catch (e) {
212
- log.warn("AVSB: Failed to abort a ".concat(this.bufferType, " SourceBuffer:"), e instanceof Error ? e : "");
197
+ log_1.default.warn(`AVSB: Failed to abort a ${this.bufferType} SourceBuffer:`, e instanceof Error ? e : "");
213
198
  }
214
199
  }
215
- };
200
+ }
216
201
  /**
217
202
  * Called when an error arised that made the current task fail.
218
203
  * @param {Event} err
219
204
  */
220
- AudioVideoSegmentBuffer.prototype._onPendingTaskError = function (err) {
205
+ _onPendingTaskError(err) {
221
206
  this._lastInitSegmentUniqueId = null; // initialize init segment as a security
222
207
  if (this._pendingTask !== null) {
223
- var error = err instanceof Error ?
208
+ const error = err instanceof Error ?
224
209
  err :
225
210
  new Error("An unknown error occured when doing operations " +
226
211
  "on the SourceBuffer");
227
212
  this._pendingTask.reject(error);
228
213
  }
229
- };
214
+ }
230
215
  /**
231
216
  * @private
232
217
  * @param {Object} operation
233
218
  * @param {Object} cancellationSignal
234
219
  * @returns {Promise}
235
220
  */
236
- AudioVideoSegmentBuffer.prototype._addToQueue = function (operation, cancellationSignal) {
237
- var _this = this;
238
- return createCancellablePromise(cancellationSignal, function (resolve, reject) {
239
- var shouldRestartQueue = _this._queue.length === 0 &&
240
- _this._pendingTask === null;
241
- var queueItem = objectAssign({ resolve: resolve, reject: reject }, operation);
242
- _this._queue.push(queueItem);
221
+ _addToQueue(operation, cancellationSignal) {
222
+ return (0, create_cancellable_promise_1.default)(cancellationSignal, (resolve, reject) => {
223
+ const shouldRestartQueue = this._queue.length === 0 &&
224
+ this._pendingTask === null;
225
+ const queueItem = (0, object_assign_1.default)({ resolve, reject }, operation);
226
+ this._queue.push(queueItem);
243
227
  if (shouldRestartQueue) {
244
- _this._flush();
228
+ this._flush();
245
229
  }
246
- return function () {
230
+ return () => {
247
231
  // Remove the corresponding element from the AudioVideoSegmentBuffer's
248
232
  // queue.
249
233
  // If the operation was a pending task, it should still continue to not
250
234
  // let the AudioVideoSegmentBuffer in a weird state.
251
- var index = _this._queue.indexOf(queueItem);
235
+ const index = this._queue.indexOf(queueItem);
252
236
  if (index >= 0) {
253
- _this._queue.splice(index, 1);
237
+ this._queue.splice(index, 1);
254
238
  }
255
- queueItem.resolve = noop;
256
- queueItem.reject = noop;
239
+ queueItem.resolve = noop_1.default;
240
+ queueItem.reject = noop_1.default;
257
241
  };
258
242
  });
259
- };
243
+ }
260
244
  /**
261
245
  * Perform next task if one.
262
246
  * @private
263
247
  */
264
- AudioVideoSegmentBuffer.prototype._flush = function () {
248
+ _flush() {
265
249
  if (this._sourceBuffer.updating) {
266
250
  return; // still processing `this._pendingTask`
267
251
  }
268
252
  if (this._pendingTask !== null) {
269
- var task = this._pendingTask;
270
- if (task.type !== SegmentBufferOperation.Push || task.data.length === 0) {
253
+ const task = this._pendingTask;
254
+ if (task.type !== types_1.SegmentBufferOperation.Push || task.data.length === 0) {
271
255
  // If we're here, we've finished processing the task
272
256
  switch (task.type) {
273
- case SegmentBufferOperation.Push:
257
+ case types_1.SegmentBufferOperation.Push:
274
258
  if (task.inventoryData !== null) {
275
259
  this._segmentInventory.insertChunk(task.inventoryData);
276
260
  }
277
261
  break;
278
- case SegmentBufferOperation.EndOfSegment:
262
+ case types_1.SegmentBufferOperation.EndOfSegment:
279
263
  this._segmentInventory.completeSegment(task.value, this.getBufferedRanges());
280
264
  break;
281
- case SegmentBufferOperation.Remove:
265
+ case types_1.SegmentBufferOperation.Remove:
282
266
  this.synchronizeInventory();
283
267
  break;
284
268
  default:
285
- assertUnreachable(task);
269
+ (0, assert_unreachable_1.default)(task);
286
270
  }
287
- var resolve = task.resolve;
271
+ const { resolve } = task;
288
272
  this._pendingTask = null;
289
273
  resolve();
290
274
  this._flush(); // Go to next item in queue
@@ -292,62 +276,62 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
292
276
  }
293
277
  }
294
278
  else { // if this._pendingTask is null, go to next item in queue
295
- var nextItem = this._queue.shift();
279
+ const nextItem = this._queue.shift();
296
280
  if (nextItem === undefined) {
297
281
  return; // we have nothing left to do
298
282
  }
299
- else if (nextItem.type !== SegmentBufferOperation.Push) {
283
+ else if (nextItem.type !== types_1.SegmentBufferOperation.Push) {
300
284
  this._pendingTask = nextItem;
301
285
  }
302
286
  else {
303
- var itemValue = nextItem.value;
304
- var dataToPush = void 0;
287
+ const itemValue = nextItem.value;
288
+ let dataToPush;
305
289
  try {
306
290
  dataToPush = this._preparePushOperation(itemValue.data);
307
291
  }
308
292
  catch (e) {
309
- this._pendingTask = objectAssign({ data: [],
293
+ this._pendingTask = (0, object_assign_1.default)({ data: [],
310
294
  inventoryData: itemValue.inventoryInfos }, nextItem);
311
- var error = e instanceof Error ?
295
+ const error = e instanceof Error ?
312
296
  e :
313
297
  new Error("An unknown error occured when preparing a push operation");
314
298
  this._lastInitSegmentUniqueId = null; // initialize init segment as a security
315
299
  nextItem.reject(error);
316
300
  return;
317
301
  }
318
- this._pendingTask = objectAssign({ data: dataToPush,
302
+ this._pendingTask = (0, object_assign_1.default)({ data: dataToPush,
319
303
  inventoryData: itemValue.inventoryInfos }, nextItem);
320
304
  }
321
305
  }
322
306
  try {
323
307
  switch (this._pendingTask.type) {
324
- case SegmentBufferOperation.EndOfSegment:
308
+ case types_1.SegmentBufferOperation.EndOfSegment:
325
309
  // nothing to do, we will just acknowledge the segment.
326
- log.debug("AVSB: Acknowledging complete segment", getLoggableSegmentId(this._pendingTask.value));
310
+ log_1.default.debug("AVSB: Acknowledging complete segment", (0, manifest_1.getLoggableSegmentId)(this._pendingTask.value));
327
311
  this._flush();
328
312
  return;
329
- case SegmentBufferOperation.Push:
330
- var segmentData = this._pendingTask.data.shift();
313
+ case types_1.SegmentBufferOperation.Push:
314
+ const segmentData = this._pendingTask.data.shift();
331
315
  if (segmentData === undefined) {
332
316
  this._flush();
333
317
  return;
334
318
  }
335
- log.debug("AVSB: pushing segment", this.bufferType, getLoggableSegmentId(this._pendingTask.inventoryData));
319
+ log_1.default.debug("AVSB: pushing segment", this.bufferType, (0, manifest_1.getLoggableSegmentId)(this._pendingTask.inventoryData));
336
320
  this._sourceBuffer.appendBuffer(segmentData);
337
321
  break;
338
- case SegmentBufferOperation.Remove:
339
- var _a = this._pendingTask.value, start = _a.start, end = _a.end;
340
- log.debug("AVSB: removing data from SourceBuffer", this.bufferType, start, end);
322
+ case types_1.SegmentBufferOperation.Remove:
323
+ const { start, end } = this._pendingTask.value;
324
+ log_1.default.debug("AVSB: removing data from SourceBuffer", this.bufferType, start, end);
341
325
  this._sourceBuffer.remove(start, end);
342
326
  break;
343
327
  default:
344
- assertUnreachable(this._pendingTask);
328
+ (0, assert_unreachable_1.default)(this._pendingTask);
345
329
  }
346
330
  }
347
331
  catch (e) {
348
332
  this._onPendingTaskError(e);
349
333
  }
350
- };
334
+ }
351
335
  /**
352
336
  * A push Operation might necessitate to mutate some `SourceBuffer` and/or
353
337
  * `AudioVideoSegmentBuffer` properties and also might need to be divided into
@@ -359,57 +343,57 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
359
343
  * @param {Object} data
360
344
  * @returns {Object}
361
345
  */
362
- AudioVideoSegmentBuffer.prototype._preparePushOperation = function (data) {
346
+ _preparePushOperation(data) {
363
347
  // Push operation with both an init segment and a regular segment might
364
348
  // need to be separated into two steps
365
- var dataToPush = [];
366
- var codec = data.codec, timestampOffset = data.timestampOffset, appendWindow = data.appendWindow;
367
- var hasUpdatedSourceBufferType = false;
349
+ const dataToPush = [];
350
+ const { codec, timestampOffset, appendWindow } = data;
351
+ let hasUpdatedSourceBufferType = false;
368
352
  if (codec !== undefined && codec !== this.codec) {
369
- log.debug("AVSB: updating codec", codec);
370
- hasUpdatedSourceBufferType = tryToChangeSourceBufferType(this._sourceBuffer, codec);
353
+ log_1.default.debug("AVSB: updating codec", codec);
354
+ hasUpdatedSourceBufferType = (0, compat_1.tryToChangeSourceBufferType)(this._sourceBuffer, codec);
371
355
  if (hasUpdatedSourceBufferType) {
372
356
  this.codec = codec;
373
357
  }
374
358
  else {
375
- log.debug("AVSB: could not update codec", codec, this.codec);
359
+ log_1.default.debug("AVSB: could not update codec", codec, this.codec);
376
360
  }
377
361
  }
378
362
  if (this._sourceBuffer.timestampOffset !== timestampOffset) {
379
- var newTimestampOffset = timestampOffset;
380
- log.debug("AVSB: updating timestampOffset", this.bufferType, this._sourceBuffer.timestampOffset, newTimestampOffset);
363
+ const newTimestampOffset = timestampOffset;
364
+ log_1.default.debug("AVSB: updating timestampOffset", this.bufferType, this._sourceBuffer.timestampOffset, newTimestampOffset);
381
365
  this._sourceBuffer.timestampOffset = newTimestampOffset;
382
366
  }
383
367
  if (appendWindow[0] === undefined) {
384
368
  if (this._sourceBuffer.appendWindowStart > 0) {
385
- log.debug("AVSB: re-setting `appendWindowStart` to `0`");
369
+ log_1.default.debug("AVSB: re-setting `appendWindowStart` to `0`");
386
370
  this._sourceBuffer.appendWindowStart = 0;
387
371
  }
388
372
  }
389
373
  else if (appendWindow[0] !== this._sourceBuffer.appendWindowStart) {
390
374
  if (appendWindow[0] >= this._sourceBuffer.appendWindowEnd) {
391
- var newTmpEnd = appendWindow[0] + 1;
392
- log.debug("AVSB: pre-updating `appendWindowEnd`", newTmpEnd);
375
+ const newTmpEnd = appendWindow[0] + 1;
376
+ log_1.default.debug("AVSB: pre-updating `appendWindowEnd`", newTmpEnd);
393
377
  this._sourceBuffer.appendWindowEnd = newTmpEnd;
394
378
  }
395
- log.debug("AVSB: setting `appendWindowStart`", appendWindow[0]);
379
+ log_1.default.debug("AVSB: setting `appendWindowStart`", appendWindow[0]);
396
380
  this._sourceBuffer.appendWindowStart = appendWindow[0];
397
381
  }
398
382
  if (appendWindow[1] === undefined) {
399
383
  if (this._sourceBuffer.appendWindowEnd !== Infinity) {
400
- log.debug("AVSB: re-setting `appendWindowEnd` to `Infinity`");
384
+ log_1.default.debug("AVSB: re-setting `appendWindowEnd` to `Infinity`");
401
385
  this._sourceBuffer.appendWindowEnd = Infinity;
402
386
  }
403
387
  }
404
388
  else if (appendWindow[1] !== this._sourceBuffer.appendWindowEnd) {
405
- log.debug("AVSB: setting `appendWindowEnd`", appendWindow[1]);
389
+ log_1.default.debug("AVSB: setting `appendWindowEnd`", appendWindow[1]);
406
390
  this._sourceBuffer.appendWindowEnd = appendWindow[1];
407
391
  }
408
392
  if (data.initSegmentUniqueId !== null &&
409
393
  (hasUpdatedSourceBufferType ||
410
394
  !this._isLastInitSegment(data.initSegmentUniqueId))) {
411
395
  // Push initialization segment before the media segment
412
- var segmentData = this._initSegmentsMap.get(data.initSegmentUniqueId);
396
+ const segmentData = this._initSegmentsMap.get(data.initSegmentUniqueId);
413
397
  if (segmentData === undefined) {
414
398
  throw new Error("Invalid initialization segment uniqueId");
415
399
  }
@@ -420,22 +404,21 @@ var AudioVideoSegmentBuffer = /** @class */ (function (_super) {
420
404
  dataToPush.push(data.chunk);
421
405
  }
422
406
  return dataToPush;
423
- };
407
+ }
424
408
  /**
425
409
  * Return `true` if the given `uniqueId` is the identifier of the last
426
410
  * initialization segment pushed to the `AudioVideoSegmentBuffer`.
427
411
  * @param {string} uniqueId
428
412
  * @returns {boolean}
429
413
  */
430
- AudioVideoSegmentBuffer.prototype._isLastInitSegment = function (uniqueId) {
414
+ _isLastInitSegment(uniqueId) {
431
415
  if (this._lastInitSegmentUniqueId === null) {
432
416
  return false;
433
417
  }
434
418
  return this._lastInitSegmentUniqueId === uniqueId;
435
- };
436
- return AudioVideoSegmentBuffer;
437
- }(SegmentBuffer));
438
- export default AudioVideoSegmentBuffer;
419
+ }
420
+ }
421
+ exports.default = AudioVideoSegmentBuffer;
439
422
  /**
440
423
  * Throw if the given input is not in the expected format.
441
424
  * Allows to enforce runtime type-checking as compile-time type-checking here is
@@ -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 AudioVideoSegmentBuffer from "./audio_video_segment_buffer";
17
- export default AudioVideoSegmentBuffer;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const audio_video_segment_buffer_1 = require("./audio_video_segment_buffer");
19
+ exports.default = audio_video_segment_buffer_1.default;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Copyright 2015 CANAL+ Group
3
4
  *
@@ -13,6 +14,22 @@
13
14
  * See the License for the specific language governing permissions and
14
15
  * limitations under the License.
15
16
  */
16
- import AudioVideoSegmentBuffer from "./audio_video";
17
- export * from "./types";
18
- export { AudioVideoSegmentBuffer };
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
+ exports.AudioVideoSegmentBuffer = void 0;
33
+ const audio_video_1 = require("./audio_video");
34
+ exports.AudioVideoSegmentBuffer = audio_video_1.default;
35
+ __exportStar(require("./types"), exports);