rx-player 4.0.0-dev.2023120600 → 4.0.0-dev.2023121900

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 (326) hide show
  1. package/CHANGELOG.md +178 -2
  2. package/README.md +2 -33
  3. package/VERSION +1 -1
  4. package/dist/_esm5.processed/compat/add_text_track.d.ts +3 -1
  5. package/dist/_esm5.processed/compat/add_text_track.js +7 -4
  6. package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +7 -0
  7. package/dist/_esm5.processed/compat/event_listeners.d.ts +15 -2
  8. package/dist/_esm5.processed/compat/event_listeners.js +37 -2
  9. package/dist/_esm5.processed/compat/fullscreen.d.ts +32 -0
  10. package/dist/_esm5.processed/compat/fullscreen.js +78 -0
  11. package/dist/_esm5.processed/compat/index.d.ts +3 -1
  12. package/dist/_esm5.processed/compat/index.js +3 -1
  13. package/dist/_esm5.processed/compat/is_offline.d.ts +39 -0
  14. package/dist/_esm5.processed/compat/is_offline.js +43 -0
  15. package/dist/_esm5.processed/config.d.ts +21 -9
  16. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +58 -0
  17. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +54 -14
  18. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +8 -2
  19. package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +11 -2
  20. package/dist/_esm5.processed/core/api/debug/modules/general_info.js +46 -17
  21. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +3 -3
  22. package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
  23. package/dist/_esm5.processed/core/api/option_utils.d.ts +35 -14
  24. package/dist/_esm5.processed/core/api/option_utils.js +230 -47
  25. package/dist/_esm5.processed/core/api/public_api.d.ts +266 -92
  26. package/dist/_esm5.processed/core/api/public_api.js +802 -444
  27. package/dist/_esm5.processed/core/api/{track_management/media_element_tracks_store.d.ts → tracks_management/media_element_track_choice_manager.d.ts} +75 -15
  28. package/dist/_esm5.processed/core/api/{track_management/media_element_tracks_store.js → tracks_management/media_element_track_choice_manager.js} +193 -74
  29. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +258 -0
  30. package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +989 -0
  31. package/dist/_esm5.processed/core/api/utils.d.ts +0 -1
  32. package/dist/_esm5.processed/core/api/utils.js +11 -28
  33. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +3 -3
  34. package/dist/_esm5.processed/core/decrypt/find_key_system.js +71 -83
  35. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +5 -6
  36. package/dist/_esm5.processed/core/decrypt/session_events_listener.js +72 -10
  37. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +4 -4
  38. package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +4 -6
  39. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +3 -1
  40. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +26 -7
  41. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +9 -3
  42. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +9 -16
  43. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +3 -1
  44. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
  45. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +6 -1
  46. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +41 -4
  47. package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +8 -1
  48. package/dist/_esm5.processed/core/init/media_source_content_initializer.js +5 -2
  49. package/dist/_esm5.processed/core/init/types.d.ts +15 -5
  50. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +9 -2
  51. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +75 -0
  52. package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +133 -0
  53. package/dist/_esm5.processed/core/{api/track_management → segment_buffers/implementations/image}/index.d.ts +2 -3
  54. package/dist/_esm5.processed/core/{api/track_management → segment_buffers/implementations/image}/index.js +2 -3
  55. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
  56. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +2 -1
  57. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +4 -3
  58. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
  59. package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
  60. package/dist/_esm5.processed/core/segment_buffers/index.js +1 -2
  61. package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +2 -3
  62. package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +0 -1
  63. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +25 -8
  64. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +19 -10
  65. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +1 -0
  66. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +16 -2
  67. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +15 -0
  68. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +93 -183
  69. package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +13 -27
  70. package/dist/_esm5.processed/core/stream/index.d.ts +3 -2
  71. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +0 -2
  72. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +7 -5
  73. package/dist/_esm5.processed/core/stream/period/period_stream.js +12 -13
  74. package/dist/_esm5.processed/core/stream/period/types.d.ts +14 -5
  75. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +4 -2
  76. package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +46 -10
  77. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +23 -29
  78. package/dist/_esm5.processed/core/stream/representation/types.d.ts +1 -11
  79. package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +1 -1
  80. package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +1 -1
  81. package/dist/_esm5.processed/default_config.d.ts +98 -35
  82. package/dist/_esm5.processed/default_config.js +113 -36
  83. package/dist/_esm5.processed/errors/custom_loader_error.d.ts +3 -1
  84. package/dist/_esm5.processed/errors/custom_loader_error.js +3 -1
  85. package/dist/_esm5.processed/errors/media_error.js +2 -2
  86. package/dist/_esm5.processed/errors/network_error.d.ts +1 -0
  87. package/dist/_esm5.processed/errors/network_error.js +1 -0
  88. package/dist/_esm5.processed/errors/request_error.d.ts +3 -2
  89. package/dist/_esm5.processed/errors/request_error.js +5 -2
  90. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +3 -3
  91. package/dist/_esm5.processed/features/features_object.js +2 -0
  92. package/dist/_esm5.processed/{transports/smooth/is_mp4_embedded_track.js → features/list/bif_parser.d.ts} +6 -7
  93. package/dist/_esm5.processed/features/list/bif_parser.js +27 -0
  94. package/dist/_esm5.processed/features/list/directfile.js +5 -2
  95. package/dist/_esm5.processed/features/list/image_buffer.d.ts +23 -0
  96. package/dist/_esm5.processed/features/list/image_buffer.js +25 -0
  97. package/dist/_esm5.processed/features/list/index.d.ts +2 -0
  98. package/dist/_esm5.processed/features/list/index.js +2 -0
  99. package/dist/_esm5.processed/features/types.d.ts +27 -3
  100. package/dist/_esm5.processed/manifest/adaptation.d.ts +11 -9
  101. package/dist/_esm5.processed/manifest/adaptation.js +30 -41
  102. package/dist/_esm5.processed/manifest/index.d.ts +4 -3
  103. package/dist/_esm5.processed/manifest/manifest.d.ts +54 -5
  104. package/dist/_esm5.processed/manifest/manifest.js +110 -5
  105. package/dist/_esm5.processed/manifest/period.d.ts +5 -4
  106. package/dist/_esm5.processed/manifest/representation.d.ts +5 -10
  107. package/dist/_esm5.processed/manifest/representation.js +5 -15
  108. package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
  109. package/dist/_esm5.processed/manifest/representation_index/static.d.ts +0 -2
  110. package/dist/_esm5.processed/manifest/representation_index/static.js +0 -6
  111. package/dist/_esm5.processed/manifest/representation_index/types.d.ts +21 -42
  112. package/dist/_esm5.processed/manifest/types.d.ts +2 -0
  113. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +31 -17
  114. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +19 -26
  115. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +0 -2
  116. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +1 -7
  117. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +6 -2
  118. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +8 -11
  119. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +0 -2
  120. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +0 -6
  121. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
  122. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +6 -1
  123. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +5 -3
  124. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +2 -0
  125. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
  126. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
  127. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +2 -0
  128. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
  129. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +6 -10
  130. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +2 -4
  131. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +1 -10
  132. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +2 -18
  133. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +4 -4
  134. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +6 -3
  135. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +2 -1
  136. package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +0 -2
  137. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +0 -6
  138. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
  139. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +3 -12
  140. package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +2 -11
  141. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +1 -0
  142. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +17 -11
  143. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +83 -21
  144. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +125 -53
  145. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +6 -3
  146. package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
  147. package/dist/_esm5.processed/parsers/manifest/types.d.ts +3 -3
  148. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +2 -1
  149. package/dist/_esm5.processed/public_types.d.ts +310 -396
  150. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +4 -5
  151. package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +4 -5
  152. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
  153. package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +38 -0
  154. package/dist/_esm5.processed/transports/dash/image_pipelines.js +129 -0
  155. package/dist/_esm5.processed/transports/dash/manifest_parser.js +3 -2
  156. package/dist/_esm5.processed/transports/dash/pipelines.js +4 -1
  157. package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
  158. package/dist/_esm5.processed/transports/dash/segment_loader.js +20 -26
  159. package/dist/_esm5.processed/transports/dash/segment_parser.js +24 -19
  160. package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
  161. package/dist/_esm5.processed/transports/dash/text_parser.js +33 -28
  162. package/dist/_esm5.processed/transports/local/pipelines.js +10 -1
  163. package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
  164. package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
  165. package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
  166. package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
  167. package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
  168. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +52 -34
  169. package/dist/_esm5.processed/transports/smooth/pipelines.js +190 -33
  170. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
  171. package/dist/_esm5.processed/transports/smooth/segment_loader.js +22 -28
  172. package/dist/_esm5.processed/transports/smooth/utils.d.ts +26 -1
  173. package/dist/_esm5.processed/transports/smooth/utils.js +55 -1
  174. package/dist/_esm5.processed/transports/types.d.ts +89 -94
  175. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
  176. package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
  177. package/dist/_esm5.processed/transports/utils/infer_segment_container.js +7 -5
  178. package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +12 -8
  179. package/dist/_esm5.processed/transports/utils/parse_text_track.js +21 -19
  180. package/dist/_esm5.processed/utils/array_includes.d.ts +1 -2
  181. package/dist/_esm5.processed/utils/array_includes.js +28 -30
  182. package/dist/_esm5.processed/{transports/smooth/is_mp4_embedded_track.d.ts → utils/list_to_map.d.ts} +5 -5
  183. package/dist/_esm5.processed/utils/list_to_map.js +28 -0
  184. package/dist/_esm5.processed/utils/request/xhr.js +5 -5
  185. package/dist/_esm5.processed/utils/simple_set.d.ts +51 -0
  186. package/dist/_esm5.processed/utils/simple_set.js +57 -0
  187. package/dist/_esm5.processed/utils/uniq.d.ts +36 -0
  188. package/dist/_esm5.processed/utils/uniq.js +43 -0
  189. package/dist/commonjs/config.d.ts +1 -1
  190. package/dist/commonjs/core/adaptive/adaptive_representation_selector.d.ts +2 -19
  191. package/dist/commonjs/core/adaptive/adaptive_representation_selector.js +2 -2
  192. package/dist/commonjs/core/adaptive/network_analyzer.js +3 -3
  193. package/dist/commonjs/core/api/index.d.ts +1 -1
  194. package/dist/commonjs/core/api/playback_observer.d.ts +128 -8
  195. package/dist/commonjs/core/api/playback_observer.js +217 -64
  196. package/dist/commonjs/core/api/public_api.js +9 -9
  197. package/dist/commonjs/core/api/utils.js +1 -1
  198. package/dist/commonjs/core/decrypt/get_media_keys.js +2 -6
  199. package/dist/commonjs/core/init/directfile_content_initializer.js +5 -1
  200. package/dist/commonjs/core/init/media_source_content_initializer.js +28 -14
  201. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +1 -2
  202. package/dist/commonjs/core/init/utils/create_stream_playback_observer.d.ts +1 -5
  203. package/dist/commonjs/core/init/utils/create_stream_playback_observer.js +16 -14
  204. package/dist/commonjs/core/init/utils/initial_seek_and_play.d.ts +9 -11
  205. package/dist/commonjs/core/init/utils/initial_seek_and_play.js +121 -91
  206. package/dist/commonjs/core/init/utils/rebuffering_controller.js +27 -70
  207. package/dist/commonjs/core/init/utils/stream_events_emitter/stream_events_emitter.js +4 -2
  208. package/dist/commonjs/core/segment_buffers/garbage_collector.js +1 -2
  209. package/dist/commonjs/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +9 -2
  210. package/dist/commonjs/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
  211. package/dist/commonjs/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +1 -1
  212. package/dist/commonjs/core/segment_buffers/index.d.ts +2 -2
  213. package/dist/commonjs/core/segment_buffers/inventory/index.d.ts +2 -2
  214. package/dist/commonjs/core/segment_buffers/inventory/segment_inventory.d.ts +25 -8
  215. package/dist/commonjs/core/segment_buffers/inventory/segment_inventory.js +19 -10
  216. package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.d.ts +2 -2
  217. package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.js +16 -9
  218. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +14 -18
  219. package/dist/commonjs/core/stream/period/period_stream.js +5 -8
  220. package/dist/commonjs/core/stream/period/types.d.ts +2 -3
  221. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +4 -5
  222. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +17 -13
  223. package/dist/commonjs/core/stream/representation/representation_stream.js +3 -4
  224. package/dist/commonjs/core/stream/representation/types.d.ts +2 -2
  225. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.js +11 -12
  226. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +1 -1
  227. package/dist/commonjs/default_config.d.ts +7 -16
  228. package/dist/commonjs/default_config.js +16 -16
  229. package/dist/commonjs/manifest/adaptation.js +2 -1
  230. package/dist/commonjs/parsers/texttracks/ttml/html/apply_line_height.js +2 -1
  231. package/dist/commonjs/public_types.d.ts +29 -2
  232. package/dist/es2017/config.d.ts +1 -1
  233. package/dist/es2017/core/adaptive/adaptive_representation_selector.d.ts +2 -19
  234. package/dist/es2017/core/adaptive/adaptive_representation_selector.js +2 -2
  235. package/dist/es2017/core/adaptive/network_analyzer.js +3 -3
  236. package/dist/es2017/core/api/index.d.ts +1 -1
  237. package/dist/es2017/core/api/playback_observer.d.ts +128 -8
  238. package/dist/es2017/core/api/playback_observer.js +217 -66
  239. package/dist/es2017/core/api/public_api.js +9 -9
  240. package/dist/es2017/core/api/utils.js +1 -1
  241. package/dist/es2017/core/decrypt/get_media_keys.js +2 -6
  242. package/dist/es2017/core/init/directfile_content_initializer.js +7 -1
  243. package/dist/es2017/core/init/media_source_content_initializer.js +30 -16
  244. package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +1 -2
  245. package/dist/es2017/core/init/utils/create_stream_playback_observer.d.ts +1 -5
  246. package/dist/es2017/core/init/utils/create_stream_playback_observer.js +16 -14
  247. package/dist/es2017/core/init/utils/initial_seek_and_play.d.ts +9 -11
  248. package/dist/es2017/core/init/utils/initial_seek_and_play.js +120 -91
  249. package/dist/es2017/core/init/utils/rebuffering_controller.js +27 -70
  250. package/dist/es2017/core/init/utils/stream_events_emitter/stream_events_emitter.js +4 -2
  251. package/dist/es2017/core/segment_buffers/garbage_collector.js +1 -2
  252. package/dist/es2017/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +9 -2
  253. package/dist/es2017/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
  254. package/dist/es2017/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +1 -1
  255. package/dist/es2017/core/segment_buffers/index.d.ts +2 -2
  256. package/dist/es2017/core/segment_buffers/inventory/index.d.ts +2 -2
  257. package/dist/es2017/core/segment_buffers/inventory/segment_inventory.d.ts +25 -8
  258. package/dist/es2017/core/segment_buffers/inventory/segment_inventory.js +19 -10
  259. package/dist/es2017/core/stream/adaptation/get_representations_switch_strategy.d.ts +2 -2
  260. package/dist/es2017/core/stream/adaptation/get_representations_switch_strategy.js +16 -9
  261. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +16 -18
  262. package/dist/es2017/core/stream/period/period_stream.js +4 -7
  263. package/dist/es2017/core/stream/period/types.d.ts +2 -3
  264. package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +4 -5
  265. package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.js +17 -13
  266. package/dist/es2017/core/stream/representation/representation_stream.js +3 -4
  267. package/dist/es2017/core/stream/representation/types.d.ts +2 -2
  268. package/dist/es2017/core/stream/representation/utils/append_segment_to_buffer.js +1 -2
  269. package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +1 -1
  270. package/dist/es2017/default_config.d.ts +7 -16
  271. package/dist/es2017/default_config.js +16 -16
  272. package/dist/es2017/manifest/adaptation.js +2 -1
  273. package/dist/es2017/parsers/texttracks/ttml/html/apply_line_height.js +2 -1
  274. package/dist/es2017/public_types.d.ts +29 -2
  275. package/dist/mpd-parser.wasm +0 -0
  276. package/dist/rx-player.js +614 -438
  277. package/dist/rx-player.min.js +1 -1
  278. package/package.json +5 -1
  279. package/scripts/canal-release.patch +78 -0
  280. package/scripts/make-dev-releases +65 -0
  281. package/scripts/update-version +5 -0
  282. package/sonar-project.properties +1 -1
  283. package/src/core/adaptive/adaptive_representation_selector.ts +4 -21
  284. package/src/core/adaptive/network_analyzer.ts +3 -3
  285. package/src/core/api/index.ts +1 -0
  286. package/src/core/api/playback_observer.ts +327 -107
  287. package/src/core/api/public_api.ts +9 -9
  288. package/src/core/api/utils.ts +3 -1
  289. package/src/core/decrypt/get_media_keys.ts +2 -8
  290. package/src/core/init/directfile_content_initializer.ts +8 -8
  291. package/src/core/init/media_source_content_initializer.ts +27 -20
  292. package/src/core/init/utils/content_time_boundaries_observer.ts +1 -1
  293. package/src/core/init/utils/create_stream_playback_observer.ts +19 -20
  294. package/src/core/init/utils/initial_seek_and_play.ts +140 -108
  295. package/src/core/init/utils/rebuffering_controller.ts +32 -77
  296. package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +5 -2
  297. package/src/core/segment_buffers/garbage_collector.ts +1 -1
  298. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +10 -2
  299. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +1 -1
  300. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +1 -1
  301. package/src/core/segment_buffers/index.ts +2 -0
  302. package/src/core/segment_buffers/inventory/index.ts +2 -0
  303. package/src/core/segment_buffers/inventory/segment_inventory.ts +49 -17
  304. package/src/core/stream/adaptation/get_representations_switch_strategy.ts +21 -12
  305. package/src/core/stream/orchestrator/stream_orchestrator.ts +14 -19
  306. package/src/core/stream/period/period_stream.ts +7 -8
  307. package/src/core/stream/period/types.ts +2 -3
  308. package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +21 -15
  309. package/src/core/stream/representation/representation_stream.ts +3 -5
  310. package/src/core/stream/representation/types.ts +2 -2
  311. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +1 -1
  312. package/src/core/stream/representation/utils/get_buffer_status.ts +2 -1
  313. package/src/default_config.ts +17 -17
  314. package/src/manifest/adaptation.ts +2 -1
  315. package/src/parsers/texttracks/ttml/html/apply_line_height.ts +3 -1
  316. package/src/public_types.ts +29 -2
  317. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +0 -84
  318. package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +0 -158
  319. package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +0 -406
  320. package/dist/_esm5.processed/core/api/track_management/tracks_store.js +0 -932
  321. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +0 -33
  322. package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +0 -49
  323. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +0 -39
  324. package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +0 -133
  325. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +0 -119
  326. package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +0 -159
