rx-player 3.33.4-dev.2024083000 → 3.33.4

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 (730) hide show
  1. package/.prettierignore +1 -0
  2. package/.prettierrc +4 -0
  3. package/.vscode/settings.json +9 -0
  4. package/CHANGELOG.md +1662 -1076
  5. package/MAINTAINERS.md +9 -12
  6. package/README.md +111 -127
  7. package/VERSION +1 -1
  8. package/dist/_esm5.processed/compat/add_class_name.js +4 -3
  9. package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -1
  10. package/dist/_esm5.processed/compat/add_text_track.js +4 -4
  11. package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +2 -1
  12. package/dist/_esm5.processed/compat/browser_compatibility_types.js +15 -10
  13. package/dist/_esm5.processed/compat/browser_detection.d.ts +3 -1
  14. package/dist/_esm5.processed/compat/browser_detection.js +18 -10
  15. package/dist/_esm5.processed/compat/can_reuse_media_keys.d.ts +4 -0
  16. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -2
  17. package/dist/_esm5.processed/compat/change_source_buffer_type.d.ts +1 -1
  18. package/dist/_esm5.processed/compat/eme/close_session.d.ts +1 -1
  19. package/dist/_esm5.processed/compat/eme/close_session.js +17 -13
  20. package/dist/_esm5.processed/compat/eme/custom_key_system_access.d.ts +1 -1
  21. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.d.ts +1 -1
  22. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +8 -9
  23. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -2
  24. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +1 -1
  25. package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +1 -1
  26. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +1 -1
  27. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +7 -9
  28. package/dist/_esm5.processed/compat/eme/custom_media_keys/types.d.ts +4 -1
  29. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.d.ts +2 -2
  30. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +6 -12
  31. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +2 -1
  32. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +3 -3
  33. package/dist/_esm5.processed/compat/eme/eme-api-implementation.d.ts +4 -4
  34. package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +26 -11
  35. package/dist/_esm5.processed/compat/eme/generate_key_request.d.ts +1 -1
  36. package/dist/_esm5.processed/compat/eme/generate_key_request.js +17 -20
  37. package/dist/_esm5.processed/compat/eme/get_init_data.d.ts +3 -1
  38. package/dist/_esm5.processed/compat/eme/get_init_data.js +7 -9
  39. package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +2 -3
  40. package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +12 -13
  41. package/dist/_esm5.processed/compat/eme/index.d.ts +8 -5
  42. package/dist/_esm5.processed/compat/eme/index.js +1 -1
  43. package/dist/_esm5.processed/compat/eme/load_session.d.ts +1 -1
  44. package/dist/_esm5.processed/compat/enable_audio_track.d.ts +1 -1
  45. package/dist/_esm5.processed/compat/event_listeners.d.ts +26 -24
  46. package/dist/_esm5.processed/compat/event_listeners.js +14 -29
  47. package/dist/_esm5.processed/compat/fullscreen.d.ts +1 -1
  48. package/dist/_esm5.processed/compat/fullscreen.js +1 -1
  49. package/dist/_esm5.processed/compat/generate_init_data.js +3 -5
  50. package/dist/_esm5.processed/compat/index.d.ts +6 -3
  51. package/dist/_esm5.processed/compat/index.js +2 -2
  52. package/dist/_esm5.processed/compat/is_vtt_cue.d.ts +1 -1
  53. package/dist/_esm5.processed/compat/make_vtt_cue.d.ts +1 -1
  54. package/dist/_esm5.processed/compat/on_height_width_change.d.ts +2 -2
  55. package/dist/_esm5.processed/compat/on_height_width_change.js +3 -2
  56. package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +28 -29
  57. package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +2 -2
  58. package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +1 -2
  59. package/dist/_esm5.processed/config.d.ts +1 -1
  60. package/dist/_esm5.processed/config.js +0 -15
  61. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +7 -6
  62. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +45 -22
  63. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +1 -1
  64. package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +11 -10
  65. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.d.ts +4 -4
  66. package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +7 -6
  67. package/dist/_esm5.processed/core/adaptive/index.d.ts +3 -2
  68. package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +4 -4
  69. package/dist/_esm5.processed/core/adaptive/network_analyzer.js +43 -38
  70. package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +1 -1
  71. package/dist/_esm5.processed/core/adaptive/utils/ewma.js +1 -2
  72. package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.d.ts +1 -1
  73. package/dist/_esm5.processed/core/adaptive/utils/filter_by_width.d.ts +1 -1
  74. package/dist/_esm5.processed/core/adaptive/utils/filter_by_width.js +3 -6
  75. package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +7 -4
  76. package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.d.ts +1 -1
  77. package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.d.ts +2 -1
  78. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.d.ts +1 -1
  79. package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +8 -5
  80. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +1 -1
  81. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +5 -3
  82. package/dist/_esm5.processed/core/api/debug/buffer_graph.d.ts +1 -1
  83. package/dist/_esm5.processed/core/api/debug/buffer_graph.js +3 -8
  84. package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +1 -2
  85. package/dist/_esm5.processed/core/api/debug/modules/general_info.d.ts +2 -2
  86. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +17 -13
  87. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.d.ts +3 -3
  88. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +4 -2
  89. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.d.ts +2 -2
  90. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
  91. package/dist/_esm5.processed/core/api/debug/render.d.ts +2 -2
  92. package/dist/_esm5.processed/core/api/debug/utils.d.ts +5 -5
  93. package/dist/_esm5.processed/core/api/index.d.ts +1 -1
  94. package/dist/_esm5.processed/core/api/option_utils.d.ts +3 -3
  95. package/dist/_esm5.processed/core/api/option_utils.js +85 -48
  96. package/dist/_esm5.processed/core/api/playback_observer.d.ts +16 -18
  97. package/dist/_esm5.processed/core/api/playback_observer.js +65 -42
  98. package/dist/_esm5.processed/core/api/public_api.d.ts +10 -9
  99. package/dist/_esm5.processed/core/api/public_api.js +103 -94
  100. package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.d.ts +1 -1
  101. package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.js +25 -14
  102. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +3 -3
  103. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +72 -80
  104. package/dist/_esm5.processed/core/api/utils.d.ts +5 -5
  105. package/dist/_esm5.processed/core/api/utils.js +5 -8
  106. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +12 -54
  107. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +55 -66
  108. package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +10 -5
  109. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +16 -8
  110. package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +11 -2
  111. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +136 -65
  112. package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +5 -4
  113. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +18 -7
  114. package/dist/_esm5.processed/core/decrypt/create_session.d.ts +5 -4
  115. package/dist/_esm5.processed/core/decrypt/create_session.js +6 -12
  116. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -2
  117. package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +13 -3
  118. package/dist/_esm5.processed/core/decrypt/find_key_system.js +45 -22
  119. package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +1 -2
  120. package/dist/_esm5.processed/core/decrypt/get_media_keys.d.ts +9 -4
  121. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +17 -6
  122. package/dist/_esm5.processed/core/decrypt/init_media_keys.d.ts +3 -3
  123. package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +2 -2
  124. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +12 -16
  125. package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +3 -3
  126. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +6 -7
  127. package/dist/_esm5.processed/core/decrypt/types.d.ts +11 -5
  128. package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +20 -12
  129. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +2 -2
  130. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +5 -4
  131. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.d.ts +1 -1
  132. package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.d.ts +1 -1
  133. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.d.ts +1 -1
  134. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +16 -9
  135. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.d.ts +1 -1
  136. package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +1 -2
  137. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.d.ts +1 -1
  138. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +1 -2
  139. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +11 -13
  140. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +13 -13
  141. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.d.ts +8 -3
  142. package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +1 -2
  143. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +3 -3
  144. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +27 -16
  145. package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +1 -1
  146. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.d.ts +1 -1
  147. package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +19 -12
  148. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.d.ts +2 -2
  149. package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +5 -6
  150. package/dist/_esm5.processed/core/fetchers/index.d.ts +6 -3
  151. package/dist/_esm5.processed/core/fetchers/index.js +1 -1
  152. package/dist/_esm5.processed/core/fetchers/manifest/index.d.ts +3 -2
  153. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +2 -2
  154. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +68 -61
  155. package/dist/_esm5.processed/core/fetchers/segment/index.d.ts +4 -3
  156. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +4 -3
  157. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +9 -8
  158. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +41 -29
  159. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -5
  160. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +2 -3
  161. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
  162. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +19 -18
  163. package/dist/_esm5.processed/core/fetchers/utils/error_selector.d.ts +1 -1
  164. package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +1 -1
  165. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +3 -3
  166. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +25 -25
  167. package/dist/_esm5.processed/core/init/directfile_content_initializer.d.ts +4 -4
  168. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +21 -17
  169. package/dist/_esm5.processed/core/init/index.d.ts +2 -1
  170. package/dist/_esm5.processed/core/init/index.js +1 -1
  171. package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +9 -9
  172. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +64 -32
  173. package/dist/_esm5.processed/core/init/types.d.ts +10 -12
  174. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +6 -5
  175. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +20 -19
  176. package/dist/_esm5.processed/core/init/utils/create_media_source.d.ts +1 -1
  177. package/dist/_esm5.processed/core/init/utils/create_media_source.js +2 -3
  178. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.d.ts +6 -6
  179. package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +5 -3
  180. package/dist/_esm5.processed/core/init/utils/end_of_stream.d.ts +1 -1
  181. package/dist/_esm5.processed/core/init/utils/get_initial_time.d.ts +1 -1
  182. package/dist/_esm5.processed/core/init/utils/get_initial_time.js +12 -15
  183. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.d.ts +3 -3
  184. package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +1 -2
  185. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.d.ts +9 -9
  186. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +39 -3
  187. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +9 -8
  188. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +12 -9
  189. package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +10 -7
  190. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +7 -6
  191. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +24 -24
  192. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +1 -3
  193. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.d.ts +1 -1
  194. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +2 -2
  195. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +14 -6
  196. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +3 -3
  197. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +12 -19
  198. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.d.ts +1 -1
  199. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.d.ts +1 -1
  200. package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +11 -6
  201. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +6 -6
  202. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +12 -13
  203. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +3 -2
  204. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +6 -9
  205. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +3 -2
  206. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +1 -1
  207. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +2 -1
  208. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +7 -7
  209. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.d.ts +1 -1
  210. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +4 -4
  211. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +1 -2
  212. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +1 -1
  213. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +2 -6
  214. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +2 -1
  215. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -2
  216. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.d.ts +1 -1
  217. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +5 -7
  218. package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +1 -1
  219. package/dist/_esm5.processed/core/segment_buffers/index.d.ts +8 -4
  220. package/dist/_esm5.processed/core/segment_buffers/index.js +2 -2
  221. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.d.ts +1 -1
  222. package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +6 -4
  223. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +4 -4
  224. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +63 -54
  225. package/dist/_esm5.processed/core/segment_buffers/inventory/types.d.ts +1 -1
  226. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +2 -2
  227. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +17 -23
  228. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +3 -3
  229. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +49 -22
  230. package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +8 -7
  231. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +7 -6
  232. package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +2 -1
  233. package/dist/_esm5.processed/core/stream/index.d.ts +6 -5
  234. package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.d.ts +3 -3
  235. package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +2 -2
  236. package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +3 -2
  237. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +9 -7
  238. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +47 -34
  239. package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +3 -3
  240. package/dist/_esm5.processed/core/stream/period/period_stream.js +49 -16
  241. package/dist/_esm5.processed/core/stream/period/types.d.ts +15 -12
  242. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +9 -9
  243. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +26 -25
  244. package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +3 -3
  245. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +47 -23
  246. package/dist/_esm5.processed/core/stream/representation/types.d.ts +9 -8
  247. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.d.ts +4 -4
  248. package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +10 -7
  249. package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.d.ts +4 -3
  250. package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +16 -18
  251. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.d.ts +7 -6
  252. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +11 -11
  253. package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.d.ts +2 -2
  254. package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +6 -8
  255. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.d.ts +5 -4
  256. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +40 -19
  257. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.d.ts +4 -3
  258. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +27 -28
  259. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +6 -5
  260. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +7 -5
  261. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +8 -7
  262. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +13 -10
  263. package/dist/_esm5.processed/default_config.js +20 -16
  264. package/dist/_esm5.processed/errors/encrypted_media_error.d.ts +2 -2
  265. package/dist/_esm5.processed/errors/encrypted_media_error.js +1 -1
  266. package/dist/_esm5.processed/errors/error_codes.d.ts +1 -1
  267. package/dist/_esm5.processed/errors/error_codes.js +1 -1
  268. package/dist/_esm5.processed/errors/format_error.d.ts +2 -2
  269. package/dist/_esm5.processed/errors/format_error.js +1 -2
  270. package/dist/_esm5.processed/errors/index.d.ts +6 -3
  271. package/dist/_esm5.processed/errors/index.js +2 -2
  272. package/dist/_esm5.processed/errors/is_known_error.d.ts +1 -1
  273. package/dist/_esm5.processed/errors/is_known_error.js +2 -2
  274. package/dist/_esm5.processed/errors/media_error.d.ts +3 -3
  275. package/dist/_esm5.processed/errors/media_error.js +4 -7
  276. package/dist/_esm5.processed/errors/network_error.d.ts +2 -2
  277. package/dist/_esm5.processed/errors/network_error.js +3 -3
  278. package/dist/_esm5.processed/errors/other_error.d.ts +1 -1
  279. package/dist/_esm5.processed/errors/other_error.js +1 -1
  280. package/dist/_esm5.processed/errors/request_error.d.ts +1 -1
  281. package/dist/_esm5.processed/experimental/features/dash_wasm.d.ts +2 -2
  282. package/dist/_esm5.processed/experimental/features/debug_element.d.ts +1 -1
  283. package/dist/_esm5.processed/experimental/features/local.d.ts +1 -1
  284. package/dist/_esm5.processed/experimental/features/metaplaylist.d.ts +1 -1
  285. package/dist/_esm5.processed/experimental/index.d.ts +1 -1
  286. package/dist/_esm5.processed/experimental/index.js +1 -1
  287. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.d.ts +1 -1
  288. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.d.ts +1 -1
  289. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.d.ts +1 -1
  290. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +2 -2
  291. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +3 -3
  292. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +7 -3
  293. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +1 -1
  294. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -2
  295. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -2
  296. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +2 -2
  297. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +3 -2
  298. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts +2 -2
  299. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +12 -18
  300. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +13 -23
  301. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.d.ts +1 -1
  302. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +8 -7
  303. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
  304. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +9 -13
  305. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +4 -3
  306. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +5 -3
  307. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
  308. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +10 -47
  309. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +2 -1
  310. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +8 -5
  311. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +2 -1
  312. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -13
  313. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts +2 -1
  314. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +22 -18
  315. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +4 -7
  316. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
  317. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts +2 -1
  318. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +3 -5
  319. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.d.ts +1 -1
  320. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +4 -10
  321. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +2 -1
  322. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +2 -3
  323. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts +2 -1
  324. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +2 -3
  325. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +2 -2
  326. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.d.ts +1 -1
  327. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +6 -6
  328. package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +5 -4
  329. package/dist/_esm5.processed/features/add_features.d.ts +1 -1
  330. package/dist/_esm5.processed/features/features_object.d.ts +1 -1
  331. package/dist/_esm5.processed/features/features_object.js +4 -3
  332. package/dist/_esm5.processed/features/index.d.ts +3 -2
  333. package/dist/_esm5.processed/features/index.js +1 -1
  334. package/dist/_esm5.processed/features/list/bif_parser.d.ts +1 -1
  335. package/dist/_esm5.processed/features/list/dash.d.ts +1 -1
  336. package/dist/_esm5.processed/features/list/directfile.d.ts +1 -1
  337. package/dist/_esm5.processed/features/list/eme.d.ts +1 -1
  338. package/dist/_esm5.processed/features/list/html_sami_parser.d.ts +1 -1
  339. package/dist/_esm5.processed/features/list/html_srt_parser.d.ts +1 -1
  340. package/dist/_esm5.processed/features/list/html_text_buffer.d.ts +1 -1
  341. package/dist/_esm5.processed/features/list/html_ttml_parser.d.ts +1 -1
  342. package/dist/_esm5.processed/features/list/html_vtt_parser.d.ts +1 -1
  343. package/dist/_esm5.processed/features/list/image_buffer.d.ts +1 -1
  344. package/dist/_esm5.processed/features/list/native_sami_parser.d.ts +1 -1
  345. package/dist/_esm5.processed/features/list/native_srt_parser.d.ts +1 -1
  346. package/dist/_esm5.processed/features/list/native_text_buffer.d.ts +1 -1
  347. package/dist/_esm5.processed/features/list/native_ttml_parser.d.ts +1 -1
  348. package/dist/_esm5.processed/features/list/native_vtt_parser.d.ts +1 -1
  349. package/dist/_esm5.processed/features/list/smooth.d.ts +1 -1
  350. package/dist/_esm5.processed/features/types.d.ts +11 -11
  351. package/dist/_esm5.processed/manifest/adaptation.d.ts +3 -3
  352. package/dist/_esm5.processed/manifest/adaptation.js +24 -14
  353. package/dist/_esm5.processed/manifest/index.d.ts +9 -5
  354. package/dist/_esm5.processed/manifest/index.js +4 -8
  355. package/dist/_esm5.processed/manifest/manifest.d.ts +8 -7
  356. package/dist/_esm5.processed/manifest/manifest.js +37 -33
  357. package/dist/_esm5.processed/manifest/period.d.ts +4 -4
  358. package/dist/_esm5.processed/manifest/period.js +7 -14
  359. package/dist/_esm5.processed/manifest/representation.d.ts +4 -4
  360. package/dist/_esm5.processed/manifest/representation.js +5 -5
  361. package/dist/_esm5.processed/manifest/representation_index/index.d.ts +3 -2
  362. package/dist/_esm5.processed/manifest/representation_index/index.js +1 -1
  363. package/dist/_esm5.processed/manifest/representation_index/static.d.ts +1 -1
  364. package/dist/_esm5.processed/manifest/representation_index/static.js +6 -2
  365. package/dist/_esm5.processed/manifest/representation_index/types.d.ts +6 -5
  366. package/dist/_esm5.processed/manifest/update_period_in_place.d.ts +3 -3
  367. package/dist/_esm5.processed/manifest/update_period_in_place.js +9 -9
  368. package/dist/_esm5.processed/manifest/update_periods.d.ts +2 -2
  369. package/dist/_esm5.processed/manifest/update_periods.js +6 -3
  370. package/dist/_esm5.processed/manifest/utils.d.ts +4 -4
  371. package/dist/_esm5.processed/manifest/utils.js +6 -4
  372. package/dist/_esm5.processed/parsers/containers/isobmff/create_box.d.ts +1 -1
  373. package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +5 -4
  374. package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +2 -3
  375. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +3 -5
  376. package/dist/_esm5.processed/parsers/containers/isobmff/index.d.ts +5 -4
  377. package/dist/_esm5.processed/parsers/containers/isobmff/index.js +4 -4
  378. package/dist/_esm5.processed/parsers/containers/isobmff/read.d.ts +1 -1
  379. package/dist/_esm5.processed/parsers/containers/isobmff/read.js +9 -9
  380. package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +3 -4
  381. package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +51 -41
  382. package/dist/_esm5.processed/parsers/containers/matroska/index.d.ts +2 -1
  383. package/dist/_esm5.processed/parsers/containers/matroska/index.js +1 -1
  384. package/dist/_esm5.processed/parsers/containers/matroska/utils.js +29 -16
  385. package/dist/_esm5.processed/parsers/images/bif.js +15 -5
  386. package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.d.ts +1 -1
  387. package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -3
  388. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.d.ts +1 -1
  389. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
  390. package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +4 -12
  391. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.d.ts +1 -1
  392. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +4 -5
  393. package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.d.ts +1 -1
  394. package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +5 -2
  395. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.d.ts +1 -1
  396. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +5 -6
  397. package/dist/_esm5.processed/parsers/manifest/dash/common/index.d.ts +3 -2
  398. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +4 -4
  399. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +34 -28
  400. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +2 -2
  401. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +7 -4
  402. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +4 -4
  403. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -11
  404. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.d.ts +10 -5
  405. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -2
  406. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +30 -18
  407. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +3 -3
  408. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +56 -55
  409. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.d.ts +1 -1
  410. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +2 -6
  411. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.d.ts +1 -1
  412. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +11 -15
  413. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.d.ts +1 -1
  414. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +12 -9
  415. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.d.ts +1 -1
  416. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +29 -19
  417. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.d.ts +3 -2
  418. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +6 -6
  419. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +73 -59
  420. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +2 -4
  421. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
  422. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -8
  423. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +4 -4
  424. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +52 -50
  425. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.d.ts +1 -1
  426. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +6 -6
  427. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +52 -31
  428. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +4 -4
  429. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +41 -30
  430. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +4 -4
  431. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +1 -2
  432. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +4 -4
  433. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +63 -64
  434. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.d.ts +1 -1
  435. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +4 -2
  436. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.d.ts +1 -1
  437. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +73 -37
  438. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.d.ts +1 -1
  439. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +1 -2
  440. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.d.ts +1 -1
  441. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.d.ts +1 -1
  442. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.d.ts +1 -1
  443. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +13 -7
  444. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.d.ts +1 -1
  445. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +5 -3
  446. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.d.ts +1 -1
  447. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +44 -27
  448. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.d.ts +1 -1
  449. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +14 -8
  450. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.d.ts +1 -1
  451. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +36 -18
  452. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.d.ts +1 -1
  453. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +36 -18
  454. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.d.ts +1 -1
  455. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.d.ts +1 -1
  456. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +17 -8
  457. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.d.ts +1 -1
  458. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.d.ts +1 -1
  459. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +9 -5
  460. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +8 -26
  461. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +6 -12
  462. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.d.ts +2 -2
  463. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +9 -4
  464. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
  465. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.d.ts +3 -2
  466. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +1 -1
  467. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +29 -16
  468. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts +3 -2
  469. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +22 -35
  470. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.d.ts +2 -2
  471. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.d.ts +2 -2
  472. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts +2 -2
  473. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +3 -1
  474. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts +3 -2
  475. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -4
  476. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Label.d.ts +3 -0
  477. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Label.js +9 -0
  478. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts +3 -2
  479. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +5 -5
  480. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts +3 -2
  481. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +9 -6
  482. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.d.ts +3 -2
  483. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +8 -16
  484. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.d.ts +2 -2
  485. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.d.ts +2 -2
  486. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -10
  487. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.d.ts +3 -2
  488. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.d.ts +2 -2
  489. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +11 -18
  490. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.d.ts +2 -2
  491. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +2 -4
  492. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.d.ts +3 -2
  493. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +5 -5
  494. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts +2 -2
  495. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +5 -6
  496. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +1 -1
  497. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +1 -2
  498. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
  499. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.d.ts +1 -1
  500. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +2 -4
  501. package/dist/_esm5.processed/parsers/manifest/local/index.d.ts +1 -1
  502. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.d.ts +2 -2
  503. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +25 -16
  504. package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -2
  505. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +5 -10
  506. package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.d.ts +3 -2
  507. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +2 -2
  508. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +33 -29
  509. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +2 -2
  510. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +9 -7
  511. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +3 -3
  512. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +136 -109
  513. package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +3 -3
  514. package/dist/_esm5.processed/parsers/manifest/smooth/index.d.ts +4 -2
  515. package/dist/_esm5.processed/parsers/manifest/smooth/index.js +1 -1
  516. package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +6 -6
  517. package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +12 -8
  518. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +2 -2
  519. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +48 -53
  520. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  521. package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.d.ts +1 -1
  522. package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +2 -3
  523. package/dist/_esm5.processed/parsers/manifest/types.d.ts +2 -2
  524. package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.d.ts +1 -1
  525. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.d.ts +1 -1
  526. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +9 -6
  527. package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.d.ts +1 -1
  528. package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +5 -4
  529. package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.d.ts +1 -1
  530. package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +5 -4
  531. package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.d.ts +1 -1
  532. package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +10 -16
  533. package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.d.ts +1 -1
  534. package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +4 -10
  535. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +1 -1
  536. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +4 -5
  537. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.d.ts +1 -1
  538. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +18 -18
  539. package/dist/_esm5.processed/parsers/texttracks/index.d.ts +1 -1
  540. package/dist/_esm5.processed/parsers/texttracks/sami/html.d.ts +1 -1
  541. package/dist/_esm5.processed/parsers/texttracks/sami/html.js +15 -15
  542. package/dist/_esm5.processed/parsers/texttracks/sami/native.d.ts +1 -1
  543. package/dist/_esm5.processed/parsers/texttracks/sami/native.js +7 -14
  544. package/dist/_esm5.processed/parsers/texttracks/srt/html.js +6 -6
  545. package/dist/_esm5.processed/parsers/texttracks/srt/native.d.ts +1 -1
  546. package/dist/_esm5.processed/parsers/texttracks/srt/native.js +1 -7
  547. package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +4 -8
  548. package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +4 -8
  549. package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.d.ts +1 -1
  550. package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +6 -8
  551. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -2
  552. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +2 -6
  553. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +3 -4
  554. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +2 -6
  555. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +2 -6
  556. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.d.ts +2 -2
  557. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +22 -21
  558. package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +2 -2
  559. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.d.ts +1 -1
  560. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +5 -3
  561. package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.d.ts +1 -1
  562. package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +34 -19
  563. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.d.ts +2 -2
  564. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +9 -10
  565. package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts +1 -1
  566. package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.d.ts +3 -3
  567. package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +28 -16
  568. package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts +1 -1
  569. package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.d.ts +1 -1
  570. package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +2 -2
  571. package/dist/_esm5.processed/parsers/texttracks/types.d.ts +1 -1
  572. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +1 -1
  573. package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +2 -1
  574. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.d.ts +1 -1
  575. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.d.ts +1 -1
  576. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +6 -12
  577. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.d.ts +1 -1
  578. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +7 -8
  579. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.d.ts +1 -1
  580. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +4 -4
  581. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.d.ts +1 -1
  582. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.d.ts +1 -1
  583. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +4 -10
  584. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.d.ts +1 -1
  585. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +2 -6
  586. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.d.ts +1 -1
  587. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.d.ts +1 -1
  588. package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +1 -1
  589. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +2 -4
  590. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +1 -2
  591. package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +6 -6
  592. package/dist/_esm5.processed/public_types.d.ts +13 -11
  593. package/dist/_esm5.processed/tools/TextTrackRenderer/index.d.ts +3 -2
  594. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +2 -2
  595. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +15 -10
  596. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.d.ts +1 -1
  597. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -3
  598. package/dist/_esm5.processed/transports/dash/construct_segment_url.d.ts +2 -2
  599. package/dist/_esm5.processed/transports/dash/construct_segment_url.js +5 -3
  600. package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +2 -2
  601. package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.d.ts +2 -2
  602. package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +9 -10
  603. package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +3 -3
  604. package/dist/_esm5.processed/transports/dash/image_pipelines.js +32 -19
  605. package/dist/_esm5.processed/transports/dash/init_segment_loader.d.ts +3 -3
  606. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +46 -22
  607. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.d.ts +2 -2
  608. package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +13 -9
  609. package/dist/_esm5.processed/transports/dash/manifest_parser.d.ts +2 -2
  610. package/dist/_esm5.processed/transports/dash/manifest_parser.js +35 -22
  611. package/dist/_esm5.processed/transports/dash/pipelines.d.ts +1 -1
  612. package/dist/_esm5.processed/transports/dash/pipelines.js +11 -15
  613. package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +4 -4
  614. package/dist/_esm5.processed/transports/dash/segment_loader.js +30 -21
  615. package/dist/_esm5.processed/transports/dash/segment_parser.d.ts +2 -2
  616. package/dist/_esm5.processed/transports/dash/segment_parser.js +47 -21
  617. package/dist/_esm5.processed/transports/dash/text_loader.d.ts +2 -2
  618. package/dist/_esm5.processed/transports/dash/text_loader.js +19 -19
  619. package/dist/_esm5.processed/transports/dash/text_parser.d.ts +2 -2
  620. package/dist/_esm5.processed/transports/dash/text_parser.js +45 -24
  621. package/dist/_esm5.processed/transports/local/pipelines.d.ts +1 -1
  622. package/dist/_esm5.processed/transports/local/pipelines.js +7 -8
  623. package/dist/_esm5.processed/transports/local/segment_loader.d.ts +3 -3
  624. package/dist/_esm5.processed/transports/local/segment_loader.js +14 -6
  625. package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
  626. package/dist/_esm5.processed/transports/local/segment_parser.js +31 -13
  627. package/dist/_esm5.processed/transports/local/text_parser.d.ts +1 -1
  628. package/dist/_esm5.processed/transports/local/text_parser.js +44 -19
  629. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +4 -4
  630. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +9 -5
  631. package/dist/_esm5.processed/transports/metaplaylist/pipelines.d.ts +1 -1
  632. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +25 -18
  633. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.d.ts +2 -2
  634. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +16 -15
  635. package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +3 -3
  636. package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +14 -32
  637. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +2 -2
  638. package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +2 -2
  639. package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +4 -16
  640. package/dist/_esm5.processed/transports/smooth/isobmff/index.d.ts +4 -2
  641. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +2 -2
  642. package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +1 -1
  643. package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +11 -10
  644. package/dist/_esm5.processed/transports/smooth/pipelines.d.ts +1 -1
  645. package/dist/_esm5.processed/transports/smooth/pipelines.js +121 -79
  646. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +3 -3
  647. package/dist/_esm5.processed/transports/smooth/segment_loader.js +53 -27
  648. package/dist/_esm5.processed/transports/smooth/utils.d.ts +2 -2
  649. package/dist/_esm5.processed/transports/smooth/utils.js +7 -5
  650. package/dist/_esm5.processed/transports/types.d.ts +11 -25
  651. package/dist/_esm5.processed/transports/utils/byte_range.js +1 -2
  652. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.d.ts +3 -3
  653. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +13 -7
  654. package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +3 -3
  655. package/dist/_esm5.processed/transports/utils/find_complete_box.js +3 -2
  656. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +3 -3
  657. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +18 -6
  658. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.d.ts +2 -2
  659. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +12 -11
  660. package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +1 -1
  661. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +1 -3
  662. package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +4 -4
  663. package/dist/_esm5.processed/transports/utils/parse_text_track.js +9 -6
  664. package/dist/_esm5.processed/utils/are_codecs_compatible.js +5 -1
  665. package/dist/_esm5.processed/utils/array_includes.js +2 -6
  666. package/dist/_esm5.processed/utils/assert.js +3 -4
  667. package/dist/_esm5.processed/utils/base64.js +87 -29
  668. package/dist/_esm5.processed/utils/byte_parsing.js +60 -56
  669. package/dist/_esm5.processed/utils/cancellable_sleep.d.ts +1 -1
  670. package/dist/_esm5.processed/utils/create_cancellable_promise.d.ts +1 -1
  671. package/dist/_esm5.processed/utils/deep_merge.js +4 -4
  672. package/dist/_esm5.processed/utils/event_emitter.d.ts +1 -1
  673. package/dist/_esm5.processed/utils/get_fuzzed_delay.js +1 -1
  674. package/dist/_esm5.processed/utils/hash_buffer.js +1 -1
  675. package/dist/_esm5.processed/utils/initialization_segment_cache.d.ts +2 -2
  676. package/dist/_esm5.processed/utils/languages/index.d.ts +4 -2
  677. package/dist/_esm5.processed/utils/languages/index.js +2 -2
  678. package/dist/_esm5.processed/utils/languages/normalize.d.ts +2 -1
  679. package/dist/_esm5.processed/utils/languages/normalize.js +5 -3
  680. package/dist/_esm5.processed/utils/logger.js +7 -14
  681. package/dist/_esm5.processed/utils/object_assign.js +5 -5
  682. package/dist/_esm5.processed/utils/object_values.d.ts +1 -1
  683. package/dist/_esm5.processed/utils/object_values.js +2 -3
  684. package/dist/_esm5.processed/utils/ranges.d.ts +2 -1
  685. package/dist/_esm5.processed/utils/ranges.js +19 -23
  686. package/dist/_esm5.processed/utils/reference.d.ts +3 -3
  687. package/dist/_esm5.processed/utils/reference.js +1 -3
  688. package/dist/_esm5.processed/utils/request/fetch.d.ts +1 -1
  689. package/dist/_esm5.processed/utils/request/fetch.js +34 -23
  690. package/dist/_esm5.processed/utils/request/index.d.ts +6 -3
  691. package/dist/_esm5.processed/utils/request/index.js +2 -2
  692. package/dist/_esm5.processed/utils/request/xhr.d.ts +1 -1
  693. package/dist/_esm5.processed/utils/request/xhr.js +28 -17
  694. package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +2 -2
  695. package/dist/_esm5.processed/utils/slice_uint8array.js +3 -3
  696. package/dist/_esm5.processed/utils/starts_with.js +3 -3
  697. package/dist/_esm5.processed/utils/string_parsing.js +16 -18
  698. package/dist/_esm5.processed/utils/task_canceller.js +1 -2
  699. package/dist/_esm5.processed/utils/uniq.d.ts +1 -1
  700. package/dist/_esm5.processed/utils/uniq.js +4 -3
  701. package/dist/_esm5.processed/utils/weak_map_memory.js +0 -1
  702. package/dist/_esm5.processed/utils/wrapInPromise.d.ts +1 -1
  703. package/dist/mpd-parser.wasm +0 -0
  704. package/dist/rx-player.js +345 -236
  705. package/dist/rx-player.min.js +1 -1
  706. package/experimental/features/index.d.ts-E +16 -0
  707. package/experimental/features/index.js-E +16 -0
  708. package/experimental/index.d.ts +1 -1
  709. package/experimental/index.d.ts-E +16 -0
  710. package/experimental/index.js +1 -1
  711. package/experimental/index.js-E +16 -0
  712. package/experimental/tools/VideoThumbnailLoader/index.d.ts-E +18 -0
  713. package/experimental/tools/VideoThumbnailLoader/index.js-E +18 -0
  714. package/experimental/tools/index.d.ts-E +16 -0
  715. package/experimental/tools/index.js-E +16 -0
  716. package/features/index.d.ts-E +16 -0
  717. package/features/index.js-E +16 -0
  718. package/logger/index.d.ts-E +17 -0
  719. package/logger/index.js-E +17 -0
  720. package/minimal/index.d.ts-E +17 -0
  721. package/minimal/index.js-E +17 -0
  722. package/package.json +29 -14
  723. package/tools/TextTrackRenderer.d.ts-E +18 -0
  724. package/tools/TextTrackRenderer.js-E +18 -0
  725. package/tools/index.d.ts-E +16 -0
  726. package/tools/index.js-E +16 -0
  727. package/tools/string-utils.d.ts-E +18 -0
  728. package/tools/string-utils.js-E +18 -0
  729. package/types/index.d.ts-E +16 -0
  730. package/types/index.js-E +15 -0
