rx-player 3.26.2 → 3.27.0-dev.20220317

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 (500) hide show
  1. package/.github/workflows/perfs.yml +22 -0
  2. package/CHANGELOG.md +33 -1
  3. package/FILES.md +5 -4
  4. package/VERSION +1 -1
  5. package/dist/_esm5.processed/compat/browser_detection.d.ts +4 -2
  6. package/dist/_esm5.processed/compat/browser_detection.js +4 -2
  7. package/dist/_esm5.processed/compat/eme/close_session.d.ts +11 -5
  8. package/dist/_esm5.processed/compat/eme/close_session.js +144 -36
  9. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -5
  10. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +27 -24
  11. package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +53 -34
  12. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +43 -41
  13. package/dist/_esm5.processed/compat/eme/generate_key_request.d.ts +2 -3
  14. package/dist/_esm5.processed/compat/eme/generate_key_request.js +22 -26
  15. package/dist/_esm5.processed/compat/eme/load_session.d.ts +1 -2
  16. package/dist/_esm5.processed/compat/eme/load_session.js +68 -17
  17. package/dist/_esm5.processed/compat/event_listeners.js +2 -1
  18. package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +2 -2
  19. package/dist/_esm5.processed/config.d.ts +166 -1080
  20. package/dist/_esm5.processed/config.js +17 -1119
  21. package/dist/_esm5.processed/core/abr/bandwidth_estimator.js +4 -1
  22. package/dist/_esm5.processed/core/abr/buffer_based_chooser.d.ts +28 -6
  23. package/dist/_esm5.processed/core/abr/buffer_based_chooser.js +63 -12
  24. package/dist/_esm5.processed/core/abr/network_analyzer.d.ts +1 -1
  25. package/dist/_esm5.processed/core/abr/network_analyzer.js +2 -1
  26. package/dist/_esm5.processed/core/abr/pending_requests_store.js +3 -5
  27. package/dist/_esm5.processed/core/abr/representation_estimator.d.ts +1 -1
  28. package/dist/_esm5.processed/core/abr/representation_estimator.js +2 -2
  29. package/dist/_esm5.processed/core/api/get_player_state.js +1 -1
  30. package/dist/_esm5.processed/core/api/index.d.ts +2 -1
  31. package/dist/_esm5.processed/core/api/media_element_track_choice_manager.d.ts +6 -0
  32. package/dist/_esm5.processed/core/api/media_element_track_choice_manager.js +22 -4
  33. package/dist/_esm5.processed/core/api/option_utils.d.ts +3 -1
  34. package/dist/_esm5.processed/core/api/option_utils.js +19 -6
  35. package/dist/_esm5.processed/core/api/playback_observer.js +5 -1
  36. package/dist/_esm5.processed/core/api/public_api.d.ts +82 -71
  37. package/dist/_esm5.processed/core/api/public_api.js +72 -33
  38. package/dist/_esm5.processed/core/api/track_choice_manager.d.ts +6 -6
  39. package/dist/_esm5.processed/core/{eme → decrypt}/__tests__/__global__/utils.d.ts +7 -51
  40. package/dist/_esm5.processed/core/{eme → decrypt}/__tests__/__global__/utils.js +30 -75
  41. package/dist/_esm5.processed/core/{eme → decrypt}/attach_media_keys.d.ts +12 -12
  42. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +104 -0
  43. package/dist/_esm5.processed/core/{eme/clear_eme_session.d.ts → decrypt/clear_on_stop.d.ts} +3 -4
  44. package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +41 -0
  45. package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +216 -0
  46. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +866 -0
  47. package/dist/_esm5.processed/core/{eme/get_session.d.ts → decrypt/create_or_load_session.d.ts} +28 -26
  48. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +124 -0
  49. package/dist/_esm5.processed/core/{eme → decrypt}/create_session.d.ts +22 -19
  50. package/dist/_esm5.processed/core/decrypt/create_session.js +174 -0
  51. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.d.ts +21 -0
  52. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +81 -0
  53. package/dist/_esm5.processed/core/{eme → decrypt}/find_key_system.d.ts +11 -14
  54. package/dist/_esm5.processed/core/decrypt/find_key_system.js +300 -0
  55. package/dist/_esm5.processed/core/{eme → decrypt}/get_current_key_system.d.ts +0 -0
  56. package/dist/_esm5.processed/core/{eme → decrypt}/get_current_key_system.js +1 -1
  57. package/dist/_esm5.processed/core/{eme → decrypt}/get_media_keys.d.ts +13 -5
  58. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +153 -0
  59. package/dist/_esm5.processed/core/{eme → decrypt}/index.d.ts +5 -6
  60. package/dist/_esm5.processed/core/{eme → decrypt}/index.js +5 -5
  61. package/dist/_esm5.processed/core/{eme → decrypt}/init_media_keys.d.ts +6 -4
  62. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +82 -0
  63. package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +77 -0
  64. package/dist/_esm5.processed/core/{eme → decrypt}/session_events_listener.js +25 -24
  65. package/dist/_esm5.processed/core/{eme → decrypt}/set_server_certificate.d.ts +15 -6
  66. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +141 -0
  67. package/dist/_esm5.processed/core/{eme → decrypt}/types.d.ts +120 -242
  68. package/dist/_esm5.processed/core/{eme → decrypt}/types.js +0 -0
  69. package/dist/_esm5.processed/core/{eme → decrypt}/utils/are_init_values_compatible.d.ts +3 -3
  70. package/dist/_esm5.processed/core/{eme → decrypt}/utils/are_init_values_compatible.js +5 -5
  71. package/dist/_esm5.processed/core/{eme → decrypt/utils}/check_key_statuses.d.ts +2 -2
  72. package/dist/_esm5.processed/core/{eme → decrypt/utils}/check_key_statuses.js +4 -3
  73. package/dist/_esm5.processed/core/{eme/utils/close_session.d.ts → decrypt/utils/clean_old_loaded_sessions.d.ts} +8 -7
  74. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +85 -0
  75. package/dist/_esm5.processed/core/{eme → decrypt/utils}/clean_old_stored_persistent_info.d.ts +1 -1
  76. package/dist/_esm5.processed/core/{eme → decrypt/utils}/clean_old_stored_persistent_info.js +2 -2
  77. package/dist/_esm5.processed/core/{eme → decrypt/utils}/get_drm_system_id.d.ts +0 -0
  78. package/dist/_esm5.processed/core/{eme → decrypt/utils}/get_drm_system_id.js +1 -1
  79. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.d.ts +69 -0
  80. package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +99 -0
  81. package/dist/_esm5.processed/core/{eme → decrypt}/utils/is_session_usable.d.ts +0 -1
  82. package/dist/_esm5.processed/core/{eme → decrypt}/utils/is_session_usable.js +4 -5
  83. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.d.ts +44 -0
  84. package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +77 -0
  85. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.d.ts +104 -0
  86. package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +155 -0
  87. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +108 -0
  88. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +303 -0
  89. package/dist/_esm5.processed/core/{eme → decrypt/utils}/media_keys_infos_store.d.ts +4 -4
  90. package/dist/_esm5.processed/core/{eme → decrypt/utils}/media_keys_infos_store.js +0 -0
  91. package/dist/_esm5.processed/core/{eme → decrypt}/utils/persistent_sessions_store.d.ts +8 -18
  92. package/dist/_esm5.processed/core/{eme → decrypt}/utils/persistent_sessions_store.js +119 -97
  93. package/dist/_esm5.processed/core/{eme/utils/init_data_container.d.ts → decrypt/utils/serializable_bytes.d.ts} +8 -5
  94. package/dist/_esm5.processed/core/{eme/utils/init_data_container.js → decrypt/utils/serializable_bytes.js} +9 -9
  95. package/dist/_esm5.processed/core/{eme → decrypt/utils}/server_certificate_store.d.ts +1 -1
  96. package/dist/_esm5.processed/core/{eme → decrypt/utils}/server_certificate_store.js +1 -1
  97. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +4 -4
  98. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +3 -3
  99. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +2 -2
  100. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +6 -2
  101. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -1
  102. package/dist/_esm5.processed/core/fetchers/utils/try_urls_with_backoff.js +1 -1
  103. package/dist/_esm5.processed/core/init/get_initial_time.js +1 -1
  104. package/dist/_esm5.processed/core/init/initialize_directfile.d.ts +3 -3
  105. package/dist/_esm5.processed/core/init/initialize_directfile.js +11 -17
  106. package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +5 -3
  107. package/dist/_esm5.processed/core/init/initialize_media_source.js +18 -69
  108. package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +61 -0
  109. package/dist/_esm5.processed/core/init/link_drm_and_content.js +94 -0
  110. package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +4 -4
  111. package/dist/_esm5.processed/core/init/manifest_update_scheduler.js +2 -1
  112. package/dist/_esm5.processed/core/init/stall_avoider.js +1 -1
  113. package/dist/_esm5.processed/core/init/stream_events_emitter/are_same_stream_events.d.ts +4 -4
  114. package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +1 -1
  115. package/dist/_esm5.processed/core/init/stream_events_emitter/types.d.ts +2 -2
  116. package/dist/_esm5.processed/core/init/types.d.ts +2 -4
  117. package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +1 -1
  118. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +3 -3
  119. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +3 -1
  120. package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +32 -31
  121. package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +4 -4
  122. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +17 -1
  123. package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +22 -5
  124. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +2 -1
  125. package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +6 -3
  126. package/dist/_esm5.processed/core/stream/events_generators.d.ts +8 -3
  127. package/dist/_esm5.processed/core/stream/events_generators.js +3 -2
  128. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +1 -0
  129. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +3 -3
  130. package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.js +2 -1
  131. package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.js +1 -1
  132. package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +2 -1
  133. package/dist/_esm5.processed/core/stream/period/period_stream.js +3 -3
  134. package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +5 -6
  135. package/dist/_esm5.processed/core/stream/representation/get_buffer_status.d.ts +6 -1
  136. package/dist/_esm5.processed/core/stream/representation/get_buffer_status.js +12 -9
  137. package/dist/_esm5.processed/core/stream/representation/get_needed_segments.d.ts +19 -14
  138. package/dist/_esm5.processed/core/stream/representation/get_needed_segments.js +86 -10
  139. package/dist/_esm5.processed/core/stream/representation/get_segment_priority.js +1 -1
  140. package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +3 -3
  141. package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +6 -0
  142. package/dist/_esm5.processed/core/stream/representation/representation_stream.js +19 -8
  143. package/dist/_esm5.processed/core/stream/types.d.ts +1 -1
  144. package/dist/_esm5.processed/default_config.d.ts +1114 -0
  145. package/dist/_esm5.processed/default_config.js +1145 -0
  146. package/dist/_esm5.processed/errors/request_error.js +3 -1
  147. package/dist/_esm5.processed/experimental/index.d.ts +2 -0
  148. package/dist/_esm5.processed/experimental/index.js +2 -0
  149. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/push_data.d.ts +1 -0
  150. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.d.ts +2 -2
  151. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +2 -4
  152. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
  153. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +1 -1
  154. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +1 -2
  155. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +1 -2
  156. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +3 -3
  157. package/dist/_esm5.processed/features/features_object.js +1 -1
  158. package/dist/_esm5.processed/features/initialize_features.js +1 -1
  159. package/dist/_esm5.processed/features/list/eme.d.ts +3 -3
  160. package/dist/_esm5.processed/features/list/eme.js +5 -5
  161. package/dist/_esm5.processed/features/types.d.ts +3 -3
  162. package/dist/_esm5.processed/manifest/adaptation.d.ts +2 -2
  163. package/dist/_esm5.processed/manifest/adaptation.js +3 -1
  164. package/dist/_esm5.processed/manifest/manifest.d.ts +10 -23
  165. package/dist/_esm5.processed/manifest/manifest.js +10 -74
  166. package/dist/_esm5.processed/manifest/period.d.ts +3 -3
  167. package/dist/_esm5.processed/manifest/representation.d.ts +37 -5
  168. package/dist/_esm5.processed/manifest/representation_index/types.d.ts +18 -18
  169. package/dist/_esm5.processed/manifest/types.d.ts +3 -3
  170. package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.d.ts +1 -1
  171. package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.d.ts +3 -3
  172. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +6 -6
  173. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +3 -3
  174. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +2 -2
  175. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/is_period_fulfilled.js +1 -2
  176. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +14 -14
  177. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +17 -17
  178. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +1 -2
  179. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +1 -1
  180. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +28 -20
  181. package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +20 -5
  182. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
  183. package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +1 -1
  184. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +17 -35
  185. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +109 -96
  186. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +8 -8
  187. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -2
  188. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +18 -27
  189. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +25 -23
  190. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +21 -15
  191. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +19 -19
  192. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +15 -38
  193. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +8 -8
  194. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +30 -30
  195. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +3 -3
  196. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -1
  197. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +2 -2
  198. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +7 -7
  199. package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +1 -0
  200. package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +8 -8
  201. package/dist/_esm5.processed/parsers/manifest/types.d.ts +28 -28
  202. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.d.ts +3 -2
  203. package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +15 -5
  204. package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +2 -2
  205. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.d.ts +11 -1
  206. package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +31 -19
  207. package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.d.ts +2 -2
  208. package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.d.ts +1 -1
  209. package/dist/_esm5.processed/public_types.d.ts +2 -2
  210. package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -1
  211. package/dist/_esm5.processed/transports/dash/image_pipelines.js +4 -1
  212. package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -1
  213. package/dist/_esm5.processed/transports/dash/manifest_parser.js +1 -1
  214. package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
  215. package/dist/_esm5.processed/transports/dash/segment_loader.js +2 -2
  216. package/dist/_esm5.processed/transports/dash/segment_parser.d.ts +1 -1
  217. package/dist/_esm5.processed/transports/dash/segment_parser.js +6 -3
  218. package/dist/_esm5.processed/transports/dash/text_loader.d.ts +1 -1
  219. package/dist/_esm5.processed/transports/dash/text_loader.js +1 -1
  220. package/dist/_esm5.processed/transports/dash/text_parser.d.ts +1 -1
  221. package/dist/_esm5.processed/transports/dash/text_parser.js +8 -2
  222. package/dist/_esm5.processed/transports/local/segment_loader.d.ts +1 -2
  223. package/dist/_esm5.processed/transports/local/segment_loader.js +1 -1
  224. package/dist/_esm5.processed/transports/local/segment_parser.js +4 -1
  225. package/dist/_esm5.processed/transports/local/text_parser.js +8 -2
  226. package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +1 -1
  227. package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +1 -1
  228. package/dist/_esm5.processed/transports/smooth/pipelines.js +69 -11
  229. package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +0 -1
  230. package/dist/_esm5.processed/transports/smooth/segment_loader.js +2 -2
  231. package/dist/_esm5.processed/transports/types.d.ts +58 -30
  232. package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -1
  233. package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +1 -1
  234. package/dist/_esm5.processed/utils/cancellable_sleep.js +1 -1
  235. package/dist/_esm5.processed/utils/cast_to_observable.d.ts +1 -2
  236. package/dist/_esm5.processed/utils/cast_to_observable.js +1 -1
  237. package/dist/_esm5.processed/utils/deep_merge.d.ts +12 -0
  238. package/dist/_esm5.processed/utils/deep_merge.js +53 -0
  239. package/dist/_esm5.processed/utils/reference.d.ts +29 -0
  240. package/dist/_esm5.processed/utils/reference.js +72 -24
  241. package/dist/_esm5.processed/utils/request/fetch.d.ts +4 -5
  242. package/dist/_esm5.processed/utils/request/fetch.js +8 -6
  243. package/dist/_esm5.processed/utils/request/xhr.d.ts +6 -6
  244. package/dist/_esm5.processed/utils/request/xhr.js +3 -2
  245. package/dist/_esm5.processed/utils/rx-from_cancellable_promise.d.ts +1 -2
  246. package/dist/_esm5.processed/utils/rx-from_cancellable_promise.js +7 -2
  247. package/dist/_esm5.processed/utils/task_canceller.d.ts +5 -3
  248. package/dist/_esm5.processed/utils/task_canceller.js +3 -3
  249. package/dist/rx-player.js +5242 -3190
  250. package/dist/rx-player.min.js +1 -1
  251. package/dummy +1 -0
  252. package/{dist/_esm5.processed/core/eme/dispose_eme.d.ts → experimental/index.d.ts} +1 -4
  253. package/{dist/_esm5.processed/core/eme/dispose_media_keys.d.ts → experimental/index.js} +1 -6
  254. package/package.json +33 -36
  255. package/scripts/build/templates/experimental/index.d.ts +16 -0
  256. package/scripts/build/templates/experimental/index.js +16 -0
  257. package/scripts/doc-generator/generate_header_html.js +6 -7
  258. package/scripts/doc-generator/generate_page_html.js +3 -4
  259. package/scripts/doc-generator/generate_page_list_html.js +4 -5
  260. package/scripts/doc-generator/generate_sidebar_html.js +4 -7
  261. package/scripts/doc-generator/utils.js +0 -11
  262. package/scripts/generate_demo_list.js +3 -3
  263. package/scripts/generate_documentation_list.js +3 -3
  264. package/scripts/launch_static_server.js +127 -67
  265. package/scripts/run_standalone_demo.js +1 -0
  266. package/scripts/start_demo_web_server.js +1 -0
  267. package/sonar-project.properties +1 -1
  268. package/src/README.md +6 -6
  269. package/src/compat/__tests__/fullscreen.test.ts +7 -7
  270. package/src/compat/__tests__/is_vtt_cue.test.ts +1 -1
  271. package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +45 -5
  272. package/src/compat/browser_detection.ts +4 -2
  273. package/src/compat/eme/close_session.ts +90 -56
  274. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +1 -1
  275. package/src/compat/eme/custom_media_keys/index.ts +28 -41
  276. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +63 -46
  277. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +51 -49
  278. package/src/compat/eme/generate_key_request.ts +25 -33
  279. package/src/compat/eme/load_session.ts +29 -31
  280. package/src/compat/event_listeners.ts +2 -1
  281. package/src/compat/should_favour_custom_safari_EME.ts +5 -2
  282. package/src/config.ts +17 -1210
  283. package/src/core/README.md +1 -1
  284. package/src/core/abr/__tests__/{get_estimate_from_buffer_levels.test.ts → buffer_based_chooser.test.ts} +94 -123
  285. package/src/core/abr/bandwidth_estimator.ts +4 -4
  286. package/src/core/abr/buffer_based_chooser.ts +85 -20
  287. package/src/core/abr/network_analyzer.ts +6 -7
  288. package/src/core/abr/pending_requests_store.ts +3 -5
  289. package/src/core/abr/representation_estimator.ts +6 -3
  290. package/src/core/api/__tests__/get_player_state.test.ts +3 -3
  291. package/src/core/api/__tests__/option_utils.test.ts +17 -17
  292. package/src/core/api/get_player_state.ts +1 -1
  293. package/src/core/api/index.ts +3 -0
  294. package/src/core/api/media_element_track_choice_manager.ts +22 -3
  295. package/src/core/api/option_utils.ts +37 -20
  296. package/src/core/api/playback_observer.ts +12 -8
  297. package/src/core/api/public_api.ts +152 -112
  298. package/src/core/api/track_choice_manager.ts +10 -9
  299. package/src/core/decrypt/README.md +22 -0
  300. package/src/core/decrypt/__tests__/__global__/get_license.test.ts +418 -0
  301. package/src/core/decrypt/__tests__/__global__/init_data.test.ts +675 -0
  302. package/src/core/{eme → decrypt}/__tests__/__global__/media_key_system_access.test.ts +99 -92
  303. package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +156 -0
  304. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +262 -0
  305. package/src/core/{eme → decrypt}/__tests__/__global__/utils.ts +36 -103
  306. package/src/core/{eme → decrypt}/attach_media_keys.ts +49 -56
  307. package/src/core/decrypt/clear_on_stop.ts +48 -0
  308. package/src/core/decrypt/content_decryptor.ts +1158 -0
  309. package/src/core/decrypt/create_or_load_session.ts +130 -0
  310. package/src/core/decrypt/create_session.ts +175 -0
  311. package/src/core/decrypt/dispose_decryption_resources.ts +39 -0
  312. package/src/core/{eme → decrypt}/find_key_system.ts +126 -134
  313. package/src/core/{eme → decrypt}/get_current_key_system.ts +1 -1
  314. package/src/core/decrypt/get_media_keys.ts +145 -0
  315. package/src/core/{eme → decrypt}/index.ts +11 -8
  316. package/src/core/decrypt/init_media_keys.ts +51 -0
  317. package/src/core/{eme → decrypt}/session_events_listener.ts +93 -55
  318. package/src/core/decrypt/set_server_certificate.ts +104 -0
  319. package/src/core/{eme → decrypt}/types.ts +129 -259
  320. package/src/core/{eme → decrypt}/utils/__tests__/are_init_values_compatible.test.ts +1 -1
  321. package/src/core/{eme → decrypt/utils}/__tests__/clean_old_loaded_sessions.test.ts +29 -71
  322. package/src/core/{eme → decrypt/utils}/__tests__/clean_old_stored_persistent_info.test.ts +6 -6
  323. package/src/core/{eme → decrypt}/utils/are_init_values_compatible.ts +9 -9
  324. package/src/core/{eme → decrypt/utils}/check_key_statuses.ts +6 -5
  325. package/{dist/_esm5.processed/core/eme/clean_old_loaded_sessions.js → src/core/decrypt/utils/clean_old_loaded_sessions.ts} +20 -20
  326. package/src/core/{eme → decrypt/utils}/clean_old_stored_persistent_info.ts +3 -3
  327. package/src/core/{eme → decrypt/utils}/get_drm_system_id.ts +1 -1
  328. package/src/core/decrypt/utils/init_data_values_container.ts +119 -0
  329. package/src/core/{eme → decrypt}/utils/is_session_usable.ts +4 -5
  330. package/src/core/decrypt/utils/key_id_comparison.ts +82 -0
  331. package/src/core/decrypt/utils/key_session_record.ts +175 -0
  332. package/src/core/decrypt/utils/loaded_sessions_store.ts +318 -0
  333. package/src/core/{eme → decrypt/utils}/media_keys_infos_store.ts +4 -4
  334. package/src/core/{eme → decrypt}/utils/persistent_sessions_store.ts +122 -104
  335. package/src/core/{eme/utils/init_data_container.ts → decrypt/utils/serializable_bytes.ts} +8 -5
  336. package/src/core/{eme → decrypt/utils}/server_certificate_store.ts +2 -2
  337. package/src/core/fetchers/manifest/manifest_fetcher.ts +9 -9
  338. package/src/core/fetchers/segment/segment_fetcher.ts +10 -7
  339. package/src/core/fetchers/segment/segment_fetcher_creator.ts +2 -2
  340. package/src/core/fetchers/utils/try_urls_with_backoff.ts +1 -1
  341. package/src/core/init/.initialize_media_source.ts.un~ +0 -0
  342. package/src/core/init/get_initial_time.ts +2 -1
  343. package/src/core/init/initialize_directfile.ts +19 -22
  344. package/src/core/init/initialize_media_source.ts +43 -106
  345. package/src/core/init/link_drm_and_content.ts +176 -0
  346. package/src/core/init/manifest_update_scheduler.ts +12 -10
  347. package/src/core/init/stall_avoider.ts +6 -5
  348. package/src/core/init/stream_events_emitter/are_same_stream_events.ts +4 -4
  349. package/src/core/init/stream_events_emitter/stream_events_emitter.ts +2 -1
  350. package/src/core/init/stream_events_emitter/types.ts +2 -2
  351. package/src/core/init/types.ts +1 -39
  352. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +2 -1
  353. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +6 -7
  354. package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +32 -31
  355. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +4 -4
  356. package/src/core/segment_buffers/inventory/segment_inventory.ts +42 -8
  357. package/src/core/stream/adaptation/adaptation_stream.ts +7 -1
  358. package/src/core/stream/events_generators.ts +9 -4
  359. package/src/core/stream/orchestrator/stream_orchestrator.ts +9 -4
  360. package/src/core/stream/period/create_empty_adaptation_stream.ts +2 -1
  361. package/src/core/stream/period/get_adaptation_switch_strategy.ts +1 -1
  362. package/src/core/stream/period/period_stream.ts +5 -2
  363. package/src/core/stream/representation/force_garbage_collection.ts +5 -7
  364. package/src/core/stream/representation/get_buffer_status.ts +28 -16
  365. package/src/core/stream/representation/get_needed_segments.ts +124 -28
  366. package/src/core/stream/representation/get_segment_priority.ts +1 -2
  367. package/src/core/stream/representation/push_media_segment.ts +3 -2
  368. package/src/core/stream/representation/representation_stream.ts +30 -7
  369. package/src/core/stream/types.ts +1 -1
  370. package/src/default_config.ts +1241 -0
  371. package/src/errors/request_error.ts +4 -1
  372. package/src/experimental/index.ts +5 -0
  373. package/src/experimental/tools/VideoThumbnailLoader/push_data.ts +1 -0
  374. package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +5 -7
  375. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +3 -10
  376. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +4 -4
  377. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +1 -1
  378. package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +3 -3
  379. package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +1 -2
  380. package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +1 -2
  381. package/src/experimental/tools/mediaCapabilitiesProber/types.ts +3 -3
  382. package/src/features/__tests__/initialize_features.test.ts +2 -2
  383. package/src/features/features_object.ts +1 -1
  384. package/src/features/initialize_features.ts +1 -1
  385. package/src/features/list/__tests__/eme.test.ts +5 -5
  386. package/src/features/list/eme.ts +5 -5
  387. package/src/features/types.ts +3 -10
  388. package/src/manifest/adaptation.ts +6 -4
  389. package/src/manifest/manifest.ts +16 -86
  390. package/src/manifest/period.ts +3 -3
  391. package/src/manifest/representation.ts +38 -5
  392. package/src/manifest/representation_index/types.ts +18 -18
  393. package/src/manifest/types.ts +3 -3
  394. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +1 -0
  395. package/src/parsers/manifest/dash/common/get_hdr_information.ts +1 -1
  396. package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +3 -3
  397. package/src/parsers/manifest/dash/common/indexes/base.ts +6 -6
  398. package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +4 -2
  399. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +2 -2
  400. package/src/parsers/manifest/dash/common/indexes/is_period_fulfilled.ts +1 -2
  401. package/src/parsers/manifest/dash/common/indexes/list.ts +14 -14
  402. package/src/parsers/manifest/dash/common/indexes/template.ts +18 -18
  403. package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +1 -1
  404. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +51 -23
  405. package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +2 -2
  406. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +1 -1
  407. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +167 -134
  408. package/src/parsers/manifest/dash/common/parse_mpd.ts +9 -10
  409. package/src/parsers/manifest/dash/common/parse_periods.ts +80 -79
  410. package/src/parsers/manifest/dash/common/parse_representation_index.ts +83 -75
  411. package/src/parsers/manifest/dash/common/parse_representations.ts +44 -63
  412. package/src/parsers/manifest/dash/node_parser_types.ts +30 -30
  413. package/src/parsers/manifest/dash/parsers_types.ts +3 -3
  414. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -1
  415. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +4 -4
  416. package/src/parsers/manifest/smooth/create_parser.ts +24 -21
  417. package/src/parsers/manifest/smooth/representation_index.ts +14 -14
  418. package/src/parsers/manifest/types.ts +28 -28
  419. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +31 -33
  420. package/src/parsers/manifest/utils/clear_timeline_from_position.ts +15 -6
  421. package/src/parsers/manifest/utils/index_helpers.ts +2 -2
  422. package/src/parsers/manifest/utils/update_segment_timeline.ts +32 -21
  423. package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +1 -0
  424. package/src/parsers/texttracks/webvtt/html/to_html.ts +2 -2
  425. package/src/parsers/texttracks/webvtt/parse_cue_block.ts +1 -1
  426. package/src/public_types.ts +5 -1
  427. package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +2 -2
  428. package/src/transports/dash/image_pipelines.ts +4 -1
  429. package/src/transports/dash/init_segment_loader.ts +1 -1
  430. package/src/transports/dash/manifest_parser.ts +1 -1
  431. package/src/transports/dash/segment_loader.ts +7 -7
  432. package/src/transports/dash/segment_parser.ts +8 -1
  433. package/src/transports/dash/text_loader.ts +2 -2
  434. package/src/transports/dash/text_parser.ts +11 -1
  435. package/src/transports/local/segment_loader.ts +4 -4
  436. package/src/transports/local/segment_parser.ts +4 -0
  437. package/src/transports/local/text_parser.ts +8 -0
  438. package/src/transports/metaplaylist/manifest_loader.ts +1 -1
  439. package/src/transports/metaplaylist/pipelines.ts +1 -1
  440. package/src/transports/smooth/pipelines.ts +29 -16
  441. package/src/transports/smooth/segment_loader.ts +8 -8
  442. package/src/transports/types.ts +59 -30
  443. package/src/transports/utils/call_custom_manifest_loader.ts +6 -6
  444. package/src/transports/utils/generate_manifest_loader.ts +1 -1
  445. package/src/utils/__tests__/deep_merge.test.ts +48 -0
  446. package/src/utils/__tests__/flat_map.test.ts +12 -7
  447. package/src/utils/cancellable_sleep.ts +1 -1
  448. package/src/utils/cast_to_observable.ts +1 -2
  449. package/src/utils/deep_merge.ts +46 -0
  450. package/src/utils/reference.ts +116 -23
  451. package/src/utils/request/fetch.ts +17 -15
  452. package/src/utils/request/xhr.ts +11 -8
  453. package/src/utils/rx-from_cancellable_promise.ts +8 -4
  454. package/src/utils/task_canceller.ts +6 -4
  455. package/tsconfig.json +1 -2
  456. package/tsconfig.modules.json +1 -2
  457. package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.d.ts +0 -29
  458. package/dist/_esm5.processed/core/abr/get_estimate_from_buffer_levels.js +0 -67
  459. package/dist/_esm5.processed/core/eme/attach_media_keys.js +0 -57
  460. package/dist/_esm5.processed/core/eme/clean_old_loaded_sessions.d.ts +0 -59
  461. package/dist/_esm5.processed/core/eme/clear_eme_session.js +0 -50
  462. package/dist/_esm5.processed/core/eme/create_session.js +0 -126
  463. package/dist/_esm5.processed/core/eme/dispose_eme.js +0 -23
  464. package/dist/_esm5.processed/core/eme/dispose_media_keys.js +0 -36
  465. package/dist/_esm5.processed/core/eme/eme_manager.d.ts +0 -31
  466. package/dist/_esm5.processed/core/eme/eme_manager.js +0 -278
  467. package/dist/_esm5.processed/core/eme/find_key_system.js +0 -243
  468. package/dist/_esm5.processed/core/eme/get_media_keys.js +0 -85
  469. package/dist/_esm5.processed/core/eme/get_session.js +0 -68
  470. package/dist/_esm5.processed/core/eme/init_media_keys.js +0 -66
  471. package/dist/_esm5.processed/core/eme/session_events_listener.d.ts +0 -41
  472. package/dist/_esm5.processed/core/eme/set_server_certificate.js +0 -85
  473. package/dist/_esm5.processed/core/eme/utils/close_session.js +0 -81
  474. package/dist/_esm5.processed/core/eme/utils/init_data_store.d.ts +0 -115
  475. package/dist/_esm5.processed/core/eme/utils/init_data_store.js +0 -181
  476. package/dist/_esm5.processed/core/eme/utils/loaded_sessions_store.d.ts +0 -123
  477. package/dist/_esm5.processed/core/eme/utils/loaded_sessions_store.js +0 -173
  478. package/dist/_esm5.processed/core/init/create_eme_manager.d.ts +0 -34
  479. package/dist/_esm5.processed/core/init/create_eme_manager.js +0 -52
  480. package/src/core/abr/get_estimate_from_buffer_levels.ts +0 -85
  481. package/src/core/eme/README.md +0 -26
  482. package/src/core/eme/__tests__/__global__/get_license.test.ts +0 -414
  483. package/src/core/eme/__tests__/__global__/init_data.test.ts +0 -908
  484. package/src/core/eme/__tests__/__global__/media_keys.test.ts +0 -266
  485. package/src/core/eme/__tests__/__global__/server_certificate.test.ts +0 -364
  486. package/src/core/eme/__tests__/init_media_keys.test.ts +0 -182
  487. package/src/core/eme/clean_old_loaded_sessions.ts +0 -96
  488. package/src/core/eme/clear_eme_session.ts +0 -62
  489. package/src/core/eme/create_session.ts +0 -187
  490. package/src/core/eme/dispose_eme.ts +0 -25
  491. package/src/core/eme/dispose_media_keys.ts +0 -46
  492. package/src/core/eme/eme_manager.ts +0 -387
  493. package/src/core/eme/get_media_keys.ts +0 -141
  494. package/src/core/eme/get_session.ts +0 -135
  495. package/src/core/eme/init_media_keys.ts +0 -106
  496. package/src/core/eme/set_server_certificate.ts +0 -115
  497. package/src/core/eme/utils/close_session.ts +0 -113
  498. package/src/core/eme/utils/init_data_store.ts +0 -234
  499. package/src/core/eme/utils/loaded_sessions_store.ts +0 -235
  500. package/src/core/init/create_eme_manager.ts +0 -95