@@ -15,8 +15,8 @@
15
15
  */
16
16
  import { IErrorCode, IErrorType } from "../../errors";
17
17
  import { IFeature } from "../../features";
18
- import Manifest, { Adaptation, Representation } from "../../manifest";
19
- import { IAudioRepresentation, IAudioTrack, IAudioTrackSetting, IAvailableAudioTrack, IAvailableTextTrack, IAvailableVideoTrack, IBrokenRepresentationsLockContext, IConstructorOptions, IKeySystemConfigurationOutput, IKeySystemOption, ILoadVideoOptions, ILockedAudioRepresentationsSettings, ILockedVideoRepresentationsSettings, ITrackUpdateEventPayload, IPeriod, IPeriodChangeEvent, IPlayerError, IPlayerState, IPositionUpdate, IStreamEvent, ITextTrack, IVideoRepresentation, ITextTrackSetting, IVideoTrack, IVideoTrackSetting } from "../../public_types";
18
+ import Manifest from "../../manifest";
19
+ import { IAdaptation, IAudioTrack, IAudioTrackPreference, IAvailableAudioTrack, IAvailableTextTrack, IAvailableVideoTrack, IBifThumbnail, IBitrateEstimate, IConstructorOptions, IDecipherabilityUpdateContent, IKeySystemConfigurationOutput, ILoadVideoOptions, IPeriod, IPlayerError, IPlayerState, IPositionUpdate, IRepresentation, IStreamEvent, ITextTrack, ITextTrackPreference, IVideoTrack, IVideoTrackPreference } from "../../public_types";
20
20
  import EventEmitter, { IListener } from "../../utils/event_emitter";