package/dist/rx-player.js CHANGED
@@ -70,7 +70,8 @@ var READY_STATES = {
70
70
  /* harmony export */ hF: function() { return /* binding */ isWebOs; },
71
71
  /* harmony export */ lw: function() { return /* binding */ isIE11; },
72
72
  /* harmony export */ op: function() { return /* binding */ isEdgeChromium; },
73
- /* harmony export */ qe: function() { return /* binding */ isXbox; }
73
+ /* harmony export */ qe: function() { return /* binding */ isXbox; },
74
+ /* harmony export */ x1: function() { return /* binding */ isA1KStb40xx; }
74
75
  /* harmony export */ });
75
76
  /* unused harmony exports isWebOs2021, isWebOs2022 */
76
77
  /* harmony import */ var _is_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2186);
@@ -120,6 +121,8 @@ var isPhilipsNetTv = false;
120
121
  var isPlayStation5 = false;
121
122
  /** `true` for the Xbox game consoles. */
122
123
  var isXbox = false;
124
+ /** `true` for specific A1 STB: KSTB 40xx from Kaon Media. */
125
+ var isA1KStb40xx = false;
123
126
  (function findCurrentBrowser() {
124
127
  var _a, _b, _c;
125
128
  if (_is_node__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A) {
@@ -177,6 +180,8 @@ var isXbox = false;
177
180
  isPanasonic = true;
178
181
  } else if (navigator.userAgent.indexOf("Xbox") !== -1) {
179
182
  isXbox = true;
183
+ } else if (navigator.userAgent.indexOf("Model/a1-kstb40xx")) {
184
+ isA1KStb40xx = true;
180
185
  }
181
186
  })();