@@ -50,7 +50,9 @@ var RequestError = /** @class */ (function (_super) {
50
50
  Object.setPrototypeOf(_this, RequestError.prototype);
51
51
  _this.name = "RequestError";
52
52
  _this.url = url;
53
- _this.xhr = xhr;
53
+ if (xhr !== undefined) {
54
+ _this.xhr = xhr;
55
+ }
54
56
  _this.status = status;
55
57
  _this.type = type;
56
58
  _this.message = type;
@@ -0,0 +1,2 @@
1
+ import configHandler from "../config";
2
+ export { configHandler as config, };
@@ -0,0 +1,2 @@
1
+ import configHandler from "../config";
2
+ export { configHandler as config, };
@@ -16,6 +16,7 @@ export default function pushData(inventoryInfos: {
16
16
  adaptation: Adaptation;
17
17
  representation: Representation;
18
18
  segment: ISegment;
19
+ chunkSize: number | undefined;
19
20
  start: number;
20
21
  end: number;
21
22
  }, parsed: ISegmentParserParsedMediaChunk<Uint8Array | ArrayBuffer>, videoSourceBuffer: AudioVideoSegmentBuffer): Observable<void>;
@@ -25,8 +25,8 @@ import { ILoaders } from "./types";
25
25
  export default class VideoThumbnailLoader {
26
26
  private readonly _videoElement;
27
27
  private _player;
28
- private _currentTask?;
29
- private _nextTaskSegmentsCompleteIds?;
28
+ private _currentTask;
29
+ private _nextTaskSegmentsCompleteIds;
30
30
  constructor(videoElement: HTMLVideoElement, player: Player);
31
31
  /**
32
32
  * Add imported loader to thumbnail loader loader object.
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import pinkie from "pinkie";
17
16
  import { catchError, combineLatest, finalize, ignoreElements, lastValueFrom, map, merge as observableMerge, mergeMap, race as observableRace, Subject, take, tap, } from "rxjs";
18
17
  import createSegmentFetcher from "../../../core/fetchers/segment/segment_fetcher";
19
18
  import log from "../../../log";
20
19
  import objectAssign from "../../../utils/object_assign";
20
+ import PPromise from "../../../utils/promise";
21
21
  import { freeRequest } from "./create_request";
22
22
  import getCompleteSegmentId from "./get_complete_segment_id";
23
23
  import getContentInfos from "./get_content_infos";
@@ -26,8 +26,6 @@ import loadSegments from "./load_segments";
26
26
  import pushData from "./push_data";
27
27
  import removeBufferAroundTime$ from "./remove_buffer_around_time";
28
28
  import VideoThumbnailLoaderError from "./video_thumbnail_loader_error";
29
- var PPromise = typeof Promise === "function" ? Promise :
30
- pinkie;
31
29
  var MIN_NEEDED_DATA_AFTER_TIME = 2;
32
30
  var loaders = {};
33
31
  /**
@@ -168,7 +166,7 @@ var VideoThumbnailLoader = /** @class */ (function () {
168
166
  if (end === undefined) {
169
167
  end = start + (segment.duration / segment.timescale);
170
168
  }
171
- var inventoryInfos = objectAssign({ segment: segment, start: start, end: end }, contentInfos);
169
+ var inventoryInfos = objectAssign({ chunkSize: data.chunkSize, segment: segment, start: start, end: end }, contentInfos);
172
170
  return pushData(inventoryInfos, data, videoSourceBuffer)
173
171
  .pipe(tap(function () {
174
172
  freeRequest(getCompleteSegmentId(inventoryInfos, segment));
@@ -6,7 +6,7 @@ export interface IProbedMediaConfiguration {
6
6
  globalStatus: ProberStatus;
7
7
  resultsFromAPIS: Array<{
8
8
  APIName: ICapabilitiesTypes;
9
- result?: IResultsFromAPI;
9
+ result?: IResultsFromAPI | undefined;
10
10
  }>;
11
11
  }
12
12
  /**
@@ -80,7 +80,7 @@ function probeMediaConfiguration(config, browserAPIS) {
80
80
  _loop_1(browserAPI);
81
81
  }
82
82
  return PPromise.all(promises).then(function () {
83
- if (globalStatus == null) {
83
+ if (globalStatus === undefined) {
84
84
  globalStatus = ProberStatus.Unknown;
85
85
  }
86
86
  var probedCapabilities = getProbedConfiguration(config, resultsFromAPIS.map(function (a) { return a.APIName; }));
@@ -13,7 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { lastValueFrom } from "rxjs";
17
16
  import { requestMediaKeySystemAccess } from "../../../../compat";
18
17
  import PPromise from "../../../../utils/promise";
19
18
  import log from "../log";
@@ -39,7 +38,7 @@ export default function probeDRMInfos(mediaConfig) {
39
38
  // So, the DRM configuration is not supported.
40
39
  return PPromise.resolve([ProberStatus.NotSupported, result]);
41
40
  }
42
- return lastValueFrom(requestMediaKeySystemAccess(type, [configuration]))
41
+ return requestMediaKeySystemAccess(type, [configuration])
43
42
  .then(function (keySystemAccess) {
44
43
  result.compatibleConfiguration = keySystemAccess.getConfiguration();
45
44
  var status = [ProberStatus.Supported, result];
@@ -13,7 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { lastValueFrom } from "rxjs";
17
16
  import { requestMediaKeySystemAccess } from "../../../../compat";
18
17
  import PPromise from "../../../../utils/promise";
19
18
  import { ProberStatus, } from "../types";
@@ -42,7 +41,7 @@ export default function probeHDCPPolicy(config) {
42
41
  contentType: "video/mp4;codecs=\"avc1.42E01E\"",
43
42
  }],
44
43
  };
45
- return lastValueFrom(requestMediaKeySystemAccess(keySystem, [drmConfig]))
44
+ return requestMediaKeySystemAccess(keySystem, [drmConfig])
46
45
  .then(function (mediaKeysSystemAccess) {
47
46
  return mediaKeysSystemAccess.createMediaKeys().then(function (mediaKeys) {
48
47
  if (!("getStatusForPolicy" in mediaKeys)) {
@@ -46,9 +46,9 @@ export interface IDisplayConfiguration {
46
46
  bitsPerComponent?: number;
47
47
  }
48
48
  export interface IMediaConfiguration {
49
- type?: "media-source" | "file";
50
- video?: IVideoConfiguration;
51
- audio?: IAudioConfiguration;
49
+ type?: "media-source" | "file" | undefined;
50
+ video?: IVideoConfiguration | undefined;
51
+ audio?: IAudioConfiguration | undefined;
52
52
  keySystem?: IKeySystem;
53
53
  hdcp?: string;
54
54
  display?: IDisplayConfiguration;
@@ -20,7 +20,7 @@
20
20
  var features = { dashParsers: { wasm: null,
21
21
  js: null },
22
22
  directfile: null,
23
- emeManager: null,
23
+ ContentDecryptor: null,
24
24
  htmlTextTracksBuffer: null,
25
25
  htmlTextTracksParsers: {},
26
26
  imageBuffer: null,
@@ -24,7 +24,7 @@ import features from "./features_object";
24
24
  */
25
25
  export default function initializeFeaturesObject() {
26
26
  if (0 /* EME */ === 1 /* IS_ENABLED */) {
27
- features.emeManager = require("../core/eme/index.ts").default;
27
+ features.ContentDecryptor = require("../core/decrypt/index.ts").default;
28
28
  }
29
29
  if (0 /* BIF_PARSER */ === 1 /* IS_ENABLED */) {
30
30
  features.imageBuffer =
@@ -18,6 +18,6 @@ import { IFeaturesObject } from "../types";
18
18
  * Add ability to play encrypted contents
19
19
  * @param {Object} features
20
20
  */
21
- declare function addEMEManagerFeature(features: IFeaturesObject): void;
22
- export { addEMEManagerFeature as EME };
23
- export default addEMEManagerFeature;
21
+ declare function addEMEFeature(features: IFeaturesObject): void;
22
+ export { addEMEFeature as EME };
23
+ export default addEMEFeature;
@@ -13,13 +13,13 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import EMEManager from "../../core/eme";
16
+ import ContentDecryptor from "../../core/decrypt";
17
17
  /**
18
18
  * Add ability to play encrypted contents
19
19
  * @param {Object} features
20
20
  */
21
- function addEMEManagerFeature(features) {
22
- features.emeManager = EMEManager;
21
+ function addEMEFeature(features) {
22
+ features.ContentDecryptor = ContentDecryptor;
23
23
  }
24
- export { addEMEManagerFeature as EME };
25
- export default addEMEManagerFeature;
24
+ export { addEMEFeature as EME };
25
+ export default addEMEFeature;
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { Observable } from "rxjs";
17
17
  import MediaElementTrackChoiceManager from "../core/api/media_element_track_choice_manager";
18
- import { IContentProtection, IEMEManagerEvent, IKeySystemOption } from "../core/eme";
18
+ import type ContentDecryptor from "../core/decrypt";
19
19
  import { IDirectfileEvent, IDirectFileOptions } from "../core/init/initialize_directfile";
20
20
  import { SegmentBuffer } from "../core/segment_buffers";
21
21
  import { IDashParserResponse, IMPDParserArguments } from "../parsers/manifest/dash/parsers_types";
@@ -23,7 +23,7 @@ import DashWasmParser from "../parsers/manifest/dash/wasm-parser";
23
23
  import { IHTMLTextTracksParserFn, INativeTextTracksParserFn } from "../parsers/texttracks";
24
24
  import { ITransportFunction } from "../transports";
25
25
  export declare type IDirectFileInit = (args: IDirectFileOptions) => Observable<IDirectfileEvent>;
26
- export declare type IEMEManager = (mediaElement: HTMLMediaElement, keySystems: IKeySystemOption[], contentProtections$: Observable<IContentProtection>) => Observable<IEMEManagerEvent>;
26
+ export declare type IContentDecryptorClass = typeof ContentDecryptor;
27
27
  export declare type IHTMLTextTracksBuffer = new (mediaElement: HTMLMediaElement, textTrackElement: HTMLElement) => SegmentBuffer;
28
28
  export declare type INativeTextTracksBuffer = new (mediaElement: HTMLMediaElement, hideNativeSubtitle: boolean) => SegmentBuffer;
29
29
  export declare type IMediaElementTrackChoiceManager = typeof MediaElementTrackChoiceManager;
@@ -53,7 +53,7 @@ export interface IFeaturesObject {
53
53
  initDirectFile: IDirectFileInit;
54
54
  mediaElementTrackChoiceManager: IMediaElementTrackChoiceManager;
55
55
  } | null;
56
- emeManager: IEMEManager | null;
56
+ ContentDecryptor: IContentDecryptorClass | null;
57
57
  htmlTextTracksBuffer: IHTMLTextTracksBuffer | null;
58
58
  htmlTextTracksParsers: Partial<Record<string, IHTMLTextTracksParserFn>>;
59
59
  imageBuffer: IImageBuffer | null;
@@ -82,8 +82,8 @@ export default class Adaptation {
82
82
  * @param {Object|undefined} [options]
83
83
  */
84
84
  constructor(parsedAdaptation: IParsedAdaptation, options?: {
85
- representationFilter?: IRepresentationFilter;
86
- isManuallyAdded?: boolean;
85
+ representationFilter?: IRepresentationFilter | undefined;
86
+ isManuallyAdded?: boolean | undefined;
87
87
  });
88
88
  /**
89
89
  * Returns unique bitrate for every Representation in this Adaptation.
@@ -42,8 +42,10 @@ var Adaptation = /** @class */ (function () {
42
42
  var trickModeTracks = parsedAdaptation.trickModeTracks;
43
43
  var representationFilter = options.representationFilter, isManuallyAdded = options.isManuallyAdded;
44
44
  this.id = parsedAdaptation.id;
45
- this.isTrickModeTrack = parsedAdaptation.isTrickModeTrack;
46
45
  this.type = parsedAdaptation.type;
46
+ if (parsedAdaptation.isTrickModeTrack !== undefined) {
47
+ this.isTrickModeTrack = parsedAdaptation.isTrickModeTrack;
48
+ }
47
49
  if (parsedAdaptation.language !== undefined) {
48
50
  this.language = parsedAdaptation.language;
49
51
  this.normalizedLanguage = normalizeLanguage(parsedAdaptation.language);
@@ -13,7 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { IInitializationDataInfo } from "../core/eme";
17
16
  import { ICustomError } from "../errors";
18
17
  import { IParsedManifest } from "../parsers/manifest";
19
18
  import EventEmitter from "../utils/event_emitter";
@@ -56,17 +55,17 @@ interface ISupplementaryTextTrack {
56
55
  /** Options given to the `Manifest` constructor. */
57
56
  interface IManifestParsingOptions {
58
57
  /** Text tracks to add manually to the Manifest instance. */
59
- supplementaryTextTracks?: ISupplementaryTextTrack[];
58
+ supplementaryTextTracks?: ISupplementaryTextTrack[] | undefined;
60
59
  /** Image tracks to add manually to the Manifest instance. */
61
- supplementaryImageTracks?: ISupplementaryImageTrack[];
60
+ supplementaryImageTracks?: ISupplementaryImageTrack[] | undefined;
62
61
  /** External callback peforming an automatic filtering of wanted Representations. */
63
- representationFilter?: IRepresentationFilter;
62
+ representationFilter?: IRepresentationFilter | undefined;
64
63
  /** Optional URL that points to a shorter version of the Manifest used
65
64
  * for updates only. When using this URL for refresh, the manifest will be
66
65
  * updated with the partial update type. If this URL is undefined, then the
67
66
  * manifest will be updated fully when it needs to be refreshed, and it will
68
67
  * fetched through the original URL. */
69
- manifestUpdateUrl?: string;
68
+ manifestUpdateUrl?: string | undefined;
70
69
  }
71
70
  /** Representation affected by a `decipherabilityUpdate` event. */
72
71
  export interface IDecipherabilityUpdateElement {
@@ -154,34 +153,34 @@ export default class Manifest extends EventEmitter<IManifestEvents> {
154
153
  uris: string[];
155
154
  /** Optional URL that points to a shorter version of the Manifest used
156
155
  * for updates only. */
157
- updateUrl?: string;
156
+ updateUrl: string | undefined;
158
157
  /**
159
158
  * Suggested delay from the "live edge" (i.e. the position corresponding to
160
159
  * the current broadcast for a live content) the content is suggested to start
161
160
  * from.
162
161
  * This only applies to live contents.
163
162
  */
164
- suggestedPresentationDelay?: number;
163
+ suggestedPresentationDelay: number | undefined;
165
164
  /**
166
165
  * Amount of time, in seconds, this Manifest is valid from the time when it
167
166
  * has been fetched.
168
167
  * If no lifetime is set, this Manifest does not become invalid after an
169
168
  * amount of time.
170
169
  */
171
- lifetime?: number;
170
+ lifetime: number | undefined;
172
171
  /**
173
172
  * Minimum time, in seconds, at which a segment defined in the Manifest
174
173
  * can begin.
175
174
  * This is also used as an offset for live content to apply to a segment's
176
175
  * time.
177
176
  */
178
- availabilityStartTime?: number;
177
+ availabilityStartTime: number | undefined;
179
178
  /**
180
179
  * It specifies the wall-clock time when the manifest was generated and published
181
180
  * at the origin server. It is present in order to identify different versions
182
181
  * of manifest instances.
183
182
  */
184
- publishTime?: number;
183
+ publishTime: number | undefined;
185
184
  /**
186
185
  * Array containing every minor errors that happened when the Manifest has
187
186
  * been created, in the order they have happened.
@@ -271,19 +270,7 @@ export default class Manifest extends EventEmitter<IManifestEvents> {
271
270
  * changes performed.
272
271
  * @param {Object} keyUpdates
273
272
  */
274
- updateDeciperabilitiesBasedOnKeyIds({ whitelistedKeyIds, blacklistedKeyIDs }: {
275
- whitelistedKeyIds: Uint8Array[];
276
- blacklistedKeyIDs: Uint8Array[];
277
- }): void;
278
- /**
279
- * Look in the Manifest for Representations linked to the given content
280
- * protection initialization data and mark them as being impossible to
281
- * decrypt.
282
- * Then trigger a "decipherabilityUpdate" event to notify everyone of the
283
- * changes performed.
284
- * @param {Object} initData
285
- */
286
- addUndecipherableProtectionData(initData: IInitializationDataInfo): void;
273
+ updateRepresentationsDeciperability(isDecipherableCb: (rep: Representation) => boolean | undefined): void;
287
274
  /**
288
275
  * @deprecated only returns adaptations for the first period
289
276
  * @returns {Array.<Object>}
@@ -29,7 +29,6 @@ var __extends = (this && this.__extends) || (function () {
29
29
  };
30
30
  })();
31
31
  import { MediaError, } from "../errors";
32
- import areArraysOfNumbersEqual from "../utils/are_arrays_of_numbers_equal";
33
32
  import arrayFind from "../utils/array_find";
34
33
  import EventEmitter from "../utils/event_emitter";
35
34
  import idGenerator from "../utils/id_generator";
@@ -72,8 +71,9 @@ var Manifest = /** @class */ (function (_super) {
72
71
  * @param {Object} options
73
72
  */
74
73
  function Manifest(parsedManifest, options) {
74
+ var _this = this;
75
75
  var _a;
76
- var _this = _super.call(this) || this;
76
+ _this = _super.call(this) || this;
77
77
  var _b = options.supplementaryTextTracks, supplementaryTextTracks = _b === void 0 ? [] : _b, _c = options.supplementaryImageTracks, supplementaryImageTracks = _c === void 0 ? [] : _c, representationFilter = options.representationFilter, manifestUpdateUrl = options.manifestUpdateUrl;
78
78
  _this.contentWarnings = [];
79
79
  _this.id = generateNewManifestId();
@@ -234,70 +234,8 @@ var Manifest = /** @class */ (function (_super) {
234
234
  * changes performed.
235
235
  * @param {Object} keyUpdates
236
236
  */
237
- Manifest.prototype.updateDeciperabilitiesBasedOnKeyIds = function (_a) {
238
- var whitelistedKeyIds = _a.whitelistedKeyIds, blacklistedKeyIDs = _a.blacklistedKeyIDs;
239
- var updates = updateDeciperability(this, function (representation) {
240
- if (representation.decipherable === false ||
241
- representation.contentProtections === undefined) {
242
- return representation.decipherable;
243
- }
244
- var contentKIDs = representation.contentProtections.keyIds;
245
- for (var i = 0; i < contentKIDs.length; i++) {
246
- var elt = contentKIDs[i];
247
- for (var j = 0; j < blacklistedKeyIDs.length; j++) {
248
- if (areArraysOfNumbersEqual(blacklistedKeyIDs[j], elt.keyId)) {
249
- return false;
250
- }
251
- }
252
- for (var j = 0; j < whitelistedKeyIds.length; j++) {
253
- if (areArraysOfNumbersEqual(whitelistedKeyIds[j], elt.keyId)) {
254
- return true;
255
- }
256
- }
257
- }
258
- return representation.decipherable;
259
- });
260
- if (updates.length > 0) {
261
- this.trigger("decipherabilityUpdate", updates);
262
- }
263
- };
264
- /**
265
- * Look in the Manifest for Representations linked to the given content
266
- * protection initialization data and mark them as being impossible to
267
- * decrypt.
268
- * Then trigger a "decipherabilityUpdate" event to notify everyone of the
269
- * changes performed.
270
- * @param {Object} initData
271
- */
272
- Manifest.prototype.addUndecipherableProtectionData = function (initData) {
273
- var updates = updateDeciperability(this, function (representation) {
274
- var _a, _b;
275
- if (representation.decipherable === false) {
276
- return false;
277
- }
278
- var segmentProtections = (_b = (_a = representation.contentProtections) === null || _a === void 0 ? void 0 : _a.initData) !== null && _b !== void 0 ? _b : [];
279
- var _loop_1 = function (i) {
280
- if (initData.type === undefined ||
281
- segmentProtections[i].type === initData.type) {
282
- var containedInitData = initData.values.every(function (undecipherableVal) {
283
- return segmentProtections[i].values.some(function (currVal) {
284
- return (undecipherableVal.systemId === undefined ||
285
- currVal.systemId === undecipherableVal.systemId) &&
286
- areArraysOfNumbersEqual(currVal.data, undecipherableVal.data);
287
- });
288
- });
289
- if (containedInitData) {
290
- return { value: false };
291
- }
292
- }
293
- };
294
- for (var i = 0; i < segmentProtections.length; i++) {
295
- var state_1 = _loop_1(i);
296
- if (typeof state_1 === "object")
297
- return state_1.value;
298
- }
299
- return representation.decipherable;
300
- });
237
+ Manifest.prototype.updateRepresentationsDeciperability = function (isDecipherableCb) {
238
+ var updates = updateDeciperability(this, isDecipherableCb);
301
239
  if (updates.length > 0) {
302
240
  this.trigger("decipherabilityUpdate", updates);
303
241
  }
@@ -501,14 +439,12 @@ export default Manifest;
501
439
  */
502
440
  function updateDeciperability(manifest, isDecipherable) {
503
441
  var updates = [];
504
- for (var i = 0; i < manifest.periods.length; i++) {
505
- var period = manifest.periods[i];
506
- var adaptations = period.getAdaptations();
507
- for (var j = 0; j < adaptations.length; j++) {
508
- var adaptation = adaptations[j];
509
- var representations = adaptation.representations;
510
- for (var k = 0; k < representations.length; k++) {
511
- var representation = representations[k];
442
+ for (var _i = 0, _a = manifest.periods; _i < _a.length; _i++) {
443
+ var period = _a[_i];
444
+ for (var _b = 0, _c = period.getAdaptations(); _b < _c.length; _b++) {
445
+ var adaptation = _c[_b];
446
+ for (var _d = 0, _e = adaptation.representations; _d < _e.length; _d++) {
447
+ var representation = _e[_d];
512
448
  var result = isDecipherable(representation);
513
449
  if (result !== representation.decipherable) {
514
450
  updates.push({ manifest: manifest, period: period, adaptation: adaptation, representation: representation });
@@ -35,12 +35,12 @@ export default class Period {
35
35
  * Duration of this Period, in seconds.
36
36
  * `undefined` for still-running Periods.
37
37
  */
38
- duration?: number;
38
+ duration: number | undefined;
39
39
  /**
40
40
  * Absolute end time of the Period, in seconds.
41
41
  * `undefined` for still-running Periods.
42
42
  */
43
- end?: number;
43
+ end: number | undefined;
44
44
  /**
45
45
  * Array containing every errors that happened when the Period has been
46
46
  * created, in the order they have happened.
@@ -53,7 +53,7 @@ export default class Period {
53
53
  * @param {Object} args
54
54
  * @param {function|undefined} [representationFilter]
55
55
  */
56
- constructor(args: IParsedPeriod, representationFilter?: IRepresentationFilter);
56
+ constructor(args: IParsedPeriod, representationFilter?: IRepresentationFilter | undefined);
57
57
  /**
58
58
  * Returns every `Adaptations` (or `tracks`) linked to that Period, in an
59
59
  * Array.
@@ -13,7 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { IContentProtection } from "../core/eme";
17
16
  import { IContentProtections, IParsedRepresentation } from "../parsers/manifest";
18
17
  import { IRepresentationIndex } from "./representation_index";
19
18
  import { IAdaptationType, IHDRInformation } from "./types";
@@ -40,7 +39,7 @@ declare class Representation {
40
39
  * A string describing the codec used for this Representation.
41
40
  * undefined if we do not know.
42
41
  */
43
- codec?: string;
42
+ codec: string | undefined;
44
43
  /**
45
44
  * A string describing the mime-type for this Representation.
46
45
  * Examples: audio/mp4, video/webm, application/mp4, text/plain
@@ -72,7 +71,7 @@ declare class Representation {
72
71
  * Representation
73
72
  * - if `undefined` there is no certainty on this matter
74
73
  */
75
- decipherable?: boolean;
74
+ decipherable?: boolean | undefined;
76
75
  /** `true` if the Representation is in a supported codec, false otherwise. */
77
76
  isSupported: boolean;
78
77
  /**
@@ -107,7 +106,7 @@ declare class Representation {
107
106
  * @param {string} drmSystemId - The hexa-encoded DRM system ID
108
107
  * @returns {Array.<Object>}
109
108
  */
110
- getEncryptionData(drmSystemId: string): IContentProtection[];
109
+ getEncryptionData(drmSystemId: string): IRepresentationProtectionData[];
111
110
  /**
112
111
  * Returns all currently-known encryption initialization data linked to this
113
112
  * Representation.
@@ -134,7 +133,7 @@ declare class Representation {
134
133
  * after parsing this Representation's initialization segment, if one exists.
135
134
  * @returns {Array.<Object>}
136
135
  */
137
- getAllEncryptionData(): IContentProtection[];
136
+ getAllEncryptionData(): IRepresentationProtectionData[];
138
137
  /**
139
138
  * Add new encryption initialization data to this Representation if it was not
140
139
  * already included.
@@ -156,4 +155,37 @@ declare class Representation {
156
155
  data: Uint8Array;
157
156
  }>): boolean;
158
157
  }
158
+ /** Protection data as returned by a Representation. */
159
+ export interface IRepresentationProtectionData {
160
+ /**
161
+ * Initialization data type.
162
+ * String describing the format of the initialization data sent through this
163
+ * event.
164
+ * https://www.w3.org/TR/eme-initdata-registry/
165
+ */
166
+ type: string;
167
+ /**
168
+ * The key ids linked to those initialization data.
169
+ * This should be the key ids for the key concerned by the media which have
170
+ * the present initialization data.
171
+ *
172
+ * `undefined` when not known (different from an empty array - which would
173
+ * just mean that there's no key id involved).
174
+ */
175
+ keyIds: Uint8Array[] | undefined;
176
+ /** Every initialization data for that type. */
177
+ values: Array<{
178
+ /**
179
+ * Hex encoded system id, which identifies the key system.
180
+ * https://dashif.org/identifiers/content_protection/
181
+ */
182
+ systemId: string;
183
+ /**
184
+ * The initialization data itself for that type and systemId.
185
+ * For example, with "cenc" initialization data found in an ISOBMFF file,
186
+ * this will be the whole PSSH box.
187
+ */
188
+ data: Uint8Array;
189
+ }>;
190
+ }
159
191
  export default Representation;
@@ -28,14 +28,14 @@ export interface ISmoothInitSegmentPrivateInfos {
28
28
  * as found in the Manifest.
29
29
  */
30
30
  timescale: number;
31
- codecPrivateData?: string;
32
- bitsPerSample?: number;
33
- channels?: number;
34
- packetSize?: number;
35
- samplingRate?: number;
31
+ codecPrivateData?: string | undefined;
32
+ bitsPerSample?: number | undefined;
33
+ channels?: number | undefined;
34
+ packetSize?: number | undefined;
35
+ samplingRate?: number | undefined;
36
36
  protection?: {
37
37
  keyId: Uint8Array;
38
- };
38
+ } | undefined;
39
39
  }
40
40
  /**
41
41
  * Supplementary information specific to Smooth media segments (that is, every
@@ -69,7 +69,7 @@ export interface IMetaPlaylistPrivateInfos {
69
69
  /** The segment originally created by this transport's RepresentationIndex. */
70
70
  originalSegment: ISegment;
71
71
  contentStart: number;
72
- contentEnd?: number;
72
+ contentEnd?: number | undefined;
73
73
  }
74
74
  /**
75
75
  * Supplementary information needed for initialization segments of the "local"
@@ -99,12 +99,12 @@ export interface ILocalManifestSegmentPrivateInfos {
99
99
  * exploited by the corresponding transport logic.
100
100
  */
101
101
  export interface IPrivateInfos {
102
- smoothInitSegment?: ISmoothInitSegmentPrivateInfos;
103
- smoothMediaSegment?: ISmoothSegmentPrivateInfos;
104
- metaplaylistInfos?: IMetaPlaylistPrivateInfos;
105
- localManifestInitSegment?: ILocalManifestInitSegmentPrivateInfos;
106
- localManifestSegment?: ILocalManifestSegmentPrivateInfos;
107
- isEMSGWhitelisted?: (evt: IEMSG) => boolean;
102
+ smoothInitSegment?: ISmoothInitSegmentPrivateInfos | undefined;
103
+ smoothMediaSegment?: ISmoothSegmentPrivateInfos | undefined;
104
+ metaplaylistInfos?: IMetaPlaylistPrivateInfos | undefined;
105
+ localManifestInitSegment?: ILocalManifestInitSegmentPrivateInfos | undefined;
106
+ localManifestSegment?: ILocalManifestSegmentPrivateInfos | undefined;
107
+ isEMSGWhitelisted?: ((evt: IEMSG) => boolean) | undefined;
108
108
  }
109
109
  /** Represent a single Segment from a Representation. */
110
110
  export interface ISegment {
@@ -135,24 +135,24 @@ export interface ISegment {
135
135
  * contain an index describing other Segments
136
136
  * TODO put in privateInfos?
137
137
  */
138
- indexRange?: [number, number];
138
+ indexRange?: [number, number] | undefined;
139
139
  /**
140
140
  * Optional number of the Segment
141
141
  * TODO put in privateInfos?
142
142
  */
143
- number?: number;
143
+ number?: number | undefined;
144
144
  /**
145
145
  * Allows to store supplementary information on a segment that can be later
146
146
  * exploited by the transport logic.
147
147
  */
148
- privateInfos?: IPrivateInfos;
148
+ privateInfos?: IPrivateInfos | undefined;
149
149
  /** Optional byte range to retrieve the Segment from its URL(s) */
150
- range?: [number, number];
150
+ range?: [number, number] | undefined;
151
151
  /**
152
152
  * Estimated time, in seconds, at which the concerned segment should be
153
153
  * offseted when decoded.
154
154
  */
155
- timestampOffset?: number;
155
+ timestampOffset?: number | undefined;
156
156
  /**
157
157
  * Estimated start time for the segment, in seconds.
158
158
  * Note that some rounding errors and some differences between what the