21
21
  import Logger from "../../utils/logger";
22
22
  import { IBufferedChunk, IBufferType } from "../segment_buffers";
@@ -73,12 +73,20 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
73
73
  * `null` when no content is currently loading or loaded.
74
74
  */
75
75
  private _priv_contentInfos;
76
+ /** List of favorite audio tracks, in preference order. */
77
+ private _priv_preferredAudioTracks;
78
+ /** List of favorite text tracks, in preference order. */
79
+ private _priv_preferredTextTracks;
80
+ /** List of favorite video tracks, in preference order. */
81
+ private _priv_preferredVideoTracks;
76
82
  /** If `true` trickMode video tracks will be chosen if available. */
77
83
  private _priv_preferTrickModeTracks;
78
84
  /** Refer to last picture in picture event received. */
79
85
  private _priv_pictureInPictureRef;
80
86
  /** Store wanted configuration for the `limitVideoWidth` option. */
81
87
  private readonly _priv_limitVideoWidth;
88
+ /** Store wanted configuration for the `throttleWhenHidden` option. */
89
+ private readonly _priv_throttleWhenHidden;
82
90
  /** Store wanted configuration for the `throttleVideoBitrateWhenHidden` option. */
83
91
  private readonly _priv_throttleVideoBitrateWhenHidden;