182
187
 
@@ -343,17 +348,6 @@ function eventPrefixed(eventNames, prefixes) {
343
348
  }));
344
349
  }, []);
345
350
  }
346
- /**
347
- * Returns a function allowing to add event listeners for particular event(s)
348
- * optionally automatically adding browser prefixes if needed.
349
- * @param {Array.<string>} eventNames - The event(s) to listen to. If multiple
350
- * events are set, the event listener will be triggered when any of them emits.
351
- * @param {Array.<string>|undefined} [prefixes] - Optional vendor prefixes with
352
- * which the event might also be sent. If not defined, default prefixes might be
353
- * tested.
354
- * @returns {Function} - Returns function allowing to easily add a callback to
355
- * be triggered when that event is emitted on a given event target.
356
- */
357
351
  function createCompatibleEventListener(eventNames, prefixes) {
358
352
  var mem;
359
353
  var prefixedEvents = eventPrefixed(eventNames, prefixes);
@@ -1856,7 +1850,7 @@ var DEFAULT_CONFIG = {
1856
1850
  * Defined in order of importance (first will be tested first etc.)
1857
1851
  * @type {Array.<string>}
1858
1852
  */
1859
- EME_DEFAULT_VIDEO_CODECS: ["video/mp4;codecs=\"avc1.4d401e\"", "video/mp4;codecs=\"avc1.42e01e\"", "video/webm;codecs=\"vp8\""],
1853
+ EME_DEFAULT_VIDEO_CODECS: ['video/mp4;codecs="avc1.4d401e"', 'video/mp4;codecs="avc1.42e01e"', 'video/webm;codecs="vp8"'],
1860
1854
  /**
1861
1855
  * Codecs used in the audioCapabilities of the MediaKeySystemConfiguration
1862
1856
  * (DRM).
@@ -1864,7 +1858,7 @@ var DEFAULT_CONFIG = {
1864
1858
  * Defined in order of importance (first will be tested first etc.)
1865
1859
  * @type {Array.<string>}
1866
1860
  */
1867
- EME_DEFAULT_AUDIO_CODECS: ["audio/mp4;codecs=\"mp4a.40.2\"", "audio/webm;codecs=opus"],
1861
+ EME_DEFAULT_AUDIO_CODECS: ['audio/mp4;codecs="mp4a.40.2"', "audio/webm;codecs=opus"],
1868
1862
  /**
1869
1863
  * Robustnesses used in the {audio,video}Capabilities of the
1870
1864
  * MediaKeySystemConfiguration (DRM).
@@ -2193,21 +2187,6 @@ function deepMerge(target) {
2193
2187
  return deepMerge.apply(void 0, [target].concat(sources));
2194
2188
  }
2195
2189
  ;// CONCATENATED MODULE: ./src/config.ts
2196
- /**
2197
- * Copyright 2015 CANAL+ Group
2198
- *
2199
- * Licensed under the Apache License, Version 2.0 (the "License");
2200
- * you may not use this file except in compliance with the License.
2201
- * You may obtain a copy of the License at
2202
- *
2203
- * http://www.apache.org/licenses/LICENSE-2.0
2204
- *
2205
- * Unless required by applicable law or agreed to in writing, software
2206
- * distributed under the License is distributed on an "AS IS" BASIS,
2207
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2208
- * See the License for the specific language governing permissions and
2209
- * limitations under the License.
2210
- */
2211
2190
 
2212
2191
 
2213
2192
  var ConfigHandler = /*#__PURE__*/function () {
@@ -3166,6 +3145,8 @@ var media_error = __webpack_require__(5575);
3166
3145
  var assert = __webpack_require__(7994);
3167
3146
  // EXTERNAL MODULE: ./src/utils/is_null_or_undefined.ts
3168
3147
  var is_null_or_undefined = __webpack_require__(6787);
3148
+ // EXTERNAL MODULE: ./src/utils/object_assign.ts
3149
+ var object_assign = __webpack_require__(8935);
3169
3150
  // EXTERNAL MODULE: ./src/compat/browser_detection.ts
3170
3151
  var browser_detection = __webpack_require__(443);
3171
3152
  // EXTERNAL MODULE: ./src/compat/event_listeners.ts
@@ -3777,9 +3758,7 @@ function getWebKitFairPlayInitData(initDataBytes, serverCertificateBytes) {
3777
3758
  var contentIdStr = skdIndexInInitData > -1 ? initDataUri.substring(skdIndexInInitData + 6) : initDataUri;
3778
3759
  var id = (0,string_parsing/* strToUtf16LE */.kY)(contentIdStr);
3779
3760
  var offset = 0;
3780
- var res = new Uint8Array(initData.byteLength
3781
- /* id length */ + 4 + id.byteLength
3782
- /* certificate length */ + 4 + serverCertificate.byteLength);
3761
+ var res = new Uint8Array(initData.byteLength + /* id length */4 + id.byteLength + /* certificate length */4 + serverCertificate.byteLength);
3783
3762
  res.set(initData);
3784
3763
  offset += initData.length;
3785
3764
  res.set((0,byte_parsing/* itole4 */.Wz)(id.byteLength), offset);
@@ -4045,6 +4024,7 @@ function getWebKitMediaKeysCallbacks() {
4045
4024
 
4046
4025
 
4047
4026
 
4027
+
4048
4028
  /**
4049
4029
  * Automatically detect and set which EME implementation should be used in the
4050
4030
  * current platform.
@@ -4078,8 +4058,8 @@ function getEmeApiImplementation(preferredApiType) {
4078
4058
  var isTypeSupported;
4079
4059
  var createCustomMediaKeys;
4080
4060
  if (preferredApiType === "webkit" && WebKitMediaKeysConstructor !== undefined) {
4081
- onEncrypted = (0,event_listeners/* createCompatibleEventListener */.jf)(["needkey"]);
4082
4061
  var callbacks = getWebKitMediaKeysCallbacks();
4062
+ onEncrypted = createOnEncryptedForWebkit();
4083
4063
  isTypeSupported = callbacks.isTypeSupported;
4084
4064
  createCustomMediaKeys = callbacks.createCustomMediaKeys;
4085
4065
  setMediaKeys = callbacks.setMediaKeys;
@@ -4095,7 +4075,7 @@ function getEmeApiImplementation(preferredApiType) {
4095
4075
  implementation = "older-webkit";
4096
4076
  // This is for WebKit with prefixed EME api
4097
4077
  } else if (WebKitMediaKeysConstructor !== undefined) {
4098
- onEncrypted = (0,event_listeners/* createCompatibleEventListener */.jf)(["needkey"]);
4078
+ onEncrypted = createOnEncryptedForWebkit();
4099
4079
  var _callbacks2 = getWebKitMediaKeysCallbacks();
4100
4080
  isTypeSupported = _callbacks2.isTypeSupported;
4101
4081
  createCustomMediaKeys = _callbacks2.createCustomMediaKeys;
@@ -4182,6 +4162,22 @@ function getEmeApiImplementation(preferredApiType) {
4182
4162
  implementation: implementation
4183
4163
  };
4184
4164
  }
4165
+ /**
4166
+ * Create an event listener for the "webkitneedkey" event
4167
+ * @returns
4168
+ */
4169
+ function createOnEncryptedForWebkit() {
4170
+ var compatibleEventListener = (0,event_listeners/* createCompatibleEventListener */.jf)(["needkey"], undefined /* prefixes */);
4171
+ var onEncrypted = function onEncrypted(target, listener, cancelSignal) {
4172
+ compatibleEventListener(target, function (event) {
4173
+ var patchedEvent = (0,object_assign/* default */.A)(event, {
4174
+ forceSessionRecreation: true
4175
+ });
4176
+ listener(patchedEvent);
4177
+ }, cancelSignal);
4178
+ };
4179
+ return onEncrypted;
4180
+ }
4185
4181
  /**
4186
4182
  * Set the given MediaKeys on the given HTMLMediaElement.
4187
4183
  * Emits null when done then complete.
@@ -4287,6 +4283,7 @@ var PSSH_TO_INTEGER = (0,byte_parsing/* be4toi */.mq)((0,string_parsing/* strToU
4287
4283
 
4288
4284
 
4289
4285
 
4286
+
4290
4287
  /**
4291
4288
  * Take in input initialization data from an encrypted event and generate the
4292
4289
  * corresponding array of initialization data values from it.
@@ -4376,8 +4373,9 @@ function isPSSHAlreadyEncountered(encounteredPSSHs, pssh) {
4376
4373
  */
4377
4374
  function getInitData(encryptedEvent) {
4378
4375
  var initData = encryptedEvent.initData,
4379
- initDataType = encryptedEvent.initDataType;
4380
- if (initData == null) {
4376
+ initDataType = encryptedEvent.initDataType,
4377
+ forceSessionRecreation = encryptedEvent.forceSessionRecreation;
4378
+ if ((0,is_null_or_undefined/* default */.A)(initData)) {
4381
4379
  log/* default */.A.warn("Compat: No init data found on media encrypted event.");
4382
4380
  return null;
4383
4381
  }
@@ -4385,7 +4383,8 @@ function getInitData(encryptedEvent) {
4385
4383
  var values = getInitializationDataValues(initDataBytes);
4386
4384
  return {
4387
4385
  type: initDataType,
4388
- values: values
4386
+ values: values,
4387
+ forceSessionRecreation: forceSessionRecreation
4389
4388
  };
4390
4389
  }
4391
4390
  // EXTERNAL MODULE: ./src/config.ts + 2 modules
@@ -4449,11 +4448,11 @@ function attachMediaKeys(_x, _x2, _x3) {
4449
4448
  }
4450
4449
  function _attachMediaKeys() {
4451
4450
  _attachMediaKeys = (0,asyncToGenerator/* default */.A)( /*#__PURE__*/regenerator_default().mark(function _callee(mediaElement, _ref, cancelSignal) {
4452
- var emeImplementation, keySystemOptions, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, previousState, closeAllSessions;
4451
+ var emeImplementation, keySystemOptions, askedConfiguration, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, previousState, closeAllSessions;
4453
4452
  return regenerator_default().wrap(function _callee$(_context) {
4454
4453
  while (1) switch (_context.prev = _context.next) {
4455
4454
  case 0:
4456
- emeImplementation = _ref.emeImplementation, keySystemOptions = _ref.keySystemOptions, loadedSessionsStore = _ref.loadedSessionsStore, mediaKeySystemAccess = _ref.mediaKeySystemAccess, mediaKeys = _ref.mediaKeys;
4455
+ emeImplementation = _ref.emeImplementation, keySystemOptions = _ref.keySystemOptions, askedConfiguration = _ref.askedConfiguration, loadedSessionsStore = _ref.loadedSessionsStore, mediaKeySystemAccess = _ref.mediaKeySystemAccess, mediaKeys = _ref.mediaKeys;
4457
4456
  previousState = media_keys_infos_store/* default */.A.getState(mediaElement);
4458
4457
  closeAllSessions = previousState !== null && previousState.loadedSessionsStore !== loadedSessionsStore ? previousState.loadedSessionsStore.closeAllSessions() : Promise.resolve();
4459
4458
  _context.next = 5;
@@ -4470,7 +4469,8 @@ function _attachMediaKeys() {
4470
4469
  keySystemOptions: keySystemOptions,
4471
4470
  mediaKeySystemAccess: mediaKeySystemAccess,
4472
4471
  mediaKeys: mediaKeys,
4473
- loadedSessionsStore: loadedSessionsStore
4472
+ loadedSessionsStore: loadedSessionsStore,
4473
+ askedConfiguration: askedConfiguration
4474
4474
  });
4475
4475
  if (!(mediaElement.mediaKeys === mediaKeys)) {
4476
4476
  _context.next = 10;
@@ -4901,7 +4901,10 @@ function _createOrLoadSession() {
4901
4901
  throw cancelSignal.cancellationError;
4902
4902
  case 16:
4903
4903
  _context.next = 18;
4904
- return cleanOldLoadedSessions(loadedSessionsStore, maxSessionCacheSize);
4904
+ return cleanOldLoadedSessions(loadedSessionsStore,
4905
+ // Account for the next session we will be creating
4906
+ // Note that `maxSessionCacheSize < 0 has special semantic (no limit)`
4907
+ maxSessionCacheSize <= 0 ? maxSessionCacheSize : maxSessionCacheSize - 1);
4905
4908
  case 18:
4906
4909
  if (!(cancelSignal.cancellationError !== null)) {
4907
4910
  _context.next = 20;
@@ -4942,11 +4945,15 @@ function _createOrLoadSession() {
4942
4945
  * HTMLMediaElement.
4943
4946
  * - (2024-08-23): Seen on Philips 2024 and 2023 in:
4944
4947
  * https://github.com/canalplus/rx-player/issues/1464
4948
+ * - (2024-09-04): Another case seen on an "A1" set-top box model made by
4949
+ * Kaonmedia we will call the KSTB40xx.
4950
+ * It may share the problematic with other devices, but we have only seen
4951
+ * the problem on this one for now.
4945
4952
  *
4946
4953
  * @returns {boolean}
4947
4954
  */
4948
4955
  function canReuseMediaKeys() {
4949
- return !browser_detection/* isWebOs */.hF && !browser_detection/* isPhilipsNetTv */.NV && !browser_detection/* isPanasonic */.P5;
4956
+ return !browser_detection/* isWebOs */.hF && !browser_detection/* isPhilipsNetTv */.NV && !browser_detection/* isPanasonic */.P5 && !browser_detection/* isA1KStb40xx */.x1;
4950
4957
  }
4951
4958
  ;// CONCATENATED MODULE: ./src/compat/should_renew_media_key_system_access.ts
4952
4959
  /**
@@ -5023,7 +5030,7 @@ function canRelyOnRequestMediaKeySystemAccess(keySystem) {
5023
5030
  * the CDM is capable of creating a session and generating a request.
5024
5031
  */
5025
5032
  var DUMMY_PLAY_READY_HEADER = /* eslint-disable-next-line max-len */
5026
- "<WRMHEADER xmlns=\"http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader\" version=\"4.0.0.0\"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=\"\"><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>";
5033
+ '<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';
5027
5034
  /**
5028
5035
  * Generate the "cenc" init data for playready from the PlayreadyHeader string.
5029
5036
  * @param {string} playreadyHeader - String representing the PlayreadyHeader XML.
@@ -5048,8 +5055,7 @@ function generatePlayReadyInitData(playreadyHeader) {
5048
5055
  // 2 bytes for record type
5049
5056
  recordLength,
5050
5057
  // 2 bytes for record length
5051
- recordValueEncoded // X bytes for record value
5052
- );
5058
+ recordValueEncoded);
5053
5059
  /** the systemId is define at https://dashif.org/identifiers/content_protection/ */
5054
5060
  var playreadySystemId = (0,string_parsing/* hexToBytes */.aT)("9a04f07998404286ab92e65be0885f95");
5055
5061
  return generateInitData(playReadyObject, playreadySystemId);
@@ -5076,8 +5082,7 @@ function generateInitData(data, systemId) {
5076
5082
  // 16 bytes for the systemId
5077
5083
  sizeOfData,
5078
5084
  // 4 bytes for the data size
5079
- data // X bytes for data
5080
- );
5085
+ data);
5081
5086
  }
5082
5087
  // EXTERNAL MODULE: ./src/utils/flat_map.ts
5083
5088
  var flat_map = __webpack_require__(3262);
@@ -5112,11 +5117,12 @@ var flat_map = __webpack_require__(3262);
5112
5117
 
5113
5118
  /**
5114
5119
  * @param {Array.<Object>} keySystems
5120
+ * @param {Object} askedConfiguration
5115
5121
  * @param {MediaKeySystemAccess} currentKeySystemAccess
5116
5122
  * @param {Object} currentKeySystemOptions
5117
5123
  * @returns {null|Object}
5118
5124
  */
5119
- function checkCachedMediaKeySystemAccess(keySystems, currentKeySystemAccess, currentKeySystemOptions) {
5125
+ function checkCachedMediaKeySystemAccess(keySystems, askedConfiguration, currentKeySystemAccess, currentKeySystemOptions) {
5120
5126
  var mksConfiguration = currentKeySystemAccess.getConfiguration();
5121
5127
  if (shouldRenewMediaKeySystemAccess() || mksConfiguration == null) {
5122
5128
  return null;
@@ -5137,7 +5143,8 @@ function checkCachedMediaKeySystemAccess(keySystems, currentKeySystemAccess, cur
5137
5143
  if (firstCompatibleOption != null) {
5138
5144
  return {
5139
5145
  keySystemOptions: firstCompatibleOption,
5140
- keySystemAccess: currentKeySystemAccess
5146
+ keySystemAccess: currentKeySystemAccess,
5147
+ askedConfiguration: askedConfiguration
5141
5148
  };
5142
5149
  }
5143
5150
  return null;
@@ -5259,6 +5266,10 @@ function buildKeySystemConfigurations(ksName, ksType, keySystem) {
5259
5266
  persistentState: persistentState,
5260
5267
  sessionTypes: sessionTypes
5261
5268
  };
5269
+ if (!(0,is_null_or_undefined/* default */.A)(keySystem.audioRobustnesses) || !(0,is_null_or_undefined/* default */.A)(keySystem.videoRobustnesses)) {
5270
+ // If the user specifically asked for robustnesses, we don't want to try without them
5271
+ return [wantedMediaKeySystemConfiguration];
5272
+ }
5262
5273
  return [wantedMediaKeySystemConfiguration,
5263
5274
  // Some legacy implementations have issues with `audioCapabilities` and
5264
5275
  // `videoCapabilities`, so we're including a supplementary
@@ -5291,13 +5302,14 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
5291
5302
  if (eme.implementation === currentState.emeImplementation.implementation) {
5292
5303
  // Fast way to find a compatible keySystem if the currently loaded
5293
5304
  // one as exactly the same compatibility options.
5294
- var cachedKeySystemAccess = checkCachedMediaKeySystemAccess(keySystemsConfigs, currentState.mediaKeySystemAccess, currentState.keySystemOptions);
5305
+ var cachedKeySystemAccess = checkCachedMediaKeySystemAccess(keySystemsConfigs, currentState.askedConfiguration, currentState.mediaKeySystemAccess, currentState.keySystemOptions);
5295
5306
  if (cachedKeySystemAccess !== null) {
5296
5307
  log/* default */.A.info("DRM: Found cached compatible keySystem");
5297
5308
  return Promise.resolve({
5298
5309
  type: "reuse-media-key-system-access",
5299
5310
  value: {
5300
5311
  mediaKeySystemAccess: cachedKeySystemAccess.keySystemAccess,
5312
+ askedConfiguration: cachedKeySystemAccess.askedConfiguration,
5301
5313
  options: cachedKeySystemAccess.keySystemOptions
5302
5314
  }
5303
5315
  });
@@ -5353,7 +5365,7 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
5353
5365
  }
5354
5366
  function _recursivelyTestKeySystems() {
5355
5367
  _recursivelyTestKeySystems = (0,asyncToGenerator/* default */.A)( /*#__PURE__*/regenerator_default().mark(function _callee(index) {
5356
- var _keySystemsType$index, keyName, keyType, keySystemOptions, keySystemConfigurations, keySystemAccess;
5368
+ var _keySystemsType$index, keyName, keyType, keySystemOptions, keySystemConfigurations, keySystemAccess, configIdx, keySystemConfiguration;
5357
5369
  return regenerator_default().wrap(function _callee$(_context) {
5358
5370
  while (1) switch (_context.prev = _context.next) {
5359
5371
  case 0:
@@ -5372,35 +5384,47 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
5372
5384
  _keySystemsType$index = keySystemsType[index], keyName = _keySystemsType$index.keyName, keyType = _keySystemsType$index.keyType, keySystemOptions = _keySystemsType$index.keySystemOptions;
5373
5385
  keySystemConfigurations = buildKeySystemConfigurations(keyName, keyType, keySystemOptions);
5374
5386
  log/* default */.A.debug("DRM: Request keysystem access " + keyType + "," + (index + 1 + " of " + keySystemsType.length));
5375
- _context.prev = 7;
5376
- _context.next = 10;
5377
- return testKeySystem(keyType, keySystemConfigurations);
5378
- case 10:
5387
+ configIdx = 0;
5388
+ case 8:
5389
+ if (!(configIdx < keySystemConfigurations.length)) {
5390
+ _context.next = 26;
5391
+ break;
5392
+ }
5393
+ keySystemConfiguration = keySystemConfigurations[configIdx];
5394
+ _context.prev = 10;
5395
+ _context.next = 13;
5396
+ return testKeySystem(keyType, [keySystemConfiguration]);
5397
+ case 13:
5379
5398
  keySystemAccess = _context.sent;
5380
5399
  log/* default */.A.info("DRM: Found compatible keysystem", keyType, index + 1);
5381
5400
  return _context.abrupt("return", {
5382
5401
  type: "create-media-key-system-access",
5383
5402
  value: {
5384
5403
  options: keySystemOptions,
5404
+ askedConfiguration: keySystemConfiguration,
5385
5405
  mediaKeySystemAccess: keySystemAccess
5386
5406
  }
5387
5407
  });
5388
- case 15:
5389
- _context.prev = 15;
5390
- _context.t0 = _context["catch"](7);
5391
- log/* default */.A.debug("DRM: Rejected access to keysystem", keyType, index + 1);
5408
+ case 18:
5409
+ _context.prev = 18;
5410
+ _context.t0 = _context["catch"](10);
5411
+ log/* default */.A.debug("DRM: Rejected access to keysystem", keyType, index + 1, configIdx);
5392
5412
  if (!(cancelSignal.cancellationError !== null)) {
5393
- _context.next = 20;
5413
+ _context.next = 23;
5394
5414
  break;
5395
5415
  }
5396
5416
  throw cancelSignal.cancellationError;
5397
- case 20:
5417
+ case 23:
5418
+ configIdx++;
5419
+ _context.next = 8;
5420
+ break;
5421
+ case 26:
5398
5422
  return _context.abrupt("return", recursivelyTestKeySystems(index + 1));
5399
- case 21:
5423
+ case 27:
5400
5424
  case "end":
5401
5425
  return _context.stop();
5402
5426
  }
5403
- }, _callee, null, [[7, 15]]);
5427
+ }, _callee, null, [[10, 18]]);
5404
5428
  }));
5405
5429
  return _recursivelyTestKeySystems.apply(this, arguments);
5406
5430
  }
@@ -5524,7 +5548,7 @@ function patchInitData(initData) {
5524
5548
  }
5525
5549
  var currentPSSH = initData.subarray(offset, offset + len);
5526
5550
  // yep
5527
- if (initData[offset + 12] === 0x10 && initData[offset + 13] === 0x77 && initData[offset + 14] === 0xEF && initData[offset + 15] === 0xEC && initData[offset + 16] === 0xC0 && initData[offset + 17] === 0xB2 && initData[offset + 18] === 0x4D && initData[offset + 19] === 0x02 && initData[offset + 20] === 0xAC && initData[offset + 21] === 0xE3 && initData[offset + 22] === 0x3C && initData[offset + 23] === 0x1E && initData[offset + 24] === 0x52 && initData[offset + 25] === 0xE2 && initData[offset + 26] === 0xFB && initData[offset + 27] === 0x4B) {
5551
+ if (initData[offset + 12] === 0x10 && initData[offset + 13] === 0x77 && initData[offset + 14] === 0xef && initData[offset + 15] === 0xec && initData[offset + 16] === 0xc0 && initData[offset + 17] === 0xb2 && initData[offset + 18] === 0x4d && initData[offset + 19] === 0x02 && initData[offset + 20] === 0xac && initData[offset + 21] === 0xe3 && initData[offset + 22] === 0x3c && initData[offset + 23] === 0x1e && initData[offset + 24] === 0x52 && initData[offset + 25] === 0xe2 && initData[offset + 26] === 0xfb && initData[offset + 27] === 0x4b) {
5528
5552
  var cencOffsets = (0,get_box/* getNextBoxOffsets */.fP)(currentPSSH);
5529
5553
  var version = cencOffsets === null ? undefined : currentPSSH[cencOffsets[1]];
5530
5554
  log/* default */.A.info("Compat: CENC PSSH found with version", version);
@@ -5579,7 +5603,7 @@ function generateKeyRequest(session, initializationDataType, initializationData)
5579
5603
  // a rejected promise with a TypeError in that case).
5580
5604
  // Retry with a default "cenc" value for initialization data type if
5581
5605
  // we're in that condition.
5582
- log/* default */.A.warn("Compat: error while calling `generateRequest` with an empty " + "initialization data type. Retrying with a default \"cenc\" value.", error);
5606
+ log/* default */.A.warn("Compat: error while calling `generateRequest` with an empty " + 'initialization data type. Retrying with a default "cenc" value.', error);
5583
5607
  return session.generateRequest("cenc", patchedInit);
5584
5608
  });
5585
5609
  }
@@ -7320,7 +7344,7 @@ function getMediaKeysInfos(_x, _x2, _x3) {
7320
7344
  */
7321
7345
  function _getMediaKeysInfos() {
7322
7346
  _getMediaKeysInfos = (0,asyncToGenerator/* default */.A)( /*#__PURE__*/regenerator_default().mark(function _callee(mediaElement, keySystemsConfigs, cancelSignal) {
7323
- var evt, _evt$value, options, mediaKeySystemAccess, currentState, persistentSessionsStore, _mediaKeys, _loadedSessionsStore, mediaKeys, loadedSessionsStore;
7347
+ var evt, _evt$value, options, mediaKeySystemAccess, askedConfiguration, currentState, persistentSessionsStore, _mediaKeys, _loadedSessionsStore, mediaKeys, loadedSessionsStore;
7324
7348
  return regenerator_default().wrap(function _callee$(_context) {
7325
7349
  while (1) switch (_context.prev = _context.next) {
7326
7350
  case 0:
@@ -7334,7 +7358,7 @@ function _getMediaKeysInfos() {
7334
7358
  }
7335
7359
  throw cancelSignal.cancellationError;
7336
7360
  case 5:
7337
- _evt$value = evt.value, options = _evt$value.options, mediaKeySystemAccess = _evt$value.mediaKeySystemAccess;
7361
+ _evt$value = evt.value, options = _evt$value.options, mediaKeySystemAccess = _evt$value.mediaKeySystemAccess, askedConfiguration = _evt$value.askedConfiguration;
7338
7362
  currentState = media_keys_infos_store/* default */.A.getState(mediaElement);
7339
7363
  persistentSessionsStore = createPersistentSessionsStorage(options);
7340
7364
  if (!(canReuseMediaKeys() && currentState !== null && evt.type === "reuse-media-key-system-access")) {
@@ -7351,6 +7375,7 @@ function _getMediaKeysInfos() {
7351
7375
  return _context.abrupt("return", {
7352
7376
  mediaKeys: _mediaKeys,
7353
7377
  mediaKeySystemAccess: mediaKeySystemAccess,
7378
+ askedConfiguration: askedConfiguration,
7354
7379
  stores: {
7355
7380
  loadedSessionsStore: _loadedSessionsStore,
7356
7381
  persistentSessionsStore: persistentSessionsStore
@@ -7367,6 +7392,7 @@ function _getMediaKeysInfos() {
7367
7392
  return _context.abrupt("return", {
7368
7393
  mediaKeys: mediaKeys,
7369
7394
  mediaKeySystemAccess: mediaKeySystemAccess,
7395
+ askedConfiguration: askedConfiguration,
7370
7396
  stores: {
7371
7397
  loadedSessionsStore: loadedSessionsStore,
7372
7398
  persistentSessionsStore: persistentSessionsStore
@@ -7849,6 +7875,7 @@ function SessionEventsListener(session, keySystemOptions, keySystem, callbacks,
7849
7875
  session.closed.then(function () {
7850
7876
  return manualCanceller.cancel();
7851
7877
  })["catch"](function (err) {
7878
+ // Should never happen
7852
7879
  if (cancelSignal.isCancelled()) {
7853
7880
  return;
7854
7881
  }
@@ -8646,7 +8673,8 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
8646
8673
  var options = mediaKeysInfo.options,
8647
8674
  mediaKeys = mediaKeysInfo.mediaKeys,
8648
8675
  mediaKeySystemAccess = mediaKeysInfo.mediaKeySystemAccess,
8649
- stores = mediaKeysInfo.stores;
8676
+ stores = mediaKeysInfo.stores,
8677
+ askedConfiguration = mediaKeysInfo.askedConfiguration;
8650
8678
  var shouldDisableLock = options.disableMediaKeysAttachmentLock === true;
8651
8679
  if (shouldDisableLock) {
8652
8680
  this._stateData = {
@@ -8670,6 +8698,7 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
8670
8698
  loadedSessionsStore: stores.loadedSessionsStore,
8671
8699
  mediaKeySystemAccess: mediaKeySystemAccess,
8672
8700
  mediaKeys: mediaKeys,
8701
+ askedConfiguration: askedConfiguration,
8673
8702
  keySystemOptions: options
8674
8703
  };
8675
8704
  log/* default */.A.debug("DRM: Attaching current MediaKeys");
@@ -8913,7 +8942,7 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
8913
8942
  if (options.persistentLicense !== true) {
8914
8943
  wantedSessionType = "temporary";
8915
8944
  } else if (!canCreatePersistentSession(mediaKeySystemAccess)) {
8916
- log/* default */.A.warn("DRM: Cannot create \"persistent-license\" session: not supported");
8945
+ log/* default */.A.warn('DRM: Cannot create "persistent-license" session: not supported');
8917
8946
  wantedSessionType = "temporary";
8918
8947
  } else {
8919
8948
  wantedSessionType = "persistent-license";
@@ -9068,6 +9097,21 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
9068
9097
  if (compatibleSessionInfo === undefined) {
9069
9098
  return false;
9070
9099
  }
9100
+ /**
9101
+ * On Safari using Directfile, the old EME implementation triggers
9102
+ * the "webkitneedkey" event instead of "encrypted". There's an issue in
9103
+ * Safari where "webkitneedkey" fires too early before all tracks are added
9104
+ * from an HLS playlist.
9105
+ * Safari incorrectly assumes some keys are missing for these tracks,
9106
+ * leading to repeated "webkitneedkey" events. Because RxPlayer recognizes
9107
+ * it already has a session for these keys and ignores the events,
9108
+ * the content remains frozen. To resolve this, the session is re-created.
9109
+ */
9110
+ var forceSessionRecreation = initializationData.forceSessionRecreation;
9111
+ if (forceSessionRecreation === true) {
9112
+ this.removeSessionForInitData(initializationData, mediaKeysData);
9113
+ return false;
9114
+ }
9071
9115
  // Check if the compatible session is blacklisted
9072
9116
  var blacklistedSessionError = compatibleSessionInfo.blacklistedSessionError;
9073
9117
  if (!(0,is_null_or_undefined/* default */.A)(blacklistedSessionError)) {
@@ -9139,6 +9183,39 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
9139
9183
  }
9140
9184
  return false;
9141
9185
  }
9186
+ /**
9187
+ * Remove the session corresponding to the initData provided, and close it.
9188
+ * It does nothing if no session was found for this initData.
9189
+ * @param {Object} initData : The initialization data corresponding to the session
9190
+ * that need to be removed
9191
+ * @param {Object} mediaKeysData : The media keys data
9192
+ */;
9193
+ _proto.removeSessionForInitData = function removeSessionForInitData(initData, mediaKeysData) {
9194
+ var stores = mediaKeysData.stores;
9195
+ /** Remove the session and close it from the loadedSessionStore */
9196
+ var entry = stores.loadedSessionsStore.reuse(initData);
9197
+ if (entry !== null) {
9198
+ stores.loadedSessionsStore.closeSession(entry.mediaKeySession)["catch"](function () {
9199
+ return log/* default */.A.error("DRM: Cannot close the session from the loaded session store");
9200
+ });
9201
+ }
9202
+ /**
9203
+ * If set, a currently-used key session is already compatible to this
9204
+ * initialization data.
9205
+ */
9206
+ var compatibleSessionInfo = (0,array_find/* default */.A)(this._currentSessions, function (x) {
9207
+ return x.record.isCompatibleWith(initData);
9208
+ });
9209
+ if (compatibleSessionInfo === undefined) {
9210
+ return;
9211
+ }
9212
+ /** Remove the session from the currentSessions */
9213
+ var indexOf = this._currentSessions.indexOf(compatibleSessionInfo);
9214
+ if (indexOf !== -1) {
9215
+ log/* default */.A.debug("DRM: A session from a processed init is removed " + "due to forceSessionRecreation policy.");
9216
+ this._currentSessions.splice(indexOf, 1);
9217
+ }
9218
+ }
9142
9219
  /**
9143
9220
  * Callback that should be called if an error that made the current
9144
9221
  * `ContentDecryptor` instance unusable arised.
@@ -9883,21 +9960,27 @@ function getDirectFileInitialTime(mediaElement, startAt) {
9883
9960
  }
9884
9961
  var duration = mediaElement.duration;
9885
9962
  if (typeof startAt.fromLastPosition === "number") {
9886
- if ((0,_utils_is_null_or_undefined__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .A)(duration) || !isFinite(duration)) {
9887
- _log__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.warn("startAt.fromLastPosition set but no known duration, " + "beginning at 0.");
9888
- return 0;
9963
+ if (!(0,_utils_is_null_or_undefined__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .A)(duration) && isFinite(duration)) {
9964
+ return Math.max(0, duration + startAt.fromLastPosition);
9965
+ }
9966
+ if (mediaElement.seekable.length > 0) {
9967
+ var lastSegmentEnd = mediaElement.seekable.end(mediaElement.seekable.length - 1);
9968
+ if (isFinite(lastSegmentEnd)) {
9969
+ return Math.max(0, lastSegmentEnd + startAt.fromLastPosition);
9970
+ }
9889
9971
  }
9890
- return Math.max(0, duration + startAt.fromLastPosition);
9972
+ _log__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.warn("Init: startAt.fromLastPosition set but no known duration, " + "it may be too soon to seek");
9973
+ return undefined;
9891
9974
  } else if (typeof startAt.fromLivePosition === "number") {
9892
9975
  var livePosition = mediaElement.seekable.length > 0 ? mediaElement.seekable.end(0) : duration;
9893
9976
  if ((0,_utils_is_null_or_undefined__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .A)(livePosition)) {
9894
- _log__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.warn("startAt.fromLivePosition set but no known live position, " + "beginning at 0.");
9977
+ _log__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.warn("Init: startAt.fromLivePosition set but no known live position, " + "beginning at 0.");
9895
9978
  return 0;
9896
9979
  }
9897
9980
  return Math.max(0, livePosition + startAt.fromLivePosition);
9898
9981
  } else if (startAt.percentage != null) {
9899
9982
  if ((0,_utils_is_null_or_undefined__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .A)(duration) || !isFinite(duration)) {
9900
- _log__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.warn("startAt.percentage set but no known duration, " + "beginning at 0.");
9983
+ _log__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.warn("Init: startAt.percentage set but no known duration, " + "beginning at 0.");
9901
9984
  return 0;
9902
9985
  }
9903
9986
  var percentage = startAt.percentage;
@@ -12801,9 +12884,9 @@ var ManifestFetcher = /*#__PURE__*/function (_EventEmitter) {
12801
12884
  var externalClockOffset = manifest.clockOffset;
12802
12885
  if (unsafeMode) {
12803
12886
  this._consecutiveUnsafeMode += 1;
12804
- log/* default */.A.info("Init: Refreshing the Manifest in \"unsafeMode\" for the " + String(this._consecutiveUnsafeMode) + " consecutive time.");
12887
+ log/* default */.A.info('Init: Refreshing the Manifest in "unsafeMode" for the ' + String(this._consecutiveUnsafeMode) + " consecutive time.");
12805
12888
  } else if (this._consecutiveUnsafeMode > 0) {
12806
- log/* default */.A.info("Init: Not parsing the Manifest in \"unsafeMode\" anymore after " + String(this._consecutiveUnsafeMode) + " consecutive times.");
12889
+ log/* default */.A.info('Init: Not parsing the Manifest in "unsafeMode" anymore after ' + String(this._consecutiveUnsafeMode) + " consecutive times.");
12807
12890
  this._consecutiveUnsafeMode = 0;
12808
12891
  }
12809
12892
  if (this._isRefreshPending) {
@@ -14449,6 +14532,7 @@ function assertDataIsBufferSource(data) {
14449
14532
 
14450
14533
 
14451
14534
 
14535
+
14452
14536
  var POSSIBLE_BUFFER_TYPES = ["audio", "video", "text", "image"];
14453
14537
  /**
14454
14538
  * Allows to easily create and dispose SegmentBuffers, which are interfaces to
@@ -14610,9 +14694,10 @@ var SegmentBuffersStore = /*#__PURE__*/function () {
14610
14694
  }
14611
14695
  this._initializedSegmentBuffers[bufferType] = null;
14612
14696
  if (SegmentBuffersStore.isNative(bufferType)) {
14613
- this._onNativeBufferAddedOrDisabled.forEach(function (cb) {
14697
+ this._onNativeBufferAddedOrDisabled.slice().forEach(function (cb) {
14614
14698
  return cb();
14615
14699
  });
14700
+ (0,assert/* default */.h)(this._onNativeBufferAddedOrDisabled.length === 0);
14616
14701
  }
14617
14702
  }
14618
14703
  /**
@@ -14645,9 +14730,10 @@ var SegmentBuffersStore = /*#__PURE__*/function () {
14645
14730
  log/* default */.A.info("SB: Adding native SegmentBuffer with codec", codec);
14646
14731
  var nativeSegmentBuffer = new audio_video(bufferType, codec, this._mediaSource);
14647
14732
  this._initializedSegmentBuffers[bufferType] = nativeSegmentBuffer;
14648
- this._onNativeBufferAddedOrDisabled.forEach(function (cb) {
14733
+ this._onNativeBufferAddedOrDisabled.slice().forEach(function (cb) {
14649
14734
  return cb();
14650
14735
  });
14736
+ (0,assert/* default */.h)(this._onNativeBufferAddedOrDisabled.length === 0);
14651
14737
  return nativeSegmentBuffer;
14652
14738
  }
14653
14739
  if (memorizedSegmentBuffer != null) {
@@ -14823,7 +14909,6 @@ var sorted_list = __webpack_require__(7296);
14823
14909
  * ```
14824
14910
  * @class WeakMapMemory
14825
14911
  */
14826
- // eslint-disable-next-line @typescript-eslint/ban-types
14827
14912
  var WeakMapMemory = /*#__PURE__*/function () {
14828
14913
  /**
14829
14914
  * @param {Function}
@@ -17518,7 +17603,7 @@ function AdaptationStream(_ref, callbacks, parentCancelSignal) {
17518
17603
  var terminatingRepStreamCanceller = new task_canceller/* default */.Ay();
17519
17604
  terminatingRepStreamCanceller.linkToSignal(adapStreamCanceller.signal);
17520
17605
  var bufferGoal = (0,reference/* createMappedReference */.D)(wantedBufferAhead, function (prev) {
17521
- return prev * getBufferGoalRatio(representation);
17606
+ return getBufferGoal(representation, prev);
17522
17607
  }, terminatingRepStreamCanceller.signal);
17523
17608
  var maxBufferSize = adaptation.type === "video" ? maxVideoBufferSize : new reference/* default */.A(Infinity);
17524
17609
  log/* default */.A.info("Stream: changing representation", adaptation.type, representation.id, representation.bitrate);
@@ -17536,10 +17621,11 @@ function AdaptationStream(_ref, callbacks, parentCancelSignal) {
17536
17621
  var lastBufferGoalRatio = (_a = bufferGoalRatioMap.get(representation.id)) !== null && _a !== void 0 ? _a : 1;
17537
17622
  // 70%, 49%, 34.3%, 24%, 16.81%, 11.76%, 8.24% and 5.76%
17538
17623
  var newBufferGoalRatio = lastBufferGoalRatio * 0.7;
17539
- if (newBufferGoalRatio <= 0.05 || wba * newBufferGoalRatio <= 2) {
17540
- throw formattedError;
17541
- }
17542
17624
  bufferGoalRatioMap.set(representation.id, newBufferGoalRatio);
17625
+ if (newBufferGoalRatio <= 0.05 || getBufferGoal(representation, wba) <= 2) {
17626
+ representationStreamCallbacks.error(formattedError);
17627
+ return;
17628
+ }
17543
17629
  // We wait 4 seconds to let the situation evolve by itself before
17544
17630
  // retrying loading segments with a lower buffer goal
17545
17631
  (0,cancellable_sleep/* default */.A)(4000, adapStreamCanceller.signal).then(function () {
@@ -17572,16 +17658,26 @@ function AdaptationStream(_ref, callbacks, parentCancelSignal) {
17572
17658
  }, updatedCallbacks, adapStreamCanceller.signal);
17573
17659
  }
17574
17660
  /**
17575
- * @param {Object} representation
17661
+ * Returns how much media data should be pre-buffered for this
17662
+ * `Representation`, according to the `wantedBufferAhead` setting and previous
17663
+ * issues encountered with that `Representation`.
17664
+ * @param {Object} representation - The `Representation` you want to buffer.
17665
+ * @param {number} wba - The value of `wantedBufferAhead` set by the user.
17576
17666
  * @returns {number}
17577
17667
  */
17578
- function getBufferGoalRatio(representation) {
17668
+ function getBufferGoal(representation, wba) {
17579
17669
  var oldBufferGoalRatio = bufferGoalRatioMap.get(representation.id);
17580
17670
  var bufferGoalRatio = oldBufferGoalRatio !== undefined ? oldBufferGoalRatio : 1;
17581
17671
  if (oldBufferGoalRatio === undefined) {
17582
17672
  bufferGoalRatioMap.set(representation.id, bufferGoalRatio);
17583
17673
  }
17584
- return bufferGoalRatio;
17674
+ if (bufferGoalRatio < 1 && wba === Infinity) {
17675
+ // When `wba` is equal to `Infinity`, dividing it will still make it equal
17676
+ // to `Infinity`. To make the `bufferGoalRatio` still have an effect, we
17677
+ // just starts from a `wba` set to the high value of 5 minutes.
17678
+ return 5 * 60 * 1000 * bufferGoalRatio;
17679
+ }
17680
+ return wba * bufferGoalRatio;
17585
17681
  }
17586
17682
  }
17587
17683
  ;// CONCATENATED MODULE: ./src/core/stream/adaptation/index.ts
@@ -17652,7 +17748,11 @@ function areCodecsCompatible(a, b) {
17652
17748
  }
17653
17749
  var codecA = codecsA.substring(7);
17654
17750
  var codecB = codecsB.substring(7);
17655
- if (codecA.split(".")[0] !== codecB.split(".")[0]) {
17751
+ var initialPartA = codecA.split(".")[0];
17752
+ initialPartA = initialPartA === "hev1" ? "hvc1" : initialPartA;
17753
+ var initialPartB = codecB.split(".")[0];
17754
+ initialPartB = initialPartB === "hev1" ? "hvc1" : initialPartB;
17755
+ if (initialPartA !== initialPartB) {
17656
17756
  return false;
17657
17757
  }
17658
17758
  return true;
@@ -17766,16 +17866,15 @@ function getAdaptationSwitchStrategy(segmentBuffer, period, adaptation, playback
17766
17866
  // Period (which overlap a little with this one)
17767
17867
  /** Last segment before one for the current period. */
17768
17868
  var lastSegmentBefore = getLastSegmentBeforePeriod(inventory, period);
17769
- if (lastSegmentBefore !== null && (lastSegmentBefore.bufferedEnd === undefined || period.start - lastSegmentBefore.bufferedEnd < 1))
17869
+ if (lastSegmentBefore !== null && (lastSegmentBefore.bufferedEnd === undefined || period.start - lastSegmentBefore.bufferedEnd < 1)) {
17770
17870
  // Close to Period's start
17771
- {
17772
- // Exclude data close to the period's start to avoid cleaning
17773
- // to much
17774
- rangesToExclude.push({
17775
- start: 0,
17776
- end: period.start + 1
17777
- });
17778
- }
17871
+ // Exclude data close to the period's start to avoid cleaning
17872
+ // to much
17873
+ rangesToExclude.push({
17874
+ start: 0,
17875
+ end: period.start + 1
17876
+ });
17877
+ }
17779
17878
  // Next, exclude data around current position to avoid decoding issues
17780
17879
  var bufferType = adaptation.type;
17781
17880
  var _config$getCurrent = config/* default */.A.getCurrent(),
@@ -17800,14 +17899,13 @@ function getAdaptationSwitchStrategy(segmentBuffer, period, adaptation, playback
17800
17899
  if (period.end !== undefined) {
17801
17900
  /** first segment after for the current period. */
17802
17901
  var firstSegmentAfter = getFirstSegmentAfterPeriod(inventory, period);
17803
- if (firstSegmentAfter !== null && (firstSegmentAfter.bufferedStart === undefined || firstSegmentAfter.bufferedStart - period.end < 1))
17902
+ if (firstSegmentAfter !== null && (firstSegmentAfter.bufferedStart === undefined || firstSegmentAfter.bufferedStart - period.end < 1)) {
17804
17903
  // Close to Period's end
17805
- {
17806
- rangesToExclude.push({
17807
- start: period.end - 1,
17808
- end: Number.MAX_VALUE
17809
- });
17810
- }
17904
+ rangesToExclude.push({
17905
+ start: period.end - 1,
17906
+ end: Number.MAX_VALUE
17907
+ });
17908
+ }
17811
17909
  }
17812
17910
  var toRemove = (0,ranges/* excludeFromRanges */.bo)(unwantedRange, rangesToExclude);
17813
17911
  if (toRemove.length === 0) {
@@ -18344,7 +18442,7 @@ function createEmptyAdaptationStream(playbackObserver, wantedBufferAhead, buffer
18344
18442
  var wba = wantedBufferAhead.getValue();
18345
18443
  var position = observation.position.last;
18346
18444
  if (period.end !== undefined && position + wba >= period.end) {
18347
- log/* default */.A.debug("Stream: full \"empty\" AdaptationStream", bufferType);
18445
+ log/* default */.A.debug('Stream: full "empty" AdaptationStream', bufferType);
18348
18446
  hasFinishedLoading = true;
18349
18447
  }
18350
18448
  callbacks.streamStatusUpdate({
@@ -21519,7 +21617,38 @@ function performInitialSeekAndPlay(mediaElement, playbackObserver, startTime, mu
21519
21617
  // a sufficient `readyState` has been reached for directfile contents.
21520
21618
  // So let's divide the two possibilities here.
21521
21619
  var initialTime = typeof startTime === "function" ? startTime() : startTime;
21522
- if (shouldPreventSeekingAt0Initially() && initialTime === 0) {
21620
+ if (initialTime === undefined && isDirectfile && mediaElement.readyState < HTMLMediaElement.HAVE_CURRENT_DATA) {
21621
+ /**
21622
+ * The starting position may not be known yet.
21623
+ * Postpone the seek to a moment where the starting position should be known,
21624
+ * assumely it's when readyState is greater or equal to HAVE_CURRENT_DATA (2).
21625
+ * If the initiallySeekedTime is still `undefined` when the readyState is >= 2,
21626
+ * let assume that the initiallySeekedTime will never be known and continue
21627
+ * the logic without seeking.
21628
+ */
21629
+ playbackObserver.listen(function (obs, stopListening) {
21630
+ if (obs.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA) {
21631
+ var observationInitialTime = typeof startTime === "function" ? startTime() : startTime;
21632
+ if (observationInitialTime === undefined) {
21633
+ initialSeekPerformed.setValue(true);
21634
+ initialSeekPerformed.finish();
21635
+ } else if (isDirectfile && browser_detection/* isSafariMobile */.dX) {
21636
+ // On safari mobile (version 17.1.2) seeking too early cause the video
21637
+ // to never buffer media data. Using setTimeout 0 defers the seek
21638
+ // to a moment at which safari should be more able to handle a seek.
21639
+ setTimeout(function () {
21640
+ performInitialSeek(observationInitialTime);
21641
+ }, 0);
21642
+ } else {
21643
+ performInitialSeek(observationInitialTime);
21644
+ }
21645
+ stopListening();
21646
+ }
21647
+ });
21648
+ } else if (initialTime === undefined) {
21649
+ initialSeekPerformed.setValue(true);
21650
+ initialSeekPerformed.finish();
21651
+ } else if (shouldPreventSeekingAt0Initially() && initialTime === 0) {
21523
21652
  initialSeekPerformed.setValue(true);
21524
21653
  initialSeekPerformed.finish();
21525
21654
  } else if (isDirectfile && browser_detection/* isSafariMobile */.dX) {
@@ -22974,14 +23103,13 @@ var TextTrackCuesStore = /*#__PURE__*/function () {
22974
23103
  var nextCue = cuesBuffer[indexOfNextCue];
22975
23104
  if (nextCue === undefined ||
22976
23105
  // no cue
22977
- areNearlyEqual(cuesInfosToInsert.end, nextCue.end, relativeDelta))
23106
+ areNearlyEqual(cuesInfosToInsert.end, nextCue.end, relativeDelta)) {
22978
23107
  // samey end
22979
- {
22980
- // ours: |AAAAA|
22981
- // the current one: |BBBBB|
22982
- // Result: |AAAAA|
22983
- cuesBuffer[indexOfNextCue] = cuesInfosToInsert;
22984
- } else if (nextCue.start >= cuesInfosToInsert.end) {
23108
+ // ours: |AAAAA|
23109
+ // the current one: |BBBBB|
23110
+ // Result: |AAAAA|
23111
+ cuesBuffer[indexOfNextCue] = cuesInfosToInsert;
23112
+ } else if (nextCue.start >= cuesInfosToInsert.end) {
22985
23113
  // Either
22986
23114
  // ours: |AAAAA|
22987
23115
  // the current one: |BBBBBB|
@@ -24306,9 +24434,7 @@ var SegmentInventory = /*#__PURE__*/function () {
24306
24434
  // (Those not in that TimeRange nor in the previous one)
24307
24435
  var numberOfSegmentToDelete = inventoryIndex - indexBefore;
24308
24436
  if (numberOfSegmentToDelete > 0) {
24309
- var lastDeletedSegment =
24310
- // last garbage-collected segment
24311
- inventory[indexBefore + numberOfSegmentToDelete - 1];
24437
+ var lastDeletedSegment = inventory[indexBefore + numberOfSegmentToDelete - 1]; // last garbage-collected segment
24312
24438
  lastDeletedSegmentInfos = {
24313
24439
  end: (_b = lastDeletedSegment.bufferedEnd) !== null && _b !== void 0 ? _b : lastDeletedSegment.end,
24314
24440
  precizeEnd: lastDeletedSegment.precizeEnd
@@ -27138,7 +27264,7 @@ function updatePeriodInPlace(oldPeriod, newPeriod, updateType) {
27138
27264
  return a.id === oldAdaptation.id;
27139
27265
  });
27140
27266
  if (newAdaptationIdx === -1) {
27141
- log/* default */.A.warn("Manifest: Adaptation \"" + oldAdaptations[_j].id + "\" not found when merging.");
27267
+ log/* default */.A.warn('Manifest: Adaptation "' + oldAdaptations[_j].id + '" not found when merging.');
27142
27268
  var _oldAdaptations$splic = oldAdaptations.splice(_j, 1),
27143
27269
  removed = _oldAdaptations$splic[0];
27144
27270
  _j--;
@@ -27745,8 +27871,7 @@ var Manifest = /*#__PURE__*/function (_EventEmitter) {
27745
27871
  * @param {Object|Array.<Object>} textTracks
27746
27872
  */;
27747
27873
  _proto._addSupplementaryTextAdaptations = function _addSupplementaryTextAdaptations( /* eslint-disable import/no-deprecated */
27748
- textTracks
27749
- /* eslint-enable import/no-deprecated */) {
27874
+ textTracks) {
27750
27875
  var _this3 = this;
27751
27876
  var _textTracks = Array.isArray(textTracks) ? textTracks : [textTracks];
27752
27877
  var newTextAdaptations = _textTracks.reduce(function (allSubs, _ref3) {
@@ -28268,7 +28393,7 @@ function getNextBoxOffsets(buf) {
28268
28393
  * @returns {Uint8Array|null}
28269
28394
  */
28270
28395
  function getTRAF(buffer) {
28271
- var moof = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buffer, 0x6D6F6F66 /* moof */);
28396
+ var moof = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buffer, 0x6d6f6f66 /* moof */);
28272
28397
  if (moof === null) {
28273
28398
  return null;
28274
28399
  }
@@ -28283,7 +28408,7 @@ function getTRAF(buffer) {
28283
28408
  * @returns {Array.<Uint8Array>}
28284
28409
  */
28285
28410
  function getTRAFs(buffer) {
28286
- var moofs = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxesContent */ .fj)(buffer, 0x6D6F6F66 /* moof */);
28411
+ var moofs = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxesContent */ .fj)(buffer, 0x6d6f6f66 /* moof */);
28287
28412
  return moofs.reduce(function (acc, moof) {
28288
28413
  var traf = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(moof, 0x74726166 /* traf */);
28289
28414
  if (traf !== null) {
@@ -28300,7 +28425,7 @@ function getTRAFs(buffer) {
28300
28425
  * @returns {Uint8Array|null}
28301
28426
  */
28302
28427
  function getMDAT(buf) {
28303
- return (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buf, 0x6D646174 /* "mdat" */);
28428
+ return (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buf, 0x6d646174 /* "mdat" */);
28304
28429
  }
28305
28430
  /**
28306
28431
  * Returns the content of the first "mdia" box encountered in the given ISOBMFF
@@ -28310,15 +28435,15 @@ function getMDAT(buf) {
28310
28435
  * @returns {Uint8Array|null}
28311
28436
  */
28312
28437
  function getMDIA(buf) {
28313
- var moov = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buf, 0x6D6F6F76 /* moov */);
28438
+ var moov = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buf, 0x6d6f6f76 /* moov */);
28314
28439
  if (moov === null) {
28315
28440
  return null;
28316
28441
  }
28317
- var trak = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(moov, 0x7472616B /* "trak" */);
28442
+ var trak = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(moov, 0x7472616b /* "trak" */);
28318
28443
  if (trak === null) {
28319
28444
  return null;
28320
28445
  }
28321
- return (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(trak, 0x6D646961 /* "mdia" */);
28446
+ return (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(trak, 0x6d646961 /* "mdia" */);
28322
28447
  }
28323
28448
  /**
28324
28449
  * Returns the content of the first "emsg" box encountered in the given ISOBMFF
@@ -28331,7 +28456,7 @@ function getEMSG(buffer, offset) {
28331
28456
  if (offset === void 0) {
28332
28457
  offset = 0;
28333
28458
  }
28334
- return (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buffer.subarray(offset), 0x656D7367 /* emsg */);
28459
+ return (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(buffer.subarray(offset), 0x656d7367 /* emsg */);
28335
28460
  }
28336
28461
 
28337
28462
 
@@ -28426,7 +28551,7 @@ var get_box = __webpack_require__(8797);
28426
28551
  */
28427
28552
  function takePSSHOut(data) {
28428
28553
  var i = 0;
28429
- var moov = (0,get_box/* getBoxContent */.fZ)(data, 0x6D6F6F76 /* moov */);
28554
+ var moov = (0,get_box/* getBoxContent */.fZ)(data, 0x6d6f6f76 /* moov */);
28430
28555
  if (moov === null) {
28431
28556
  return [];
28432
28557
  }
@@ -28585,7 +28710,7 @@ function getSegmentsFromSidx(buf, sidxOffsetInWholeSegment) {
28585
28710
  var refChunk = (0,_utils_byte_parsing__WEBPACK_IMPORTED_MODULE_1__/* .be4toi */ .mq)(buf, cursor);
28586
28711
  cursor += 4;
28587
28712
  var refType = (refChunk & 0x80000000) >>> 31;
28588
- var refSize = refChunk & 0x7FFFFFFF;
28713
+ var refSize = refChunk & 0x7fffffff;
28589
28714
  // when set to 1 indicates that the reference is to a sidx, else to media
28590
28715
  if (refType === 1) {
28591
28716
  throw new Error("sidx with reference_type `1` not yet implemented");
@@ -28679,7 +28804,7 @@ function getDurationFromTrun(buffer) {
28679
28804
  var completeDuration = 0;
28680
28805
  for (var _iterator = _createForOfIteratorHelperLoose(trafs), _step; !(_step = _iterator()).done;) {
28681
28806
  var traf = _step.value;
28682
- var trun = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(traf, 0x7472756E /* trun */);
28807
+ var trun = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(traf, 0x7472756e /* trun */);
28683
28808
  if (trun === null) {
28684
28809
  return undefined;
28685
28810
  }
@@ -28748,7 +28873,7 @@ function getMDHDTimescale(buffer) {
28748
28873
  if (mdia === null) {
28749
28874
  return undefined;
28750
28875
  }
28751
- var mdhd = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(mdia, 0x6D646864 /* "mdhd" */);
28876
+ var mdhd = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(mdia, 0x6d646864 /* "mdhd" */);
28752
28877
  if (mdhd === null) {
28753
28878
  return undefined;
28754
28879
  }
@@ -28782,7 +28907,7 @@ function patchPssh(buf, psshList) {
28782
28907
  if (psshList == null || psshList.length === 0) {
28783
28908
  return buf;
28784
28909
  }
28785
- var moovOffsets = getBoxOffsets(buf, 0x6D6F6F76 /* = "moov" */);
28910
+ var moovOffsets = getBoxOffsets(buf, 0x6d6f6f76 /* = "moov" */);
28786
28911
  if (moovOffsets === null) {
28787
28912
  return buf;
28788
28913
  }
@@ -28901,12 +29026,12 @@ function parseEmsgBoxes(buffer) {
28901
29026
  * @returns {Uint8Array|null}
28902
29027
  */
28903
29028
  function getKeyIdFromInitSegment(segment) {
28904
- var stsd = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getChildBox */ .o$)(segment, [0x6D6F6F76 /* moov */, 0x7472616B /* trak */, 0x6D646961 /* mdia */, 0x6D696E66 /* minf */, 0x7374626C /* stbl */, 0x73747364 /* stsd */]);
29029
+ var stsd = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getChildBox */ .o$)(segment, [0x6d6f6f76 /* moov */, 0x7472616b /* trak */, 0x6d646961 /* mdia */, 0x6d696e66 /* minf */, 0x7374626c /* stbl */, 0x73747364 /* stsd */]);
28905
29030
  if (stsd === null) {
28906
29031
  return null;
28907
29032
  }
28908
29033
  var stsdSubBoxes = stsd.subarray(8);
28909
- var encBox = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(stsdSubBoxes, 0x656E6376 /* encv */);
29034
+ var encBox = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(stsdSubBoxes, 0x656e6376 /* encv */);
28910
29035
  var encContentOffset = 0;
28911
29036
  if (encBox === null) {
28912
29037
  encContentOffset = 8 +
@@ -28922,7 +29047,7 @@ function getKeyIdFromInitSegment(segment) {
28922
29047
  2 +
28923
29048
  // reserved
28924
29049
  4; // samplerate
28925
- encBox = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(stsdSubBoxes, 0x656E6361 /* enca */);
29050
+ encBox = (0,_get_box__WEBPACK_IMPORTED_MODULE_0__/* .getBoxContent */ .fZ)(stsdSubBoxes, 0x656e6361 /* enca */);
28926
29051
  } else {
28927
29052
  encContentOffset = 8 +
28928
29053
  // sample entry header
@@ -29048,7 +29173,7 @@ function parseBif(buf) {
29048
29173
  });
29049
29174
  index++;
29050
29175
  }
29051
- if (currentImageTimestamp === 0xFFFFFFFF) {
29176
+ if (currentImageTimestamp === 0xffffffff) {
29052
29177
  break;
29053
29178
  }
29054
29179
  previousImageInfo = {
@@ -30873,7 +30998,7 @@ function convertElementsToIndexSegment(item, previousItem, nextItem) {
30873
30998
  repeatCount: repeatCount === undefined ? 0 : repeatCount
30874
30999
  };
30875
31000
  }
30876
- log/* default */.A.warn("DASH: A \"S\" Element could not have been parsed.");
31001
+ log/* default */.A.warn('DASH: A "S" Element could not have been parsed.');
30877
31002
  return null;
30878
31003
  }
30879
31004
  ;// CONCATENATED MODULE: ./src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts
@@ -31133,7 +31258,7 @@ function constructTimelineFromPreviousTimeline(newElements, prevTimeline) {
31133
31258
  // Find first index in both timeline where a common segment is found.
31134
31259
  var commonStartInfo = findFirstCommonStartTime(prevTimeline, newElements);
31135
31260
  if (commonStartInfo === null) {
31136
- log/* default */.A.warn("DASH: Cannot perform \"based\" update. Common segment not found.");
31261
+ log/* default */.A.warn('DASH: Cannot perform "based" update. Common segment not found.');
31137
31262
  return constructTimelineFromElements(newElements);
31138
31263
  }
31139
31264
  var prevSegmentsIdx = commonStartInfo.prevSegmentsIdx,
@@ -31144,7 +31269,7 @@ function constructTimelineFromPreviousTimeline(newElements, prevTimeline) {
31144
31269
  var numberCommonEltGuess = prevTimeline.length - prevSegmentsIdx;
31145
31270
  var lastCommonEltNewEltsIdx = numberCommonEltGuess + newElementsIdx - 1;
31146
31271
  if (lastCommonEltNewEltsIdx >= newElements.length) {
31147
- log/* default */.A.info("DASH: Cannot perform \"based\" update. New timeline too short");
31272
+ log/* default */.A.info('DASH: Cannot perform "based" update. New timeline too short');
31148
31273
  return constructTimelineFromElements(newElements);
31149
31274
  }
31150
31275
  // Remove elements which are not available anymore
@@ -31155,14 +31280,14 @@ function constructTimelineFromPreviousTimeline(newElements, prevTimeline) {
31155
31280
  newTimeline[0].repeatCount -= repeatNumberInPrevSegments;
31156
31281
  }
31157
31282
  if (repeatNumberInNewElements > 0 && newElementsIdx !== 0) {
31158
- log/* default */.A.info("DASH: Cannot perform \"based\" update. " + "The new timeline has a different form.");
31283
+ log/* default */.A.info('DASH: Cannot perform "based" update. ' + "The new timeline has a different form.");
31159
31284
  return constructTimelineFromElements(newElements);
31160
31285
  }
31161
31286
  var prevLastElement = newTimeline[newTimeline.length - 1];
31162
31287
  var newCommonElt = parseSElement(newElements[lastCommonEltNewEltsIdx]);
31163
31288
  var newRepeatCountOffseted = ((_a = newCommonElt.repeatCount) !== null && _a !== void 0 ? _a : 0) - repeatNumberInNewElements;
31164
31289
  if (newCommonElt.duration !== prevLastElement.duration || prevLastElement.repeatCount > newRepeatCountOffseted) {
31165
- log/* default */.A.info("DASH: Cannot perform \"based\" update. " + "The new timeline has a different form at the beginning.");
31290
+ log/* default */.A.info('DASH: Cannot perform "based" update. ' + "The new timeline has a different form at the beginning.");
31166
31291
  return constructTimelineFromElements(newElements);
31167
31292
  }
31168
31293
  if (newCommonElt.repeatCount !== undefined && newCommonElt.repeatCount > prevLastElement.repeatCount) {
@@ -31431,9 +31556,8 @@ var TimelineRepresentationIndex = /*#__PURE__*/function () {
31431
31556
  return false;
31432
31557
  }
31433
31558
  if (this._scaledPeriodEnd === undefined) {
31434
- return scaledWantedEnd + segmentTimeRounding > this._scaledPeriodStart ? undefined :
31435
- // There may be future segments at this point
31436
- false; // Before the current Period
31559
+ return scaledWantedEnd + segmentTimeRounding > this._scaledPeriodStart ? undefined // There may be future segments at this point
31560
+ : false; // Before the current Period
31437
31561
  }
31438
31562
  // `true` if within the boundaries of this Period. `false` otherwise.
31439
31563
  return scaledWantedStart - segmentTimeRounding < this._scaledPeriodEnd && scaledWantedEnd + segmentTimeRounding > this._scaledPeriodStart;
@@ -33006,7 +33130,7 @@ function parseAdaptationSets(adaptationsIR, context) {
33006
33130
  var mergedInto = parsedAdaptations[type][mergedIntoIdx];
33007
33131
  if (mergedInto !== undefined && mergedInto[0].audioDescription === parsedAdaptationSet.audioDescription && mergedInto[0].closedCaption === parsedAdaptationSet.closedCaption && mergedInto[0].language === parsedAdaptationSet.language) {
33008
33132
  var _mergedInto$0$represe;
33009
- log/* default */.A.info("DASH Parser: merging \"switchable\" AdaptationSets", originalID, id);
33133
+ log/* default */.A.info('DASH Parser: merging "switchable" AdaptationSets', originalID, id);
33010
33134
  (_mergedInto$0$represe = mergedInto[0].representations).push.apply(_mergedInto$0$represe, parsedAdaptationSet.representations);
33011
33135
  mergedInto[1] = {
33012
33136
  priority: Math.max(priority, mergedInto[1].priority),
@@ -33329,7 +33453,7 @@ function generateStreamEvents(baseIr, periodStart, xmlNamespaces) {
33329
33453
  // encountering unknown namespaced attributes or elements in the given
33330
33454
  // `<Event>` xml subset.
33331
33455
  var parentNode = allNamespaces.reduce(function (acc, ns) {
33332
- return acc + "xmlns:" + ns.key + "=\"" + ns.value + "\" ";
33456
+ return acc + "xmlns:" + ns.key + '="' + ns.value + '" ';
33333
33457
  }, "<toremove ");
33334
33458
  parentNode += ">";
33335
33459
  var elementToString = (0,string_parsing/* utf8ToStr */.Es)(new Uint8Array(eventIr.eventStreamData));
@@ -35961,9 +36085,8 @@ function updateSegmentTimeline(oldTimeline, newTimeline) {
35961
36085
  }
35962
36086
  var newCurrRepeat = (newIndexStart - currElt.start) / currElt.duration - 1;
35963
36087
  if (newCurrRepeat % 1 === 0 && currElt.duration === newTimeline[0].duration) {
35964
- var newRepeatCount = newTimeline[0].repeatCount < 0 ? -1 :
35965
- // === maximum possible repeat
35966
- newTimeline[0].repeatCount + newCurrRepeat + 1;
36088
+ var newRepeatCount = newTimeline[0].repeatCount < 0 ? -1 // === maximum possible repeat
36089
+ : newTimeline[0].repeatCount + newCurrRepeat + 1;
35967
36090
  // replace that one and those after it
35968
36091
  oldTimeline.splice.apply(oldTimeline, [i, prevTimelineLength - i].concat(newTimeline));
35969
36092
  oldTimeline[i].start = currElt.start;
@@ -35988,7 +36111,7 @@ function updateSegmentTimeline(oldTimeline, newTimeline) {
35988
36111
  return false;
35989
36112
  } else {
35990
36113
  // the new has more depth
35991
- _log__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.warn("RepresentationIndex: The new index is \"bigger\" than the previous one");
36114
+ _log__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.warn('RepresentationIndex: The new index is "bigger" than the previous one');
35992
36115
  oldTimeline.splice.apply(oldTimeline, [0, prevTimelineLength].concat(newTimeline));
35993
36116
  return true;
35994
36117
  }
@@ -36000,7 +36123,7 @@ function updateSegmentTimeline(oldTimeline, newTimeline) {
36000
36123
  return false;
36001
36124
  }
36002
36125
  // the new one has more depth. full update
36003
- _log__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.warn("RepresentationIndex: The new index is \"bigger\" than the previous one");
36126
+ _log__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.warn('RepresentationIndex: The new index is "bigger" than the previous one');
36004
36127
  oldTimeline.splice.apply(oldTimeline, [0, prevTimelineLength].concat(newTimeline));
36005
36128
  return true;
36006
36129
  }
@@ -36108,8 +36231,8 @@ function decodeEntities(text) {
36108
36231
  * @param {string} lang
36109
36232
  */
36110
36233
  function parseSami(smi, timeOffset, lang) {
36111
- var syncOpen = /<sync[ >]/ig;
36112
- var syncClose = /<sync[ >]|<\/body>/ig;
36234
+ var syncOpen = /<sync[ >]/gi;
36235
+ var syncClose = /<sync[ >]|<\/body>/gi;
36113
36236
  var subs = [];
36114
36237
  var styleMatches = STYLE.exec(smi);
36115
36238
  var css = Array.isArray(styleMatches) ? styleMatches[1] : "";
@@ -36223,10 +36346,6 @@ function parseSami(smi, timeOffset, lang) {
36223
36346
  * See the License for the specific language governing permissions and
36224
36347
  * limitations under the License.
36225
36348
  */
36226
- /**
36227
- * /!\ This file is feature-switchable.
36228
- * It always should be imported through the `features` object.
36229
- */
36230
36349
 
36231
36350
 
36232
36351
  var HTML_ENTITIES = /&#([0-9]+);/g;
@@ -36307,8 +36426,8 @@ function decodeEntities(text) {
36307
36426
  * @returns {Array.<VTTCue|TextTrackCue>}
36308
36427
  */
36309
36428
  function parseSami(smi, timeOffset, lang) {
36310
- var syncOpen = /<sync[ >]/ig;
36311
- var syncClose = /<sync[ >]|<\/body>/ig;
36429
+ var syncOpen = /<sync[ >]/gi;
36430
+ var syncClose = /<sync[ >]|<\/body>/gi;
36312
36431
  var subs = [];
36313
36432
  var styleMatches = STYLE.exec(smi);
36314
36433
  var css = styleMatches !== null ? styleMatches[1] : "";
@@ -36658,12 +36777,6 @@ function isNodeFontWithColorProp(node) {
36658
36777
  * See the License for the specific language governing permissions and
36659
36778
  * limitations under the License.
36660
36779
  */
36661
- /**
36662
- * /!\ This file is feature-switchable.
36663
- * It always should be imported through the `features` object.
36664
- */
36665
- // srt to VTTCue parser, Done for fun.
36666
- // Heavily inspired from the WebVTT implementation
36667
36780
 
36668
36781
 
36669
36782
 
@@ -37373,7 +37486,7 @@ function applyFontSize(element, fontSize) {
37373
37486
  } else if (firstFontSize[2] === "%") {
37374
37487
  var toNum = Number(firstFontSize[1]);
37375
37488
  if (isNaN(toNum)) {
37376
- log/* default */.A.warn("TTML Parser: could not parse fontSize value \"" + firstFontSize[1] + "\" into a number");
37489
+ log/* default */.A.warn('TTML Parser: could not parse fontSize value "' + firstFontSize[1] + '" into a number');
37377
37490
  } else {
37378
37491
  element.style.position = "relative";
37379
37492
  addClassName(element, "proportional-style");
@@ -39841,10 +39954,6 @@ function toNativeCue(cueObj) {
39841
39954
  * See the License for the specific language governing permissions and
39842
39955
  * limitations under the License.
39843
39956
  */
39844
- /**
39845
- * /!\ This file is feature-switchable.
39846
- * It always should be imported through the `features` object.
39847
- */
39848
39957
 
39849
39958
 
39850
39959
 
@@ -40433,7 +40542,9 @@ function generateManifestParser(options) {
40433
40542
  return processMpdParserResponse(parsed);
40434
40543
  } else {
40435
40544
  log/* default */.A.debug("DASH: Awaiting WASM initialization before parsing the MPD.");
40436
- var initProm = parsers.wasm.waitForInitialization()["catch"](function () {});
40545
+ var initProm = parsers.wasm.waitForInitialization()["catch"](function () {
40546
+ /* ignore errors, we will check the status later */
40547
+ });
40437
40548
  return initProm.then(function () {
40438
40549
  if (parsers.wasm === null || parsers.wasm.status !== "initialized") {
40439
40550
  log/* default */.A.warn("DASH: WASM MPD parser initialization failed. " + "Running JS parser instead");
@@ -40633,10 +40744,10 @@ function getManifestAsArrayBuffer(manifestSrc) {
40633
40744
  */
40634
40745
  function doesXmlSeemsUtf8Encoded(xmlData) {
40635
40746
  var dv = new DataView(xmlData);
40636
- if (dv.getUint16(0) === 0xEFBB && dv.getUint8(2) === 0XBF) {
40747
+ if (dv.getUint16(0) === 0xefbb && dv.getUint8(2) === 0xbf) {
40637
40748
  // (UTF-8 BOM)
40638
40749
  return true;
40639
- } else if (dv.getUint16(0) === 0xFEFF || dv.getUint16(0) === 0xFFFe) {
40750
+ } else if (dv.getUint16(0) === 0xfeff || dv.getUint16(0) === 0xfffe) {
40640
40751
  // (UTF-16 BOM)
40641
40752
  return false;
40642
40753
  }
@@ -41102,7 +41213,7 @@ function extractCompleteChunks(buffer) {
41102
41213
  var currentBuffer = null;
41103
41214
  while (_position < buffer.length) {
41104
41215
  currentBuffer = buffer.subarray(_position, Infinity);
41105
- var moofIndex = (0,find_complete_box/* default */.A)(currentBuffer, 0x6D6F6F66 /* moof */);
41216
+ var moofIndex = (0,find_complete_box/* default */.A)(currentBuffer, 0x6d6f6f66 /* moof */);
41106
41217
  if (moofIndex < 0) {
41107
41218
  // no moof, not a segment.
41108
41219
  return [chunks, currentBuffer];
@@ -41113,7 +41224,7 @@ function extractCompleteChunks(buffer) {
41113
41224
  // not a complete moof segment
41114
41225
  return [chunks, currentBuffer];
41115
41226
  }
41116
- var mdatIndex = (0,find_complete_box/* default */.A)(currentBuffer, 0x6D646174 /* mdat */);
41227
+ var mdatIndex = (0,find_complete_box/* default */.A)(currentBuffer, 0x6d646174 /* mdat */);
41117
41228
  if (mdatIndex < 0) {
41118
41229
  // no mdat, not a segment.
41119
41230
  return [chunks, currentBuffer];
@@ -41418,14 +41529,14 @@ var utils = __webpack_require__(1134);
41418
41529
  */
41419
41530
 
41420
41531
  var SEGMENT_ID = 0x18538067;
41421
- var INFO_ID = 0x1549A966;
41422
- var TIMECODESCALE_ID = 0x2AD7B1;
41532
+ var INFO_ID = 0x1549a966;
41533
+ var TIMECODESCALE_ID = 0x2ad7b1;
41423
41534
  var DURATION_ID = 0x4489;
41424
- var CUES_ID = 0x1C53BB6B;
41425
- var CUE_POINT_ID = 0xBB;
41426
- var CUE_TIME_ID = 0xB3;
41427
- var CUE_TRACK_POSITIONS_ID = 0xB7;
41428
- var CUE_CLUSTER_POSITIONS_ID = 0xF1;
41535
+ var CUES_ID = 0x1c53bb6b;
41536
+ var CUE_POINT_ID = 0xbb;
41537
+ var CUE_TIME_ID = 0xb3;
41538
+ var CUE_TRACK_POSITIONS_ID = 0xb7;
41539
+ var CUE_CLUSTER_POSITIONS_ID = 0xf1;
41429
41540
  /**
41430
41541
  * Find the offsets of the value linked to the given element ID.
41431
41542
  * @param {number} elementID - ID for the searched element.
@@ -42100,6 +42211,7 @@ function getISOBMFFTextTrackFormat(representation) {
42100
42211
  }
42101
42212
  switch (codec.toLowerCase()) {
42102
42213
  case "stpp": // stpp === TTML in MP4
42214
+ case "stpp.ttml":
42103
42215
  case "stpp.ttml.im1t":
42104
42216
  return "ttml";
42105
42217
  case "wvtt":
@@ -43280,7 +43392,7 @@ function getAudioCodecs(codecPrivateData, fourCC) {
43280
43392
  if (fourCC === "AACH") {
43281
43393
  mpProfile = 5; // High Efficiency AAC Profile
43282
43394
  } else {
43283
- mpProfile = (0,is_non_empty_string/* default */.A)(codecPrivateData) ? (parseInt(codecPrivateData.substring(0, 2), 16) & 0xF8) >> 3 : 2;
43395
+ mpProfile = (0,is_non_empty_string/* default */.A)(codecPrivateData) ? (parseInt(codecPrivateData.substring(0, 2), 16) & 0xf8) >> 3 : 2;
43284
43396
  }
43285
43397
  if (mpProfile === 0) {
43286
43398
  // Return default audio codec
@@ -44091,7 +44203,7 @@ var get_box = __webpack_require__(8797);
44091
44203
  * @returns {Array.<Object>}
44092
44204
  */
44093
44205
  function parseTfrf(traf) {
44094
- var tfrf = (0,get_box/* getUuidContent */.$H)(traf, 0xD4807EF2, 0xCA394695, 0x8E5426CB, 0x9E46A79F);
44206
+ var tfrf = (0,get_box/* getUuidContent */.$H)(traf, 0xd4807ef2, 0xca394695, 0x8e5426cb, 0x9e46a79f);
44095
44207
  if (tfrf === undefined) {
44096
44208
  return [];
44097
44209
  }
@@ -44138,7 +44250,7 @@ function parseTfrf(traf) {
44138
44250
  * @returns {Object|undefined}
44139
44251
  */
44140
44252
  function parseTfxd(traf) {
44141
- var tfxd = (0,get_box/* getUuidContent */.$H)(traf, 0x6D1D9B05, 0x42D544E6, 0x80E2141D, 0xAFF757B2);
44253
+ var tfxd = (0,get_box/* getUuidContent */.$H)(traf, 0x6d1d9b05, 0x42d544e6, 0x80e2141d, 0xaff757b2);
44142
44254
  if (tfxd === undefined) {
44143
44255
  return undefined;
44144
44256
  }
@@ -44321,10 +44433,9 @@ function createAVC1Box(width, height, hRes, vRes, encName, colorDepth, avcc) {
44321
44433
  // + padding
44322
44434
  (0,byte_parsing/* itobe2 */.ww)(colorDepth),
44323
44435
  // color depth
44324
- [0xFF, 0xFF],
44436
+ [0xff, 0xff],
44325
44437
  // reserved ones
44326
- avcc // avcc atom,
44327
- ));
44438
+ avcc));
44328
44439
  }
44329
44440
  /**
44330
44441
  * @param {Number} width
@@ -44358,7 +44469,7 @@ function createENCVBox(width, height, hRes, vRes, encName, colorDepth, avcc, sin
44358
44469
  // + padding
44359
44470
  (0,byte_parsing/* itobe2 */.ww)(colorDepth),
44360
44471
  // color depth
44361
- [0xFF, 0xFF],
44472
+ [0xff, 0xff],
44362
44473
  // reserved ones
44363
44474
  avcc,
44364
44475
  // avcc atom,
@@ -44475,7 +44586,7 @@ function createAVCCBox(sps, pps, nalLen) {
44475
44586
  var h264Profile = sps[1];
44476
44587
  var h264CompatibleProfile = sps[2];
44477
44588
  var h264Level = sps[3];
44478
- return createBox("avcC", (0,byte_parsing/* concat */.xW)([1, h264Profile, h264CompatibleProfile, h264Level, 0x3F << 2 | nal, 0xE0 | 1], (0,byte_parsing/* itobe2 */.ww)(sps.length), sps, [1], (0,byte_parsing/* itobe2 */.ww)(pps.length), pps));
44589
+ return createBox("avcC", (0,byte_parsing/* concat */.xW)([1, h264Profile, h264CompatibleProfile, h264Level, 0x3f << 2 | nal, 0xe0 | 1], (0,byte_parsing/* itobe2 */.ww)(sps.length), sps, [1], (0,byte_parsing/* itobe2 */.ww)(pps.length), pps));
44479
44590
  }
44480
44591
  /**
44481
44592
  * @param {string} type - "video"/"audio"/"hint"
@@ -44498,8 +44609,7 @@ function createHDLRBox(type) {
44498
44609
  handlerName = "";
44499
44610
  break;
44500
44611
  }
44501
- return createBox("hdlr", (0,byte_parsing/* concat */.xW)(8, (0,string_parsing/* strToUtf8 */.eb)(name), 12, (0,string_parsing/* strToUtf8 */.eb)(handlerName), 1 // handler name is C-style string (0 terminated)
44502
- ));
44612
+ return createBox("hdlr", (0,byte_parsing/* concat */.xW)(8, (0,string_parsing/* strToUtf8 */.eb)(name), 12, (0,string_parsing/* strToUtf8 */.eb)(handlerName), 1));
44503
44613
  }
44504
44614
  /**
44505
44615
  * @param {number} timescale
@@ -44522,8 +44632,7 @@ function createMVHDBox(timescale, trackId) {
44522
44632
  // default matrix
44523
44633
  [0, 1], 14,
44524
44634
  // default matrix
44525
- [64, 0, 0, 0], 26, (0,byte_parsing/* itobe2 */.ww)(trackId + 1) // next trackId (=trackId + 1);
44526
- ));
44635
+ [64, 0, 0, 0], 26, (0,byte_parsing/* itobe2 */.ww)(trackId + 1)));
44527
44636
  }
44528
44637
  /**
44529
44638
  * @param {Uint8Array} mfhd
@@ -44607,8 +44716,7 @@ function createTKHDBox(width, height, trackId) {
44607
44716
  // ??
44608
44717
  (0,byte_parsing/* itobe2 */.ww)(width), 2,
44609
44718
  // width (TODO handle fixed)
44610
- (0,byte_parsing/* itobe2 */.ww)(height), 2 // height (TODO handle fixed)
44611
- ));
44719
+ (0,byte_parsing/* itobe2 */.ww)(height), 2));
44612
44720
  }
44613
44721
  /**
44614
44722
  * @param {Number} algId - eg 1
@@ -44674,18 +44782,18 @@ function createTrafBox(tfhd, tfdt, trun, mfhd, senc) {
44674
44782
  * @return {Uint8Array}
44675
44783
  */
44676
44784
  function patchSegment(segment, decodeTime) {
44677
- var oldMoofOffsets = (0,get_box/* getBoxOffsets */.QL)(segment, 0x6D6F6F66 /* moof */);
44785
+ var oldMoofOffsets = (0,get_box/* getBoxOffsets */.QL)(segment, 0x6d6f6f66 /* moof */);
44678
44786
  if (oldMoofOffsets === null) {
44679
44787
  throw new Error("Smooth: Invalid ISOBMFF given");
44680
44788
  }
44681
44789
  var oldMoofContent = segment.subarray(oldMoofOffsets[1], oldMoofOffsets[2]);
44682
- var mfhdBox = (0,get_box/* getBox */.YH)(oldMoofContent, 0x6D666864 /* mfhd */);
44790
+ var mfhdBox = (0,get_box/* getBox */.YH)(oldMoofContent, 0x6d666864 /* mfhd */);
44683
44791
  var trafContent = (0,get_box/* getBoxContent */.fZ)(oldMoofContent, 0x74726166 /* traf */);
44684
44792
  if (trafContent === null || mfhdBox === null) {
44685
44793
  throw new Error("Smooth: Invalid ISOBMFF given");
44686
44794
  }
44687
44795
  var tfhdOffsets = (0,get_box/* getBoxOffsets */.QL)(trafContent, 0x74666864 /* tfhd */);
44688
- var oldTrunOffsets = (0,get_box/* getBoxOffsets */.QL)(trafContent, 0x7472756E /* trun */);
44796
+ var oldTrunOffsets = (0,get_box/* getBoxOffsets */.QL)(trafContent, 0x7472756e /* trun */);
44689
44797
  if (tfhdOffsets === null || oldTrunOffsets === null) {
44690
44798
  throw new Error("Smooth: Invalid ISOBMFF given");
44691
44799
  }
@@ -44695,22 +44803,22 @@ function patchSegment(segment, decodeTime) {
44695
44803
  tfhdBox.set([0, 0, 0, 1], tfhdOffsets[1] - tfhdOffsets[0] + 4 /* version + flags */);
44696
44804
  var tfdtBox = createTfdtBox(decodeTime);
44697
44805
  var newTrunBox = updateTrunDataOffset(oldTrunBox, oldTrunOffsets[1] - oldTrunOffsets[0]);
44698
- var sencContent = (0,get_box/* getUuidContent */.$H)(trafContent, 0xA2394F52, 0x5A9B4F14, 0xA2446C42, 0x7C648DF4);
44806
+ var sencContent = (0,get_box/* getUuidContent */.$H)(trafContent, 0xa2394f52, 0x5a9b4f14, 0xa2446c42, 0x7c648df4);
44699
44807
  var newTrafBox = createTrafBox(tfhdBox, tfdtBox, newTrunBox, mfhdBox, sencContent);
44700
44808
  var newMoof = createBoxWithChildren("moof", [mfhdBox, newTrafBox]);
44701
- var newMoofOffsets = (0,get_box/* getBoxOffsets */.QL)(newMoof, 0x6D6F6F66 /* moof */);
44809
+ var newMoofOffsets = (0,get_box/* getBoxOffsets */.QL)(newMoof, 0x6d6f6f66 /* moof */);
44702
44810
  var newTrafOffsets = (0,get_box/* getBoxOffsets */.QL)(newTrafBox, 0x74726166 /* traf */);
44703
- var newTrunOffsets = (0,get_box/* getBoxOffsets */.QL)(newTrunBox, 0x7472756E /* trun */);
44811
+ var newTrunOffsets = (0,get_box/* getBoxOffsets */.QL)(newTrunBox, 0x7472756e /* trun */);
44704
44812
  if (newMoofOffsets === null || newTrafOffsets === null || newTrunOffsets === null) {
44705
44813
  throw new Error("Smooth: Invalid moof, trun or traf generation");
44706
44814
  }
44707
44815
  /** index of the `data_offset` property from the trun box in the whole "moof". */
44708
44816
  var indexOfTrunDataOffsetInMoof = newMoofOffsets[1] - newMoofOffsets[0] + mfhdBox.length + ( /* new traf size + name */
44709
44817
  newTrafOffsets[1] - newTrafOffsets[0]) + tfhdBox.length + tfdtBox.length + ( /* new trun size + name */
44710
- newTrunOffsets[1] - newTrunOffsets[0]) + 8 /* trun version + flags + `sample_count` */;
44818
+ newTrunOffsets[1] - newTrunOffsets[0]) + 8; /* trun version + flags + `sample_count` */
44711
44819
  var oldMoofLength = oldMoofOffsets[2] - oldMoofOffsets[0];
44712
44820
  var newMoofSizeDiff = newMoof.length - oldMoofLength;
44713
- var oldMdatOffset = (0,get_box/* getBoxOffsets */.QL)(segment, 0x6D646174 /* "mdat" */);
44821
+ var oldMdatOffset = (0,get_box/* getBoxOffsets */.QL)(segment, 0x6d646174 /* "mdat" */);
44714
44822
  if (oldMdatOffset === null) {
44715
44823
  throw new Error("Smooth: Invalid ISOBMFF given");
44716
44824
  }
@@ -44812,7 +44920,7 @@ function createMOOVBox(mvhd, mvex, trak) {
44812
44920
  * @returns {Uint8Array}
44813
44921
  */
44814
44922
  function createInitSegment(timescale, type, stsd, mhd, width, height) {
44815
- var stbl = createBoxWithChildren("stbl", [stsd, createBox("stts", new Uint8Array(0x08)), createBox("stsc", new Uint8Array(0x08)), createBox("stsz", new Uint8Array(0x0C)), createBox("stco", new Uint8Array(0x08))]);
44923
+ var stbl = createBoxWithChildren("stbl", [stsd, createBox("stts", new Uint8Array(0x08)), createBox("stsc", new Uint8Array(0x08)), createBox("stsz", new Uint8Array(0x0c)), createBox("stco", new Uint8Array(0x08))]);
44816
44924
  var url = createBox("url ", new Uint8Array([0, 0, 0, 1]));
44817
44925
  var dref = createDREFBox(url);
44818
44926
  var dinf = createBoxWithChildren("dinf", [dref]);
@@ -44926,9 +45034,9 @@ var SAMPLING_FREQUENCIES = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 220
44926
45034
  function getAacesHeader(type, frequency, chans) {
44927
45035
  var freq = SAMPLING_FREQUENCIES.indexOf(frequency); // TODO : handle Idx = 15...
44928
45036
  var val;
44929
- val = (type & 0x3F) << 0x4;
44930
- val = (val | freq & 0x1F) << 0x4;
44931
- val = (val | chans & 0x1F) << 0x3;
45037
+ val = (type & 0x3f) << 0x4;
45038
+ val = (val | freq & 0x1f) << 0x4;
45039
+ val = (val | chans & 0x1f) << 0x3;
44932
45040
  return (0,string_parsing/* bytesToHex */.My)((0,byte_parsing/* itobe2 */.ww)(val));
44933
45041
  }
44934
45042
  ;// CONCATENATED MODULE: ./src/transports/smooth/isobmff/create_audio_init_segment.ts
@@ -45608,7 +45716,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
45608
45716
  segmentEnd = chunkInfos.duration !== undefined ? chunkInfos.time + chunkInfos.duration : segment.end;
45609
45717
  }
45610
45718
  var lcCodec = codec.toLowerCase();
45611
- if (mimeType === "application/ttml+xml+mp4" || lcCodec === "stpp" || lcCodec === "stpp.ttml.im1t") {
45719
+ if (mimeType === "application/ttml+xml+mp4" || lcCodec === "stpp" || lcCodec === "stpp.ttml" || lcCodec === "stpp.ttml.im1t") {
45612
45720
  _sdType = "ttml";
45613
45721
  } else if (lcCodec === "wvtt") {
45614
45722
  _sdType = "vtt";
@@ -45869,16 +45977,16 @@ function checkISOBMFFIntegrity(buffer, isInitSegment) {
45869
45977
  if (ftypIndex < 0) {
45870
45978
  throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A("INTEGRITY_ERROR", "Incomplete `ftyp` box");
45871
45979
  }
45872
- var moovIndex = (0,_find_complete_box__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(buffer, 0x6D6F6F76 /* moov */);
45980
+ var moovIndex = (0,_find_complete_box__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(buffer, 0x6d6f6f76 /* moov */);
45873
45981
  if (moovIndex < 0) {
45874
45982
  throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A("INTEGRITY_ERROR", "Incomplete `moov` box");
45875
45983
  }
45876
45984
  } else {
45877
- var moofIndex = (0,_find_complete_box__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(buffer, 0x6D6F6F66 /* moof */);
45985
+ var moofIndex = (0,_find_complete_box__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(buffer, 0x6d6f6f66 /* moof */);
45878
45986
  if (moofIndex < 0) {
45879
45987
  throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A("INTEGRITY_ERROR", "Incomplete `moof` box");
45880
45988
  }
45881
- var mdatIndex = (0,_find_complete_box__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(buffer, 0x6D646174 /* mdat */);
45989
+ var mdatIndex = (0,_find_complete_box__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(buffer, 0x6d646174 /* mdat */);
45882
45990
  if (mdatIndex < 0) {
45883
45991
  throw new _errors__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A("INTEGRITY_ERROR", "Incomplete `mdat` box");
45884
45992
  }
@@ -46618,8 +46726,8 @@ function bytesToBase64(bytes) {
46618
46726
  for (i = 2; i < length; i += 3) {
46619
46727
  result += base64abc[bytes[i - 2] >> 2];
46620
46728
  result += base64abc[(bytes[i - 2] & 0x03) << 4 | bytes[i - 1] >> 4];
46621
- result += base64abc[(bytes[i - 1] & 0x0F) << 2 | bytes[i] >> 6];
46622
- result += base64abc[bytes[i] & 0x3F];
46729
+ result += base64abc[(bytes[i - 1] & 0x0f) << 2 | bytes[i] >> 6];
46730
+ result += base64abc[bytes[i] & 0x3f];
46623
46731
  }
46624
46732
  if (i === length + 1) {
46625
46733
  // 1 octet yet to write
@@ -46631,7 +46739,7 @@ function bytesToBase64(bytes) {
46631
46739
  // 2 octets yet to write
46632
46740
  result += base64abc[bytes[i - 2] >> 2];
46633
46741
  result += base64abc[(bytes[i - 2] & 0x03) << 4 | bytes[i - 1] >> 4];
46634
- result += base64abc[(bytes[i - 1] & 0x0F) << 2];
46742
+ result += base64abc[(bytes[i - 1] & 0x0f) << 2];
46635
46743
  result += "=";
46636
46744
  }
46637
46745
  return result;
@@ -46661,8 +46769,8 @@ function base64ToBytes(str) {
46661
46769
  for (var i = 0, j = 0; i < n; i += 4, j += 3) {
46662
46770
  buffer = getBase64Code(paddedStr.charCodeAt(i)) << 18 | getBase64Code(paddedStr.charCodeAt(i + 1)) << 12 | getBase64Code(paddedStr.charCodeAt(i + 2)) << 6 | getBase64Code(paddedStr.charCodeAt(i + 3));
46663
46771
  result[j] = buffer >> 16;
46664
- result[j + 1] = buffer >> 8 & 0xFF;
46665
- result[j + 2] = buffer & 0xFF;
46772
+ result[j + 1] = buffer >> 8 & 0xff;
46773
+ result[j + 2] = buffer & 0xff;
46666
46774
  }
46667
46775
  return result.subarray(0, result.length - missingOctets);
46668
46776
  }
@@ -46776,7 +46884,7 @@ function be8toi(bytes, offset) {
46776
46884
  * @returns {Uint8Array}
46777
46885
  */
46778
46886
  function itobe2(num) {
46779
- return new Uint8Array([num >>> 8 & 0xFF, num & 0xFF]);
46887
+ return new Uint8Array([num >>> 8 & 0xff, num & 0xff]);
46780
46888
  }
46781
46889
  /**
46782
46890
  * Translate Integer to a Uint8Array of length 4 of the corresponding big-endian
@@ -46785,7 +46893,7 @@ function itobe2(num) {
46785
46893
  * @returns {Uint8Array}
46786
46894
  */
46787
46895
  function itobe4(num) {
46788
- return new Uint8Array([num >>> 24 & 0xFF, num >>> 16 & 0xFF, num >>> 8 & 0xFF, num & 0xFF]);
46896
+ return new Uint8Array([num >>> 24 & 0xff, num >>> 16 & 0xff, num >>> 8 & 0xff, num & 0xff]);
46789
46897
  }
46790
46898
  /**
46791
46899
  * Translate Integer to a Uint8Array of length 8 of the corresponding big-endian
@@ -46798,7 +46906,7 @@ function itobe4(num) {
46798
46906
  function itobe8(num) {
46799
46907
  var l = num % 0x100000000;
46800
46908
  var h = (num - l) / 0x100000000;
46801
- return new Uint8Array([h >>> 24 & 0xFF, h >>> 16 & 0xFF, h >>> 8 & 0xFF, h & 0xFF, l >>> 24 & 0xFF, l >>> 16 & 0xFF, l >>> 8 & 0xFF, l & 0xFF]);
46909
+ return new Uint8Array([h >>> 24 & 0xff, h >>> 16 & 0xff, h >>> 8 & 0xff, h & 0xff, l >>> 24 & 0xff, l >>> 16 & 0xff, l >>> 8 & 0xff, l & 0xff]);
46802
46910
  }
46803
46911
  /**
46804
46912
  * Translate groups of 2 little-endian bytes to Integer (from 0 up to 65535).
@@ -46834,7 +46942,7 @@ function le8toi(bytes, offset) {
46834
46942
  * @returns {Uint8Array}
46835
46943
  */
46836
46944
  function itole2(num) {
46837
- return new Uint8Array([num & 0xFF, num >>> 8 & 0xFF]);
46945
+ return new Uint8Array([num & 0xff, num >>> 8 & 0xff]);
46838
46946
  }
46839
46947
  /**
46840
46948
  * Translate Integer to a Uint8Array of length 4 of the corresponding
@@ -46843,7 +46951,7 @@ function itole2(num) {
46843
46951
  * @returns {Uint8Array}
46844
46952
  */
46845
46953
  function itole4(num) {
46846
- return new Uint8Array([num & 0xFF, num >>> 8 & 0xFF, num >>> 16 & 0xFF, num >>> 24 & 0xFF]);
46954
+ return new Uint8Array([num & 0xff, num >>> 8 & 0xff, num >>> 16 & 0xff, num >>> 24 & 0xff]);
46847
46955
  }
46848
46956
  /**
46849
46957
  * Check if an ArrayBuffer is equal to the bytes given.
@@ -49594,8 +49702,8 @@ function strToUtf16LE(str) {
49594
49702
  var res = new Uint8Array(buffer);
49595
49703
  for (var i = 0; i < res.length; i += 2) {
49596
49704
  var value = str.charCodeAt(i / 2);
49597
- res[i] = value & 0xFF;
49598
- res[i + 1] = value >> 8 & 0xFF;
49705
+ res[i] = value & 0xff;
49706
+ res[i + 1] = value >> 8 & 0xff;
49599
49707
  }
49600
49708
  return res;
49601
49709
  }
@@ -49610,8 +49718,8 @@ function strToBeUtf16(str) {
49610
49718
  var res = new Uint8Array(buffer);
49611
49719
  for (var i = 0; i < res.length; i += 2) {
49612
49720
  var value = str.charCodeAt(i / 2);
49613
- res[i + 1] = value & 0xFF;
49614
- res[i] = value >> 8 & 0xFF;
49721
+ res[i + 1] = value & 0xff;
49722
+ res[i] = value >> 8 & 0xff;
49615
49723
  }
49616
49724
  return res;
49617
49725
  }
@@ -49739,7 +49847,7 @@ function strToUtf8(str) {
49739
49847
  // UTF-16 representation
49740
49848
  var res = new Uint8Array(utf8Str.length);
49741
49849
  for (var _i = 0; _i < utf8Str.length; _i++) {
49742
- res[_i] = utf8Str.charCodeAt(_i) & 0xFF; // first byte should be 0x00 anyway
49850
+ res[_i] = utf8Str.charCodeAt(_i) & 0xff; // first byte should be 0x00 anyway
49743
49851
  }
49744
49852
  return res;
49745
49853
  }
@@ -49796,7 +49904,7 @@ function utf8ToStr(data) {
49796
49904
  }
49797
49905
  var uint8 = data;
49798
49906
  // If present, strip off the UTF-8 BOM.
49799
- if (uint8[0] === 0xEF && uint8[1] === 0xBB && uint8[2] === 0xBF) {
49907
+ if (uint8[0] === 0xef && uint8[1] === 0xbb && uint8[2] === 0xbf) {
49800
49908
  uint8 = uint8.subarray(3);
49801
49909
  }
49802
49910
  // We're basically doing strToUtf8 in reverse.
@@ -49835,7 +49943,7 @@ function hexToBytes(str) {
49835
49943
  var len = str.length;
49836
49944
  var arr = new Uint8Array(len / 2);
49837
49945
  for (var i = 0, j = 0; i < len; i += 2, j++) {
49838
- arr[j] = parseInt(str.substring(i, i + 2), 16) & 0xFF;
49946
+ arr[j] = parseInt(str.substring(i, i + 2), 16) & 0xff;
49839
49947
  }
49840
49948
  return arr;
49841
49949
  }
@@ -49853,7 +49961,7 @@ function bytesToHex(bytes, sep) {
49853
49961
  var hex = "";
49854
49962
  for (var i = 0; i < bytes.byteLength; i++) {
49855
49963
  hex += (bytes[i] >>> 4).toString(16);
49856
- hex += (bytes[i] & 0xF).toString(16);
49964
+ hex += (bytes[i] & 0xf).toString(16);
49857
49965
  if (sep.length > 0 && i < bytes.byteLength - 1) {
49858
49966
  hex += sep;
49859
49967
  }
@@ -51629,7 +51737,7 @@ function parseConstructorOptions(options) {
51629
51737
  if (isNaN(maxVideoBitrate)) {
51630
51738
  throw new Error("Invalid maxVideoBitrate parameter. Should be a number.");
51631
51739
  } else if (minVideoBitrate > maxVideoBitrate) {
51632
- throw new Error("Invalid maxVideoBitrate parameter. Its value, \"" + (maxVideoBitrate + "\", is inferior to the set minVideoBitrate, \"") + (minVideoBitrate + "\""));
51740
+ throw new Error('Invalid maxVideoBitrate parameter. Its value, "' + (maxVideoBitrate + "\", is inferior to the set minVideoBitrate, \"") + (minVideoBitrate + "\""));
51633
51741
  }
51634
51742
  }
51635
51743
  if ((0,is_null_or_undefined/* default */.A)(options.maxAudioBitrate)) {
@@ -51639,7 +51747,7 @@ function parseConstructorOptions(options) {
51639
51747
  if (isNaN(maxAudioBitrate)) {
51640
51748
  throw new Error("Invalid maxAudioBitrate parameter. Should be a number.");
51641
51749
  } else if (minAudioBitrate > maxAudioBitrate) {
51642
- throw new Error("Invalid maxAudioBitrate parameter. Its value, \"" + (maxAudioBitrate + "\", is inferior to the set minAudioBitrate, \"") + (minAudioBitrate + "\""));
51750
+ throw new Error('Invalid maxAudioBitrate parameter. Its value, "' + (maxAudioBitrate + "\", is inferior to the set minAudioBitrate, \"") + (minAudioBitrate + "\""));
51643
51751
  }
51644
51752
  }
51645
51753
  var stopAtEnd = (0,is_null_or_undefined/* default */.A)(options.stopAtEnd) ? DEFAULT_STOP_AT_END : !!options.stopAtEnd;
@@ -51827,14 +51935,14 @@ function parseLoadVideoOptions(options) {
51827
51935
  if (textTrackMode === "html") {
51828
51936
  // TODO Better way to express that in TypeScript?
51829
51937
  if ((0,is_null_or_undefined/* default */.A)(options.textTrackElement)) {
51830
- throw new Error("You have to provide a textTrackElement " + "in \"html\" textTrackMode.");
51938
+ throw new Error("You have to provide a textTrackElement " + 'in "html" textTrackMode.');
51831
51939
  } else if (!(options.textTrackElement instanceof HTMLElement)) {
51832
51940
  throw new Error("textTrackElement should be an HTMLElement.");
51833
51941
  } else {
51834
51942
  textTrackElement = options.textTrackElement;
51835
51943
  }
51836
51944
  } else if (!(0,is_null_or_undefined/* default */.A)(options.textTrackElement)) {
51837
- src_log/* default */.A.warn("API: You have set a textTrackElement without being in " + "an \"html\" textTrackMode. It will be ignored.");
51945
+ src_log/* default */.A.warn("API: You have set a textTrackElement without being in " + 'an "html" textTrackMode. It will be ignored.');
51838
51946
  }
51839
51947
  if (!(0,is_null_or_undefined/* default */.A)(options.startAt)) {
51840
51948
  if ("wallClockTime" in options.startAt && options.startAt.wallClockTime instanceof Date) {
@@ -53682,7 +53790,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
53682
53790
  // Workaround to support Firefox autoplay on FF 42.
53683
53791
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
53684
53792
  videoElement.preload = "auto";
53685
- _this.version = /* PLAYER_VERSION */"3.33.4-dev.2024083000";
53793
+ _this.version = /* PLAYER_VERSION */"3.33.4";
53686
53794
  _this.log = src_log/* default */.A;
53687
53795
  _this.state = "STOPPED";
53688
53796
  _this.videoElement = videoElement;
@@ -54924,7 +55032,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
54924
55032
  positionWanted = timeObj.wallClockTime;
54925
55033
  }
54926
55034
  } else {
54927
- throw new Error("invalid time object. You must set one of the " + "following properties: \"relative\", \"position\" or " + "\"wallClockTime\"");
55035
+ throw new Error("invalid time object. You must set one of the " + 'following properties: "relative", "position" or ' + '"wallClockTime"');
54928
55036
  }
54929
55037
  }
54930
55038
  if (positionWanted === undefined) {
@@ -56170,7 +56278,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
56170
56278
  * Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
56171
56279
  */
56172
56280
  Player._priv_currentlyUsedVideoElements = new WeakSet();
56173
- Player.version = /* PLAYER_VERSION */"3.33.4-dev.2024083000";
56281
+ Player.version = /* PLAYER_VERSION */"3.33.4";
56174
56282
  /* harmony default export */ var public_api = (Player);
56175
56283
  ;// CONCATENATED MODULE: ./src/core/api/index.ts
56176
56284
  /**
@@ -56211,6 +56319,7 @@ Player.version = /* PLAYER_VERSION */"3.33.4-dev.2024083000";
56211
56319
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
56212
56320
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
56213
56321
  /* eslint-disable @typescript-eslint/no-var-requires */
56322
+ /* eslint-disable @typescript-eslint/no-require-imports */
56214
56323
 
56215
56324
  /**
56216
56325
  * Selects the features to include.