rx-player 3.26.1 → 3.26.2

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 (580) hide show
  1. package/.github/workflows/checks.yml +99 -0
  2. package/.github/workflows/sonarcloud_analysis.yml +20 -0
  3. package/CHANGELOG.md +99 -71
  4. package/README.md +19 -18
  5. package/VERSION +1 -1
  6. package/dist/_esm5.processed/compat/clear_element_src.js +8 -6
  7. package/dist/_esm5.processed/compat/eme/close_session.js +1 -2
  8. package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +1 -2
  9. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -1
  10. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +6 -4
  11. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +1 -2
  12. package/dist/_esm5.processed/compat/eme/generate_key_request.js +1 -2
  13. package/dist/_esm5.processed/compat/eme/load_session.js +2 -3
  14. package/dist/_esm5.processed/compat/event_listeners.d.ts +3 -2
  15. package/dist/_esm5.processed/compat/event_listeners.js +8 -14
  16. package/dist/_esm5.processed/compat/make_vtt_cue.js +1 -1
  17. package/dist/_esm5.processed/compat/on_height_width_change.js +1 -2
  18. package/dist/_esm5.processed/compat/set_element_src.js +1 -1
  19. package/dist/_esm5.processed/compat/when_loaded_metadata.js +1 -2
  20. package/dist/_esm5.processed/compat/when_media_source_open.js +1 -2
  21. package/dist/_esm5.processed/config.d.ts +3 -8
  22. package/dist/_esm5.processed/config.js +4 -9
  23. package/dist/_esm5.processed/core/abr/abr_manager.d.ts +11 -10
  24. package/dist/_esm5.processed/core/abr/abr_manager.js +47 -8
  25. package/dist/_esm5.processed/core/abr/bandwidth_estimator.js +1 -1
  26. package/dist/_esm5.processed/core/abr/buffer_based_chooser.d.ts +2 -2
  27. package/dist/_esm5.processed/core/abr/buffer_based_chooser.js +3 -3
  28. package/dist/_esm5.processed/core/abr/get_buffer_levels.js +3 -0
  29. package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.d.ts +3 -3
  30. package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.js +3 -3
  31. package/dist/_esm5.processed/core/abr/guess_based_chooser.d.ts +95 -0
  32. package/dist/_esm5.processed/core/abr/guess_based_chooser.js +242 -0
  33. package/dist/_esm5.processed/core/abr/index.d.ts +3 -3
  34. package/dist/_esm5.processed/core/abr/last_estimate_storage.d.ts +61 -0
  35. package/dist/_esm5.processed/core/abr/last_estimate_storage.js +37 -0
  36. package/dist/_esm5.processed/core/abr/network_analyzer.d.ts +25 -7
  37. package/dist/_esm5.processed/core/abr/network_analyzer.js +68 -31
  38. package/dist/_esm5.processed/core/abr/pending_requests_store.d.ts +56 -28
  39. package/dist/_esm5.processed/core/abr/pending_requests_store.js +9 -7
  40. package/dist/_esm5.processed/core/abr/representation_estimator.d.ts +34 -51
  41. package/dist/_esm5.processed/core/abr/representation_estimator.js +111 -52
  42. package/dist/_esm5.processed/core/abr/representation_score_calculator.d.ts +5 -8
  43. package/dist/_esm5.processed/core/abr/representation_score_calculator.js +20 -23
  44. package/dist/_esm5.processed/core/abr/{ewma.d.ts → utils/ewma.d.ts} +0 -0
  45. package/dist/_esm5.processed/core/abr/{ewma.js → utils/ewma.js} +0 -0
  46. package/dist/_esm5.processed/core/abr/{filter_by_bitrate.d.ts → utils/filter_by_bitrate.d.ts} +1 -1
  47. package/dist/_esm5.processed/core/abr/{filter_by_bitrate.js → utils/filter_by_bitrate.js} +1 -1
  48. package/dist/_esm5.processed/core/abr/{filter_by_width.d.ts → utils/filter_by_width.d.ts} +1 -1
  49. package/dist/_esm5.processed/core/abr/{filter_by_width.js → utils/filter_by_width.js} +2 -2
  50. package/dist/_esm5.processed/core/abr/{select_optimal_representation.d.ts → utils/select_optimal_representation.d.ts} +1 -1
  51. package/dist/_esm5.processed/core/abr/{select_optimal_representation.js → utils/select_optimal_representation.js} +1 -1
  52. package/dist/_esm5.processed/core/api/emit_seek_events.d.ts +4 -4
  53. package/dist/_esm5.processed/core/api/emit_seek_events.js +12 -10
  54. package/dist/_esm5.processed/core/api/index.d.ts +3 -1
  55. package/dist/_esm5.processed/core/api/index.js +2 -0
  56. package/dist/_esm5.processed/core/api/option_utils.js +4 -4
  57. package/dist/_esm5.processed/core/api/playback_observer.d.ts +280 -0
  58. package/dist/_esm5.processed/core/api/playback_observer.js +461 -0
  59. package/dist/_esm5.processed/core/api/public_api.d.ts +8 -7
  60. package/dist/_esm5.processed/core/api/public_api.js +98 -94
  61. package/dist/_esm5.processed/core/api/track_choice_manager.js +3 -3
  62. package/dist/_esm5.processed/core/eme/__tests__/__global__/utils.js +1 -0
  63. package/dist/_esm5.processed/core/eme/attach_media_keys.js +1 -2
  64. package/dist/_esm5.processed/core/eme/check_key_statuses.js +4 -5
  65. package/dist/_esm5.processed/core/eme/clean_old_loaded_sessions.js +1 -2
  66. package/dist/_esm5.processed/core/eme/clear_eme_session.js +6 -2
  67. package/dist/_esm5.processed/core/eme/create_session.js +1 -2
  68. package/dist/_esm5.processed/core/eme/dispose_media_keys.js +2 -3
  69. package/dist/_esm5.processed/core/eme/eme_manager.js +4 -5
  70. package/dist/_esm5.processed/core/eme/find_key_system.js +4 -5
  71. package/dist/_esm5.processed/core/eme/get_media_keys.js +2 -3
  72. package/dist/_esm5.processed/core/eme/get_session.js +1 -2
  73. package/dist/_esm5.processed/core/eme/init_media_keys.js +5 -5
  74. package/dist/_esm5.processed/core/eme/session_events_listener.js +6 -7
  75. package/dist/_esm5.processed/core/eme/set_server_certificate.js +8 -3
  76. package/dist/_esm5.processed/core/eme/types.d.ts +12 -4
  77. package/dist/_esm5.processed/core/eme/utils/close_session.js +2 -3
  78. package/dist/_esm5.processed/core/eme/utils/is_session_usable.js +1 -1
  79. package/dist/_esm5.processed/core/eme/utils/loaded_sessions_store.js +3 -4
  80. package/dist/_esm5.processed/core/eme/utils/persistent_sessions_store.js +3 -3
  81. package/dist/_esm5.processed/core/fetchers/index.d.ts +2 -2
  82. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +2 -2
  83. package/dist/_esm5.processed/core/fetchers/segment/index.d.ts +2 -2
  84. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +12 -29
  85. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +3 -7
  86. package/dist/_esm5.processed/core/fetchers/segment/prioritizer.d.ts +53 -53
  87. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +42 -11
  88. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +118 -46
  89. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +21 -20
  90. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +9 -8
  91. package/dist/_esm5.processed/core/init/create_eme_manager.js +1 -2
  92. package/dist/_esm5.processed/core/init/create_media_source.js +3 -4
  93. package/dist/_esm5.processed/core/init/create_stream_playback_observer.d.ts +39 -0
  94. package/dist/_esm5.processed/core/init/create_stream_playback_observer.js +50 -0
  95. package/dist/_esm5.processed/core/init/duration_updater.js +16 -7
  96. package/dist/_esm5.processed/core/init/emit_loaded_event.d.ts +4 -3
  97. package/dist/_esm5.processed/core/init/emit_loaded_event.js +8 -8
  98. package/dist/_esm5.processed/core/init/end_of_stream.js +1 -2
  99. package/dist/_esm5.processed/core/init/get_initial_time.js +2 -3
  100. package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +32 -31
  101. package/dist/_esm5.processed/core/init/initial_seek_and_play.js +25 -32
  102. package/dist/_esm5.processed/core/init/initialize_directfile.d.ts +6 -5
  103. package/dist/_esm5.processed/core/init/initialize_directfile.js +16 -12
  104. package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +10 -10
  105. package/dist/_esm5.processed/core/init/initialize_media_source.js +18 -12
  106. package/dist/_esm5.processed/core/init/load_on_media_source.d.ts +8 -11
  107. package/dist/_esm5.processed/core/init/load_on_media_source.js +16 -19
  108. package/dist/_esm5.processed/core/init/manifest_update_scheduler.js +8 -7
  109. package/dist/_esm5.processed/core/init/stall_avoider.d.ts +4 -6
  110. package/dist/_esm5.processed/core/init/stall_avoider.js +56 -42
  111. package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.d.ts +2 -2
  112. package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +20 -15
  113. package/dist/_esm5.processed/core/init/throw_on_media_error.js +1 -2
  114. package/dist/_esm5.processed/core/init/types.d.ts +0 -20
  115. package/dist/_esm5.processed/core/init/update_playback_rate.d.ts +5 -4
  116. package/dist/_esm5.processed/core/init/update_playback_rate.js +10 -11
  117. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +4 -4
  118. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +12 -7
  119. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +8 -7
  120. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +9 -10
  121. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +1 -1
  122. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +4 -4
  123. package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +2 -2
  124. package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +2 -2
  125. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +1 -12
  126. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +10 -10
  127. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +1 -1
  128. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +15 -13
  129. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +36 -23
  130. package/dist/_esm5.processed/core/stream/adaptation/create_representation_estimator.d.ts +9 -17
  131. package/dist/_esm5.processed/core/stream/adaptation/create_representation_estimator.js +11 -20
  132. package/dist/_esm5.processed/core/stream/adaptation/index.d.ts +2 -2
  133. package/dist/_esm5.processed/core/stream/index.d.ts +2 -2
  134. package/dist/_esm5.processed/core/stream/orchestrator/active_period_emitter.js +5 -6
  135. package/dist/_esm5.processed/core/stream/orchestrator/are_streams_complete.js +1 -2
  136. package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +2 -2
  137. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +10 -8
  138. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +22 -21
  139. package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.d.ts +6 -4
  140. package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.js +11 -10
  141. package/dist/_esm5.processed/core/stream/period/index.d.ts +2 -2
  142. package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +23 -7
  143. package/dist/_esm5.processed/core/stream/period/period_stream.js +38 -24
  144. package/dist/_esm5.processed/core/stream/reload_after_switch.d.ts +5 -4
  145. package/dist/_esm5.processed/core/stream/reload_after_switch.js +8 -7
  146. package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.d.ts +4 -2
  147. package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +10 -8
  148. package/dist/_esm5.processed/core/stream/representation/downloading_queue.d.ts +9 -9
  149. package/dist/_esm5.processed/core/stream/representation/downloading_queue.js +10 -12
  150. package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.d.ts +1 -3
  151. package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +6 -8
  152. package/dist/_esm5.processed/core/stream/representation/get_buffer_status.d.ts +3 -7
  153. package/dist/_esm5.processed/core/stream/representation/get_buffer_status.js +7 -8
  154. package/dist/_esm5.processed/core/stream/representation/get_needed_segments.js +1 -1
  155. package/dist/_esm5.processed/core/stream/representation/get_segment_priority.d.ts +6 -9
  156. package/dist/_esm5.processed/core/stream/representation/get_segment_priority.js +7 -8
  157. package/dist/_esm5.processed/core/stream/representation/index.d.ts +2 -2
  158. package/dist/_esm5.processed/core/stream/representation/push_init_segment.d.ts +4 -2
  159. package/dist/_esm5.processed/core/stream/representation/push_init_segment.js +3 -5
  160. package/dist/_esm5.processed/core/stream/representation/push_media_segment.d.ts +6 -4
  161. package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +3 -5
  162. package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +9 -12
  163. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +30 -21
  164. package/dist/_esm5.processed/errors/error_message.js +1 -1
  165. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/create_request.d.ts +5 -3
  166. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/create_request.js +21 -8
  167. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/get_initialized_source_buffer.js +2 -3
  168. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_segments.d.ts +2 -2
  169. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_segments.js +4 -0
  170. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -1
  171. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/push_data.d.ts +2 -2
  172. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +17 -6
  173. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +1 -2
  174. package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +1 -2
  175. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -1
  176. package/dist/_esm5.processed/features/initialize_features.js +47 -44
  177. package/dist/_esm5.processed/index.js +2 -2
  178. package/dist/_esm5.processed/manifest/index.d.ts +2 -2
  179. package/dist/_esm5.processed/manifest/index.js +2 -2
  180. package/dist/_esm5.processed/manifest/representation.js +1 -1
  181. package/dist/_esm5.processed/manifest/representation_index/static.js +1 -0
  182. package/dist/_esm5.processed/manifest/representation_index/types.d.ts +24 -3
  183. package/dist/_esm5.processed/manifest/update_period_in_place.js +1 -1
  184. package/dist/_esm5.processed/manifest/{are_same_content.d.ts → utils.d.ts} +9 -7
  185. package/dist/_esm5.processed/manifest/{are_same_content.js → utils.js} +18 -1
  186. package/dist/_esm5.processed/minimal.js +2 -2
  187. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.d.ts +18 -9
  188. package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +32 -9
  189. package/dist/_esm5.processed/parsers/containers/isobmff/read.d.ts +18 -5
  190. package/dist/_esm5.processed/parsers/containers/isobmff/read.js +28 -6
  191. package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +52 -47
  192. package/dist/_esm5.processed/parsers/images/bif.js +1 -1
  193. package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +2 -2
  194. package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +2 -2
  195. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +2 -1
  196. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +3 -2
  197. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +2 -1
  198. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +1 -0
  199. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +7 -9
  200. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -1
  201. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +4 -2
  202. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +2 -1
  203. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +11 -5
  204. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +10 -9
  205. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +3 -3
  206. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +6 -1
  207. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +5 -4
  208. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.d.ts +1 -1
  209. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +4 -4
  210. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +3 -1
  211. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +19 -18
  212. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +2 -1
  213. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +14 -8
  214. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +2 -2
  215. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +7 -8
  216. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +3 -1
  217. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +5 -10
  218. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +3 -1
  219. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +17 -8
  220. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.d.ts +7 -2
  221. package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +22 -21
  222. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +10 -0
  223. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +9 -9
  224. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +24 -0
  225. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +7 -5
  226. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +12 -9
  227. package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +5 -2
  228. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +8 -0
  229. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +11 -2
  230. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +7 -4
  231. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +11 -0
  232. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +7 -1
  233. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +5 -0
  234. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +5 -0
  235. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +13 -0
  236. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +23 -0
  237. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +5 -0
  238. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +6 -0
  239. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +6 -0
  240. package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +1 -1
  241. package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +4 -2
  242. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +1 -1
  243. package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +1 -1
  244. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +3 -1
  245. package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +1 -1
  246. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +1 -1
  247. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +11 -3
  248. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +5 -5
  249. package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +3 -6
  250. package/dist/_esm5.processed/parsers/texttracks/sami/html.js +2 -2
  251. package/dist/_esm5.processed/parsers/texttracks/sami/native.js +2 -2
  252. package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +13 -1
  253. package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +4 -4
  254. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +2 -2
  255. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +5 -5
  256. package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +2 -2
  257. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -1
  258. package/dist/_esm5.processed/transports/dash/manifest_parser.js +89 -20
  259. package/dist/_esm5.processed/transports/dash/segment_loader.js +1 -1
  260. package/dist/_esm5.processed/transports/local/segment_loader.js +2 -2
  261. package/dist/_esm5.processed/transports/local/segment_parser.d.ts +2 -2
  262. package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
  263. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +1 -1
  264. package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +1 -1
  265. package/dist/_esm5.processed/transports/smooth/pipelines.js +2 -2
  266. package/dist/_esm5.processed/transports/smooth/segment_loader.js +3 -3
  267. package/dist/_esm5.processed/transports/types.d.ts +29 -15
  268. package/dist/_esm5.processed/transports/utils/byte_range.js +2 -2
  269. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -1
  270. package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +6 -1
  271. package/dist/_esm5.processed/transports/utils/parse_text_track.js +6 -4
  272. package/dist/_esm5.processed/utils/assert.js +3 -3
  273. package/dist/_esm5.processed/utils/concat_map_latest.js +1 -2
  274. package/dist/_esm5.processed/utils/defer_subscriptions.js +1 -2
  275. package/dist/_esm5.processed/utils/filter_map.js +1 -2
  276. package/dist/_esm5.processed/utils/reference.d.ts +108 -0
  277. package/dist/_esm5.processed/utils/reference.js +137 -0
  278. package/dist/_esm5.processed/utils/request/fetch.d.ts +1 -1
  279. package/dist/_esm5.processed/utils/request/fetch.js +3 -3
  280. package/dist/_esm5.processed/utils/request/xhr.d.ts +1 -1
  281. package/dist/_esm5.processed/utils/request/xhr.js +1 -1
  282. package/dist/_esm5.processed/utils/rx-retry_with_backoff.js +1 -2
  283. package/dist/mpd-parser.wasm +0 -0
  284. package/dist/rx-player.d.ts +1 -15
  285. package/dist/rx-player.js +3666 -2470
  286. package/dist/rx-player.min.d.ts +1 -15
  287. package/dist/rx-player.min.js +1 -1
  288. package/jest.config.js +28 -1
  289. package/package.json +43 -43
  290. package/scripts/build/constants.d.ts +50 -0
  291. package/scripts/build/generate_build.js +1 -189
  292. package/scripts/doc-generator/construct_table_of_contents.js +31 -24
  293. package/scripts/doc-generator/convert_MD_to_HMTL.js +4 -8
  294. package/scripts/doc-generator/create_documentation.js +331 -0
  295. package/scripts/doc-generator/create_documentation_page.js +209 -0
  296. package/scripts/doc-generator/create_page.js +117 -35
  297. package/scripts/doc-generator/generate_header_html.js +148 -0
  298. package/scripts/doc-generator/generate_page_html.js +116 -0
  299. package/scripts/doc-generator/generate_page_list_html.js +93 -0
  300. package/scripts/doc-generator/generate_sidebar_html.js +88 -0
  301. package/scripts/doc-generator/get_search_data_for_content.js +137 -0
  302. package/scripts/doc-generator/index.js +14 -15
  303. package/scripts/doc-generator/parse_doc_configs.js +327 -0
  304. package/scripts/doc-generator/scripts/lunr.js +10 -0
  305. package/scripts/doc-generator/scripts/script.js +451 -0
  306. package/scripts/doc-generator/styles/style.css +712 -144
  307. package/scripts/doc-generator/utils.js +85 -0
  308. package/scripts/fast_demo_build.js +143 -0
  309. package/scripts/generate_documentation_list.js +6 -2
  310. package/scripts/generate_full_demo.js +26 -49
  311. package/scripts/start_demo_web_server.js +14 -4
  312. package/scripts/update-version +1 -1
  313. package/sonar-project.properties +2 -1
  314. package/src/compat/__tests__/add_text_track.test.ts +1 -0
  315. package/src/compat/__tests__/clear_element_src.test.ts +55 -28
  316. package/src/compat/__tests__/set_element_src.test.ts +2 -2
  317. package/src/compat/__tests__/when_loaded_metadata.test.ts +4 -5
  318. package/src/compat/__tests__/when_media_source_open.test.ts +4 -5
  319. package/src/compat/clear_element_src.ts +8 -6
  320. package/src/compat/eme/close_session.ts +3 -5
  321. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +1 -1
  322. package/src/compat/eme/custom_media_keys/index.ts +6 -6
  323. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +6 -3
  324. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +1 -1
  325. package/src/compat/eme/generate_key_request.ts +1 -1
  326. package/src/compat/eme/load_session.ts +4 -6
  327. package/src/compat/event_listeners.ts +12 -21
  328. package/src/compat/on_height_width_change.ts +3 -5
  329. package/src/compat/set_element_src.ts +1 -1
  330. package/src/compat/when_loaded_metadata.ts +1 -1
  331. package/src/compat/when_media_source_open.ts +1 -1
  332. package/src/config.ts +4 -9
  333. package/src/core/abr/README.md +7 -7
  334. package/src/core/abr/abr_manager.ts +62 -21
  335. package/src/core/abr/bandwidth_estimator.ts +1 -1
  336. package/src/core/abr/buffer_based_chooser.ts +8 -6
  337. package/src/core/abr/get_buffer_levels.ts +3 -0
  338. package/src/core/abr/get_estimate_from_buffer_levels.ts +4 -4
  339. package/src/core/abr/guess_based_chooser.ts +308 -0
  340. package/src/core/abr/index.ts +7 -3
  341. package/src/core/abr/last_estimate_storage.ts +79 -0
  342. package/src/core/abr/network_analyzer.ts +74 -31
  343. package/src/core/abr/pending_requests_store.ts +76 -42
  344. package/src/core/abr/representation_estimator.ts +200 -125
  345. package/src/core/abr/representation_score_calculator.ts +33 -26
  346. package/src/core/abr/{__tests__ → utils/__tests__}/ewma.test.ts +0 -0
  347. package/src/core/abr/{__tests__ → utils/__tests__}/filter_by_bitrate.test.ts +1 -1
  348. package/src/core/abr/{__tests__ → utils/__tests__}/filter_by_width.test.ts +1 -1
  349. package/src/core/abr/{__tests__ → utils/__tests__}/select_optimal_representation.test.ts +1 -1
  350. package/src/core/abr/{ewma.ts → utils/ewma.ts} +0 -0
  351. package/src/core/abr/{filter_by_bitrate.ts → utils/filter_by_bitrate.ts} +2 -2
  352. package/src/core/abr/{filter_by_width.ts → utils/filter_by_width.ts} +3 -3
  353. package/src/core/abr/{select_optimal_representation.ts → utils/select_optimal_representation.ts} +2 -2
  354. package/src/core/api/README.md +4 -3
  355. package/src/core/api/__tests__/option_utils.test.ts +1 -0
  356. package/src/core/api/emit_seek_events.ts +21 -20
  357. package/src/core/api/index.ts +6 -2
  358. package/src/core/api/playback_observer.ts +768 -0
  359. package/src/core/api/public_api.ts +111 -111
  360. package/src/core/api/track_choice_manager.ts +6 -3
  361. package/src/core/eme/__tests__/__global__/get_license.test.ts +5 -3
  362. package/src/core/eme/__tests__/__global__/init_data.test.ts +11 -12
  363. package/src/core/eme/__tests__/__global__/media_key_system_access.test.ts +2 -1
  364. package/src/core/eme/__tests__/__global__/media_keys.test.ts +5 -8
  365. package/src/core/eme/__tests__/__global__/server_certificate.test.ts +8 -6
  366. package/src/core/eme/__tests__/__global__/utils.ts +1 -0
  367. package/src/core/eme/__tests__/init_media_keys.test.ts +6 -65
  368. package/src/core/eme/attach_media_keys.ts +2 -1
  369. package/src/core/eme/check_key_statuses.ts +10 -8
  370. package/src/core/eme/clean_old_loaded_sessions.ts +2 -4
  371. package/src/core/eme/clear_eme_session.ts +6 -1
  372. package/src/core/eme/create_session.ts +3 -5
  373. package/src/core/eme/dispose_media_keys.ts +2 -2
  374. package/src/core/eme/eme_manager.ts +10 -12
  375. package/src/core/eme/find_key_system.ts +3 -5
  376. package/src/core/eme/get_media_keys.ts +4 -6
  377. package/src/core/eme/get_session.ts +2 -4
  378. package/src/core/eme/init_media_keys.ts +9 -9
  379. package/src/core/eme/session_events_listener.ts +14 -15
  380. package/src/core/eme/set_server_certificate.ts +9 -5
  381. package/src/core/eme/types.ts +15 -4
  382. package/src/core/eme/utils/close_session.ts +7 -7
  383. package/src/core/eme/utils/is_session_usable.ts +1 -1
  384. package/src/core/eme/utils/loaded_sessions_store.ts +2 -2
  385. package/src/core/eme/utils/persistent_sessions_store.ts +2 -2
  386. package/src/core/fetchers/index.ts +2 -2
  387. package/src/core/fetchers/manifest/manifest_fetcher.ts +1 -1
  388. package/src/core/fetchers/segment/__tests__/prioritizer.test.ts +3 -4
  389. package/src/core/fetchers/segment/index.ts +2 -2
  390. package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +37 -45
  391. package/src/core/fetchers/segment/prioritizer.ts +82 -82
  392. package/src/core/fetchers/segment/segment_fetcher.ts +178 -80
  393. package/src/core/fetchers/segment/segment_fetcher_creator.ts +23 -31
  394. package/src/core/init/create_eme_manager.ts +1 -1
  395. package/src/core/init/create_media_source.ts +5 -7
  396. package/src/core/init/create_stream_playback_observer.ts +88 -0
  397. package/src/core/init/duration_updater.ts +20 -17
  398. package/src/core/init/emit_loaded_event.ts +11 -15
  399. package/src/core/init/end_of_stream.ts +2 -4
  400. package/src/core/init/get_initial_time.ts +0 -1
  401. package/src/core/init/initial_seek_and_play.ts +67 -51
  402. package/src/core/init/initialize_directfile.ts +26 -35
  403. package/src/core/init/initialize_media_source.ts +28 -28
  404. package/src/core/init/load_on_media_source.ts +51 -58
  405. package/src/core/init/manifest_update_scheduler.ts +11 -12
  406. package/src/core/init/stall_avoider.ts +64 -47
  407. package/src/core/init/stream_events_emitter/stream_events_emitter.ts +24 -21
  408. package/src/core/init/throw_on_media_error.ts +1 -1
  409. package/src/core/init/types.ts +0 -24
  410. package/src/core/init/update_playback_rate.ts +15 -16
  411. package/src/core/segment_buffers/README.md +3 -3
  412. package/src/core/segment_buffers/garbage_collector.ts +15 -11
  413. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +10 -7
  414. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +14 -16
  415. package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +1 -1
  416. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +4 -4
  417. package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +2 -2
  418. package/src/core/segment_buffers/inventory/buffered_history.ts +2 -2
  419. package/src/core/segment_buffers/inventory/segment_inventory.ts +1 -13
  420. package/src/core/stream/adaptation/adaptation_stream.ts +78 -56
  421. package/src/core/stream/adaptation/create_representation_estimator.ts +19 -45
  422. package/src/core/stream/adaptation/index.ts +2 -2
  423. package/src/core/stream/index.ts +2 -2
  424. package/src/core/stream/orchestrator/active_period_emitter.ts +6 -8
  425. package/src/core/stream/orchestrator/are_streams_complete.ts +2 -4
  426. package/src/core/stream/orchestrator/index.ts +2 -2
  427. package/src/core/stream/orchestrator/stream_orchestrator.ts +58 -49
  428. package/src/core/stream/period/create_empty_adaptation_stream.ts +14 -10
  429. package/src/core/stream/period/index.ts +2 -2
  430. package/src/core/stream/period/period_stream.ts +118 -75
  431. package/src/core/stream/reload_after_switch.ts +13 -10
  432. package/src/core/stream/representation/append_segment_to_buffer.ts +20 -16
  433. package/src/core/stream/representation/downloading_queue.ts +21 -24
  434. package/src/core/stream/representation/force_garbage_collection.ts +16 -23
  435. package/src/core/stream/representation/get_buffer_status.ts +9 -11
  436. package/src/core/stream/representation/get_needed_segments.ts +1 -1
  437. package/src/core/stream/representation/get_segment_priority.ts +8 -10
  438. package/src/core/stream/representation/index.ts +2 -2
  439. package/src/core/stream/representation/push_init_segment.ts +19 -16
  440. package/src/core/stream/representation/push_media_segment.ts +21 -17
  441. package/src/core/stream/representation/representation_stream.ts +50 -47
  442. package/src/experimental/features/__tests__/dash_wasm.test.ts +1 -0
  443. package/src/experimental/tools/VideoThumbnailLoader/create_request.ts +32 -17
  444. package/src/experimental/tools/VideoThumbnailLoader/get_initialized_source_buffer.ts +6 -9
  445. package/src/experimental/tools/VideoThumbnailLoader/load_segments.ts +12 -6
  446. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +4 -2
  447. package/src/experimental/tools/VideoThumbnailLoader/push_data.ts +2 -2
  448. package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +21 -12
  449. package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +1 -1
  450. package/src/experimental/tools/createMetaplaylist/index.ts +1 -1
  451. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +4 -2
  452. package/src/features/__tests__/initialize_features.test.ts +191 -101
  453. package/src/features/initialize_features.ts +40 -37
  454. package/src/features/list/__tests__/bif_parser.test.ts +1 -0
  455. package/src/features/list/__tests__/dash.test.ts +1 -0
  456. package/src/features/list/__tests__/directfile.test.ts +1 -0
  457. package/src/features/list/__tests__/eme.test.ts +1 -0
  458. package/src/features/list/__tests__/html_sami_parser.test.ts +1 -0
  459. package/src/features/list/__tests__/html_srt_parser.test.ts +1 -0
  460. package/src/features/list/__tests__/html_text_buffer.test.ts +1 -0
  461. package/src/features/list/__tests__/html_ttml_parser.test.ts +1 -0
  462. package/src/features/list/__tests__/html_vtt_parser.test.ts +1 -0
  463. package/src/features/list/__tests__/image_buffer.test.ts +1 -0
  464. package/src/features/list/__tests__/native_sami_parser.test.ts +1 -0
  465. package/src/features/list/__tests__/native_srt_parser.test.ts +1 -0
  466. package/src/features/list/__tests__/native_text_buffer.test.ts +1 -0
  467. package/src/features/list/__tests__/native_ttml_parser.test.ts +1 -0
  468. package/src/features/list/__tests__/native_vtt_parser.test.ts +1 -0
  469. package/src/features/list/__tests__/smooth.test.ts +1 -0
  470. package/src/index.ts +2 -2
  471. package/src/manifest/__tests__/manifest.test.ts +1 -0
  472. package/src/manifest/index.ts +7 -1
  473. package/src/manifest/representation_index/__tests__/static.test.ts +1 -0
  474. package/src/manifest/representation_index/static.ts +1 -0
  475. package/src/manifest/representation_index/types.ts +25 -3
  476. package/src/manifest/{are_same_content.ts → utils.ts} +26 -9
  477. package/src/minimal.ts +3 -2
  478. package/src/parsers/containers/isobmff/get_box.ts +35 -8
  479. package/src/parsers/containers/isobmff/read.ts +32 -5
  480. package/src/parsers/containers/isobmff/utils.ts +52 -47
  481. package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +4 -4
  482. package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +4 -2
  483. package/src/parsers/manifest/dash/common/get_clock_offset.ts +3 -3
  484. package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +15 -6
  485. package/src/parsers/manifest/dash/common/indexes/base.ts +5 -3
  486. package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +1 -0
  487. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +9 -9
  488. package/src/parsers/manifest/dash/common/indexes/list.ts +6 -3
  489. package/src/parsers/manifest/dash/common/indexes/template.ts +13 -6
  490. package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +10 -9
  491. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +13 -5
  492. package/src/parsers/manifest/dash/common/indexes/tokens.ts +4 -4
  493. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +10 -4
  494. package/src/parsers/manifest/dash/common/parse_mpd.ts +21 -13
  495. package/src/parsers/manifest/dash/common/parse_periods.ts +7 -8
  496. package/src/parsers/manifest/dash/common/parse_representation_index.ts +12 -12
  497. package/src/parsers/manifest/dash/common/parse_representations.ts +23 -4
  498. package/src/parsers/manifest/dash/common/resolve_base_urls.ts +33 -24
  499. package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +12 -0
  500. package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +13 -9
  501. package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +28 -0
  502. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +8 -5
  503. package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +3 -0
  504. package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +5 -2
  505. package/src/parsers/manifest/dash/node_parser_types.ts +8 -0
  506. package/src/parsers/manifest/dash/parsers_types.ts +8 -2
  507. package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +1 -8
  508. package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +26 -5
  509. package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +75 -521
  510. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +7 -4
  511. package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +13 -0
  512. package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +8 -1
  513. package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +6 -0
  514. package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +6 -0
  515. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +14 -0
  516. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +26 -0
  517. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +6 -0
  518. package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +7 -0
  519. package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +7 -0
  520. package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +1 -1
  521. package/src/parsers/manifest/local/representation_index.ts +2 -0
  522. package/src/parsers/manifest/smooth/create_parser.ts +1 -1
  523. package/src/parsers/manifest/smooth/representation_index.ts +3 -1
  524. package/src/parsers/manifest/utils/clear_timeline_from_position.ts +1 -1
  525. package/src/parsers/manifest/utils/index_helpers.ts +21 -11
  526. package/src/parsers/manifest/utils/is_segment_still_available.ts +4 -6
  527. package/src/parsers/texttracks/sami/html.ts +1 -1
  528. package/src/parsers/texttracks/sami/native.ts +1 -1
  529. package/src/parsers/texttracks/ttml/html/apply_font_size.ts +11 -1
  530. package/src/transports/dash/image_pipelines.ts +4 -4
  531. package/src/transports/dash/init_segment_loader.ts +1 -1
  532. package/src/transports/dash/manifest_parser.ts +99 -25
  533. package/src/transports/dash/segment_loader.ts +1 -1
  534. package/src/transports/dash/segment_parser.ts +4 -4
  535. package/src/transports/dash/text_parser.ts +8 -8
  536. package/src/transports/local/segment_loader.ts +2 -2
  537. package/src/transports/local/segment_parser.ts +4 -4
  538. package/src/transports/local/text_parser.ts +8 -8
  539. package/src/transports/metaplaylist/pipelines.ts +11 -11
  540. package/src/transports/smooth/extract_timings_infos.ts +1 -1
  541. package/src/transports/smooth/pipelines.ts +8 -8
  542. package/src/transports/smooth/segment_loader.ts +3 -3
  543. package/src/transports/types.ts +31 -17
  544. package/src/transports/utils/call_custom_manifest_loader.ts +1 -1
  545. package/src/transports/utils/get_isobmff_timing_infos.ts +6 -1
  546. package/src/transports/utils/parse_text_track.ts +4 -2
  547. package/src/typings/globals.d.ts +57 -40
  548. package/src/utils/__tests__/concat_map_latest.test.ts +7 -9
  549. package/src/utils/__tests__/defer_subscriptions.test.ts +4 -4
  550. package/src/utils/__tests__/event_emitter.test.ts +1 -1
  551. package/src/utils/__tests__/initialization_segment_cache.test.ts +7 -0
  552. package/src/utils/assert.ts +1 -1
  553. package/src/utils/concat_map_latest.ts +2 -4
  554. package/src/utils/defer_subscriptions.ts +1 -1
  555. package/src/utils/filter_map.ts +2 -4
  556. package/src/utils/reference.ts +234 -0
  557. package/src/utils/request/fetch.ts +3 -3
  558. package/src/utils/request/xhr.ts +2 -2
  559. package/src/utils/rx-retry_with_backoff.ts +2 -4
  560. package/tsconfig.json +4 -1
  561. package/tsconfig.modules.json +8 -3
  562. package/dist/_esm5.processed/core/abr/create_filters.d.ts +0 -27
  563. package/dist/_esm5.processed/core/abr/create_filters.js +0 -56
  564. package/dist/_esm5.processed/core/api/clock.d.ts +0 -157
  565. package/dist/_esm5.processed/core/api/clock.js +0 -363
  566. package/dist/_esm5.processed/core/init/create_stream_clock.d.ts +0 -34
  567. package/dist/_esm5.processed/core/init/create_stream_clock.js +0 -55
  568. package/dist/_esm5.processed/parsers/manifest/dash/common/extract_minimum_availability_time_offset.d.ts +0 -31
  569. package/dist/_esm5.processed/parsers/manifest/dash/common/extract_minimum_availability_time_offset.js +0 -37
  570. package/scripts/doc-generator/construct_html.js +0 -135
  571. package/scripts/doc-generator/construct_page_list.js +0 -120
  572. package/scripts/doc-generator/create_for_dir.js +0 -151
  573. package/scripts/doc-generator/get_files_to_convert.js +0 -71
  574. package/scripts/doc-generator/mkdir_parent.js +0 -21
  575. package/scripts/doc-generator/read_title_from_md.js +0 -22
  576. package/scripts/doc-generator/remove_toc_from_md.js +0 -20
  577. package/src/core/abr/create_filters.ts +0 -59
  578. package/src/core/api/clock.ts +0 -573
  579. package/src/core/init/create_stream_clock.ts +0 -93
  580. package/src/parsers/manifest/dash/common/extract_minimum_availability_time_offset.ts +0 -41