84
92
  /** Store volume when mute is called, to restore it on unmute. */
@@ -91,6 +99,8 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
91
99
  * on stop.
92
100
  */
93
101
  private _priv_contentEventsMemory;
102
+ /** Determines whether or not the player should stop at the end of video playback. */
103
+ private readonly _priv_stopAtEnd;
94
104
  /**
95
105
  * Information that can be relied on once `reload` is called.
96
106
  * It should refer to the last content being played.
@@ -159,7 +169,6 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
159
169
  position?: number;
160
170
  relative?: number;
161
171
  };
162
- keySystems?: IKeySystemOption[];
163
172
  autoPlay?: boolean;
164
173
  }): void;
165
174
  createDebugElement(element: HTMLElement): {
@@ -176,6 +185,29 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
176
185
  * @returns {Object|null} - The current Error (`null` when no error).
177
186
  */
178
187
  getError(): Error | null;
188
+ /**
189
+ * Returns manifest/playlist object.
190
+ * null if the player is STOPPED.
191
+ * @deprecated
192
+ * @returns {Manifest|null} - The current Manifest (`null` when not known).
193
+ */
194
+ getManifest(): Manifest | null;
195
+ /**
196
+ * Returns Adaptations (tracks) for every currently playing type
197
+ * (audio/video/text...).
198
+ * @deprecated
199
+ * @returns {Object|null} - The current Adaptation objects, per type (`null`
200
+ * when none is known for now.
201
+ */
202
+ getCurrentAdaptations(): Partial<Record<IBufferType, IAdaptation | null>> | null;
203
+ /**
204
+ * Returns representations (qualities) for every currently playing type
205
+ * (audio/video/text...).
206
+ * @deprecated
207
+ * @returns {Object|null} - The current Representation objects, per type
208
+ * (`null` when none is known for now.
209
+ */
210
+ getCurrentRepresentations(): Partial<Record<IBufferType, IRepresentation | null>> | null;
179
211
  /**
180
212
  * Returns the media DOM element used by the player.
181
213
  * You should not its HTML5 API directly and use the player's method instead,
@@ -184,6 +216,12 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
184
216
  * disposed)
185
217
  */
