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
@@ -30,8 +30,8 @@ import takeFirstSet from "../../utils/take_first_set";
30
30
  import {
31
31
  ISegmentContext,
32
32
  ISegmentParser,
33
- ISegmentParserParsedInitSegment,
34
- ISegmentParserParsedSegment,
33
+ ISegmentParserParsedInitChunk,
34
+ ISegmentParserParsedMediaChunk,
35
35
  } from "../types";
36
36
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
37
37
  import inferSegmentContainer from "../utils/infer_segment_container";
@@ -52,8 +52,8 @@ export default function generateAudioVideoSegmentParser(
52
52
  isChunked : boolean; },
53
53
  content : ISegmentContext,
54
54
  initTimescale : number | undefined
55
- ) : ISegmentParserParsedSegment< Uint8Array | ArrayBuffer | null > |
56
- ISegmentParserParsedInitSegment< Uint8Array | ArrayBuffer | null > {
55
+ ) : ISegmentParserParsedMediaChunk< Uint8Array | ArrayBuffer | null > |
56
+ ISegmentParserParsedInitChunk< Uint8Array | ArrayBuffer | null > {
57
57
  const { period, adaptation, representation, segment, manifest } = content;
58
58
  const { data, isChunked } = loadedSegment;
59
59
  const appendWindow : [number, number | undefined] = [ period.start, period.end ];
@@ -27,8 +27,8 @@ import takeFirstSet from "../../utils/take_first_set";
27
27
  import {
28
28
  ISegmentContext,
29
29
  ISegmentParser,
30
- ISegmentParserParsedInitSegment,
31
- ISegmentParserParsedSegment,
30
+ ISegmentParserParsedInitChunk,
31
+ ISegmentParserParsedMediaChunk,
32
32
  ITextTrackSegmentData,
33
33
  } from "../types";
34
34
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
@@ -63,8 +63,8 @@ function parseISOBMFFEmbeddedTextTrack(
63
63
  content : ISegmentContext,
64
64
  initTimescale : number | undefined,
65
65
  __priv_patchLastSegmentInSidx? : boolean
66
- ) : ISegmentParserParsedSegment< ITextTrackSegmentData | null > |
67
- ISegmentParserParsedInitSegment< null > {
66
+ ) : ISegmentParserParsedMediaChunk< ITextTrackSegmentData | null > |
67
+ ISegmentParserParsedInitChunk< null > {
68
68
  const { period, representation, segment } = content;
69
69
  const { isInit, indexRange } = segment;
70
70
 
@@ -137,8 +137,8 @@ function parsePlainTextTrack(
137
137
  data : ArrayBuffer | Uint8Array | string,
138
138
  isChunked : boolean,
139
139
  content : ISegmentContext
140
- ) : ISegmentParserParsedSegment< ITextTrackSegmentData | null > |
141
- ISegmentParserParsedInitSegment< null > {
140
+ ) : ISegmentParserParsedMediaChunk< ITextTrackSegmentData | null > |
141
+ ISegmentParserParsedInitChunk< null > {
142
142
  const { period, segment } = content;
143
143
  const { timestampOffset = 0 } = segment;
144
144
  if (segment.isInit) {
@@ -185,8 +185,8 @@ export default function generateTextTrackParser(
185
185
  isChunked : boolean; },
186
186
  content : ISegmentContext,
187
187
  initTimescale : number | undefined
188
- ) : ISegmentParserParsedSegment< ITextTrackSegmentData | null > |
189
- ISegmentParserParsedInitSegment< null > {
188
+ ) : ISegmentParserParsedMediaChunk< ITextTrackSegmentData | null > |
189
+ ISegmentParserParsedInitChunk< null > {
190
190
  const { period, adaptation, representation, segment } = content;
191
191
  const { data, isChunked } = loadedSegment;
192
192
 
@@ -61,7 +61,7 @@ function loadInitSegment(
61
61
  res({ resultType: "segment-loaded",
62
62
  resultData: { responseData: _args.data,
63
63
  size: _args.size,
64
- duration: _args.duration } });
64
+ requestDuration: _args.duration } });
65
65
  };
66
66
 
67
67
  /**
@@ -129,7 +129,7 @@ function loadSegment(
129
129
  res({ resultType: "segment-loaded",
130
130
  resultData: { responseData: _args.data,
131
131
  size: _args.size,
132
- duration: _args.duration } });
132
+ requestDuration: _args.duration } });
133
133
  };
134
134
 
135
135
  /**
@@ -22,8 +22,8 @@ import { getTimeCodeScale } from "../../parsers/containers/matroska";
22
22
  import takeFirstSet from "../../utils/take_first_set";
23
23
  import {
24
24
  ISegmentContext,
25
- ISegmentParserParsedInitSegment,
26
- ISegmentParserParsedSegment,
25
+ ISegmentParserParsedInitChunk,
26
+ ISegmentParserParsedMediaChunk,
27
27
  } from "../types";
28
28
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
29
29
  import inferSegmentContainer from "../utils/infer_segment_container";
@@ -33,8 +33,8 @@ export default function segmentParser(
33
33
  isChunked : boolean; },
34
34
  content : ISegmentContext,
35
35
  initTimescale : number | undefined
36
- ) : ISegmentParserParsedInitSegment<ArrayBuffer | Uint8Array | null> |
37
- ISegmentParserParsedSegment<ArrayBuffer | Uint8Array | null>
36
+ ) : ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> |
37
+ ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>
38
38
  {
39
39
  const { period, adaptation, representation, segment } = content;
40
40
  const { data } = loadedSegment;
@@ -23,8 +23,8 @@ import takeFirstSet from "../../utils/take_first_set";
23
23
  import {
24
24
  ILoadedTextSegmentFormat,
25
25
  ISegmentContext,
26
- ISegmentParserParsedInitSegment,
27
- ISegmentParserParsedSegment,
26
+ ISegmentParserParsedInitChunk,
27
+ ISegmentParserParsedMediaChunk,
28
28
  ITextTrackSegmentData,
29
29
  } from "../types";
30
30
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
@@ -54,8 +54,8 @@ function parseISOBMFFEmbeddedTextTrack(
54
54
  isChunked : boolean,
55
55
  content : ISegmentContext,
56
56
  initTimescale : number | undefined
57
- ) : ISegmentParserParsedInitSegment<null> |
58
- ISegmentParserParsedSegment<ITextTrackSegmentData | null>
57
+ ) : ISegmentParserParsedInitChunk<null> |
58
+ ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>
59
59
  {
60
60
  const { period, segment } = content;
61
61
 
@@ -100,8 +100,8 @@ function parsePlainTextTrack(
100
100
  data : string | Uint8Array | ArrayBuffer,
101
101
  isChunked : boolean,
102
102
  content : ISegmentContext
103
- ) : ISegmentParserParsedInitSegment<null> |
104
- ISegmentParserParsedSegment<ITextTrackSegmentData | null>
103
+ ) : ISegmentParserParsedInitChunk<null> |
104
+ ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>
105
105
  {
106
106
  const { period, segment } = content;
107
107
  if (segment.isInit) {
@@ -141,8 +141,8 @@ export default function textTrackParser(
141
141
  isChunked : boolean; },
142
142
  content : ISegmentContext,
143
143
  initTimescale : number | undefined
144
- ) : ISegmentParserParsedInitSegment<null> |
145
- ISegmentParserParsedSegment<ITextTrackSegmentData | null>
144
+ ) : ISegmentParserParsedInitChunk<null> |
145
+ ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>
146
146
  {
147
147
  const { period, adaptation, representation, segment } = content;
148
148
  const { data, isChunked } = loadedSegment;
@@ -45,8 +45,8 @@ import {
45
45
  ISegmentLoaderResultChunkedComplete,
46
46
  ISegmentLoaderResultSegmentCreated,
47
47
  ISegmentLoaderResultSegmentLoaded,
48
- ISegmentParserParsedInitSegment,
49
- ISegmentParserParsedSegment,
48
+ ISegmentParserParsedInitChunk,
49
+ ISegmentParserParsedMediaChunk,
50
50
  ITextTrackSegmentData,
51
51
  ITransportOptions,
52
52
  ITransportPipelines,
@@ -207,7 +207,7 @@ export default function(options : ITransportOptions): ITransportPipelines {
207
207
  function offsetTimeInfos(
208
208
  contentOffset : number,
209
209
  contentEnd : number | undefined,
210
- segmentResponse : ISegmentParserParsedSegment<unknown>
210
+ segmentResponse : ISegmentParserParsedMediaChunk<unknown>
211
211
  ) : { chunkInfos : IChunkTimeInfo | null;
212
212
  chunkOffset : number;
213
213
  appendWindow : [ number | undefined, number | undefined ]; } {
@@ -263,8 +263,8 @@ export default function(options : ITransportOptions): ITransportPipelines {
263
263
  loadedSegment : { data : ILoadedAudioVideoSegmentFormat; isChunked : boolean },
264
264
  content : ISegmentContext,
265
265
  initTimescale : number | undefined
266
- ) : ISegmentParserParsedInitSegment<ArrayBuffer | Uint8Array | null> |
267
- ISegmentParserParsedSegment<ArrayBuffer | Uint8Array | null>
266
+ ) : ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> |
267
+ ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>
268
268
  {
269
269
  const { segment } = content;
270
270
  const { contentStart, contentEnd } = getMetaPlaylistPrivateInfos(segment);
@@ -300,8 +300,8 @@ export default function(options : ITransportOptions): ITransportPipelines {
300
300
  loadedSegment : { data : ILoadedAudioVideoSegmentFormat; isChunked : boolean },
301
301
  content : ISegmentContext,
302
302
  initTimescale : number | undefined
303
- ) : ISegmentParserParsedInitSegment<ArrayBuffer | Uint8Array | null> |
304
- ISegmentParserParsedSegment<ArrayBuffer | Uint8Array | null>
303
+ ) : ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> |
304
+ ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>
305
305
  {
306
306
  const { segment } = content;
307
307
  const { contentStart, contentEnd } = getMetaPlaylistPrivateInfos(segment);
@@ -337,8 +337,8 @@ export default function(options : ITransportOptions): ITransportPipelines {
337
337
  loadedSegment : { data : ILoadedTextSegmentFormat; isChunked : boolean },
338
338
  content : ISegmentContext,
339
339
  initTimescale : number | undefined
340
- ) : ISegmentParserParsedInitSegment<ITextTrackSegmentData | null> |
341
- ISegmentParserParsedSegment<ITextTrackSegmentData>
340
+ ) : ISegmentParserParsedInitChunk<ITextTrackSegmentData | null> |
341
+ ISegmentParserParsedMediaChunk<ITextTrackSegmentData>
342
342
  {
343
343
  const { segment } = content;
344
344
  const { contentStart, contentEnd } = getMetaPlaylistPrivateInfos(segment);
@@ -374,8 +374,8 @@ export default function(options : ITransportOptions): ITransportPipelines {
374
374
  loadedSegment : { data : ILoadedImageSegmentFormat; isChunked : boolean },
375
375
  content : ISegmentContext,
376
376
  initTimescale : number | undefined
377
- ) : ISegmentParserParsedInitSegment<IImageTrackSegmentData | null> |
378
- ISegmentParserParsedSegment<IImageTrackSegmentData>
377
+ ) : ISegmentParserParsedInitChunk<IImageTrackSegmentData | null> |
378
+ ISegmentParserParsedMediaChunk<IImageTrackSegmentData>
379
379
  {
380
380
  const { segment } = content;
381
381
  const { contentStart, contentEnd } = getMetaPlaylistPrivateInfos(segment);
@@ -111,7 +111,7 @@ export default function extractTimingsInfos(
111
111
  scaledSegmentTime: tfxdSegment.time };
112
112
  }
113
113
 
114
- if (isChunked) {
114
+ if (isChunked || !segment.complete) {
115
115
  return { nextSegments,
116
116
  chunkInfos: null,
117
117
  scaledSegmentTime: undefined };
@@ -45,8 +45,8 @@ import {
45
45
  ISegmentLoaderCallbacks,
46
46
  ISegmentLoaderResultSegmentCreated,
47
47
  ISegmentLoaderResultSegmentLoaded,
48
- ISegmentParserParsedInitSegment,
49
- ISegmentParserParsedSegment,
48
+ ISegmentParserParsedInitChunk,
49
+ ISegmentParserParsedMediaChunk,
50
50
  ITextTrackSegmentData,
51
51
  ITransportOptions,
52
52
  ITransportPipelines,
@@ -189,8 +189,8 @@ export default function(options : ITransportOptions) : ITransportPipelines {
189
189
  isChunked : boolean; },
190
190
  content : ISegmentContext,
191
191
  initTimescale : number | undefined
192
- ) : ISegmentParserParsedInitSegment< ArrayBuffer | Uint8Array | null> |
193
- ISegmentParserParsedSegment< ArrayBuffer | Uint8Array | null >
192
+ ) : ISegmentParserParsedInitChunk< ArrayBuffer | Uint8Array | null> |
193
+ ISegmentParserParsedMediaChunk< ArrayBuffer | Uint8Array | null >
194
194
  {
195
195
  const { segment, adaptation, manifest } = content;
196
196
  const { data, isChunked } = loadedSegment;
@@ -294,8 +294,8 @@ export default function(options : ITransportOptions) : ITransportPipelines {
294
294
  isChunked : boolean; },
295
295
  content : ISegmentContext,
296
296
  initTimescale : number | undefined
297
- ) : ISegmentParserParsedInitSegment< null > |
298
- ISegmentParserParsedSegment< ITextTrackSegmentData | null >
297
+ ) : ISegmentParserParsedInitChunk< null > |
298
+ ISegmentParserParsedMediaChunk< ITextTrackSegmentData | null >
299
299
  {
300
300
  const { manifest, adaptation, representation, segment } = content;
301
301
  const { language } = adaptation;
@@ -457,8 +457,8 @@ export default function(options : ITransportOptions) : ITransportPipelines {
457
457
  isChunked : boolean; },
458
458
  content : ISegmentContext,
459
459
  _initTimescale : number | undefined
460
- ) : ISegmentParserParsedInitSegment< null > |
461
- ISegmentParserParsedSegment< IImageTrackSegmentData | null >
460
+ ) : ISegmentParserParsedInitChunk< null > |
461
+ ISegmentParserParsedMediaChunk< IImageTrackSegmentData | null >
462
462
  {
463
463
  const { data, isChunked } = loadedSegment;
464
464
 
@@ -137,7 +137,7 @@ const generateSegmentLoader = ({
137
137
  break;
138
138
  }
139
139
  default:
140
- if (__DEV__) {
140
+ if (__ENVIRONMENT__.CURRENT_ENV === __ENVIRONMENT__.DEV as number) {
141
141
  assert(false, "responseData should have been set");
142
142
  }
143
143
  responseData = new Uint8Array(0);
@@ -190,7 +190,7 @@ const generateSegmentLoader = ({
190
190
  res({ resultType: "segment-loaded" as const,
191
191
  resultData: { responseData: _args.data,
192
192
  size: _args.size,
193
- duration: _args.duration } });
193
+ requestDuration: _args.duration } });
194
194
  }
195
195
 
196
196
  const dataU8 = _args.data instanceof Uint8Array ? _args.data :
@@ -199,7 +199,7 @@ const generateSegmentLoader = ({
199
199
  res({ resultType: "segment-loaded" as const,
200
200
  resultData: { responseData: dataU8,
201
201
  size: _args.size,
202
- duration: _args.duration } });
202
+ requestDuration: _args.duration } });
203
203
  };
204
204
 
205
205
  /**
@@ -232,7 +232,8 @@ export type ISegmentLoader<TLoadedFormat> = (
232
232
  ISegmentLoaderResultChunkedComplete>;
233
233
 
234
234
  /**
235
- * Segment parser function, allowing to parse a segment of any type.
235
+ * Segment parser function, allowing to parse a chunk (which may be a sub-part
236
+ * of a segment) of any type.
236
237
  *
237
238
  * This function will throw if it encounters any error it cannot recover from.
238
239
  */
@@ -268,16 +269,16 @@ export type ISegmentParser<
268
269
  * The parsed data.
269
270
  *
270
271
  * Can be of two types:
271
- * - `ISegmentParserParsedInitSegment`: When the parsed segment was an
272
+ * - `ISegmentParserParsedInitChunk`: When the parsed chunk was part of an
272
273
  * initialization segment.
273
274
  * Such segments only serve to initialize the decoder and do not contain
274
275
  * any decodable media data.
275
- * - `ISegmentParserParsedSegment`: When the parsed segment was a media
276
- * segment.
276
+ * - `ISegmentParserParsedMediaChunk`: When the parsed chunk was part of a
277
+ * media segment.
277
278
  * Such segments generally contain decodable media data.
278
279
  */
279
- ISegmentParserParsedInitSegment<TParsedSegmentDataFormat> |
280
- ISegmentParserParsedSegment<TParsedSegmentDataFormat>;
280
+ ISegmentParserParsedInitChunk<TParsedSegmentDataFormat> |
281
+ ISegmentParserParsedMediaChunk<TParsedSegmentDataFormat>;
281
282
 
282
283
  export interface IManifestParserOptions {
283
284
  /**
@@ -392,7 +393,10 @@ export interface IManifestParserRequestNeeded {
392
393
  export interface IChunkTimeInfo {
393
394
  /**
394
395
  * Difference between the latest and the earliest presentation time
395
- * available in that segment, in seconds.
396
+ * available in that chunk, in seconds.
397
+ *
398
+ * If multiple chunks are present in a single segment (e.g. low-latency CMAF
399
+ * chunks, this is only the duration of the current chunk).
396
400
  *
397
401
  * Either `undefined` or set to `0` for an initialization segment.
398
402
  */
@@ -586,6 +590,7 @@ export interface ISegmentLoaderCallbacks<T> {
586
590
  onNewChunk : (data : T) => void;
587
591
  }
588
592
 
593
+ /** Information related to a pending Segment request progressing. */
589
594
  export interface ISegmentLoadingProgressInformation {
590
595
  /** Time since the beginning of the request so far, in seconds. */
591
596
  duration : number;
@@ -632,7 +637,7 @@ export interface ISegmentLoaderResultSegmentCreated<T> {
632
637
  /** Data emitted in a `ISegmentLoaderResultChunkedComplete`. */
633
638
  export interface IChunkCompleteInformation {
634
639
  /** Duration the request took to be performed, in seconds. */
635
- duration : number | undefined;
640
+ requestDuration : number | undefined;
636
641
  /**
637
642
  * "Real" URL (post-redirection) at which the segment was loaded.
638
643
  *
@@ -682,8 +687,11 @@ export type ILoadedImageSegmentFormat = Uint8Array |
682
687
  ArrayBuffer |
683
688
  null;
684
689
 
685
- /** Result returned by a segment parser when it parsed an initialization segment. */
686
- export interface ISegmentParserParsedInitSegment<DataType> {
690
+ /**
691
+ * Result returned by a segment parser when it parsed a chunk from an init
692
+ * segment (which does not contain media data).
693
+ */
694
+ export interface ISegmentParserParsedInitChunk<DataType> {
687
695
  segmentType : "init";
688
696
  /**
689
697
  * Initialization segment that can be directly pushed to the corresponding
@@ -710,14 +718,20 @@ export interface ISegmentParserParsedInitSegment<DataType> {
710
718
  }
711
719
 
712
720
  /**
713
- * Result returned by a segment parser when it parsed a media (not an
714
- * initialization segment).
721
+ * Result returned by a segment parser when it parsed a chunk from a media
722
+ * segment (which contains media data, unlike an initialization segment).
715
723
  */
716
- export interface ISegmentParserParsedSegment<DataType> {
724
+ export interface ISegmentParserParsedMediaChunk<DataType> {
717
725
  segmentType : "media";
718
- /** Parsed chunk of data that can be decoded. */
726
+ /**
727
+ * Parsed chunk of data that can be decoded.
728
+ * `null` if no data was parsed.
729
+ */
719
730
  chunkData : DataType | null;
720
- /** Time information on this parsed chunk. */
731
+ /**
732
+ * Time information on this parsed chunk.
733
+ * `null` if unknown.
734
+ */
721
735
  chunkInfos : IChunkTimeInfo | null;
722
736
  /**
723
737
  * time offset, in seconds, to add to the absolute timed data defined in
@@ -743,7 +757,7 @@ export interface ISegmentParserParsedSegment<DataType> {
743
757
  * If set and not empty, then "events" have been encountered in this parsed
744
758
  * chunks.
745
759
  */
746
- inbandEvents? : IInbandEvent[]; // Inband events parsed from segment data
760
+ inbandEvents? : IInbandEvent[];
747
761
  /**
748
762
  * If set to `true`, then parsing this chunk revealed that the current
749
763
  * Manifest instance needs to be refreshed.
@@ -768,7 +782,7 @@ export interface IRequestedData<T> {
768
782
  /** The loaded response data. */
769
783
  responseData : T;
770
784
  /** Duration the request took to be performed, in seconds. */
771
- duration : number | undefined;
785
+ requestDuration : number | undefined;
772
786
  /**
773
787
  * "Real" URL (post-redirection) at which the data can be loaded.
774
788
  *
@@ -72,7 +72,7 @@ export default function callCustomManifestLoader(
72
72
 
73
73
  res({ responseData: _args.data,
74
74
  size: _args.size,
75
- duration: _args.duration,
75
+ requestDuration: _args.duration,
76
76
  url: _args.url,
77
77
  receivedTime, sendingTime });
78
78
  };
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import log from "../../log";
17
18
  import { ISegment } from "../../manifest";
18
19
  import {
19
20
  getDurationFromTrun,
@@ -50,7 +51,11 @@ export default function getISOBMFFTimingInfos(
50
51
  baseDecodeTime + (segment.timestampOffset * initTimescale) :
51
52
  baseDecodeTime;
52
53
  const trunDuration = getDurationFromTrun(buffer);
53
- if (isChunked) { // when chunked, no mean to know the duration for now
54
+ if (isChunked || !segment.complete) {
55
+ if (trunDuration === undefined) {
56
+ log.warn("DASH: Chunked segments should indicate a duration through their" +
57
+ " trun boxes");
58
+ }
54
59
  return { time: startTime / initTimescale,
55
60
  duration: trunDuration !== undefined ? trunDuration / initTimescale :
56
61
  undefined };
@@ -122,7 +122,7 @@ export function getISOBMFFEmbeddedTextTrackData(
122
122
  startTime = chunkInfos.time;
123
123
  if (chunkInfos.duration !== undefined) {
124
124
  endTime = startTime + chunkInfos.duration;
125
- } else if (!isChunked) {
125
+ } else if (!isChunked && segment.complete) {
126
126
  endTime = startTime + segment.duration;
127
127
  }
128
128
  }
@@ -162,7 +162,9 @@ export function getPlainTextTrackData(
162
162
  log.warn("Transport: Unavailable time data for current text track.");
163
163
  } else {
164
164
  start = segment.time;
165
- end = segment.time + segment.duration;
165
+ if (segment.complete) {
166
+ end = segment.time + segment.duration;
167
+ }
166
168
  }
167
169
 
168
170
  const type = getPlainTextTrackFormat(representation);
@@ -14,49 +14,66 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- // Webpack-defined globals
17
+ // Compile-time globals
18
18
  // Should be all replaced once the lib built.
19
19
 
20
20
  /* eslint-disable @typescript-eslint/naming-convention */
21
21
 
22
- declare const __DEV__: boolean;
23
- declare const __LOGGER_LEVEL__: string;
24
22
  declare const __FEATURES__ : {
25
- BIF_PARSER : boolean;
26
- DASH : boolean;
27
- DIRECTFILE : boolean;
28
- EME : boolean;
29
- HTML_SAMI : boolean;
30
- HTML_SRT : boolean;
31
- HTML_TTML : boolean;
32
- HTML_VTT : boolean;
33
- LOCAL_MANIFEST : boolean;
34
- METAPLAYLIST : boolean;
35
- NATIVE_SAMI : boolean;
36
- NATIVE_SRT : boolean;
37
- NATIVE_TTML : boolean;
38
- NATIVE_VTT : boolean;
39
- SMOOTH : boolean;
40
- };
41
- declare const __RELATIVE_PATH__ : {
42
- BIF_PARSER: string;
43
- DASH: string;
44
- DASH_JS_PARSER: string;
45
- DIRECTFILE: string;
46
- EME_MANAGER: string;
47
- HTML_SAMI: string;
48
- HTML_SRT: string;
49
- HTML_TEXT_BUFFER: string;
50
- HTML_TTML: string;
51
- HTML_VTT: string;
52
- IMAGE_BUFFER: string;
53
- LOCAL_MANIFEST : string;
54
- MEDIA_ELEMENT_TRACK_CHOICE_MANAGER: string;
55
- METAPLAYLIST: string;
56
- NATIVE_SAMI: string;
57
- NATIVE_SRT: string;
58
- NATIVE_TEXT_BUFFER: string;
59
- NATIVE_TTML: string;
60
- NATIVE_VTT: string;
61
- SMOOTH: string;
23
+ IS_ENABLED : number;
24
+ IS_DISABLED : number;
25
+
26
+ BIF_PARSER : number;
27
+ DASH : number;
28
+ DIRECTFILE : number;
29
+ EME : number;
30
+ HTML_SAMI : number;
31
+ HTML_SRT : number;
32
+ HTML_TTML : number;
33
+ HTML_VTT : number;
34
+ LOCAL_MANIFEST : number;
35
+ METAPLAYLIST : number;
36
+ NATIVE_SAMI : number;
37
+ NATIVE_SRT : number;
38
+ NATIVE_TTML : number;
39
+ NATIVE_VTT : number;
40
+ SMOOTH : number;
41
+ } | typeof FEATURES_ENUM;
42
+
43
+ declare const enum FEATURES_ENUM {
44
+ IS_DISABLED,
45
+ IS_ENABLED,
46
+
47
+ BIF_PARSER,
48
+ DASH,
49
+ DIRECTFILE,
50
+ EME,
51
+ HTML_SAMI,
52
+ HTML_SRT,
53
+ HTML_TTML,
54
+ HTML_VTT,
55
+ LOCAL_MANIFEST,
56
+ METAPLAYLIST,
57
+ NATIVE_SAMI,
58
+ NATIVE_SRT,
59
+ NATIVE_TTML,
60
+ NATIVE_VTT,
61
+ SMOOTH,
62
+ }
63
+
64
+ declare const __ENVIRONMENT__ : {
65
+ CURRENT_ENV : number;
66
+ DEV : number;
67
+ PRODUCTION : number;
68
+ } | typeof ENVIRONMENT_ENUM;
69
+
70
+ declare const enum ENVIRONMENT_ENUM {
71
+ CURRENT_ENV,
72
+ DEV,
73
+ PRODUCTION,
74
+ }
75
+
76
+ declare const __LOGGER_LEVEL__ : {
77
+ CURRENT_LEVEL : string;
62
78
  };
79
+
@@ -16,19 +16,17 @@
16
16
 
17
17
  import {
18
18
  concat as observableConcat,
19
+ concatMap,
19
20
  interval,
21
+ map,
20
22
  merge as observableMerge,
21
23
  Observable,
22
- of as observableOf,
23
24
  Subject,
24
- timer,
25
- } from "rxjs";
26
- import {
27
- concatMap,
28
- mapTo,
25
+ of as observableOf,
29
26
  take,
30
27
  tap,
31
- } from "rxjs/operators";
28
+ timer,
29
+ } from "rxjs";
32
30
  import concatMapLatest from "../concat_map_latest";
33
31
 
34
32
  describe("utils - concatMapLatest", () => {
@@ -85,7 +83,7 @@ describe("utils - concatMapLatest", () => {
85
83
  let lastCount: number|undefined;
86
84
 
87
85
  const counter$ : Observable<number> = observableOf(...innerValues).pipe(
88
- concatMap((v) => timer(5).pipe(mapTo(v)))
86
+ concatMap((v) => timer(5).pipe(map(() => v)))
89
87
  );
90
88
  counter$.pipe(
91
89
  concatMapLatest((i: number, count: number) => {
@@ -120,7 +118,7 @@ describe("utils - concatMapLatest", () => {
120
118
  tap(() => { itemEmittedCounter++; }),
121
119
  concatMapLatest((i: number, count: number) => {
122
120
  lastCount = count;
123
- return timer(230).pipe(mapTo(i));
121
+ return timer(230).pipe(map(() => i));
124
122
  })
125
123
  ).subscribe({
126
124
  next(result: number) {
@@ -14,12 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { timer } from "rxjs";
18
17
  import {
19
- mapTo,
18
+ map,
20
19
  share,
21
20
  startWith,
22
- } from "rxjs/operators";
21
+ timer,
22
+ } from "rxjs";
23
23
  import deferSubscriptions from "../defer_subscriptions";
24
24
 
25
25
  describe("utils - deferSubscriptions", () => {
@@ -27,7 +27,7 @@ describe("utils - deferSubscriptions", () => {
27
27
  it("should wait until all subscription in the current script are done before emitting", (done) => {
28
28
  /* eslint-enable max-len */
29
29
  let logs = "";
30
- const myObservableDeferred = timer(5).pipe(mapTo("A"),
30
+ const myObservableDeferred = timer(5).pipe(map(() => "A"),
31
31
  startWith("S"),
32
32
  deferSubscriptions(),
33
33
  share());
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { take } from "rxjs/operators";
17
+ import { take } from "rxjs";
18
18
  import log from "../../log";
19
19
  import EventEmitter, {
20
20
  fromEvent,