@@ -25,25 +25,22 @@
25
25
 
26
26
  import nextTick from "next-tick";
27
27
  import {
28
- BehaviorSubject,
29
28
  combineLatest as observableCombineLatest,
30
29
  concat as observableConcat,
31
30
  defer as observableDefer,
32
31
  EMPTY,
32
+ ignoreElements,
33
33
  merge as observableMerge,
34
+ mergeMap,
34
35
  Observable,
35
36
  of as observableOf,
36
- Subject,
37
- } from "rxjs";
38
- import {
39
- ignoreElements,
40
- mergeMap,
41
37
  share,
42
38
  startWith,
39
+ Subject,
43
40
  take,
44
41
  takeWhile,
45
42
  withLatestFrom,
46
- } from "rxjs/operators";
43
+ } from "rxjs";
47
44
  import log from "../../../log";
48
45
  import Manifest, {
49
46
  Adaptation,
@@ -53,10 +50,9 @@ import Manifest, {
53
50
  } from "../../../manifest";
54
51
  import assertUnreachable from "../../../utils/assert_unreachable";
55
52
  import objectAssign from "../../../utils/object_assign";
56
- import {
57
- IPrioritizedSegmentFetcher,
58
- ISegmentFetcherWarning,
59
- } from "../../fetchers";
53
+ import { createSharedReference } from "../../../utils/reference";
54
+ import { IReadOnlyPlaybackObserver } from "../../api";
55
+ import { IPrioritizedSegmentFetcher } from "../../fetchers";
60
56
  import { SegmentBuffer } from "../../segment_buffers";
61
57
  import EVENTS from "../events_generators";
62
58
  import {
@@ -69,6 +65,7 @@ import {
69
65
  IStreamStatusEvent,
70
66
  IStreamTerminatingEvent,
71
67
  IInbandEventsEvent,
68
+ IStreamWarningEvent,
72
69
  } from "../types";
73
70
  import DownloadingQueue, {
74
71
  IDownloadingQueueEvent,
@@ -81,15 +78,13 @@ import getSegmentPriority from "./get_segment_priority";
81
78
  import pushInitSegment from "./push_init_segment";
82
79
  import pushMediaSegment from "./push_media_segment";
83
80
 
84
- /** Object emitted by the Stream's clock$ at each tick. */
85
- export interface IRepresentationStreamClockTick {
86
- /** The position, in seconds, the media element was in at the time of the tick. */
81
+ /** Object that should be emitted by the given `IReadOnlyPlaybackObserver`. */
82
+ export interface IRepresentationStreamPlaybackObservation {
83
+ /**
84
+ * The position, in seconds, the media element was in at the time of the
85
+ * playback observation.
86
+ */
87
87
  position : number;
88
- /**
89
- * Gap between the current position and the edge of a live content.
90
- * Not set for non-live contents.
91
- */
92
- liveGap? : number;
93
88
  /**
94
89
  * Offset in seconds to add to the time to obtain the position we
95
90
  * actually want to download from.
@@ -98,8 +93,6 @@ export interface IRepresentationStreamClockTick {
98
93
  * starting position different from `0`.
99
94
  */
100
95
  wantedTimeOffset : number;
101
- /** Fetch the precize position currently in the HTMLMediaElement. */
102
- getCurrentTime() : number;
103
96
  }
104
97
 
105
98
  /** Item emitted by the `terminate$` Observable given to a RepresentationStream. */
@@ -115,8 +108,6 @@ export interface ITerminationOrder {
115
108
 
116
109
  /** Arguments to give to the RepresentationStream. */
117
110
  export interface IRepresentationStreamArguments<TSegmentDataType> {
118
- /** Periodically emits the current playback conditions. */
119
- clock$ : Observable<IRepresentationStreamClockTick>;
120
111
  /** The context of the Representation you want to load. */
121
112
  content: { adaptation : Adaptation;
122
113
  manifest : Manifest;
@@ -137,6 +128,8 @@ export interface IRepresentationStreamArguments<TSegmentDataType> {
137
128
  * Observable once the corresponding segments have been pushed).
138
129
  */
139
130
  terminate$ : Observable<ITerminationOrder>;
131
+ /** Periodically emits the current playback conditions. */
132
+ playbackObserver : IReadOnlyPlaybackObserver<IRepresentationStreamPlaybackObservation>;
140
133
  /** Supplementary arguments which configure the RepresentationStream's behavior. */
141
134
  options: IRepresentationStreamOptions;
142
135
  }
@@ -216,12 +209,12 @@ interface IInitSegmentState<T> {
216
209
  * @returns {Observable}
217
210
  */
218
211
  export default function RepresentationStream<TSegmentDataType>({
219
- clock$,
220
212
  content,
213
+ options,
214
+ playbackObserver,
221
215
  segmentBuffer,
222
216
  segmentFetcher,
223
217
  terminate$,
224
- options,
225
218
  } : IRepresentationStreamArguments<TSegmentDataType>
226
219
  ) : Observable<IRepresentationStreamEvent> {
227
220
  const { period,
@@ -243,14 +236,15 @@ export default function RepresentationStream<TSegmentDataType>({
243
236
  const reCheckNeededSegments$ = new Subject<void>();
244
237
 
245
238
  /** Emit the last scheduled downloading queue for segments. */
246
- const lastSegmentQueue$ =
247
- new BehaviorSubject<IDownloadQueueItem>({ initSegment: null,
248
- segmentQueue: [] });
239
+ const lastSegmentQueue = createSharedReference<IDownloadQueueItem>({
240
+ initSegment: null,
241
+ segmentQueue: [],
242
+ });
249
243
  const hasInitSegment = initSegmentState.segment !== null;
250
244
 
251
- /** Will load every segments in `lastSegmentQueue$` */
245
+ /** Will load every segments in `lastSegmentQueue` */
252
246
  const downloadingQueue = new DownloadingQueue(content,
253
- lastSegmentQueue$,
247
+ lastSegmentQueue,
254
248
  segmentFetcher,
255
249
  hasInitSegment);
256
250
 
@@ -275,13 +269,13 @@ export default function RepresentationStream<TSegmentDataType>({
275
269
  }
276
270
  }
277
271
 
278
- /** Observable loading and pushing segments scheduled through `lastSegmentQueue$`. */
272
+ /** Observable loading and pushing segments scheduled through `lastSegmentQueue`. */
279
273
  const queue$ = downloadingQueue.start()
280
274
  .pipe(mergeMap(onQueueEvent));
281
275
 
282
- /** Observable emitting the stream "status" and filling `lastSegmentQueue$`. */
276
+ /** Observable emitting the stream "status" and filling `lastSegmentQueue`. */
283
277
  const status$ = observableCombineLatest([
284
- clock$,
278
+ playbackObserver.observe(true),
285
279
  bufferGoal$,
286
280
  terminate$.pipe(take(1),
287
281
  startWith(null)),
@@ -289,14 +283,16 @@ export default function RepresentationStream<TSegmentDataType>({
289
283
  ]).pipe(
290
284
  withLatestFrom(fastSwitchThreshold$),
291
285
  mergeMap(function (
292
- [ [ tick, bufferGoal, terminate ],
286
+ [ [ observation, bufferGoal, terminate ],
293
287
  fastSwitchThreshold ]
294
288
  ) : Observable<IStreamStatusEvent |
295
289
  IStreamNeedsManifestRefresh |
296
290
  IStreamTerminatingEvent>
297
291
  {
292
+ const wantedStartPosition = observation.position + observation.wantedTimeOffset;
298
293
  const status = getBufferStatus(content,
299
- tick,
294
+ wantedStartPosition,
295
+ playbackObserver,
300
296
  fastSwitchThreshold,
301
297
  bufferGoal,
302
298
  segmentBuffer);
@@ -312,8 +308,10 @@ export default function RepresentationStream<TSegmentDataType>({
312
308
  log.warn("Stream: Uninitialized index with an already loaded " +
313
309
  "initialization segment");
314
310
  } else {
311
+ const wantedStart = observation.position + observation.wantedTimeOffset;
315
312
  neededInitSegment = { segment: initSegmentState.segment,
316
- priority: getSegmentPriority(period.start, tick) };
313
+ priority: getSegmentPriority(period.start,
314
+ wantedStart) };
317
315
  }
318
316
  } else if (neededSegments.length > 0 &&
319
317
  !initSegmentState.isLoaded &&
@@ -325,12 +323,12 @@ export default function RepresentationStream<TSegmentDataType>({
325
323
  }
326
324
 
327
325
  if (terminate === null) {
328
- lastSegmentQueue$.next({ initSegment: neededInitSegment,
329
- segmentQueue: neededSegments });
326
+ lastSegmentQueue.setValue({ initSegment: neededInitSegment,
327
+ segmentQueue: neededSegments });
330
328
  } else if (terminate.urgent) {
331
329
  log.debug("Stream: Urgent switch, terminate now.", bufferType);
332
- lastSegmentQueue$.next({ initSegment: null, segmentQueue: [] });
333
- lastSegmentQueue$.complete();
330
+ lastSegmentQueue.setValue({ initSegment: null, segmentQueue: [] });
331
+ lastSegmentQueue.finish();
334
332
  return observableOf(EVENTS.streamTerminating());
335
333
  } else {
336
334
  // Non-urgent termination wanted:
@@ -350,11 +348,11 @@ export default function RepresentationStream<TSegmentDataType>({
350
348
 
351
349
  const nextInit = initSegmentRequest === null ? null :
352
350
  neededInitSegment;
353
- lastSegmentQueue$.next({ initSegment: nextInit,
354
- segmentQueue: nextQueue });
351
+ lastSegmentQueue.setValue({ initSegment: nextInit,
352
+ segmentQueue: nextQueue });
355
353
  if (nextQueue.length === 0 && nextInit === null) {
356
354
  log.debug("Stream: No request left, terminate", bufferType);
357
- lastSegmentQueue$.complete();
355
+ lastSegmentQueue.finish();
358
356
  return observableOf(EVENTS.streamTerminating());
359
357
  }
360
358
  }
@@ -362,7 +360,7 @@ export default function RepresentationStream<TSegmentDataType>({
362
360
  const bufferStatusEvt : Observable<IStreamStatusEvent> =
363
361
  observableOf({ type: "stream-status" as const,
364
362
  value: { period,
365
- position: tick.position,
363
+ position: observation.position,
366
364
  bufferType,
367
365
  imminentDiscontinuity: status.imminentDiscontinuity,
368
366
  hasFinishedLoading: status.hasFinishedLoading,
@@ -386,7 +384,7 @@ export default function RepresentationStream<TSegmentDataType>({
386
384
  function onQueueEvent(
387
385
  evt : IDownloadingQueueEvent<TSegmentDataType>
388
386
  ) : Observable<IStreamEventAddedSegment<TSegmentDataType> |
389
- ISegmentFetcherWarning |
387
+ IStreamWarningEvent |
390
388
  IEncryptionDataEncounteredEvent |
391
389
  IInbandEventsEvent |
392
390
  IStreamNeedsManifestRefresh |
@@ -414,6 +412,11 @@ export default function RepresentationStream<TSegmentDataType>({
414
412
  case "end-of-segment": {
415
413
  const { segment } = evt.value;
416
414
  return segmentBuffer.endOfSegment(objectAssign({ segment }, content))
415
+ // NOTE As of now (RxJS 7.4.0), RxJS defines `ignoreElements` default
416
+ // first type parameter as `any` instead of the perfectly fine `unknown`,
417
+ // leading to linter issues, as it forbids the usage of `any`.
418
+ // This is why we're disabling the eslint rule.
419
+ /* eslint-disable-next-line @typescript-eslint/no-unsafe-argument */
417
420
  .pipe(ignoreElements());
418
421
  }
419
422
 
@@ -457,7 +460,7 @@ export default function RepresentationStream<TSegmentDataType>({
457
460
  observableOf(...allEncryptionData.map(p =>
458
461
  EVENTS.encryptionDataEncountered(p))) :
459
462
  EMPTY;
460
- const pushEvent$ = pushInitSegment({ clock$,
463
+ const pushEvent$ = pushInitSegment({ playbackObserver,
461
464
  content,
462
465
  segment: evt.segment,
463
466
  segmentData: evt.initializationData,
@@ -486,7 +489,7 @@ export default function RepresentationStream<TSegmentDataType>({
486
489
  EMPTY;
487
490
 
488
491
  const initSegmentData = initSegmentState.segmentData;
489
- const pushMediaSegment$ = pushMediaSegment({ clock$,
492
+ const pushMediaSegment$ = pushMediaSegment({ playbackObserver,
490
493
  content,
491
494
  initSegmentData,
492
495
  parsedSegment: evt,
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
18
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
18
19
 
19
20
  import DashWasmParser from "../../../parsers/manifest/dash/wasm-parser";
20
21
  import DASHFeature from "../../../transports/dash";
@@ -1,19 +1,18 @@
1
- import {
2
- EMPTY,
3
- } from "rxjs";
4
1
  import {
5
2
  catchError,
3
+ EMPTY,
6
4
  filter,
7
5
  take,
8
- } from "rxjs/operators";
6
+ } from "rxjs";
9
7
  import {
10
8
  ISegmentFetcher,
9
+ ISegmentFetcherChunkCompleteEvent,
11
10
  ISegmentFetcherChunkEvent,
12
11
  } from "../../../core/fetchers/segment/segment_fetcher";
13
12
  import { ISegment } from "../../../manifest";
14
13
  import {
15
- ISegmentParserParsedInitSegment,
16
- ISegmentParserParsedSegment,
14
+ ISegmentParserParsedInitChunk,
15
+ ISegmentParserParsedMediaChunk,
17
16
  } from "../../../transports";
18
17
  import getCompleteSegmentId from "./get_complete_segment_id";
19
18
  import { IContentInfos } from "./types";
@@ -21,11 +20,13 @@ import { IContentInfos } from "./types";
21
20
  const requests = new Map<string, ICancellableRequest>();
22
21
 
23
22
  export interface ICancellableRequest {
24
- data?: ISegmentParserParsedInitSegment<Uint8Array | ArrayBuffer> |
25
- ISegmentParserParsedSegment<Uint8Array | ArrayBuffer>;
23
+ data?: ISegmentParserParsedInitChunk<Uint8Array | ArrayBuffer> |
24
+ ISegmentParserParsedMediaChunk<Uint8Array | ArrayBuffer>;
25
+ isComplete: boolean;
26
26
  error?: Error;
27
- onData?: (data: ISegmentParserParsedInitSegment<Uint8Array | ArrayBuffer> |
28
- ISegmentParserParsedSegment<Uint8Array | ArrayBuffer>) => void;
27
+ onData?: (data: ISegmentParserParsedInitChunk<Uint8Array | ArrayBuffer> |
28
+ ISegmentParserParsedMediaChunk<Uint8Array | ArrayBuffer>) => void;
29
+ onComplete?: () => void;
29
30
  onError?: (err: Error) => void;
30
31
  cancel: () => void;
31
32
  }
@@ -50,7 +51,11 @@ export function createRequest(
50
51
  }
51
52
 
52
53
  const _request: ICancellableRequest = {
53
- cancel: () => subscription.unsubscribe(),
54
+ cancel() {
55
+ subscription.unsubscribe();
56
+ this.isComplete = true;
57
+ },
58
+ isComplete: false,
54
59
  };
55
60
 
56
61
  const subscription = segmentFetcher({ manifest: contentInfos.manifest,
@@ -58,8 +63,10 @@ export function createRequest(
58
63
  adaptation: contentInfos.adaptation,
59
64
  representation: contentInfos.representation,
60
65
  segment }).pipe(
61
- filter((evt): evt is ISegmentFetcherChunkEvent<ArrayBuffer | Uint8Array> =>
62
- evt.type === "chunk"
66
+ filter((evt): evt is ISegmentFetcherChunkEvent<ArrayBuffer | Uint8Array> |
67
+ ISegmentFetcherChunkCompleteEvent =>
68
+ evt.type === "chunk" ||
69
+ evt.type === "chunk-complete"
63
70
  ),
64
71
  take(1),
65
72
  catchError((err: Error) => {
@@ -67,13 +74,21 @@ export function createRequest(
67
74
  if (_request.onError !== undefined) {
68
75
  _request.onError(err);
69
76
  }
77
+ _request.isComplete = true;
70
78
  return EMPTY;
71
79
  })
72
80
  ).subscribe((evt) => {
73
- const parsed = evt.parse();
74
- _request.data = parsed;
75
- if (_request.onData !== undefined) {
76
- _request.onData(parsed);
81
+ if (evt.type === "chunk-complete") {
82
+ if (_request.onComplete !== undefined) {
83
+ _request.onComplete();
84
+ _request.isComplete = true;
85
+ }
86
+ } else {
87
+ const parsed = evt.parse();
88
+ _request.data = parsed;
89
+ if (_request.onData !== undefined) {
90
+ _request.onData(parsed);
91
+ }
77
92
  }
78
93
  });
79
94
 
@@ -16,19 +16,16 @@
16
16
 
17
17
  import {
18
18
  EMPTY,
19
+ map,
20
+ merge as observableMerge,
21
+ mergeMap,
19
22
  Observable,
20
23
  of as observableOf,
21
24
  ReplaySubject,
22
- Subscription,
23
- merge as observableMerge,
24
25
  Subject,
25
- } from "rxjs";
26
- import {
27
- map,
28
- mapTo,
29
- mergeMap,
26
+ Subscription,
30
27
  tap,
31
- } from "rxjs/operators";
28
+ } from "rxjs";
32
29
  import { ISegmentFetcher } from "../../../core/fetchers/segment/segment_fetcher";
33
30
  import { AudioVideoSegmentBuffer } from "../../../core/segment_buffers/implementations";
34
31
  import { ISegment } from "../../../manifest";
@@ -149,7 +146,7 @@ export function getInitializedSourceBuffer$(
149
146
  initSegment,
150
147
  sourceBuffer,
151
148
  segmentFetcher)
152
- .pipe(mapTo(sourceBuffer));
149
+ .pipe(map(() => sourceBuffer));
153
150
  }),
154
151
  tap(() => { sourceBufferContent = contentInfos; })
155
152
  );
@@ -2,8 +2,8 @@ import { combineLatest, Observable } from "rxjs";
2
2
  import { ISegmentFetcher } from "../../../core/fetchers/segment/segment_fetcher";
3
3
  import { ISegment } from "../../../manifest";
4
4
  import {
5
- ISegmentParserParsedInitSegment,
6
- ISegmentParserParsedSegment,
5
+ ISegmentParserParsedInitChunk,
6
+ ISegmentParserParsedMediaChunk,
7
7
  } from "../../../transports";
8
8
  import { createRequest, freeRequest } from "./create_request";
9
9
  import getCompleteSegmentId from "./get_complete_segment_id";
@@ -23,15 +23,15 @@ export default function loadSegments(
23
23
  contentInfos: IContentInfos
24
24
  ): Observable<Array<{
25
25
  segment: ISegment;
26
- data: ISegmentParserParsedSegment<ArrayBuffer | Uint8Array> |
27
- ISegmentParserParsedInitSegment<ArrayBuffer | Uint8Array>;
26
+ data: ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array> |
27
+ ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array>;
28
28
  }>> {
29
29
  return combineLatest(
30
30
  segments.map((segment) => {
31
31
  return new Observable<{
32
32
  segment: ISegment;
33
- data: ISegmentParserParsedSegment<ArrayBuffer | Uint8Array> |
34
- ISegmentParserParsedInitSegment<ArrayBuffer | Uint8Array>; }
33
+ data: ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array> |
34
+ ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array>; }
35
35
  >((obs) => {
36
36
  const completeSegmentId = getCompleteSegmentId(contentInfos, segment);
37
37
  const request = createRequest(segmentFetcher, contentInfos, segment);
@@ -49,12 +49,18 @@ export default function loadSegments(
49
49
 
50
50
  if (request.data !== undefined) {
51
51
  obs.next({ data: request.data, segment });
52
+ }
53
+
54
+ if (request.isComplete) {
52
55
  obs.complete();
53
56
  return;
54
57
  }
55
58
 
56
59
  request.onData = (data) => {
57
60
  obs.next({ data, segment });
61
+ };
62
+
63
+ request.onComplete = () => {
58
64
  obs.complete();
59
65
  };
60
66
  });
@@ -14,8 +14,10 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { Observable } from "rxjs";
18
- import { map } from "rxjs/operators";
17
+ import {
18
+ map,
19
+ Observable,
20
+ } from "rxjs";
19
21
  import openMediaSource from "../../../core/init/create_media_source";
20
22
  import { AudioVideoSegmentBuffer } from "../../../core/segment_buffers/implementations";
21
23
 
@@ -8,7 +8,7 @@ import Manifest, {
8
8
  Period,
9
9
  Representation,
10
10
  } from "../../../manifest";
11
- import { ISegmentParserParsedSegment } from "../../../transports";
11
+ import { ISegmentParserParsedMediaChunk } from "../../../transports";
12
12
 
13
13
  /**
14
14
  * Push data to the video source buffer.
@@ -26,7 +26,7 @@ export default function pushData(
26
26
  segment: ISegment;
27
27
  start: number;
28
28
  end: number; },
29
- parsed: ISegmentParserParsedSegment<Uint8Array | ArrayBuffer>,
29
+ parsed: ISegmentParserParsedMediaChunk<Uint8Array | ArrayBuffer>,
30
30
  videoSourceBuffer: AudioVideoSegmentBuffer
31
31
  ): Observable<void> {
32
32
  const { chunkData, appendWindow } = parsed;
@@ -15,22 +15,20 @@
15
15
  */
16
16
 
17
17
  import pinkie from "pinkie";
18
- import {
19
- combineLatest,
20
- lastValueFrom,
21
- merge as observableMerge,
22
- race as observableRace,
23
- Subject,
24
- } from "rxjs";
25
18
  import {
26
19
  catchError,
20
+ combineLatest,
27
21
  finalize,
28
22
  ignoreElements,
23
+ lastValueFrom,
29
24
  map,
25
+ merge as observableMerge,
30
26
  mergeMap,
27
+ race as observableRace,
28
+ Subject,
31
29
  take,
32
30
  tap,
33
- } from "rxjs/operators";
31
+ } from "rxjs";
34
32
  import Player from "../../../core/api";
35
33
  import createSegmentFetcher, {
36
34
  ISegmentFetcher,
@@ -211,7 +209,8 @@ export default class VideoThumbnailLoader {
211
209
  const segmentFetcher = createSegmentFetcher(
212
210
  "video",
213
211
  loader.video,
214
- new Subject(),
212
+ // We don't care about the SegmentFetcher's lifecycle events
213
+ {},
215
214
  { baseDelay: 0,
216
215
  maxDelay: 0,
217
216
  maxRetryOffline: 0,
@@ -241,8 +240,18 @@ export default class VideoThumbnailLoader {
241
240
  if (data.segmentType === "init") {
242
241
  throw new Error("Unexpected initialization segment parsed.");
243
242
  }
244
- const start = segment.time / segment.timescale;
245
- const end = start + (segment.duration / segment.timescale);
243
+ let start;
244
+ let end;
245
+ if (data.chunkInfos !== null) {
246
+ start = data.chunkInfos.time;
247
+ end = data.chunkInfos.duration;
248
+ } else {
249
+ start = segment.time / segment.timescale;
250
+ }
251
+
252
+ if (end === undefined) {
253
+ end = start + (segment.duration / segment.timescale);
254
+ }
246
255
  const inventoryInfos = objectAssign({ segment,
247
256
  start,
248
257
  end }, contentInfos);
@@ -251,7 +260,7 @@ export default class VideoThumbnailLoader {
251
260
  videoSourceBuffer)
252
261
  .pipe(tap(() => {
253
262
  freeRequest(getCompleteSegmentId(inventoryInfos, segment));
254
- log.debug("VTL: Appended segment.", data);
263
+ log.debug("VTL: Appended segment.");
255
264
  }));
256
265
  })
257
266
  );
@@ -15,10 +15,10 @@
15
15
  */
16
16
 
17
17
  import {
18
+ map,
18
19
  Observable,
19
20
  throwError,
20
21
  } from "rxjs";
21
- import { map } from "rxjs/operators";
22
22
  import { IMetaPlaylist } from "../../../parsers/manifest/metaplaylist";
23
23
  import isNonEmptyString from "../../../utils/is_non_empty_string";
24
24
  import request from "../../../utils/request/xhr";
@@ -17,9 +17,9 @@
17
17
  import {
18
18
  combineLatest as observableCombineLatest,
19
19
  lastValueFrom,
20
+ map,
20
21
  of as observableOf,
21
22
  } from "rxjs";
22
- import { map } from "rxjs/operators";
23
23
  import { IMetaPlaylist } from "../../../parsers/manifest/metaplaylist";
24
24
  import getDurationFromManifest from "./get_duration_from_manifest";
25
25
 
@@ -21,8 +21,10 @@
21
21
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
22
22
  /* eslint-disable @typescript-eslint/no-unsafe-return */
23
23
 
24
- import { of as observableOf } from "rxjs";
25
- import { map } from "rxjs/operators";
24
+ import {
25
+ map,
26
+ of as observableOf,
27
+ } from "rxjs";
26
28
  import { ProberStatus } from "../../types";
27
29
 
28
30