186
218
  getVideoElement(): HTMLMediaElement | null;
219
+ /**
220
+ * If one returns the first native text-track element attached to the media element.
221
+ * @deprecated
222
+ * @returns {TextTrack} - The native TextTrack attached (`null` when none)
223
+ */
224
+ getNativeTextTrack(): TextTrack | null;
187
225
  /**
188
226
  * Returns the player's current state.
189
227
  * @returns {string} - The current Player's state
@@ -224,12 +262,12 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
224
262
  */
225
263
  areTrickModeTracksEnabled(): boolean;
226
264
  /**
227
- * Returns the URL(s) of the currently considered Manifest, or of the content for
265
+ * Returns the url of the currently considered Manifest, or of the content for
228
266
  * directfile content.
229
- * @returns {Array.<string>|undefined} - Current URL. `undefined` if not known
230
- * or no URL yet.
267
+ * @returns {string|undefined} - Current URL. `undefined` if not known or no
268
+ * URL yet.
231
269
  */
232
- getContentUrls(): string[] | undefined;
270
+ getUrl(): string | undefined;
233
271
  /**
234
272
  * Update URL of the content currently being played (e.g. DASH's MPD).
235
273
  * @param {Array.<string>|undefined} urls - URLs to reach that content /
@@ -246,14 +284,28 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
246
284
  * NaN if no video is playing.
247
285
  * @returns {Number}
248
286
  */
249
- getMediaDuration(): number;
287
+ getVideoDuration(): number;
250
288
  /**
251
289
  * Returns in seconds the difference between:
252
290
  * - the end of the current contiguous loaded range.
253
291
  * - the current time
254
292
  * @returns {Number}
255
293
  */
256
- getCurrentBufferGap(): number;
294
+ getVideoBufferGap(): number;
295
+ /**
296
+ * Returns in seconds the difference between:
297
+ * - the end of the current contiguous loaded range.
298
+ * - the start of the current contiguous loaded range.
299
+ * @returns {Number}
300
+ */
301
+ getVideoLoadedTime(): number;
302
+ /**
303
+ * Returns in seconds the difference between:
304
+ * - the current time.
305
+ * - the start of the current contiguous loaded range.
306
+ * @returns {Number}
307
+ */
308
+ getVideoPlayedTime(): number;
257
309
  /**
258
310
  * Get the current position, in s, in wall-clock time.
259
311
  * That is:
@@ -352,25 +404,55 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
352
404
  preferTrickModeTracks?: boolean;
353
405
  }): void;
354
406
  /**
355
- * Returns video Representation currently considered for the current Period.
356
- *
357
- * Returns `null` if no video track is playing for the current Period.
358
- *
359
- * Returns `undefined` either when are not currently playing any Period or
360
- * when we don't know which Representation is playing.
361
- * @returns {Object|null|undefined}
407
+ * Returns all available bitrates for the current video Adaptation.
408
+ * @returns {Array.<Number>}
362
409
  */
363
- getVideoRepresentation(): IVideoRepresentation | null | undefined;
410
+ getAvailableVideoBitrates(): number[];
364
411
  /**
365
- * Returns audio Representation currently considered for the current Period.
366
- *
367
- * Returns `null` if no audio track is playing for the current Period.
368
- *
369
- * Returns `undefined` either when are not currently playing any Period or
370
- * when we don't know which Representation is playing.
371
- * @returns {Object|null|undefined}
412
+ * Returns all available bitrates for the current audio Adaptation.
413
+ * @returns {Array.<Number>}
372
414
  */
