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

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