rx-player 3.29.0 → 3.30.0-dev.2023011800

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 (439) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/VERSION +1 -1
  3. package/dist/_esm5.processed/compat/can_reuse_media_keys.d.ts +3 -2
  4. package/dist/_esm5.processed/compat/can_reuse_media_keys.js +5 -4
  5. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +16 -7
  6. package/dist/_esm5.processed/compat/event_listeners.d.ts +33 -56
  7. package/dist/_esm5.processed/compat/event_listeners.js +66 -116
  8. package/dist/_esm5.processed/compat/index.d.ts +1 -4
  9. package/dist/_esm5.processed/compat/index.js +1 -4
  10. package/dist/_esm5.processed/compat/on_height_width_change.d.ts +1 -1
  11. package/dist/_esm5.processed/compat/on_height_width_change.js +2 -2
  12. package/dist/_esm5.processed/config.d.ts +1 -0
  13. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +3 -1
  14. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +27 -6
  15. package/dist/_esm5.processed/core/api/playback_observer.d.ts +8 -9
  16. package/dist/_esm5.processed/core/api/playback_observer.js +6 -7
  17. package/dist/_esm5.processed/core/api/public_api.d.ts +39 -41
  18. package/dist/_esm5.processed/core/api/public_api.js +569 -578
  19. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +9 -14
  20. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +73 -43
  21. package/dist/_esm5.processed/core/api/utils.d.ts +15 -10
  22. package/dist/_esm5.processed/core/api/utils.js +84 -19
  23. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +22 -5
  24. package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +97 -25
  25. package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +3 -2
  26. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +3 -2
  27. package/dist/_esm5.processed/core/decrypt/clear_on_stop.d.ts +1 -1
  28. package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +1 -1
  29. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +12 -20
  30. package/dist/_esm5.processed/core/decrypt/create_session.js +1 -1
  31. package/dist/_esm5.processed/core/decrypt/find_key_system.js +35 -13
  32. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +1 -1
  33. package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +32 -31
  34. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +291 -160
  35. package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +1 -1
  36. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +1 -1
  37. package/dist/_esm5.processed/core/decrypt/types.d.ts +0 -6
  38. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.d.ts +1 -1
  39. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +1 -1
  40. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +1 -1
  41. package/dist/_esm5.processed/core/fetchers/index.d.ts +2 -2
  42. package/dist/_esm5.processed/core/fetchers/manifest/index.d.ts +2 -2
  43. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +153 -89
  44. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +419 -144
  45. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +0 -24
  46. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +0 -24
  47. package/dist/_esm5.processed/core/init/{initialize_directfile.d.ts → directfile_content_initializer.d.ts} +13 -16
  48. package/dist/_esm5.processed/core/init/directfile_content_initializer.js +196 -0
  49. package/dist/_esm5.processed/core/init/index.d.ts +2 -2
  50. package/dist/_esm5.processed/core/init/index.js +2 -2
  51. package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +181 -0
  52. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +576 -0
  53. package/dist/_esm5.processed/core/init/types.d.ts +203 -64
  54. package/dist/_esm5.processed/core/init/types.js +36 -1
  55. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +164 -0
  56. package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +484 -0
  57. package/dist/_esm5.processed/core/init/{create_media_source.d.ts → utils/create_media_source.d.ts} +8 -4
  58. package/dist/_esm5.processed/core/init/utils/create_media_source.js +118 -0
  59. package/dist/_esm5.processed/core/init/{create_stream_playback_observer.d.ts → utils/create_stream_playback_observer.d.ts} +4 -4
  60. package/dist/_esm5.processed/core/init/{create_stream_playback_observer.js → utils/create_stream_playback_observer.js} +2 -5
  61. package/dist/_esm5.processed/core/init/{end_of_stream.d.ts → utils/end_of_stream.d.ts} +5 -5
  62. package/dist/_esm5.processed/core/init/utils/end_of_stream.js +85 -0
  63. package/dist/_esm5.processed/core/init/{get_initial_time.d.ts → utils/get_initial_time.d.ts} +1 -1
  64. package/dist/_esm5.processed/core/init/{get_initial_time.js → utils/get_initial_time.js} +3 -3
  65. package/dist/_esm5.processed/core/init/{emit_loaded_event.d.ts → utils/get_loaded_reference.d.ts} +9 -9
  66. package/dist/_esm5.processed/core/init/{emit_loaded_event.js → utils/get_loaded_reference.js} +23 -17
  67. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.d.ts +63 -0
  68. package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +124 -0
  69. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +80 -0
  70. package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +111 -0
  71. package/dist/_esm5.processed/core/init/{media_duration_updater.d.ts → utils/media_duration_updater.d.ts} +3 -3
  72. package/dist/_esm5.processed/core/init/{media_duration_updater.js → utils/media_duration_updater.js} +115 -41
  73. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +113 -0
  74. package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +483 -0
  75. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/are_same_stream_events.d.ts +0 -0
  76. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/are_same_stream_events.js +0 -0
  77. package/dist/_esm5.processed/core/{stream/types.js → init/utils/stream_events_emitter/index.d.ts} +3 -1
  78. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/index.js +0 -0
  79. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/refresh_scheduled_events_list.d.ts +1 -1
  80. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/refresh_scheduled_events_list.js +0 -0
  81. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +30 -0
  82. package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +155 -0
  83. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/types.d.ts +1 -13
  84. package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/types.js +0 -0
  85. package/dist/_esm5.processed/core/init/{throw_on_media_error.d.ts → utils/throw_on_media_error.d.ts} +5 -5
  86. package/dist/_esm5.processed/core/init/{throw_on_media_error.js → utils/throw_on_media_error.js} +19 -15
  87. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +0 -1
  88. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +0 -1
  89. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +0 -5
  90. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +0 -5
  91. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +3 -3
  92. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +3 -3
  93. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +1 -1
  94. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
  95. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +25 -130
  96. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +188 -117
  97. package/dist/_esm5.processed/core/stream/adaptation/index.d.ts +2 -2
  98. package/dist/_esm5.processed/core/stream/adaptation/index.js +1 -0
  99. package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +172 -0
  100. package/dist/_esm5.processed/core/stream/adaptation/types.js +1 -0
  101. package/dist/_esm5.processed/core/stream/adaptation/{create_representation_estimator.d.ts → utils/create_representation_estimator.d.ts} +6 -6
  102. package/dist/_esm5.processed/core/stream/adaptation/{create_representation_estimator.js → utils/create_representation_estimator.js} +3 -4
  103. package/dist/_esm5.processed/core/stream/index.d.ts +4 -3
  104. package/dist/_esm5.processed/core/stream/index.js +0 -1
  105. package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +2 -2
  106. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +142 -17
  107. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +303 -229
  108. package/dist/_esm5.processed/core/stream/period/index.d.ts +2 -3
  109. package/dist/_esm5.processed/core/stream/period/index.js +1 -0
  110. package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +27 -62
  111. package/dist/_esm5.processed/core/stream/period/period_stream.js +278 -105
  112. package/dist/_esm5.processed/core/stream/period/types.d.ts +110 -0
  113. package/dist/_esm5.processed/core/stream/period/types.js +1 -0
  114. package/dist/_esm5.processed/core/stream/period/{get_adaptation_switch_strategy.d.ts → utils/get_adaptation_switch_strategy.d.ts} +3 -3
  115. package/dist/_esm5.processed/core/stream/period/{get_adaptation_switch_strategy.js → utils/get_adaptation_switch_strategy.js} +3 -3
  116. package/dist/_esm5.processed/core/stream/representation/index.d.ts +2 -2
  117. package/dist/_esm5.processed/core/stream/representation/index.js +1 -0
  118. package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +32 -121
  119. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +210 -136
  120. package/dist/_esm5.processed/core/stream/representation/types.d.ts +267 -0
  121. package/dist/_esm5.processed/core/stream/representation/types.js +1 -0
  122. package/dist/_esm5.processed/core/stream/representation/{append_segment_to_buffer.d.ts → utils/append_segment_to_buffer.d.ts} +5 -5
  123. package/dist/_esm5.processed/core/stream/representation/{append_segment_to_buffer.js → utils/append_segment_to_buffer.js} +8 -3
  124. package/dist/_esm5.processed/core/stream/representation/{check_for_discontinuity.d.ts → utils/check_for_discontinuity.d.ts} +2 -2
  125. package/dist/_esm5.processed/core/stream/representation/{check_for_discontinuity.js → utils/check_for_discontinuity.js} +1 -1
  126. package/dist/_esm5.processed/core/stream/representation/{downloading_queue.d.ts → utils/downloading_queue.d.ts} +85 -80
  127. package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +378 -0
  128. package/dist/_esm5.processed/core/stream/representation/{force_garbage_collection.d.ts → utils/force_garbage_collection.d.ts} +2 -2
  129. package/dist/_esm5.processed/core/stream/representation/{force_garbage_collection.js → utils/force_garbage_collection.js} +3 -3
  130. package/dist/_esm5.processed/core/stream/representation/{get_buffer_status.d.ts → utils/get_buffer_status.d.ts} +3 -3
  131. package/dist/_esm5.processed/core/stream/representation/{get_buffer_status.js → utils/get_buffer_status.js} +3 -3
  132. package/dist/_esm5.processed/core/stream/representation/{get_needed_segments.d.ts → utils/get_needed_segments.d.ts} +3 -3
  133. package/dist/_esm5.processed/core/stream/representation/{get_needed_segments.js → utils/get_needed_segments.js} +4 -5
  134. package/dist/_esm5.processed/core/stream/representation/{get_segment_priority.d.ts → utils/get_segment_priority.d.ts} +0 -0
  135. package/dist/_esm5.processed/core/stream/representation/{get_segment_priority.js → utils/get_segment_priority.js} +1 -1
  136. package/dist/_esm5.processed/core/stream/representation/{push_init_segment.d.ts → utils/push_init_segment.d.ts} +9 -12
  137. package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +85 -0
  138. package/dist/_esm5.processed/core/stream/representation/{push_media_segment.d.ts → utils/push_media_segment.d.ts} +9 -12
  139. package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +109 -0
  140. package/dist/_esm5.processed/default_config.d.ts +10 -0
  141. package/dist/_esm5.processed/default_config.js +12 -1
  142. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -1
  143. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +1 -1
  144. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +1 -1
  145. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.d.ts +2 -3
  146. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +107 -59
  147. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +6 -7
  148. package/dist/_esm5.processed/features/initialize_features.js +1 -1
  149. package/dist/_esm5.processed/features/list/directfile.js +1 -1
  150. package/dist/_esm5.processed/features/types.d.ts +2 -3
  151. package/dist/_esm5.processed/manifest/adaptation.d.ts +7 -0
  152. package/dist/_esm5.processed/manifest/adaptation.js +3 -0
  153. package/dist/_esm5.processed/manifest/manifest.d.ts +2 -1
  154. package/dist/_esm5.processed/manifest/manifest.js +4 -3
  155. package/dist/_esm5.processed/manifest/update_period_in_place.d.ts +26 -1
  156. package/dist/_esm5.processed/manifest/update_period_in_place.js +58 -7
  157. package/dist/_esm5.processed/manifest/update_periods.d.ts +19 -2
  158. package/dist/_esm5.processed/manifest/update_periods.js +62 -18
  159. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +3 -0
  160. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +1 -0
  161. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +1 -0
  162. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +7 -1
  163. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +16 -0
  164. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +63 -25
  165. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +3 -0
  166. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +60 -6
  167. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +39 -13
  168. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +7 -3
  169. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +5 -0
  170. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +3 -0
  171. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +0 -1
  172. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +0 -1
  173. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -0
  174. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +6 -0
  175. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
  176. package/dist/_esm5.processed/parsers/manifest/types.d.ts +13 -2
  177. package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +7 -0
  178. package/dist/_esm5.processed/public_types.d.ts +2 -0
  179. package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -2
  180. package/dist/_esm5.processed/transports/dash/segment_loader.js +1 -1
  181. package/dist/_esm5.processed/transports/dash/text_parser.js +3 -3
  182. package/dist/_esm5.processed/transports/local/segment_loader.js +1 -1
  183. package/dist/_esm5.processed/utils/event_emitter.d.ts +3 -13
  184. package/dist/_esm5.processed/utils/event_emitter.js +0 -19
  185. package/dist/_esm5.processed/utils/reference.d.ts +46 -67
  186. package/dist/_esm5.processed/utils/reference.js +63 -93
  187. package/dist/_esm5.processed/utils/request/xhr.d.ts +3 -68
  188. package/dist/_esm5.processed/utils/{rx-retry_with_backoff.d.ts → retry_promise_with_backoff.d.ts} +19 -34
  189. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +119 -0
  190. package/dist/_esm5.processed/utils/sleep.d.ts +10 -0
  191. package/dist/_esm5.processed/utils/sleep.js +14 -0
  192. package/dist/_esm5.processed/utils/sorted_list.d.ts +1 -0
  193. package/dist/_esm5.processed/utils/sorted_list.js +3 -0
  194. package/dist/mpd-parser.wasm +0 -0
  195. package/dist/rx-player.js +8116 -11600
  196. package/dist/rx-player.min.js +1 -1
  197. package/dist/rx-player.min.js.LICENSE.txt +0 -15
  198. package/manifest.mpd +149 -0
  199. package/package.json +26 -26
  200. package/scripts/build/generate_build.js +1 -8
  201. package/sonar-project.properties +1 -1
  202. package/src/README.md +2 -2
  203. package/src/compat/__tests__/can_reuse_media_keys.test.ts +4 -27
  204. package/src/compat/can_reuse_media_keys.ts +5 -7
  205. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +14 -15
  206. package/src/compat/event_listeners.ts +84 -148
  207. package/src/compat/index.ts +0 -6
  208. package/src/compat/on_height_width_change.ts +2 -2
  209. package/src/core/README.md +1 -1
  210. package/src/core/adaptive/adaptive_representation_selector.ts +36 -7
  211. package/src/core/api/README.md +0 -33
  212. package/src/core/api/playback_observer.ts +20 -11
  213. package/src/core/api/public_api.ts +826 -815
  214. package/src/core/api/tracks_management/track_choice_manager.ts +97 -57
  215. package/src/core/api/utils.ts +112 -42
  216. package/src/core/decrypt/__tests__/__global__/get_license.test.ts +42 -38
  217. package/src/core/decrypt/__tests__/__global__/init_data.test.ts +15 -20
  218. package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +35 -47
  219. package/src/core/decrypt/__tests__/__global__/utils.ts +116 -17
  220. package/src/core/decrypt/attach_media_keys.ts +3 -2
  221. package/src/core/decrypt/clear_on_stop.ts +1 -1
  222. package/src/core/decrypt/content_decryptor.ts +19 -27
  223. package/src/core/decrypt/create_session.ts +1 -1
  224. package/src/core/decrypt/find_key_system.ts +31 -11
  225. package/src/core/decrypt/get_media_keys.ts +1 -1
  226. package/src/core/decrypt/session_events_listener.ts +259 -277
  227. package/src/core/decrypt/set_server_certificate.ts +1 -1
  228. package/src/core/decrypt/types.ts +0 -5
  229. package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +1 -1
  230. package/src/core/decrypt/utils/loaded_sessions_store.ts +1 -1
  231. package/src/core/fetchers/README.md +3 -0
  232. package/src/core/fetchers/index.ts +6 -6
  233. package/src/core/fetchers/manifest/index.ts +7 -7
  234. package/src/core/fetchers/manifest/manifest_fetcher.ts +646 -295
  235. package/src/core/fetchers/segment/segment_fetcher_creator.ts +0 -24
  236. package/src/core/init/README.md +31 -45
  237. package/src/core/init/directfile_content_initializer.ts +229 -0
  238. package/src/core/init/index.ts +3 -3
  239. package/src/core/init/media_source_content_initializer.ts +819 -0
  240. package/src/core/init/types.ts +220 -132
  241. package/src/core/init/{__tests__ → utils/__tests__}/are_same_stream_events.test.ts +0 -0
  242. package/src/core/init/{__tests__ → utils/__tests__}/refresh_scheduled_events_list.test.ts +0 -0
  243. package/src/core/init/utils/content_time_boundaries_observer.ts +609 -0
  244. package/src/core/init/{create_media_source.ts → utils/create_media_source.ts} +60 -55
  245. package/src/core/init/{create_stream_playback_observer.ts → utils/create_stream_playback_observer.ts} +7 -11
  246. package/src/core/init/utils/end_of_stream.ts +104 -0
  247. package/src/core/init/{get_initial_time.ts → utils/get_initial_time.ts} +4 -4
  248. package/src/core/init/utils/get_loaded_reference.ts +76 -0
  249. package/src/core/init/utils/initial_seek_and_play.ts +179 -0
  250. package/src/core/init/utils/initialize_content_decryption.ts +178 -0
  251. package/src/core/init/{media_duration_updater.ts → utils/media_duration_updater.ts} +166 -84
  252. package/src/core/init/{rebuffering_controller.ts → utils/rebuffering_controller.ts} +247 -226
  253. package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/are_same_stream_events.ts +0 -0
  254. package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/index.ts +1 -13
  255. package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/refresh_scheduled_events_list.ts +1 -1
  256. package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +210 -0
  257. package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/types.ts +1 -19
  258. package/src/core/init/utils/throw_on_media_error.ts +74 -0
  259. package/src/core/segment_buffers/README.md +5 -4
  260. package/src/core/segment_buffers/garbage_collector.ts +0 -1
  261. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +2 -8
  262. package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +3 -3
  263. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +1 -1
  264. package/src/core/stream/README.md +1 -1
  265. package/src/core/stream/adaptation/adaptation_stream.ts +265 -330
  266. package/src/core/stream/adaptation/index.ts +2 -12
  267. package/src/core/stream/adaptation/types.ts +193 -0
  268. package/src/core/stream/adaptation/{create_representation_estimator.ts → utils/create_representation_estimator.ts} +10 -9
  269. package/src/core/stream/index.ts +9 -1
  270. package/src/core/stream/orchestrator/README.md +1 -4
  271. package/src/core/stream/orchestrator/index.ts +2 -0
  272. package/src/core/stream/orchestrator/stream_orchestrator.ts +423 -326
  273. package/src/core/stream/period/index.ts +2 -12
  274. package/src/core/stream/period/period_stream.ts +301 -238
  275. package/src/core/stream/period/types.ts +132 -0
  276. package/src/core/stream/period/{get_adaptation_switch_strategy.ts → utils/get_adaptation_switch_strategy.ts} +6 -6
  277. package/src/core/stream/representation/README.md +2 -23
  278. package/src/core/stream/representation/index.ts +2 -12
  279. package/src/core/stream/representation/representation_stream.ts +315 -415
  280. package/src/core/stream/representation/types.ts +292 -0
  281. package/src/core/stream/representation/{append_segment_to_buffer.ts → utils/append_segment_to_buffer.ts} +11 -7
  282. package/src/core/stream/representation/{check_for_discontinuity.ts → utils/check_for_discontinuity.ts} +3 -3
  283. package/src/core/stream/representation/utils/downloading_queue.ts +592 -0
  284. package/src/core/stream/representation/{force_garbage_collection.ts → utils/force_garbage_collection.ts} +5 -6
  285. package/src/core/stream/representation/{get_buffer_status.ts → utils/get_buffer_status.ts} +5 -5
  286. package/src/core/stream/representation/{get_needed_segments.ts → utils/get_needed_segments.ts} +6 -7
  287. package/src/core/stream/representation/{get_segment_priority.ts → utils/get_segment_priority.ts} +1 -2
  288. package/src/core/stream/representation/utils/push_init_segment.ts +80 -0
  289. package/src/core/stream/representation/utils/push_media_segment.ts +113 -0
  290. package/src/default_config.ts +13 -1
  291. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +1 -1
  292. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +1 -1
  293. package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +58 -66
  294. package/src/experimental/tools/createMetaplaylist/index.ts +29 -38
  295. package/src/features/__tests__/initialize_features.test.ts +1 -1
  296. package/src/features/initialize_features.ts +2 -1
  297. package/src/features/list/__tests__/directfile.test.ts +3 -2
  298. package/src/features/list/directfile.ts +1 -1
  299. package/src/features/types.ts +2 -7
  300. package/src/manifest/__tests__/manifest.test.ts +14 -365
  301. package/src/manifest/__tests__/update_period_in_place.test.ts +522 -57
  302. package/src/manifest/__tests__/update_periods.test.ts +254 -40
  303. package/src/manifest/adaptation.ts +11 -0
  304. package/src/manifest/manifest.ts +6 -4
  305. package/src/manifest/update_period_in_place.ts +84 -14
  306. package/src/manifest/update_periods.ts +93 -33
  307. package/src/parsers/manifest/dash/common/indexes/base.ts +4 -0
  308. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +8 -1
  309. package/src/parsers/manifest/dash/common/indexes/template.ts +76 -25
  310. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +61 -3
  311. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +46 -15
  312. package/src/parsers/manifest/dash/common/parse_representations.ts +7 -3
  313. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +6 -0
  314. package/src/parsers/manifest/dash/node_parser_types.ts +3 -0
  315. package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +3 -0
  316. package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +4 -0
  317. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -1
  318. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +6 -0
  319. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +7 -0
  320. package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +3 -0
  321. package/src/parsers/manifest/types.ts +13 -2
  322. package/src/parsers/texttracks/ttml/html/create_element.ts +8 -0
  323. package/src/public_types.ts +2 -0
  324. package/src/transports/README.md +15 -54
  325. package/src/transports/dash/manifest_parser.ts +2 -2
  326. package/src/transports/dash/segment_loader.ts +1 -1
  327. package/src/transports/dash/text_parser.ts +3 -3
  328. package/src/transports/local/segment_loader.ts +1 -1
  329. package/src/utils/__tests__/event_emitter.test.ts +1 -76
  330. package/src/utils/event_emitter.ts +6 -30
  331. package/src/utils/reference.ts +112 -169
  332. package/src/utils/request/xhr.ts +3 -68
  333. package/src/utils/retry_promise_with_backoff.ts +95 -0
  334. package/src/utils/sleep.ts +14 -0
  335. package/src/utils/sorted_list.ts +4 -0
  336. package/dist/_esm5.processed/compat/play.d.ts +0 -23
  337. package/dist/_esm5.processed/compat/play.js +0 -32
  338. package/dist/_esm5.processed/compat/set_element_src.d.ts +0 -26
  339. package/dist/_esm5.processed/compat/set_element_src.js +0 -37
  340. package/dist/_esm5.processed/compat/when_loaded_metadata.d.ts +0 -23
  341. package/dist/_esm5.processed/compat/when_loaded_metadata.js +0 -33
  342. package/dist/_esm5.processed/core/init/content_time_boundaries_observer.d.ts +0 -45
  343. package/dist/_esm5.processed/core/init/content_time_boundaries_observer.js +0 -295
  344. package/dist/_esm5.processed/core/init/create_media_source.js +0 -107
  345. package/dist/_esm5.processed/core/init/end_of_stream.js +0 -74
  346. package/dist/_esm5.processed/core/init/events_generators.d.ts +0 -88
  347. package/dist/_esm5.processed/core/init/events_generators.js +0 -87
  348. package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +0 -81
  349. package/dist/_esm5.processed/core/init/initial_seek_and_play.js +0 -114
  350. package/dist/_esm5.processed/core/init/initialize_directfile.js +0 -120
  351. package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +0 -122
  352. package/dist/_esm5.processed/core/init/initialize_media_source.js +0 -201
  353. package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +0 -62
  354. package/dist/_esm5.processed/core/init/link_drm_and_content.js +0 -94
  355. package/dist/_esm5.processed/core/init/load_on_media_source.d.ts +0 -46
  356. package/dist/_esm5.processed/core/init/load_on_media_source.js +0 -122
  357. package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +0 -65
  358. package/dist/_esm5.processed/core/init/manifest_update_scheduler.js +0 -233
  359. package/dist/_esm5.processed/core/init/rebuffering_controller.d.ts +0 -81
  360. package/dist/_esm5.processed/core/init/rebuffering_controller.js +0 -439
  361. package/dist/_esm5.processed/core/init/stream_events_emitter/index.d.ts +0 -19
  362. package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.d.ts +0 -27
  363. package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +0 -126
  364. package/dist/_esm5.processed/core/init/update_playback_rate.d.ts +0 -0
  365. package/dist/_esm5.processed/core/init/update_playback_rate.js +0 -1
  366. package/dist/_esm5.processed/core/stream/events_generators.d.ts +0 -67
  367. package/dist/_esm5.processed/core/stream/events_generators.js +0 -112
  368. package/dist/_esm5.processed/core/stream/orchestrator/active_period_emitter.d.ts +0 -53
  369. package/dist/_esm5.processed/core/stream/orchestrator/active_period_emitter.js +0 -124
  370. package/dist/_esm5.processed/core/stream/orchestrator/are_streams_complete.d.ts +0 -35
  371. package/dist/_esm5.processed/core/stream/orchestrator/are_streams_complete.js +0 -53
  372. package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.d.ts +0 -36
  373. package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.js +0 -46
  374. package/dist/_esm5.processed/core/stream/reload_after_switch.d.ts +0 -47
  375. package/dist/_esm5.processed/core/stream/reload_after_switch.js +0 -56
  376. package/dist/_esm5.processed/core/stream/representation/downloading_queue.js +0 -371
  377. package/dist/_esm5.processed/core/stream/representation/push_init_segment.js +0 -49
  378. package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +0 -76
  379. package/dist/_esm5.processed/core/stream/types.d.ts +0 -437
  380. package/dist/_esm5.processed/utils/cast_to_observable.d.ts +0 -24
  381. package/dist/_esm5.processed/utils/cast_to_observable.js +0 -35
  382. package/dist/_esm5.processed/utils/concat_map_latest.d.ts +0 -23
  383. package/dist/_esm5.processed/utils/concat_map_latest.js +0 -48
  384. package/dist/_esm5.processed/utils/defer_subscriptions.d.ts +0 -79
  385. package/dist/_esm5.processed/utils/defer_subscriptions.js +0 -89
  386. package/dist/_esm5.processed/utils/filter_map.d.ts +0 -28
  387. package/dist/_esm5.processed/utils/filter_map.js +0 -32
  388. package/dist/_esm5.processed/utils/rx-from_cancellable_promise.d.ts +0 -39
  389. package/dist/_esm5.processed/utils/rx-from_cancellable_promise.js +0 -63
  390. package/dist/_esm5.processed/utils/rx-next-tick.d.ts +0 -27
  391. package/dist/_esm5.processed/utils/rx-next-tick.js +0 -41
  392. package/dist/_esm5.processed/utils/rx-retry_with_backoff.js +0 -70
  393. package/dist/_esm5.processed/utils/rx-throttle.d.ts +0 -40
  394. package/dist/_esm5.processed/utils/rx-throttle.js +0 -47
  395. package/dist/_esm5.processed/utils/rx-try_catch.d.ts +0 -23
  396. package/dist/_esm5.processed/utils/rx-try_catch.js +0 -30
  397. package/src/compat/__tests__/play.test.ts +0 -73
  398. package/src/compat/__tests__/set_element_src.test.ts +0 -71
  399. package/src/compat/__tests__/when_loaded_metadata.test.ts +0 -109
  400. package/src/compat/play.ts +0 -37
  401. package/src/compat/set_element_src.ts +0 -47
  402. package/src/compat/when_loaded_metadata.ts +0 -40
  403. package/src/core/init/content_time_boundaries_observer.ts +0 -382
  404. package/src/core/init/emit_loaded_event.ts +0 -71
  405. package/src/core/init/end_of_stream.ts +0 -104
  406. package/src/core/init/events_generators.ts +0 -140
  407. package/src/core/init/initial_seek_and_play.ts +0 -208
  408. package/src/core/init/initialize_directfile.ts +0 -191
  409. package/src/core/init/initialize_media_source.ts +0 -389
  410. package/src/core/init/link_drm_and_content.ts +0 -176
  411. package/src/core/init/load_on_media_source.ts +0 -237
  412. package/src/core/init/manifest_update_scheduler.ts +0 -362
  413. package/src/core/init/stream_events_emitter/stream_events_emitter.ts +0 -182
  414. package/src/core/init/throw_on_media_error.ts +0 -68
  415. package/src/core/init/update_playback_rate.ts +0 -0
  416. package/src/core/stream/events_generators.ts +0 -217
  417. package/src/core/stream/orchestrator/active_period_emitter.ts +0 -146
  418. package/src/core/stream/orchestrator/are_streams_complete.ts +0 -70
  419. package/src/core/stream/period/create_empty_adaptation_stream.ts +0 -70
  420. package/src/core/stream/reload_after_switch.ts +0 -76
  421. package/src/core/stream/representation/downloading_queue.ts +0 -632
  422. package/src/core/stream/representation/push_init_segment.ts +0 -87
  423. package/src/core/stream/representation/push_media_segment.ts +0 -125
  424. package/src/core/stream/types.ts +0 -558
  425. package/src/utils/__tests__/cast_to_observable.test.ts +0 -93
  426. package/src/utils/__tests__/concat_map_latest.test.ts +0 -221
  427. package/src/utils/__tests__/defer_subscriptions.test.ts +0 -50
  428. package/src/utils/__tests__/filter_map.test.ts +0 -87
  429. package/src/utils/__tests__/rx-throttle.test.ts +0 -252
  430. package/src/utils/__tests__/rx-try_catch.test.ts +0 -100
  431. package/src/utils/cast_to_observable.ts +0 -48
  432. package/src/utils/concat_map_latest.ts +0 -61
  433. package/src/utils/defer_subscriptions.ts +0 -96
  434. package/src/utils/filter_map.ts +0 -43
  435. package/src/utils/rx-from_cancellable_promise.ts +0 -71
  436. package/src/utils/rx-next-tick.ts +0 -43
  437. package/src/utils/rx-retry_with_backoff.ts +0 -101
  438. package/src/utils/rx-throttle.ts +0 -84
  439. package/src/utils/rx-try_catch.ts +0 -37
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## v3.30.0-dev.2023011700 (2023-01-17)
4
+
5
+ ### Features
6
+
7
+ - Add `updateContentUrls` API, allowing to update the Manifest's URL during playback [#1182]
8
+ - DASH: implement forced-subtitles, adding the `forced` property to the audio tracks API and selecting by default a forced text track linked to the audio track's language if present [#1187]
9
+
10
+ ### Bug fixes
11
+
12
+ - Fix segment requesting error when playing a DASH content without an url and without BaseURL elements [#1192]
13
+ - API: Stop sending events if the content is stopped due to a side-effect of one of the event handler [#1197]
14
+ - text-tracks/ttml: fix inconsistent line spacing when resizing the `textTrackElement` [#1191]
15
+ - DRM: Fix race condition leading to a JS error instead of a `NO_PLAYABLE_REPRESENTATION` [#1201]
16
+ - DRM/Compat: Renew MediaKeys at each `loadVideo` on all WebOS (LG TV) platforms to work around issues [#1188]
17
+
18
+ ### Other improvements
19
+
20
+ - DASH: handle `endNumber` DASH attribute [#1186]
21
+ - API: send available...TracksChange events in the very unlikely scenario where tracks are added after a manifest update [#1197]
22
+ - Completely remove RxJS dependency from the RxPlayer's source code [#1193]
23
+ - DRM: Request PR recommendation when PlayReady is asked and try default recommendation robustnesses [#1189]
24
+
25
+
3
26
  ## v3.29.0 (2022-11-16)
4
27
 
5
28
  ### Features
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.29.0
1
+ 3.30.0-dev.2023011800
@@ -4,8 +4,9 @@
4
4
  *
5
5
  * This should usually be the case but we found rare devices where this would
6
6
  * cause problem:
7
- * - (2022-10-26): WebOS (LG TVs) 2021 and 2022 just rebuffered indefinitely
8
- * when loading a content already-loaded on the HTMLMediaElement.
7
+ * - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
8
+ * rebuffered indefinitely when loading a content already-loaded on the
9
+ * HTMLMediaElement.
9
10
  *
10
11
  * @returns {boolean}
11
12
  */
@@ -1,15 +1,16 @@
1
- import { isWebOs2021, isWebOs2022, } from "./browser_detection";
1
+ import { isWebOs } from "./browser_detection";
2
2
  /**
3
3
  * Returns `true` if a `MediaKeys` instance (the `Encrypted Media Extension`
4
4
  * concept) can be reused between contents.
5
5
  *
6
6
  * This should usually be the case but we found rare devices where this would
7
7
  * cause problem:
8
- * - (2022-10-26): WebOS (LG TVs) 2021 and 2022 just rebuffered indefinitely
9
- * when loading a content already-loaded on the HTMLMediaElement.
8
+ * - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
9
+ * rebuffered indefinitely when loading a content already-loaded on the
10
+ * HTMLMediaElement.
10
11
  *
11
12
  * @returns {boolean}
12
13
  */
13
14
  export default function canReuseMediaKeys() {
14
- return !(isWebOs2021 || isWebOs2022);
15
+ return !isWebOs;
15
16
  }
@@ -28,8 +28,8 @@ var __extends = (this && this.__extends) || (function () {
28
28
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29
29
  };
30
30
  })();
31
- import { merge as observableMerge, Subject, takeUntil, } from "rxjs";
32
31
  import EventEmitter from "../../../utils/event_emitter";
32
+ import TaskCanceller from "../../../utils/task_canceller";
33
33
  import * as events from "../../event_listeners";
34
34
  import { MSMediaKeysConstructor, } from "./ms_media_keys_constructor";
35
35
  var IE11MediaKeySession = /** @class */ (function (_super) {
@@ -39,9 +39,9 @@ var IE11MediaKeySession = /** @class */ (function (_super) {
39
39
  _this.expiration = NaN;
40
40
  _this.keyStatuses = new Map();
41
41
  _this._mk = mk;
42
- _this._closeSession$ = new Subject();
42
+ _this._sessionClosingCanceller = new TaskCanceller();
43
43
  _this.closed = new Promise(function (resolve) {
44
- _this._closeSession$.subscribe(resolve);
44
+ _this._sessionClosingCanceller.signal.register(function () { return resolve(); });
45
45
  });
46
46
  _this.update = function (license) {
47
47
  return new Promise(function (resolve, reject) {
@@ -65,8 +65,18 @@ var IE11MediaKeySession = /** @class */ (function (_super) {
65
65
  initData instanceof ArrayBuffer ? new Uint8Array(initData) :
66
66
  new Uint8Array(initData.buffer);
67
67
  _this._ss = _this._mk.createSession("video/mp4", initDataU8);
68
- observableMerge(events.onKeyMessage$(_this._ss), events.onKeyAdded$(_this._ss), events.onKeyError$(_this._ss)).pipe(takeUntil(_this._closeSession$))
69
- .subscribe(function (evt) { return _this.trigger(evt.type, evt); });
68
+ events.onKeyMessage(_this._ss, function (evt) {
69
+ var _a;
70
+ _this.trigger((_a = evt.type) !== null && _a !== void 0 ? _a : "message", evt);
71
+ }, _this._sessionClosingCanceller.signal);
72
+ events.onKeyAdded(_this._ss, function (evt) {
73
+ var _a;
74
+ _this.trigger((_a = evt.type) !== null && _a !== void 0 ? _a : "keyadded", evt);
75
+ }, _this._sessionClosingCanceller.signal);
76
+ events.onKeyError(_this._ss, function (evt) {
77
+ var _a;
78
+ _this.trigger((_a = evt.type) !== null && _a !== void 0 ? _a : "keyerror", evt);
79
+ }, _this._sessionClosingCanceller.signal);
70
80
  resolve();
71
81
  });
72
82
  };
@@ -77,8 +87,7 @@ var IE11MediaKeySession = /** @class */ (function (_super) {
77
87
  _this._ss.close();
78
88
  _this._ss = undefined;
79
89
  }
80
- _this._closeSession$.next();
81
- _this._closeSession$.complete();
90
+ _this._sessionClosingCanceller.cancel();
82
91
  resolve();
83
92
  });
84
93
  };
@@ -13,11 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- /**
17
- * This file provides browser-agnostic event listeners under the form of
18
- * RxJS Observables
19
- */
20
- import { Observable } from "rxjs";
21
16
  import { IEventEmitter } from "../utils/event_emitter";
22
17
  import { IReadOnlySharedReference } from "../utils/reference";
23
18
  import { CancellationSignal } from "../utils/task_canceller";
@@ -44,7 +39,7 @@ export interface IPictureInPictureEvent {
44
39
  * Emit when video enters and leaves Picture-In-Picture mode.
45
40
  * @param {HTMLMediaElement} elt
46
41
  * @param {Object} stopListening
47
- * @returns {Observable}
42
+ * @returns {Object}
48
43
  */
49
44
  declare function getPictureOnPictureStateRef(elt: HTMLMediaElement, stopListening: CancellationSignal): IReadOnlySharedReference<IPictureInPictureEvent>;
50
45
  /**
@@ -55,7 +50,7 @@ declare function getPictureOnPictureStateRef(elt: HTMLMediaElement, stopListenin
55
50
  * @param {Object} pipStatus
56
51
  * @param {Object} stopListening - `CancellationSignal` allowing to free the
57
52
  * resources reserved to listen to video visibility change.
58
- * @returns {Observable}
53
+ * @returns {Object}
59
54
  */
60
55
  declare function getVideoVisibilityRef(pipStatus: IReadOnlySharedReference<IPictureInPictureEvent>, stopListening: CancellationSignal): IReadOnlySharedReference<boolean>;
61
56
  /**
@@ -69,102 +64,84 @@ declare function getVideoVisibilityRef(pipStatus: IReadOnlySharedReference<IPict
69
64
  declare function getVideoWidthRef(mediaElement: HTMLMediaElement, pipStatusRef: IReadOnlySharedReference<IPictureInPictureEvent>, stopListening: CancellationSignal): IReadOnlySharedReference<number>;
70
65
  /**
71
66
  * @param {HTMLMediaElement} mediaElement
72
- * @returns {Observable}
73
- */
74
- declare const onLoadedMetadata$: (element: IEventTargetLike) => Observable<Event>;
75
- /**
76
- * @param {HTMLMediaElement} mediaElement
77
- * @returns {Observable}
78
- */
79
- declare const onSeeking$: (element: IEventTargetLike) => Observable<Event>;
80
- /**
81
- * @param {HTMLMediaElement} mediaElement
82
- * @returns {Observable}
83
67
  */
84
- declare const onSeeked$: (element: IEventTargetLike) => Observable<Event>;
68
+ declare const onLoadedMetadata: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
85
69
  /**
86
70
  * @param {HTMLMediaElement} mediaElement
87
- * @returns {Observable}
88
71
  */
89
- declare const onEnded$: (element: IEventTargetLike) => Observable<Event>;
72
+ declare const onTimeUpdate: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
90
73
  /**
91
- * @param {HTMLMediaElement} mediaElement
92
- * @returns {Observable}
74
+ * @param {HTMLElement} element
93
75
  */
94
- declare const onTimeUpdate$: (element: IEventTargetLike) => Observable<Event>;
76
+ declare const onFullscreenChange: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
95
77
  /**
96
- * @param {HTMLElement} element
97
- * @returns {Observable}
78
+ * @param {TextTrackList} textTrackList
98
79
  */
99
- declare const onFullscreenChange$: (element: IEventTargetLike) => Observable<Event>;
80
+ declare const onTextTrackAdded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
100
81
  /**
101
- * @param {HTMLMediaElement} mediaElement
102
- * @returns {Observable}
82
+ * @param {TextTrackList} textTrackList
103
83
  */
104
- declare const onTextTrackChanges$: (textTrackList: TextTrackList) => Observable<TrackEvent>;
84
+ declare const onTextTrackRemoved: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
105
85
  /**
106
86
  * @param {MediaSource} mediaSource
107
- * @returns {Observable}
87
+ * @param {Function} listener
88
+ * @param {Object} cancelSignal
108
89
  */
109
- declare const onSourceOpen$: (element: IEventTargetLike) => Observable<Event>;
90
+ declare const onSourceOpen: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
110
91
  /**
111
92
  * @param {MediaSource} mediaSource
112
- * @returns {Observable}
93
+ * @param {Function} listener
94
+ * @param {Object} cancelSignal
113
95
  */
114
- declare const onSourceClose$: (element: IEventTargetLike) => Observable<Event>;
96
+ declare const onSourceClose: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
115
97
  /**
116
98
  * @param {MediaSource} mediaSource
117
- * @returns {Observable}
99
+ * @param {Function} listener
100
+ * @param {Object} cancelSignal
118
101
  */
119
- declare const onSourceEnded$: (element: IEventTargetLike) => Observable<Event>;
102
+ declare const onSourceEnded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
120
103
  /**
121
- * @param {SourceBuffer} sourceBuffer
122
- * @returns {Observable}
104
+ * @param {MediaSource} mediaSource
105
+ * @param {Function} listener
106
+ * @param {Object} cancelSignal
123
107
  */
124
- declare const onUpdate$: (element: IEventTargetLike) => Observable<Event>;
108
+ declare const onSourceBufferUpdate: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
125
109
  /**
126
- * @param {MediaSource} mediaSource
127
- * @returns {Observable}
110
+ * @param {SourceBufferList} sourceBuffers
111
+ * @param {Function} listener
112
+ * @param {Object} cancelSignal
128
113
  */
129
- declare const onRemoveSourceBuffers$: (element: IEventTargetLike) => Observable<Event>;
114
+ declare const onRemoveSourceBuffers: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
130
115
  /**
131
116
  * @param {HTMLMediaElement} mediaElement
132
- * @returns {Observable}
133
117
  */
134
- declare const onEncrypted$: (element: IEventTargetLike) => Observable<MediaEncryptedEvent>;
118
+ declare const onEncrypted: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
135
119
  /**
136
120
  * @param {MediaKeySession} mediaKeySession
137
- * @returns {Observable}
138
121
  */
139
- declare const onKeyMessage$: (element: IEventTargetLike) => Observable<MediaKeyMessageEvent>;
122
+ declare const onKeyMessage: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
140
123
  /**
141
124
  * @param {MediaKeySession} mediaKeySession
142
- * @returns {Observable}
143
125
  */
144
- declare const onKeyAdded$: (element: IEventTargetLike) => Observable<Event>;
126
+ declare const onKeyAdded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
145
127
  /**
146
128
  * @param {MediaKeySession} mediaKeySession
147
- * @returns {Observable}
148
129
  */
149
- declare const onKeyError$: (element: IEventTargetLike) => Observable<Event>;
130
+ declare const onKeyError: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
150
131
  /**
151
132
  * @param {MediaKeySession} mediaKeySession
152
- * @returns {Observable}
153
133
  */
154
- declare const onKeyStatusesChange$: (element: IEventTargetLike) => Observable<Event>;
134
+ declare const onKeyStatusesChange: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
155
135
  /**
156
136
  * @param {HTMLMediaElement} mediaElement
157
- * @returns {Observable}
158
137
  */
159
138
  declare const onSeeking: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
160
139
  /**
161
140
  * @param {HTMLMediaElement} mediaElement
162
- * @returns {Observable}
163
141
  */
164
142
  declare const onSeeked: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
165
143
  /**
166
144
  * @param {HTMLMediaElement} mediaElement
167
- * @returns {Observable}
168
145
  */
169
146
  declare const onEnded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
170
147
  /**
@@ -178,4 +155,4 @@ declare const onEnded: (element: IEventTargetLike, listener: (event?: unknown) =
178
155
  * emits
179
156
  */
180
157
  declare function addEventListener(elt: IEventEmitterLike, evt: string, listener: (x?: unknown) => void, stopListening: CancellationSignal): void;
181
- export { addEventListener, getPageActivityRef, getPictureOnPictureStateRef, getVideoVisibilityRef, getVideoWidthRef, onEncrypted$, onEnded, onEnded$, onFullscreenChange$, onKeyAdded$, onKeyError$, onKeyMessage$, onKeyStatusesChange$, onLoadedMetadata$, onRemoveSourceBuffers$, onSeeked, onSeeked$, onSeeking, onSeeking$, onSourceClose$, onSourceEnded$, onSourceOpen$, onTextTrackChanges$, onTimeUpdate$, onUpdate$, };
158
+ export { addEventListener, getPageActivityRef, getPictureOnPictureStateRef, getVideoVisibilityRef, getVideoWidthRef, onEncrypted, onEnded, onFullscreenChange, onKeyAdded, onKeyError, onKeyMessage, onKeyStatusesChange, onLoadedMetadata, onRemoveSourceBuffers, onSeeked, onSeeking, onSourceClose, onSourceEnded, onSourceOpen, onTimeUpdate, onSourceBufferUpdate, onTextTrackAdded, onTextTrackRemoved, };
@@ -13,11 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- /**
17
- * This file provides browser-agnostic event listeners under the form of
18
- * RxJS Observables
19
- */
20
- import { NEVER, fromEvent as observableFromEvent, merge as observableMerge, } from "rxjs";
21
16
  import config from "../config";
22
17
  import log from "../log";
23
18
  import isNonEmptyString from "../utils/is_non_empty_string";
@@ -65,7 +60,7 @@ function findSupportedEvent(element, eventNames) {
65
60
  */
66
61
  function eventPrefixed(eventNames, prefixes) {
67
62
  return eventNames.reduce(function (parent, name) {
68
- return parent.concat((prefixes == null ? BROWSER_PREFIXES :
63
+ return parent.concat((prefixes === undefined ? BROWSER_PREFIXES :
69
64
  prefixes)
70
65
  .map(function (p) { return p + name; }));
71
66
  }, []);
@@ -75,12 +70,15 @@ function eventPrefixed(eventNames, prefixes) {
75
70
  * optionally automatically adding browser prefixes if needed.
76
71
  * @param {Array.<string>} eventNames - The event(s) to listen to. If multiple
77
72
  * events are set, the event listener will be triggered when any of them emits.
73
+ * @param {Array.<string>|undefined} [prefixes] - Optional vendor prefixes with
74
+ * which the event might also be sent. If not defined, default prefixes might be
75
+ * tested.
78
76
  * @returns {Function} - Returns function allowing to easily add a callback to
79
77
  * be triggered when that event is emitted on a given event target.
80
78
  */
81
- function createCompatibleEventListener(eventNames) {
79
+ function createCompatibleEventListener(eventNames, prefixes) {
82
80
  var mem;
83
- var prefixedEvents = eventPrefixed(eventNames);
81
+ var prefixedEvents = eventPrefixed(eventNames, prefixes);
84
82
  return function (element, listener, cancelSignal) {
85
83
  if (cancelSignal.isCancelled) {
86
84
  return;
@@ -109,45 +107,29 @@ function createCompatibleEventListener(eventNames) {
109
107
  }
110
108
  }
111
109
  prefixedEvents.forEach(function (eventName) {
112
- element.addEventListener(eventName, listener);
113
- cancelSignal.register(function () {
114
- element.removeEventListener(eventName, listener);
115
- });
116
- });
117
- };
118
- }
119
- /**
120
- * @param {Array.<string>} eventNames
121
- * @param {Array.<string>|undefined} prefixes
122
- * @returns {Observable}
123
- */
124
- function compatibleListener(eventNames, prefixes) {
125
- var mem;
126
- var prefixedEvents = eventPrefixed(eventNames, prefixes);
127
- return function (element) {
128
- // if the element is a HTMLElement we can detect
129
- // the supported event, and memoize it in `mem`
130
- if (element instanceof HTMLElement) {
131
- if (typeof mem === "undefined") {
132
- mem = findSupportedEvent(element, prefixedEvents);
133
- }
134
- if (isNonEmptyString(mem)) {
135
- return observableFromEvent(element, mem);
110
+ var hasSetOnFn = false;
111
+ if (typeof element.addEventListener === "function") {
112
+ element.addEventListener(eventName, listener);
136
113
  }
137
114
  else {
138
- if (0 /* __ENVIRONMENT__.CURRENT_ENV */ === 1 /* __ENVIRONMENT__.DEV */) {
139
- log.warn("compat: element ".concat(element.tagName) +
140
- " does not support any of these events: " +
141
- prefixedEvents.join(", "));
142
- }
143
- return NEVER;
115
+ hasSetOnFn = true;
116
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
117
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
118
+ element["on" + eventName] = listener;
119
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access */
144
120
  }
145
- }
146
- // otherwise, we need to listen to all the events
147
- // and merge them into one observable sequence
148
- return observableMerge.apply(void 0, prefixedEvents.map(function (eventName) {
149
- return observableFromEvent(element, eventName);
150
- }));
121
+ cancelSignal.register(function () {
122
+ if (typeof element.removeEventListener === "function") {
123
+ element.removeEventListener(eventName, listener);
124
+ }
125
+ if (hasSetOnFn) {
126
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
127
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
128
+ delete element["on" + eventName];
129
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access */
130
+ }
131
+ });
132
+ });
151
133
  };
152
134
  }
153
135
  /**
@@ -178,14 +160,11 @@ function getDocumentVisibilityRef(stopListening) {
178
160
  var visibilityChangeEvent = isNonEmptyString(prefix) ? prefix + "visibilitychange" :
179
161
  "visibilitychange";
180
162
  var isHidden = document[hidden];
181
- var ref = createSharedReference(!isHidden);
163
+ var ref = createSharedReference(!isHidden, stopListening);
182
164
  addEventListener(document, visibilityChangeEvent, function () {
183
165
  var isVisible = !(document[hidden]);
184
166
  ref.setValueIfChanged(isVisible);
185
167
  }, stopListening);
186
- stopListening.register(function () {
187
- ref.finish();
188
- });
189
168
  return ref;
190
169
  }
191
170
  /**
@@ -199,11 +178,10 @@ function getDocumentVisibilityRef(stopListening) {
199
178
  function getPageActivityRef(stopListening) {
200
179
  var isDocVisibleRef = getDocumentVisibilityRef(stopListening);
201
180
  var currentTimeout;
202
- var ref = createSharedReference(true);
181
+ var ref = createSharedReference(true, stopListening);
203
182
  stopListening.register(function () {
204
183
  clearTimeout(currentTimeout);
205
184
  currentTimeout = undefined;
206
- ref.finish();
207
185
  });
208
186
  isDocVisibleRef.onUpdate(function onDocVisibilityChange(isVisible) {
209
187
  clearTimeout(currentTimeout); // clear potential previous timeout
@@ -234,7 +212,7 @@ function getVideoWidthFromPIPWindow(mediaElement, pipWindow) {
234
212
  * Emit when video enters and leaves Picture-In-Picture mode.
235
213
  * @param {HTMLMediaElement} elt
236
214
  * @param {Object} stopListening
237
- * @returns {Observable}
215
+ * @returns {Object}
238
216
  */
239
217
  function getPictureOnPictureStateRef(elt, stopListening) {
240
218
  var mediaElement = elt;
@@ -244,19 +222,16 @@ function getPictureOnPictureStateRef(elt, stopListening) {
244
222
  var ref_1 = createSharedReference({
245
223
  isEnabled: isWebKitPIPEnabled,
246
224
  pipWindow: null,
247
- });
225
+ }, stopListening);
248
226
  addEventListener(mediaElement, "webkitpresentationmodechanged", function () {
249
227
  var isEnabled = mediaElement.webkitPresentationMode === "picture-in-picture";
250
228
  ref_1.setValue({ isEnabled: isEnabled, pipWindow: null });
251
229
  }, stopListening);
252
- stopListening.register(function () {
253
- ref_1.finish();
254
- });
255
230
  return ref_1;
256
231
  }
257
232
  var isPIPEnabled = (document.pictureInPictureElement === mediaElement);
258
233
  var ref = createSharedReference({ isEnabled: isPIPEnabled,
259
- pipWindow: null });
234
+ pipWindow: null }, stopListening);
260
235
  addEventListener(mediaElement, "enterpictureinpicture", function (evt) {
261
236
  var _a;
262
237
  ref.setValue({
@@ -267,9 +242,6 @@ function getPictureOnPictureStateRef(elt, stopListening) {
267
242
  addEventListener(mediaElement, "leavepictureinpicture", function () {
268
243
  ref.setValue({ isEnabled: false, pipWindow: null });
269
244
  }, stopListening);
270
- stopListening.register(function () {
271
- ref.finish();
272
- });
273
245
  return ref;
274
246
  }
275
247
  /**
@@ -280,16 +252,15 @@ function getPictureOnPictureStateRef(elt, stopListening) {
280
252
  * @param {Object} pipStatus
281
253
  * @param {Object} stopListening - `CancellationSignal` allowing to free the
282
254
  * resources reserved to listen to video visibility change.
283
- * @returns {Observable}
255
+ * @returns {Object}
284
256
  */
285
257
  function getVideoVisibilityRef(pipStatus, stopListening) {
286
258
  var isDocVisibleRef = getDocumentVisibilityRef(stopListening);
287
259
  var currentTimeout;
288
- var ref = createSharedReference(true);
260
+ var ref = createSharedReference(true, stopListening);
289
261
  stopListening.register(function () {
290
262
  clearTimeout(currentTimeout);
291
263
  currentTimeout = undefined;
292
- ref.finish();
293
264
  });
294
265
  isDocVisibleRef.onUpdate(checkCurrentVisibility, { clearSignal: stopListening });
295
266
  pipStatus.onUpdate(checkCurrentVisibility, { clearSignal: stopListening });
@@ -318,7 +289,7 @@ function getVideoVisibilityRef(pipStatus, stopListening) {
318
289
  * @returns {Object}
319
290
  */
320
291
  function getVideoWidthRef(mediaElement, pipStatusRef, stopListening) {
321
- var ref = createSharedReference(mediaElement.clientWidth * pixelRatio);
292
+ var ref = createSharedReference(mediaElement.clientWidth * pixelRatio, stopListening);
322
293
  var clearPreviousEventListener = noop;
323
294
  pipStatusRef.onUpdate(checkVideoWidth, { clearSignal: stopListening });
324
295
  addEventListener(window, "resize", checkVideoWidth, stopListening);
@@ -327,7 +298,6 @@ function getVideoWidthRef(mediaElement, pipStatusRef, stopListening) {
327
298
  stopListening.register(function stopUpdatingVideoWidthRef() {
328
299
  clearPreviousEventListener();
329
300
  clearInterval(interval);
330
- ref.finish();
331
301
  });
332
302
  return ref;
333
303
  function checkVideoWidth() {
@@ -356,107 +326,87 @@ function getVideoWidthRef(mediaElement, pipStatusRef, stopListening) {
356
326
  }
357
327
  /**
358
328
  * @param {HTMLMediaElement} mediaElement
359
- * @returns {Observable}
360
329
  */
361
- var onLoadedMetadata$ = compatibleListener(["loadedmetadata"]);
330
+ var onLoadedMetadata = createCompatibleEventListener(["loadedmetadata"]);
362
331
  /**
363
332
  * @param {HTMLMediaElement} mediaElement
364
- * @returns {Observable}
365
333
  */
366
- var onSeeking$ = compatibleListener(["seeking"]);
367
- /**
368
- * @param {HTMLMediaElement} mediaElement
369
- * @returns {Observable}
370
- */
371
- var onSeeked$ = compatibleListener(["seeked"]);
372
- /**
373
- * @param {HTMLMediaElement} mediaElement
374
- * @returns {Observable}
375
- */
376
- var onEnded$ = compatibleListener(["ended"]);
377
- /**
378
- * @param {HTMLMediaElement} mediaElement
379
- * @returns {Observable}
380
- */
381
- var onTimeUpdate$ = compatibleListener(["timeupdate"]);
334
+ var onTimeUpdate = createCompatibleEventListener(["timeupdate"]);
382
335
  /**
383
336
  * @param {HTMLElement} element
384
- * @returns {Observable}
385
337
  */
386
- var onFullscreenChange$ = compatibleListener(["fullscreenchange", "FullscreenChange"],
338
+ var onFullscreenChange = createCompatibleEventListener(["fullscreenchange", "FullscreenChange"],
387
339
  // On IE11, fullscreen change events is called MSFullscreenChange
388
340
  BROWSER_PREFIXES.concat("MS"));
389
341
  /**
390
- * @param {HTMLMediaElement} mediaElement
391
- * @returns {Observable}
342
+ * @param {TextTrackList} textTrackList
392
343
  */
393
- var onTextTrackChanges$ = function (textTrackList) {
394
- return observableMerge(compatibleListener(["addtrack"])(textTrackList), compatibleListener(["removetrack"])(textTrackList));
395
- };
344
+ var onTextTrackAdded = createCompatibleEventListener(["addtrack"]);
396
345
  /**
397
- * @param {MediaSource} mediaSource
398
- * @returns {Observable}
346
+ * @param {TextTrackList} textTrackList
399
347
  */
400
- var onSourceOpen$ = compatibleListener(["sourceopen", "webkitsourceopen"]);
348
+ var onTextTrackRemoved = createCompatibleEventListener(["removetrack"]);
401
349
  /**
402
350
  * @param {MediaSource} mediaSource
403
- * @returns {Observable}
351
+ * @param {Function} listener
352
+ * @param {Object} cancelSignal
404
353
  */
405
- var onSourceClose$ = compatibleListener(["sourceclose", "webkitsourceclose"]);
354
+ var onSourceOpen = createCompatibleEventListener(["sourceopen", "webkitsourceopen"]);
406
355
  /**
407
356
  * @param {MediaSource} mediaSource
408
- * @returns {Observable}
357
+ * @param {Function} listener
358
+ * @param {Object} cancelSignal
409
359
  */
410
- var onSourceEnded$ = compatibleListener(["sourceended", "webkitsourceended"]);
360
+ var onSourceClose = createCompatibleEventListener(["sourceclose", "webkitsourceclose"]);
411
361
  /**
412
- * @param {SourceBuffer} sourceBuffer
413
- * @returns {Observable}
362
+ * @param {MediaSource} mediaSource
363
+ * @param {Function} listener
364
+ * @param {Object} cancelSignal
414
365
  */
415
- var onUpdate$ = compatibleListener(["update"]);
366
+ var onSourceEnded = createCompatibleEventListener(["sourceended", "webkitsourceended"]);
416
367
  /**
417
368
  * @param {MediaSource} mediaSource
418
- * @returns {Observable}
369
+ * @param {Function} listener
370
+ * @param {Object} cancelSignal
371
+ */
372
+ var onSourceBufferUpdate = createCompatibleEventListener(["update"]);
373
+ /**
374
+ * @param {SourceBufferList} sourceBuffers
375
+ * @param {Function} listener
376
+ * @param {Object} cancelSignal
419
377
  */
420
- var onRemoveSourceBuffers$ = compatibleListener(["onremovesourcebuffer"]);
378
+ var onRemoveSourceBuffers = createCompatibleEventListener(["removesourcebuffer"]);
421
379
  /**
422
380
  * @param {HTMLMediaElement} mediaElement
423
- * @returns {Observable}
424
381
  */
425
- var onEncrypted$ = compatibleListener(shouldFavourCustomSafariEME() ? ["needkey"] :
382
+ var onEncrypted = createCompatibleEventListener(shouldFavourCustomSafariEME() ? ["needkey"] :
426
383
  ["encrypted", "needkey"]);
427
384
  /**
428
385
  * @param {MediaKeySession} mediaKeySession
429
- * @returns {Observable}
430
386
  */
431
- var onKeyMessage$ = compatibleListener(["keymessage", "message"]);
387
+ var onKeyMessage = createCompatibleEventListener(["keymessage", "message"]);
432
388
  /**
433
389
  * @param {MediaKeySession} mediaKeySession
434
- * @returns {Observable}
435
390
  */
436
- var onKeyAdded$ = compatibleListener(["keyadded", "ready"]);
391
+ var onKeyAdded = createCompatibleEventListener(["keyadded", "ready"]);
437
392
  /**
438
393
  * @param {MediaKeySession} mediaKeySession
439
- * @returns {Observable}
440
394
  */
441
- var onKeyError$ = compatibleListener(["keyerror", "error"]);
395
+ var onKeyError = createCompatibleEventListener(["keyerror", "error"]);
442
396
  /**
443
397
  * @param {MediaKeySession} mediaKeySession
444
- * @returns {Observable}
445
398
  */
446
- var onKeyStatusesChange$ = compatibleListener(["keystatuseschange"]);
399
+ var onKeyStatusesChange = createCompatibleEventListener(["keystatuseschange"]);
447
400
  /**
448
401
  * @param {HTMLMediaElement} mediaElement
449
- * @returns {Observable}
450
402
  */
451
403
  var onSeeking = createCompatibleEventListener(["seeking"]);
452
404
  /**
453
405
  * @param {HTMLMediaElement} mediaElement
454
- * @returns {Observable}
455
406
  */
456
407
  var onSeeked = createCompatibleEventListener(["seeked"]);
457
408
  /**
458
409
  * @param {HTMLMediaElement} mediaElement
459
- * @returns {Observable}
460
410
  */
461
411
  var onEnded = createCompatibleEventListener(["ended"]);
462
412
  /**
@@ -475,4 +425,4 @@ function addEventListener(elt, evt, listener, stopListening) {
475
425
  elt.removeEventListener(evt, listener);
476
426
  });
477
427
  }
478
- export { addEventListener, getPageActivityRef, getPictureOnPictureStateRef, getVideoVisibilityRef, getVideoWidthRef, onEncrypted$, onEnded, onEnded$, onFullscreenChange$, onKeyAdded$, onKeyError$, onKeyMessage$, onKeyStatusesChange$, onLoadedMetadata$, onRemoveSourceBuffers$, onSeeked, onSeeked$, onSeeking, onSeeking$, onSourceClose$, onSourceEnded$, onSourceOpen$, onTextTrackChanges$, onTimeUpdate$, onUpdate$, };
428
+ export { addEventListener, getPageActivityRef, getPictureOnPictureStateRef, getVideoVisibilityRef, getVideoWidthRef, onEncrypted, onEnded, onFullscreenChange, onKeyAdded, onKeyError, onKeyMessage, onKeyStatusesChange, onLoadedMetadata, onRemoveSourceBuffers, onSeeked, onSeeking, onSourceClose, onSourceEnded, onSourceOpen, onTimeUpdate, onSourceBufferUpdate, onTextTrackAdded, onTextTrackRemoved, };