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
@@ -68,7 +68,7 @@ function getHDRInformation(_a) {
68
68
  * @returns {Array.<Object>}
69
69
  */
70
70
  export default function parseRepresentations(representationsIR, adaptation, adaptationInfos) {
71
- var _a, _b;
71
+ var _a, _b, _c, _d;
72
72
  var parsedRepresentations = [];
73
73
  var _loop_1 = function (representation) {
74
74
  // Compute Representation ID
@@ -76,16 +76,16 @@ export default function parseRepresentations(representationsIR, adaptation, adap
76
76
  representation.attributes.id :
77
77
  (String(representation.attributes.bitrate) +
78
78
  (representation.attributes.height != null ?
79
- ("-" + representation.attributes.height) :
79
+ ("-".concat(representation.attributes.height)) :
80
80
  "") +
81
81
  (representation.attributes.width != null ?
82
- ("-" + representation.attributes.width) :
82
+ ("-".concat(representation.attributes.width)) :
83
83
  "") +
84
84
  (representation.attributes.mimeType != null ?
85
- ("-" + representation.attributes.mimeType) :
85
+ ("-".concat(representation.attributes.mimeType)) :
86
86
  "") +
87
87
  (representation.attributes.codecs != null ?
88
- ("-" + representation.attributes.codecs) :
88
+ ("-".concat(representation.attributes.codecs)) :
89
89
  ""));
90
90
  // Avoid duplicate IDs
91
91
  while (parsedRepresentations.some(function (r) { return r.id === representationID; })) {
@@ -95,7 +95,10 @@ export default function parseRepresentations(representationsIR, adaptation, adap
95
95
  var unsafelyBaseOnPreviousRepresentation = (_b = (_a = adaptationInfos
96
96
  .unsafelyBaseOnPreviousAdaptation) === null || _a === void 0 ? void 0 : _a.getRepresentation(representationID)) !== null && _b !== void 0 ? _b : null;
97
97
  var inbandEventStreams = combineInbandEventStreams(representation, adaptation);
98
- var representationInfos = objectAssign({}, adaptationInfos, { unsafelyBaseOnPreviousRepresentation: unsafelyBaseOnPreviousRepresentation, adaptation: adaptation, inbandEventStreams: inbandEventStreams });
98
+ var availabilityTimeComplete = (_c = representation.attributes.availabilityTimeComplete) !== null && _c !== void 0 ? _c : adaptationInfos.availabilityTimeComplete;
99
+ var availabilityTimeOffset = ((_d = representation.attributes.availabilityTimeOffset) !== null && _d !== void 0 ? _d : 0) +
100
+ adaptationInfos.availabilityTimeOffset;
101
+ var representationInfos = objectAssign({}, adaptationInfos, { availabilityTimeOffset: availabilityTimeOffset, availabilityTimeComplete: availabilityTimeComplete, unsafelyBaseOnPreviousRepresentation: unsafelyBaseOnPreviousRepresentation, adaptation: adaptation, inbandEventStreams: inbandEventStreams });
99
102
  var representationIndex = parseRepresentationIndex(representation, representationInfos);
100
103
  // Find bitrate
101
104
  var representationBitrate = void 0;
@@ -154,8 +157,14 @@ export default function parseRepresentations(representationsIR, adaptation, adap
154
157
  parsedRepresentation.width =
155
158
  adaptation.attributes.width;
156
159
  }
157
- if (adaptation.children.contentProtections != null) {
158
- var contentProtections = adaptation.children.contentProtections
160
+ var contentProtectionsIr = adaptation.children.contentProtections !== undefined ?
161
+ adaptation.children.contentProtections :
162
+ [];
163
+ if (representation.children.contentProtections !== undefined) {
164
+ contentProtectionsIr.push.apply(contentProtectionsIr, representation.children.contentProtections);
165
+ }
166
+ if (contentProtectionsIr.length > 0) {
167
+ var contentProtections = contentProtectionsIr
159
168
  .reduce(function (acc, cp) {
160
169
  var _a;
161
170
  var systemId;
@@ -14,9 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { IBaseUrlIntermediateRepresentation } from "../node_parser_types";
17
+ export interface IResolvedBaseUrl {
18
+ url: string;
19
+ availabilityTimeOffset: number;
20
+ availabilityTimeComplete: boolean;
21
+ }
17
22
  /**
18
23
  * @param {Array.<string>} currentBaseURLs
19
- * @param {Array.<Object>} newBaseURLs
24
+ * @param {Array.<Object>} newBaseUrlsIR
20
25
  * @returns {Array.<string>}
21
26
  */
22
- export default function resolveBaseURLs(currentBaseURLs: string[], newBaseURLs: IBaseUrlIntermediateRepresentation[]): string[];
27
+ export default function resolveBaseURLs(currentBaseURLs: IResolvedBaseUrl[], newBaseUrlsIR: IBaseUrlIntermediateRepresentation[]): IResolvedBaseUrl[];
@@ -13,35 +13,36 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import arrayIncludes from "../../../../utils/array_includes";
17
16
  import resolveURL from "../../../../utils/resolve_url";
18
17
  /**
19
18
  * @param {Array.<string>} currentBaseURLs
20
- * @param {Array.<Object>} newBaseURLs
19
+ * @param {Array.<Object>} newBaseUrlsIR
21
20
  * @returns {Array.<string>}
22
21
  */
23
- export default function resolveBaseURLs(currentBaseURLs, newBaseURLs) {
24
- var result = [];
25
- if (newBaseURLs.length === 0) {
22
+ export default function resolveBaseURLs(currentBaseURLs, newBaseUrlsIR) {
23
+ if (newBaseUrlsIR.length === 0) {
26
24
  return currentBaseURLs;
27
25
  }
28
- else if (currentBaseURLs.length === 0) {
29
- for (var i = 0; i < newBaseURLs.length; i++) {
30
- if (!arrayIncludes(result, newBaseURLs[i].value)) {
31
- result.push(newBaseURLs[i].value);
32
- }
33
- }
34
- return result;
26
+ var newBaseUrls = newBaseUrlsIR.map(function (ir) {
27
+ var _a, _b;
28
+ return { url: ir.value,
29
+ availabilityTimeOffset: (_a = ir.attributes.availabilityTimeOffset) !== null && _a !== void 0 ? _a : 0,
30
+ availabilityTimeComplete: (_b = ir.attributes.availabilityTimeComplete) !== null && _b !== void 0 ? _b : true };
31
+ });
32
+ if (currentBaseURLs.length === 0) {
33
+ return newBaseUrls;
35
34
  }
36
- else {
37
- for (var i = 0; i < currentBaseURLs.length; i++) {
38
- var rootURL = currentBaseURLs[i];
39
- for (var j = 0; j < newBaseURLs.length; j++) {
40
- var newURL = resolveURL(rootURL, newBaseURLs[j].value);
41
- if (!arrayIncludes(result, newURL)) {
42
- result.push(newURL);
43
- }
44
- }
35
+ var result = [];
36
+ for (var i = 0; i < currentBaseURLs.length; i++) {
37
+ var curBaseUrl = currentBaseURLs[i];
38
+ for (var j = 0; j < newBaseUrls.length; j++) {
39
+ var newBaseUrl = newBaseUrls[j];
40
+ var newUrl = resolveURL(curBaseUrl.url, newBaseUrl.url);
41
+ var newAvailabilityTimeOffset = curBaseUrl.availabilityTimeOffset +
42
+ newBaseUrl.availabilityTimeOffset;
43
+ result.push({ url: newUrl,
44
+ availabilityTimeOffset: newAvailabilityTimeOffset,
45
+ availabilityTimeComplete: newBaseUrl.availabilityTimeComplete });
45
46
  }
46
47
  }
47
48
  return result;
@@ -269,6 +269,16 @@ function parseAdaptationSetAttributes(root) {
269
269
  parser: parseMPDInteger,
270
270
  dashName: "width" });
271
271
  break;
272
+ case "availabilityTimeOffset":
273
+ parseValue(attribute.value, { asKey: "availabilityTimeOffset",
274
+ parser: parseMPDFloat,
275
+ dashName: "availabilityTimeOffset" });
276
+ break;
277
+ case "availabilityTimeComplete":
278
+ parseValue(attribute.value, { asKey: "availabilityTimeComplete",
279
+ parser: parseBoolean,
280
+ dashName: "availabilityTimeComplete" });
281
+ break;
272
282
  }
273
283
  }
274
284
  return [parsedAdaptation, warnings];
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { parseMPDInteger, ValueParser, } from "./utils";
16
+ import { parseBoolean, parseMPDFloat, ValueParser, } from "./utils";
17
17
  /**
18
18
  * Parse an BaseURL element into an BaseURL intermediate
19
19
  * representation.
@@ -32,14 +32,14 @@ export default function parseBaseURL(root) {
32
32
  var attribute = root.attributes[i];
33
33
  switch (attribute.name) {
34
34
  case "availabilityTimeOffset":
35
- if (attribute.value === "INF") {
36
- attributes.availabilityTimeOffset = Infinity;
37
- }
38
- else {
39
- parseValue(attribute.value, { asKey: "availabilityTimeOffset",
40
- parser: parseMPDInteger,
41
- dashName: "availabilityTimeOffset" });
42
- }
35
+ parseValue(attribute.value, { asKey: "availabilityTimeOffset",
36
+ parser: parseMPDFloat,
37
+ dashName: "availabilityTimeOffset" });
38
+ break;
39
+ case "availabilityTimeComplete":
40
+ parseValue(attribute.value, { asKey: "availabilityTimeComplete",
41
+ parser: parseBoolean,
42
+ dashName: "availabilityTimeComplete" });
43
43
  break;
44
44
  }
45
45
  }
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import parseBaseURL from "./BaseURL";
17
+ import parseContentProtection from "./ContentProtection";
17
18
  import parseSegmentBase from "./SegmentBase";
18
19
  import parseSegmentList from "./SegmentList";
19
20
  import parseSegmentTemplate from "./SegmentTemplate";
@@ -26,6 +27,7 @@ function parseRepresentationChildren(representationChildren) {
26
27
  var children = {
27
28
  baseURLs: [],
28
29
  };
30
+ var contentProtections = [];
29
31
  var warnings = [];
30
32
  for (var i = 0; i < representationChildren.length; i++) {
31
33
  if (representationChildren[i].nodeType === Node.ELEMENT_NODE) {
@@ -61,9 +63,21 @@ function parseRepresentationChildren(representationChildren) {
61
63
  warnings = warnings.concat(segmentTemplateWarnings);
62
64
  children.segmentTemplate = segmentTemplate;
63
65
  break;
66
+ case "ContentProtection":
67
+ var _e = parseContentProtection(currentElement), contentProtection = _e[0], contentProtectionWarnings = _e[1];
68
+ if (contentProtectionWarnings.length > 0) {
69
+ warnings = warnings.concat(contentProtectionWarnings);
70
+ }
71
+ if (contentProtection !== undefined) {
72
+ contentProtections.push(contentProtection);
73
+ }
74
+ break;
64
75
  }
65
76
  }
66
77
  }
78
+ if (contentProtections.length > 0) {
79
+ children.contentProtections = contentProtections;
80
+ }
67
81
  return [children, warnings];
68
82
  }
69
83
  /**
@@ -133,6 +147,16 @@ function parseRepresentationAttributes(representationElement) {
133
147
  parser: parseMPDInteger,
134
148
  dashName: "width" });
135
149
  break;
150
+ case "availabilityTimeOffset":
151
+ parseValue(attr.value, { asKey: "availabilityTimeOffset",
152
+ parser: parseMPDFloat,
153
+ dashName: "availabilityTimeOffset" });
154
+ break;
155
+ case "availabilityTimeComplete":
156
+ parseValue(attr.value, { asKey: "availabilityTimeComplete",
157
+ parser: parseBoolean,
158
+ dashName: "availabilityTimeComplete" });
159
+ break;
136
160
  }
137
161
  }
138
162
  if (attributes.bitrate === undefined) {
@@ -16,7 +16,7 @@
16
16
  import objectAssign from "../../../../../utils/object_assign";
17
17
  import parseSegmentBase from "./SegmentBase";
18
18
  import createSegmentTimelineParser from "./SegmentTimeline";
19
- import { parseBoolean, parseMPDInteger, ValueParser, } from "./utils";
19
+ import { parseBoolean, parseMPDFloat, ValueParser, } from "./utils";
20
20
  /**
21
21
  * Parse a SegmentTemplate element into a SegmentTemplate intermediate
22
22
  * representation.
@@ -50,13 +50,15 @@ export default function parseSegmentTemplate(root) {
50
50
  ret.index = attribute.value;
51
51
  break;
52
52
  case "availabilityTimeOffset":
53
- if (attribute.value === "INF") {
54
- ret.availabilityTimeOffset = Infinity;
55
- }
56
53
  parseValue(attribute.value, { asKey: "availabilityTimeOffset",
57
- parser: parseMPDInteger,
54
+ parser: parseMPDFloat,
58
55
  dashName: "availabilityTimeOffset" });
59
56
  break;
57
+ case "availabilityTimeComplete":
58
+ parseValue(attribute.value, { asKey: "availabilityTimeComplete",
59
+ parser: parseBoolean,
60
+ dashName: "availabilityTimeComplete" });
61
+ break;
60
62
  case "media":
61
63
  ret.media = attribute.value;
62
64
  break;
@@ -57,7 +57,7 @@ function parseBoolean(val, displayName) {
57
57
  if (val === "false") {
58
58
  return [false, null];
59
59
  }
60
- var error = new MPDError("`" + displayName + "` property is not a boolean value but \"" + val + "\"");
60
+ var error = new MPDError("`".concat(displayName, "` property is not a boolean value but \"").concat(val, "\""));
61
61
  return [false, error];
62
62
  }
63
63
  /**
@@ -76,7 +76,7 @@ function parseBoolean(val, displayName) {
76
76
  function parseMPDInteger(val, displayName) {
77
77
  var toInt = parseInt(val, 10);
78
78
  if (isNaN(toInt)) {
79
- var error = new MPDError("`" + displayName + "` property is not an integer value but \"" + val + "\"");
79
+ var error = new MPDError("`".concat(displayName, "` property is not an integer value but \"").concat(val, "\""));
80
80
  return [null, error];
81
81
  }
82
82
  return [toInt, null];
@@ -95,9 +95,12 @@ function parseMPDInteger(val, displayName) {
95
95
  * @returns {Array.<number | Error | null>}
96
96
  */
97
97
  function parseMPDFloat(val, displayName) {
98
+ if (val === "INF") {
99
+ return [Infinity, null];
100
+ }
98
101
  var toInt = parseFloat(val);
99
102
  if (isNaN(toInt)) {
100
- var error = new MPDError("`" + displayName + "` property is not an integer value but \"" + val + "\"");
103
+ var error = new MPDError("`".concat(displayName, "` property is not an integer value but \"").concat(val, "\""));
101
104
  return [null, error];
102
105
  }
103
106
  return [toInt, null];
@@ -124,7 +127,7 @@ function parseIntOrBoolean(val, displayName) {
124
127
  }
125
128
  var toInt = parseInt(val, 10);
126
129
  if (isNaN(toInt)) {
127
- var error = new MPDError("`" + displayName + "` property is not a boolean nor an integer but \"" + val + "\"");
130
+ var error = new MPDError("`".concat(displayName, "` property is not a boolean nor an integer but \"").concat(val, "\""));
128
131
  return [null, error];
129
132
  }
130
133
  return [toInt, null];
@@ -145,7 +148,7 @@ function parseIntOrBoolean(val, displayName) {
145
148
  function parseDateTime(val, displayName) {
146
149
  var parsed = Date.parse(val);
147
150
  if (isNaN(parsed)) {
148
- var error = new MPDError("`" + displayName + "` is in an invalid date format: \"" + val + "\"");
151
+ var error = new MPDError("`".concat(displayName, "` is in an invalid date format: \"").concat(val, "\""));
149
152
  return [null, error];
150
153
  }
151
154
  return [new Date(Date.parse(val)).getTime() / 1000, null];
@@ -165,12 +168,12 @@ function parseDateTime(val, displayName) {
165
168
  */
166
169
  function parseDuration(val, displayName) {
167
170
  if (!isNonEmptyString(val)) {
168
- var error = new MPDError("`" + displayName + "` property is empty");
171
+ var error = new MPDError("`".concat(displayName, "` property is empty"));
169
172
  return [0, error];
170
173
  }
171
174
  var match = iso8601Duration.exec(val);
172
175
  if (match === null) {
173
- var error = new MPDError("`" + displayName + "` property has an unrecognized format \"" + val + "\"");
176
+ var error = new MPDError("`".concat(displayName, "` property has an unrecognized format \"").concat(val, "\""));
174
177
  return [null, error];
175
178
  }
176
179
  var duration = (parseFloat(isNonEmptyString(match[2]) ? match[2] :
@@ -203,7 +206,7 @@ function parseDuration(val, displayName) {
203
206
  function parseByteRange(val, displayName) {
204
207
  var match = rangeRe.exec(val);
205
208
  if (match === null) {
206
- var error = new MPDError("`" + displayName + "` property has an unrecognized format \"" + val + "\"");
209
+ var error = new MPDError("`".concat(displayName, "` property has an unrecognized format \"").concat(val, "\""));
207
210
  return [null, error];
208
211
  }
209
212
  else {
@@ -228,7 +231,7 @@ function parseBase64(val, displayName) {
228
231
  return [base64ToBytes(val), null];
229
232
  }
230
233
  catch (_) {
231
- var error = new MPDError("`" + displayName + "` is not a valid base64 string: \"" + val + "\"");
234
+ var error = new MPDError("`".concat(displayName, "` is not a valid base64 string: \"").concat(val, "\""));
232
235
  return [null, error];
233
236
  }
234
237
  }
@@ -68,8 +68,11 @@ export default function parseFromDocument(document, args) {
68
68
  continue: function (loadedXlinks) {
69
69
  var resourceInfos = [];
70
70
  for (var i = 0; i < loadedXlinks.length; i++) {
71
- var _a = loadedXlinks[i], xlinkData = _a.responseData, receivedTime = _a.receivedTime, sendingTime = _a.sendingTime, url = _a.url;
72
- var wrappedData = "<root>" + xlinkData + "</root>";
71
+ var _a = loadedXlinks[i], xlinkResp = _a.responseData, receivedTime = _a.receivedTime, sendingTime = _a.sendingTime, url = _a.url;
72
+ if (!xlinkResp.success) {
73
+ throw xlinkResp.error;
74
+ }
75
+ var wrappedData = "<root>" + xlinkResp.data + "</root>";
73
76
  var dataAsXML = new DOMParser().parseFromString(wrappedData, "text/xml");
74
77
  if (dataAsXML == null || dataAsXML.children.length === 0) {
75
78
  throw new Error("DASH parser: Invalid external ressources");
@@ -153,6 +153,8 @@ export interface IPeriodAttributes {
153
153
  */
154
154
  duration?: number;
155
155
  bitstreamSwitching?: boolean;
156
+ availabilityTimeComplete?: boolean;
157
+ availabilityTimeOffset?: number;
156
158
  xlinkHref?: string;
157
159
  xlinkActuate?: string;
158
160
  /**
@@ -215,6 +217,8 @@ export interface IAdaptationSetAttributes {
215
217
  segmentProfiles?: string;
216
218
  subsegmentAlignment?: number | boolean;
217
219
  width?: number;
220
+ availabilityTimeComplete?: boolean;
221
+ availabilityTimeOffset?: number;
218
222
  }
219
223
  export interface IRepresentationIntermediateRepresentation {
220
224
  children: IRepresentationChildren;
@@ -222,6 +226,7 @@ export interface IRepresentationIntermediateRepresentation {
222
226
  }
223
227
  export interface IRepresentationChildren {
224
228
  baseURLs: IBaseUrlIntermediateRepresentation[];
229
+ contentProtections?: IContentProtectionIntermediateRepresentation[];
225
230
  inbandEventStreams?: IScheme[];
226
231
  segmentBase?: ISegmentBaseIntermediateRepresentation;
227
232
  segmentList?: ISegmentListIntermediateRepresentation;
@@ -242,6 +247,8 @@ export interface IRepresentationAttributes {
242
247
  qualityRanking?: number;
243
248
  segmentProfiles?: string;
244
249
  width?: number;
250
+ availabilityTimeComplete?: boolean;
251
+ availabilityTimeOffset?: number;
245
252
  }
246
253
  export interface ISegmentBaseIntermediateRepresentation {
247
254
  availabilityTimeComplete?: boolean;
@@ -332,6 +339,7 @@ export interface IBaseUrlIntermediateRepresentation {
332
339
  attributes: {
333
340
  /** availabilityTimeOffset attribute assiociated to that BaseURL node. */
334
341
  availabilityTimeOffset?: number;
342
+ availabilityTimeComplete?: boolean;
335
343
  };
336
344
  }
337
345
  /** Intermediate representation for a Node following a "scheme" format. */
@@ -50,6 +50,13 @@ export interface IDashParserNeedsResources<T extends string | ArrayBuffer> {
50
50
  continue: (loadedResources: Array<ILoadedResource<T>>) => IDashParserResponse<string> | IDashParserResponse<ArrayBuffer>;
51
51
  };
52
52
  }
53
+ export declare type IResponseData<T> = {
54
+ success: true;
55
+ data: T;
56
+ } | {
57
+ success: false;
58
+ error: Error;
59
+ };
53
60
  /** Format a loaded resource should take. */
54
61
  export interface ILoadedResource<T extends string | ArrayBuffer> {
55
62
  /**
@@ -69,6 +76,8 @@ export interface ILoadedResource<T extends string | ArrayBuffer> {
69
76
  * `undefined` if unknown or not applicable.
70
77
  */
71
78
  receivedTime?: number;
72
- /** The loaded resource itself, under the right format. */
73
- responseData: T;
79
+ /** The loaded resource itself, under the right format.
80
+ * Or an error, when fetching ressources.
81
+ */
82
+ responseData: IResponseData<T>;
74
83
  }
@@ -190,7 +190,7 @@ var DashWasmParser = /** @class */ (function () {
190
190
  memoryBase: 0,
191
191
  tableBase: 0,
192
192
  memory: new WebAssembly.Memory({ initial: 10 }),
193
- table: new WebAssembly.Table({ initial: 2, element: "anyfunc" }),
193
+ table: new WebAssembly.Table({ initial: 1, element: "anyfunc" }),
194
194
  onTagOpen: onTagOpen,
195
195
  onCustomEvent: onCustomEvent,
196
196
  onAttribute: onAttribute,
@@ -309,7 +309,7 @@ var DashWasmParser = /** @class */ (function () {
309
309
  this._warnings = [];
310
310
  try {
311
311
  // TODO better type this
312
- this._instance.instance.exports.parse_xlink();
312
+ this._instance.instance.exports.parse();
313
313
  }
314
314
  catch (err) {
315
315
  this._parsersStack.reset();
@@ -353,8 +353,11 @@ var DashWasmParser = /** @class */ (function () {
353
353
  var continueParsingMPD = function (loadedXlinks) {
354
354
  var resourceInfos = [];
355
355
  for (var i = 0; i < loadedXlinks.length; i++) {
356
- var _a = loadedXlinks[i], xlinkData = _a.responseData, receivedTime = _a.receivedTime, sendingTime = _a.sendingTime, url = _a.url;
357
- var _b = _this._parseXlink(xlinkData), periodsIr = _b[0], periodsIRWarnings = _b[1];
356
+ var _a = loadedXlinks[i], xlinkResp = _a.responseData, receivedTime = _a.receivedTime, sendingTime = _a.sendingTime, url = _a.url;
357
+ if (!xlinkResp.success) {
358
+ throw xlinkResp.error;
359
+ }
360
+ var _b = _this._parseXlink(xlinkResp.data), periodsIr = _b[0], periodsIRWarnings = _b[1];
358
361
  resourceInfos.push({ url: url, receivedTime: receivedTime, sendingTime: sendingTime, parsed: periodsIr,
359
362
  warnings: periodsIRWarnings });
360
363
  }
@@ -141,6 +141,11 @@ export function generateAdaptationSetChildrenParser(adaptationSetChildren, linea
141
141
  generateSegmentTemplateAttrParser(stObj, linearMemory));
142
142
  break;
143
143
  }
144
+ default:
145
+ // Allows to make sure we're not mistakenly closing a re-opened
146
+ // tag.
147
+ parsersStack.pushParsers(nodeId, noop, noop);
148
+ break;
144
149
  }
145
150
  };
146
151
  }
@@ -250,6 +255,12 @@ export function generateAdaptationSetAttrParser(adaptationAttrs, linearMemory) {
250
255
  case 10 /* MaxSAPPeriod */:
251
256
  adaptationAttrs.maximumSAPPeriod = dataView.getFloat64(ptr, true);
252
257
  break;
258
+ case 43 /* AvailabilityTimeOffset */:
259
+ adaptationAttrs.availabilityTimeOffset = dataView.getFloat64(ptr, true);
260
+ break;
261
+ case 22 /* AvailabilityTimeComplete */:
262
+ adaptationAttrs.availabilityTimeComplete = dataView.getUint8(0) === 0;
263
+ break;
253
264
  // TODO
254
265
  // case AttributeName.StartsWithSap:
255
266
  // adaptationAttrs.startsWithSap = dataView.getFloat64(ptr, true);
@@ -28,10 +28,16 @@ export function generateBaseUrlAttrParser(baseUrlAttrs, linearMemory) {
28
28
  case 64 /* Text */:
29
29
  baseUrlAttrs.value = parseString(textDecoder, linearMemory.buffer, ptr, len);
30
30
  break;
31
- case 43 /* AvailabilityTimeOffset */:
31
+ case 43 /* AvailabilityTimeOffset */: {
32
32
  dataView = new DataView(linearMemory.buffer);
33
33
  baseUrlAttrs.attributes.availabilityTimeOffset = dataView.getFloat64(ptr, true);
34
34
  break;
35
+ }
36
+ case 22 /* AvailabilityTimeComplete */: {
37
+ baseUrlAttrs.attributes.availabilityTimeComplete =
38
+ new DataView(linearMemory.buffer).getUint8(0) === 0;
39
+ break;
40
+ }
35
41
  }
36
42
  };
37
43
  }
@@ -33,6 +33,11 @@ export function generateEventStreamChildrenParser(childrenObj, linearMemory, par
33
33
  parsersStack.pushParsers(nodeId, noop, attrParser);
34
34
  break;
35
35
  }
36
+ default:
37
+ // Allows to make sure we're not mistakenly closing a re-opened
38
+ // tag.
39
+ parsersStack.pushParsers(nodeId, noop, noop);
40
+ break;
36
41
  }
37
42
  };
38
43
  }
@@ -56,6 +56,11 @@ export function generateMPDChildrenParser(mpdChildren, linearMemory, parsersStac
56
56
  parsersStack.pushParsers(nodeId, childrenParser, attributeParser);
57
57
  break;
58
58
  }
59
+ default:
60
+ // Allows to make sure we're not mistakenly closing a re-opened
61
+ // tag.
62
+ parsersStack.pushParsers(nodeId, noop, noop);
63
+ break;
59
64
  }
60
65
  };
61
66
  }
@@ -63,6 +63,11 @@ export function generatePeriodChildrenParser(periodChildren, linearMemory, parse
63
63
  generateSegmentTemplateAttrParser(stObj, linearMemory));
64
64
  break;
65
65
  }
66
+ default:
67
+ // Allows to make sure we're not mistakenly closing a re-opened
68
+ // tag.
69
+ parsersStack.pushParsers(nodeId, noop, noop);
70
+ break;
66
71
  }
67
72
  };
68
73
  }
@@ -94,6 +99,14 @@ export function generatePeriodAttrParser(periodAttrs, linearMemory) {
94
99
  case 47 /* XLinkActuate */:
95
100
  periodAttrs.xlinkActuate = parseString(textDecoder, linearMemory.buffer, ptr, len);
96
101
  break;
102
+ case 43 /* AvailabilityTimeOffset */:
103
+ periodAttrs.availabilityTimeOffset =
104
+ new DataView(linearMemory.buffer).getFloat64(ptr, true);
105
+ break;
106
+ case 22 /* AvailabilityTimeComplete */:
107
+ periodAttrs.availabilityTimeComplete =
108
+ new DataView(linearMemory.buffer).getUint8(0) === 0;
109
+ break;
97
110
  case 70 /* Namespace */:
98
111
  var xmlNs = { key: "", value: "" };
99
112
  var dataView = new DataView(linearMemory.buffer);
@@ -16,6 +16,7 @@
16
16
  import noop from "../../../../../../utils/noop";
17
17
  import { parseString } from "../utils";
18
18
  import { generateBaseUrlAttrParser } from "./BaseURL";
19
+ import { generateContentProtectionAttrParser } from "./ContentProtection";
19
20
  import { generateSchemeAttrParser } from "./Scheme";
20
21
  import { generateSegmentBaseAttrParser } from "./SegmentBase";
21
22
  import { generateSegmentListChildrenParser } from "./SegmentList";
@@ -36,6 +37,17 @@ export function generateRepresentationChildrenParser(childrenObj, linearMemory,
36
37
  parsersStack.pushParsers(nodeId, noop, generateBaseUrlAttrParser(baseUrl, linearMemory));
37
38
  break;
38
39
  }
40
+ case 10 /* ContentProtection */: {
41
+ var contentProtection = { children: { cencPssh: [] },
42
+ attributes: {} };
43
+ if (childrenObj.contentProtections === undefined) {
44
+ childrenObj.contentProtections = [];
45
+ }
46
+ childrenObj.contentProtections.push(contentProtection);
47
+ var contentProtAttrParser = generateContentProtectionAttrParser(contentProtection, linearMemory);
48
+ parsersStack.pushParsers(nodeId, noop, contentProtAttrParser);
49
+ break;
50
+ }
39
51
  case 19 /* InbandEventStream */: {
40
52
  var inbandEvent = {};
41
53
  if (childrenObj.inbandEventStreams === undefined) {
@@ -68,6 +80,11 @@ export function generateRepresentationChildrenParser(childrenObj, linearMemory,
68
80
  generateSegmentTemplateAttrParser(stObj, linearMemory));
69
81
  break;
70
82
  }
83
+ default:
84
+ // Allows to make sure we're not mistakenly closing a re-opened
85
+ // tag.
86
+ parsersStack.pushParsers(nodeId, noop, noop);
87
+ break;
71
88
  }
72
89
  };
73
90
  }
@@ -130,6 +147,12 @@ export function generateRepresentationAttrParser(representationAttrs, linearMemo
130
147
  representationAttrs.segmentProfiles =
131
148
  parseString(textDecoder, linearMemory.buffer, ptr, len);
132
149
  break;
150
+ case 43 /* AvailabilityTimeOffset */:
151
+ representationAttrs.availabilityTimeOffset = dataView.getFloat64(ptr, true);
152
+ break;
153
+ case 22 /* AvailabilityTimeComplete */:
154
+ representationAttrs.availabilityTimeComplete = dataView.getUint8(0) === 0;
155
+ break;
133
156
  }
134
157
  };
135
158
  }
@@ -35,6 +35,11 @@ export function generateSegmentListChildrenParser(segListChildren, linearMemory,
35
35
  parsersStack.pushParsers(nodeId, noop, attrParser);
36
36
  break;
37
37
  }
38
+ default:
39
+ // Allows to make sure we're not mistakenly closing a re-opened
40
+ // tag.
41
+ parsersStack.pushParsers(nodeId, noop, noop);
42
+ break;
38
43
  }
39
44
  };
40
45
  }