373
- getAudioRepresentation(): IAudioRepresentation | null | undefined;
415
+ getAvailableAudioBitrates(): number[];
416
+ /**
417
+ * Returns the manual audio bitrate set. -1 if in AUTO mode.
418
+ * @returns {Number}
419
+ */
420
+ getManualAudioBitrate(): number;
421
+ /**
422
+ * Returns the manual video bitrate set. -1 if in AUTO mode.
423
+ * @returns {Number}
424
+ */
425
+ getManualVideoBitrate(): number;
426
+ /**
427
+ * Returns currently considered bitrate for video segments.
428
+ * @returns {Number|undefined}
429
+ */
430
+ getVideoBitrate(): number | undefined;
431
+ /**
432
+ * Returns currently considered bitrate for audio segments.
433
+ * @returns {Number|undefined}
434
+ */
435
+ getAudioBitrate(): number | undefined;
436
+ /**
437
+ * Returns minimum wanted video bitrate currently set.
438
+ * @returns {Number}
439
+ */
440
+ getMinVideoBitrate(): number;
441
+ /**
442
+ * Returns minimum wanted audio bitrate currently set.
443
+ * @returns {Number}
444
+ */
445
+ getMinAudioBitrate(): number;
446
+ /**
447
+ * Returns maximum wanted video bitrate currently set.
448
+ * @returns {Number}
449
+ */
450
+ getMaxVideoBitrate(): number;
451
+ /**
452
+ * Returns maximum wanted audio bitrate currently set.
453
+ * @returns {Number}
454
+ */
455
+ getMaxAudioBitrate(): number;
374
456
  /**
375
457
  * Play/Resume the current video.
376
458
  * @returns {Promise}
@@ -392,6 +474,23 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
392
474
  } | {
393
475
  wallClockTime: number;
394
476
  }): number;
477
+ /**
478
+ * Returns true if the media element is full screen.
479
+ * @deprecated
480
+ * @returns {Boolean}
481
+ */
482
+ isFullscreen(): boolean;
483
+ /**
484
+ * Set/exit fullScreen.
485
+ * @deprecated
486
+ * @param {Boolean} [goFull=true] - if false, exit full screen.
487
+ */
488
+ setFullscreen(goFull?: boolean): void;
489
+ /**
490
+ * Exit from full screen mode.
491
+ * @deprecated
492
+ */
493
+ exitFullscreen(): void;
395
494
  /**
396
495
  * Returns the current player's audio volume on the media element.
397
496
  * From 0 (no audio) to 1 (maximum volume).
@@ -417,6 +516,38 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
417
516
  * If the volume was set to 0, set a default volume instead (see config).
418
517
  */
419
518
  unMute(): void;
519
+ /**
520
+ * Force the video bitrate to a given value. Act as a ceil.
521
+ * -1 to set it on AUTO Mode
522
+ * @param {Number} btr
523
+ */
524
+ setVideoBitrate(btr: number): void;
525
+ /**
526
+ * Force the audio bitrate to a given value. Act as a ceil.
527
+ * -1 to set it on AUTO Mode
528
+ * @param {Number} btr
529
+ */
530
+ setAudioBitrate(btr: number): void;
531
+ /**
532
+ * Update the minimum video bitrate the user can switch to.
533
+ * @param {Number} btr
534
+ */
535
+ setMinVideoBitrate(btr: number): void;
536
+ /**
537
+ * Update the minimum audio bitrate the user can switch to.
538
+ * @param {Number} btr
539
+ */
540
+ setMinAudioBitrate(btr: number): void;
541
+ /**
542
+ * Update the maximum video bitrate the user can switch to.
543
+ * @param {Number} btr
544
+ */
545
+ setMaxVideoBitrate(btr: number): void;
546
+ /**
547
+ * Update the maximum audio bitrate the user can switch to.
548
+ * @param {Number} btr
549
+ */
550
+ setMaxAudioBitrate(btr: number): void;
420
551
  /**
421
552
  * Set the max buffer size for the buffer behind the current position.
422
553
  * Every buffer data before will be removed.
@@ -468,7 +599,6 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
468
599
  * @returns {string|null}
469
600
  */
470
601
  getCurrentKeySystem(): string | null;
471
- getCurrentPeriod(): IPeriod | null;
472
602
  /**
473
603
  * Returns both the name of the key system (e.g. `"com.widevine.alpha"`) and
474
604
  * the `MediaKeySystemConfiguration` currently associated to the
@@ -479,86 +609,108 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
479
609
  */
480
610
  getKeySystemConfiguration(): IKeySystemConfigurationOutput | null;
481
611
  /**
482
- * Returns the list of available Periods for which the current audio, video or
483
- * text track can now be changed.
484
- * @returns {Array.<Object>}
485
- */
486
- getAvailablePeriods(): IPeriod[];
487
- /**
488
- * Returns every available audio tracks for a given Period - or the current
489
- * one if no `periodId` is given.
490
- * @param {string|undefined} [periodId]
491
- * @returns {Array.<Object>}
612
+ * Returns every available audio tracks for the current Period.
613
+ * @returns {Array.<Object>|null}
492
614
  */
493
- getAvailableAudioTracks(periodId?: string | undefined): IAvailableAudioTrack[];
615
+ getAvailableAudioTracks(): IAvailableAudioTrack[];
494
616
  /**
495
- * Returns every available text tracks for a given Period - or the current
496
- * one if no `periodId` is given.
497
- * @param {string|undefined} [periodId]
498
- * @returns {Array.<Object>}
617
+ * Returns every available text tracks for the current Period.
618
+ * @returns {Array.<Object>|null}
499
619
  */
500
- getAvailableTextTracks(periodId?: string | undefined): IAvailableTextTrack[];
620
+ getAvailableTextTracks(): IAvailableTextTrack[];
501
621
  /**
502
622
  * Returns every available video tracks for the current Period.
503
- * @param {string|undefined} [periodId]
504
- * @returns {Array.<Object>}
623
+ * @returns {Array.<Object>|null}
505
624
  */
506
- getAvailableVideoTracks(periodId?: string | undefined): IAvailableVideoTrack[];
625
+ getAvailableVideoTracks(): IAvailableVideoTrack[];
507
626
  /**
508
627
  * Returns currently chosen audio language for the current Period.
509
- * @param {string|undefined} [periodId]
510
- * @returns {Object|null|undefined}
628
+ * @returns {string}
511
629
  */
512
- getAudioTrack(periodId?: string | undefined): IAudioTrack | null | undefined;
630
+ getAudioTrack(): IAudioTrack | null | undefined;
513
631
  /**
514
632
  * Returns currently chosen subtitle for the current Period.
515
- * @param {string|undefined} [periodId]
516
- * @returns {Object|null|undefined}
633
+ * @returns {string}
517
634
  */
518
- getTextTrack(periodId?: string | undefined): ITextTrack | null | undefined;
635
+ getTextTrack(): ITextTrack | null | undefined;
519
636
  /**
520
637
  * Returns currently chosen video track for the current Period.
521
- * @param {string|undefined} [periodId]
522
- * @returns {Object|null|undefined}
638
+ * @returns {string}
523
639
  */
524
- getVideoTrack(periodId?: string | undefined): IVideoTrack | null | undefined;
640
+ getVideoTrack(): IVideoTrack | null | undefined;
525
641
  /**
526
642
  * Update the audio language for the current Period.
527
- * @param {string | object} arg
528
- * @throws Error - the current content has no TracksStore.
643
+ * @param {string} audioId
644
+ * @throws Error - the current content has no TrackChoiceManager.
529
645
  * @throws Error - the given id is linked to no audio track.
530
646
  */
531
- setAudioTrack(arg: string | IAudioTrackSetting): void;
647
+ setAudioTrack(audioId: string): void;
532
648
  /**
533
649
  * Update the text language for the current Period.
534
- * @param {string | Object} arg
535
- * @throws Error - the current content has no TracksStore.
650
+ * @param {string} sub
651
+ * @throws Error - the current content has no TrackChoiceManager.
536
652
  * @throws Error - the given id is linked to no text track.
537
653
  */
538
- setTextTrack(arg: string | ITextTrackSetting): void;
654
+ setTextTrack(textId: string): void;
539
655
  /**
540
656
  * Disable subtitles for the current content.
541
- * @param {string|undefined} [periodId]
542
657
  */
543
- disableTextTrack(periodId?: string | undefined): void;
658
+ disableTextTrack(): void;
544
659
  /**
545
660
  * Update the video track for the current Period.
546
- * @param {string | Object} arg
547
- * @throws Error - the current content has no TracksStore.
661
+ * @param {string} videoId
662
+ * @throws Error - the current content has no TrackChoiceManager.
548
663
  * @throws Error - the given id is linked to no video track.
549
664
  */
550
- setVideoTrack(arg: string | IVideoTrackSetting): void;
665
+ setVideoTrack(videoId: string): void;
551
666
  /**
552
667
  * Disable video track for the current content.
553
- * @param {string|undefined} [periodId]
554
668
  */
555
- disableVideoTrack(periodId?: string | undefined): void;
556
- lockVideoRepresentations(arg: string[] | ILockedVideoRepresentationsSettings): void;
557
- lockAudioRepresentations(arg: string[] | ILockedAudioRepresentationsSettings): void;
558
- getLockedVideoRepresentations(periodId?: string | undefined): string[] | null;
559
- getLockedAudioRepresentations(periodId?: string | undefined): string[] | null;
560
- unlockVideoRepresentations(periodId?: string | undefined): void;
561
- unlockAudioRepresentations(periodId?: string | undefined): void;
669
+ disableVideoTrack(): void;
670
+ /**
671
+ * Returns the current list of preferred audio tracks, in preference order.
672
+ * @returns {Array.<Object>}
673
+ */
674
+ getPreferredAudioTracks(): IAudioTrackPreference[];
675
+ /**
676
+ * Returns the current list of preferred text tracks, in preference order.
677
+ * @returns {Array.<Object>}
678
+ */
679
+ getPreferredTextTracks(): ITextTrackPreference[];
680
+ /**
681
+ * Returns the current list of preferred text tracks, in preference order.
682
+ * @returns {Array.<Object>}
683
+ */
684
+ getPreferredVideoTracks(): IVideoTrackPreference[];
685
+ /**
686
+ * Set the list of preferred audio tracks, in preference order.
687
+ * @param {Array.<Object>} tracks
688
+ * @param {boolean} shouldApply - `true` if those preferences should be
689
+ * applied on the currently loaded Period. `false` if it should only
690
+ * be applied to new content.
691
+ */
692
+ setPreferredAudioTracks(tracks: IAudioTrackPreference[], shouldApply?: boolean): void;
693
+ /**
694
+ * Set the list of preferred text tracks, in preference order.
695
+ * @param {Array.<Object>} tracks
696
+ * @param {boolean} shouldApply - `true` if those preferences should be
697
+ * applied on the currently loaded Periods. `false` if it should only
698
+ * be applied to new content.
699
+ */
700
+ setPreferredTextTracks(tracks: ITextTrackPreference[], shouldApply?: boolean): void;
701
+ /**
702
+ * Set the list of preferred text tracks, in preference order.
703
+ * @param {Array.<Object>} tracks
704
+ * @param {boolean} shouldApply - `true` if those preferences should be
705
+ * applied on the currently loaded Period. `false` if it should only
706
+ * be applied to new content.
707
+ */
708
+ setPreferredVideoTracks(tracks: IVideoTrackPreference[], shouldApply?: boolean): void;
709
+ /**
710
+ * @returns {Array.<Object>|null}
711
+ * @deprecated
712
+ */
713
+ getImageTrackData(): IBifThumbnail[] | null;
562
714
  /**
563
715
  * Get minimum seek-able position.
564
716
  * @returns {number}
@@ -578,16 +730,6 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
578
730
  * @returns {Array.<Object>|null}
579
731
  */
580
732
  __priv_getSegmentBufferContent(bufferType: IBufferType): IBufferedChunk[] | null;
581
- /**
582
- * /!\ For tools use only! Do not touch!
583
- *
584
- * Returns manifest/playlist object.
585
- * null if the player is STOPPED.
586
- * @returns {Manifest|null} - The current Manifest (`null` when not known).
587
- */
588
- __priv_getManifest(): Manifest | null;
589
- __priv_getCurrentAdaptation(): Partial<Record<IBufferType, Adaptation | null>> | null;
590
- __priv_getCurrentRepresentations(): Partial<Record<IBufferType, Representation | null>> | null;
591
733
  /**
592
734
  * Reset all state properties relative to a playing content.
593
735
  */
@@ -644,7 +786,15 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
644
786
  *
645
787
  * @param {Object} value
646
788
  */
647
- private _priv_onBitrateEstimateChange;
789
+ private _priv_onBitrateEstimationChange;
790
+ /**
791
+ * Triggered each time a textTrack is added to the video DOM Element.
792
+ *
793
+ * Trigger the right Player Event.
794
+ *
795
+ * @param {Array.<TextTrackElement>} tracks
796
+ */
797
+ private _priv_onNativeTextTracksNext;
648
798
  /**
649
799
  * Triggered each time the player state updates.
650
800
  *
@@ -662,6 +812,23 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
662
812
  * @param {Object} observation
663
813
  */
664
814
  private _priv_triggerPositionUpdate;
815
+ /**
816
+ * Trigger one of the "availableBitratesChange" event only if it changed from
817
+ * the previously stored value.
818
+ * @param {string} event
819
+ * @param {Array.<number>} newVal
820
+ * @param {Object} currentContentCancelSignal
821
+ */
822
+ private _priv_triggerAvailableBitratesChangeEvent;
823
+ /**
824
+ * Trigger one of the "bitrateChange" event only if it changed from the
825
+ * previously stored value.
826
+ * @param {string} event
827
+ * @param {number} newVal
828
+ * @param {Object} currentContentCancelSignal
829
+ */
830
+ private _priv_triggerCurrentBitrateChangeEvent;
831
+ private _priv_getCurrentRepresentations;
665
832
  /**
666
833
  * @param {string} evt
667
834
  * @param {*} arg
@@ -669,11 +836,12 @@ declare class Player extends EventEmitter<IPublicAPIEvent> {
669
836
  */
670
837
  private _priv_triggerEventIfNotStopped;
671
838
  /**
839
+ * @param {Object} defaultAudioTrack
840
+ * @param {Object} defaultTextTrack
672
841
  * @param {Object} cancelSignal
673
842
  * @returns {Object}
674
843
  */
675
- private _priv_initializeMediaElementTracksStore;
676
- private _priv_callTracksStoreGetterSetter;
844
+ private _priv_initializeMediaElementTrackChoiceManager;
677
845
  }
678
846
  /** Every events sent by the RxPlayer's public API. */
679
847
  interface IPublicAPIEvent {
@@ -682,20 +850,26 @@ interface IPublicAPIEvent {
682
850
  audioTrackChange: IAudioTrack | null;
683
851
  textTrackChange: ITextTrack | null;
684
852
  videoTrackChange: IVideoTrack | null;
685
- audioRepresentationChange: IVideoRepresentation | null;
686
- videoRepresentationChange: IAudioRepresentation | null;
853
+ audioBitrateChange: number;
854
+ videoBitrateChange: number;
855
+ imageTrackUpdate: {
856
+ data: IBifThumbnail[];
857
+ };
858
+ fullscreenChange: boolean;
859
+ bitrateEstimationChange: IBitrateEstimate;
687
860
  volumeChange: number;
688
861
  error: IPlayerError | Error;
689
862
  warning: IPlayerError | Error;
690
- periodChange: IPeriodChangeEvent;
863
+ nativeTextTracksChange: TextTrack[];
864
+ periodChange: IPeriod;
865
+ availableAudioBitratesChange: number[];
866
+ availableVideoBitratesChange: number[];
691
867
  availableAudioTracksChange: IAvailableAudioTrack[];
692
868
  availableTextTracksChange: IAvailableTextTrack[];
693
869
  availableVideoTracksChange: IAvailableVideoTrack[];
870
+ decipherabilityUpdate: IDecipherabilityUpdateContent[];
694
871
  play: null;
695
872
  pause: null;
696
- newAvailablePeriods: IPeriod[];
697
- brokenRepresentationsLock: IBrokenRepresentationsLockContext;
698
- trackUpdate: ITrackUpdateEventPayload;
699
873
  seeking: null;
700
874
  seeked: null;
701
875
  streamEvent: IStreamEvent;