rx-player 4.1.0 → 4.2.0-dev.2024080600

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 (1030) hide show
  1. package/CHANGELOG.md +5 -10
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  6. package/dist/commonjs/compat/add_class_name.js +1 -1
  7. package/dist/commonjs/compat/add_text_track.d.ts +2 -2
  8. package/dist/commonjs/compat/add_text_track.d.ts.map +1 -1
  9. package/dist/commonjs/compat/add_text_track.js +1 -1
  10. package/dist/commonjs/compat/browser_compatibility_types.d.ts +196 -13
  11. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  12. package/dist/commonjs/compat/browser_compatibility_types.js +29 -0
  13. package/dist/commonjs/compat/browser_version.js +1 -2
  14. package/dist/commonjs/compat/can_patch_isobmff.js +1 -1
  15. package/dist/commonjs/compat/can_rely_on_request_media_key_system_access.js +1 -2
  16. package/dist/commonjs/compat/can_rely_on_video_visibility_and_size.js +1 -1
  17. package/dist/commonjs/compat/can_reuse_media_keys.js +1 -1
  18. package/dist/commonjs/compat/change_source_buffer_type.js +1 -1
  19. package/dist/commonjs/compat/clear_element_src.d.ts +2 -1
  20. package/dist/commonjs/compat/clear_element_src.d.ts.map +1 -1
  21. package/dist/commonjs/compat/clear_element_src.js +1 -1
  22. package/dist/commonjs/compat/eme/close_session.js +1 -1
  23. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.d.ts +3 -2
  24. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.d.ts.map +1 -1
  25. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.js +1 -1
  26. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +2 -1
  27. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts.map +1 -1
  28. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.js +2 -3
  29. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +3 -2
  30. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts.map +1 -1
  31. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.js +2 -3
  32. package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts +5 -1
  33. package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts.map +1 -1
  34. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts +4 -3
  35. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
  36. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.js +3 -4
  37. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts.map +1 -1
  38. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +1 -2
  39. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts +4 -3
  40. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts.map +1 -1
  41. package/dist/commonjs/compat/eme/eme-api-implementation.js +19 -5
  42. package/dist/commonjs/compat/eme/generate_key_request.js +2 -3
  43. package/dist/commonjs/compat/eme/get_init_data.d.ts +3 -1
  44. package/dist/commonjs/compat/eme/get_init_data.d.ts.map +1 -1
  45. package/dist/commonjs/compat/eme/get_init_data.js +3 -3
  46. package/dist/commonjs/compat/eme/get_uuid_kid_from_keystatus_kid.js +1 -1
  47. package/dist/commonjs/compat/eme/get_webkit_fairplay_initdata.js +1 -1
  48. package/dist/commonjs/compat/eme/load_session.js +1 -1
  49. package/dist/commonjs/compat/eme/set_media_keys.d.ts +2 -1
  50. package/dist/commonjs/compat/eme/set_media_keys.d.ts.map +1 -1
  51. package/dist/commonjs/compat/eme/set_media_keys.js +1 -2
  52. package/dist/commonjs/compat/enable_audio_track.js +1 -1
  53. package/dist/commonjs/compat/event_listeners.d.ts +26 -24
  54. package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
  55. package/dist/commonjs/compat/event_listeners.js +9 -21
  56. package/dist/commonjs/compat/generate_init_data.js +2 -2
  57. package/dist/commonjs/compat/get_start_date.d.ts +2 -1
  58. package/dist/commonjs/compat/get_start_date.d.ts.map +1 -1
  59. package/dist/commonjs/compat/get_start_date.js +1 -1
  60. package/dist/commonjs/compat/has_issues_with_high_media_source_duration.js +1 -1
  61. package/dist/commonjs/compat/has_worker_api.js +1 -1
  62. package/dist/commonjs/compat/is_codec_supported.js +1 -1
  63. package/dist/commonjs/compat/is_debug_mode_enabled.js +1 -1
  64. package/dist/commonjs/compat/is_vtt_cue.js +1 -1
  65. package/dist/commonjs/compat/make_vtt_cue.js +1 -1
  66. package/dist/commonjs/compat/on_height_width_change.js +1 -1
  67. package/dist/commonjs/compat/patch_webkit_source_buffer.js +1 -1
  68. package/dist/commonjs/compat/remove_cue.js +1 -1
  69. package/dist/commonjs/compat/should_await_set_media_keys.js +1 -1
  70. package/dist/commonjs/compat/should_favour_custom_safari_EME.js +1 -1
  71. package/dist/commonjs/compat/should_reload_media_source_on_decipherability_update.js +1 -1
  72. package/dist/commonjs/compat/should_renew_media_key_system_access.js +1 -1
  73. package/dist/commonjs/compat/should_unset_media_keys.js +1 -1
  74. package/dist/commonjs/compat/should_validate_metadata.js +1 -1
  75. package/dist/commonjs/compat/should_wait_for_data_before_loaded.js +1 -1
  76. package/dist/commonjs/compat/should_wait_for_have_enough_data.js +1 -1
  77. package/dist/commonjs/config.d.ts +1 -1
  78. package/dist/commonjs/core/adaptive/adaptive_representation_selector.js +1 -1
  79. package/dist/commonjs/core/adaptive/network_analyzer.js +1 -2
  80. package/dist/commonjs/core/adaptive/utils/filter_by_bitrate.js +1 -1
  81. package/dist/commonjs/core/adaptive/utils/filter_by_resolution.js +1 -1
  82. package/dist/commonjs/core/adaptive/utils/get_buffer_levels.js +1 -1
  83. package/dist/commonjs/core/adaptive/utils/select_optimal_representation.js +1 -1
  84. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts +121 -0
  85. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -0
  86. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +341 -0
  87. package/dist/commonjs/core/cmcd/index.d.ts +4 -0
  88. package/dist/commonjs/core/cmcd/index.d.ts.map +1 -0
  89. package/dist/commonjs/core/cmcd/index.js +4 -0
  90. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +8 -0
  91. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  92. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +14 -11
  93. package/dist/commonjs/core/fetchers/segment/prioritized_segment_fetcher.js +1 -1
  94. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +43 -23
  95. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  96. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +25 -37
  97. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -3
  98. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts.map +1 -1
  99. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.js +13 -5
  100. package/dist/commonjs/core/fetchers/utils/error_selector.js +1 -1
  101. package/dist/commonjs/core/fetchers/utils/schedule_request.js +2 -3
  102. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.js +1 -1
  103. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.js +1 -1
  104. package/dist/commonjs/core/main/worker/content_preparer.d.ts +7 -0
  105. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -1
  106. package/dist/commonjs/core/main/worker/content_preparer.js +5 -2
  107. package/dist/commonjs/core/main/worker/send_message.js +2 -3
  108. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
  109. package/dist/commonjs/core/main/worker/worker_main.js +28 -38
  110. package/dist/commonjs/core/segment_sinks/garbage_collector.js +1 -1
  111. package/dist/commonjs/core/segment_sinks/inventory/utils.js +2 -3
  112. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +1 -1
  113. package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.js +1 -1
  114. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.js +1 -1
  115. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +1 -1
  116. package/dist/commonjs/core/stream/period/period_stream.js +1 -1
  117. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +1 -1
  118. package/dist/commonjs/core/stream/representation/representation_stream.js +1 -1
  119. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.js +1 -1
  120. package/dist/commonjs/core/stream/representation/utils/check_for_discontinuity.js +1 -1
  121. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +1 -1
  122. package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +1 -1
  123. package/dist/commonjs/core/stream/representation/utils/get_segment_priority.js +1 -1
  124. package/dist/commonjs/core/stream/representation/utils/push_init_segment.js +7 -7
  125. package/dist/commonjs/core/stream/representation/utils/push_media_segment.js +10 -10
  126. package/dist/commonjs/default_config.d.ts +1 -1
  127. package/dist/commonjs/default_config.d.ts.map +1 -1
  128. package/dist/commonjs/default_config.js +1 -0
  129. package/dist/commonjs/errors/error_message.js +1 -1
  130. package/dist/commonjs/errors/format_error.js +1 -1
  131. package/dist/commonjs/errors/is_known_error.js +1 -1
  132. package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
  133. package/dist/commonjs/experimental/features/local.js +1 -4
  134. package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
  135. package/dist/commonjs/experimental/features/metaplaylist.js +1 -4
  136. package/dist/commonjs/experimental/features/multi_thread.js +1 -2
  137. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/features/dash.js +1 -1
  138. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +1 -1
  139. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +1 -1
  140. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +2 -1
  141. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  142. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -1
  143. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -1
  144. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts.map +1 -1
  145. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +1 -1
  146. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
  147. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +14 -8
  148. package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +1 -1
  149. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  150. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.js +1 -1
  151. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/capabilities.js +1 -1
  152. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +1 -1
  153. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +1 -1
  154. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +1 -1
  155. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  156. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +3 -3
  157. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +1 -1
  158. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +1 -1
  159. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +1 -1
  160. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -1
  161. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/utils.js +2 -3
  162. package/dist/commonjs/features/add_features.js +1 -1
  163. package/dist/commonjs/features/features_object.d.ts.map +1 -1
  164. package/dist/commonjs/features/features_object.js +0 -1
  165. package/dist/commonjs/features/list/dash.d.ts.map +1 -1
  166. package/dist/commonjs/features/list/dash.js +1 -4
  167. package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
  168. package/dist/commonjs/features/list/dash_wasm.js +0 -2
  169. package/dist/commonjs/features/list/debug_element.js +1 -2
  170. package/dist/commonjs/features/list/directfile.js +1 -2
  171. package/dist/commonjs/features/list/eme.js +1 -2
  172. package/dist/commonjs/features/list/html_sami_parser.js +1 -2
  173. package/dist/commonjs/features/list/html_srt_parser.js +1 -2
  174. package/dist/commonjs/features/list/html_text_buffer.js +1 -2
  175. package/dist/commonjs/features/list/html_ttml_parser.js +1 -2
  176. package/dist/commonjs/features/list/html_vtt_parser.js +1 -2
  177. package/dist/commonjs/features/list/media_source_main.js +1 -2
  178. package/dist/commonjs/features/list/native_sami_parser.js +1 -2
  179. package/dist/commonjs/features/list/native_srt_parser.js +1 -2
  180. package/dist/commonjs/features/list/native_text_buffer.js +1 -2
  181. package/dist/commonjs/features/list/native_ttml_parser.js +1 -2
  182. package/dist/commonjs/features/list/native_vtt_parser.js +1 -2
  183. package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
  184. package/dist/commonjs/features/list/smooth.js +1 -4
  185. package/dist/commonjs/features/types.d.ts +3 -11
  186. package/dist/commonjs/features/types.d.ts.map +1 -1
  187. package/dist/commonjs/index.js +2 -2
  188. package/dist/commonjs/main_thread/api/debug/modules/general_info.js +1 -1
  189. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +1 -1
  190. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_size.js +1 -1
  191. package/dist/commonjs/main_thread/api/debug/render.js +1 -1
  192. package/dist/commonjs/main_thread/api/debug/utils.js +5 -6
  193. package/dist/commonjs/main_thread/api/option_utils.d.ts +9 -2
  194. package/dist/commonjs/main_thread/api/option_utils.d.ts.map +1 -1
  195. package/dist/commonjs/main_thread/api/option_utils.js +7 -9
  196. package/dist/commonjs/main_thread/api/public_api.d.ts +23 -2
  197. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  198. package/dist/commonjs/main_thread/api/public_api.js +50 -12
  199. package/dist/commonjs/main_thread/api/utils.d.ts +5 -4
  200. package/dist/commonjs/main_thread/api/utils.d.ts.map +1 -1
  201. package/dist/commonjs/main_thread/api/utils.js +5 -6
  202. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts +3 -2
  203. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts.map +1 -1
  204. package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +8 -9
  205. package/dist/commonjs/main_thread/decrypt/clear_on_stop.d.ts +2 -1
  206. package/dist/commonjs/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  207. package/dist/commonjs/main_thread/decrypt/clear_on_stop.js +1 -1
  208. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts +26 -1
  209. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  210. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +86 -13
  211. package/dist/commonjs/main_thread/decrypt/create_or_load_session.js +1 -1
  212. package/dist/commonjs/main_thread/decrypt/create_session.js +1 -1
  213. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.d.ts +2 -1
  214. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  215. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.js +1 -1
  216. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts +17 -2
  217. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  218. package/dist/commonjs/main_thread/decrypt/find_key_system.js +73 -3
  219. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.d.ts +2 -1
  220. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.d.ts.map +1 -1
  221. package/dist/commonjs/main_thread/decrypt/get_key_system_configuration.js +1 -1
  222. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts +5 -1
  223. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  224. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +5 -3
  225. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts +2 -1
  226. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  227. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +1 -1
  228. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +1 -1
  229. package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +5 -4
  230. package/dist/commonjs/main_thread/decrypt/types.d.ts +1 -0
  231. package/dist/commonjs/main_thread/decrypt/types.d.ts.map +1 -1
  232. package/dist/commonjs/main_thread/decrypt/utils/are_init_values_compatible.js +1 -1
  233. package/dist/commonjs/main_thread/decrypt/utils/check_key_statuses.js +1 -1
  234. package/dist/commonjs/main_thread/decrypt/utils/clean_old_loaded_sessions.js +1 -1
  235. package/dist/commonjs/main_thread/decrypt/utils/clean_old_stored_persistent_info.js +1 -1
  236. package/dist/commonjs/main_thread/decrypt/utils/get_drm_system_id.js +1 -1
  237. package/dist/commonjs/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts +14 -0
  238. package/dist/commonjs/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts.map +1 -0
  239. package/dist/commonjs/main_thread/decrypt/utils/is_compatible_codec_supported.js +53 -0
  240. package/dist/commonjs/main_thread/decrypt/utils/is_session_usable.js +1 -1
  241. package/dist/commonjs/main_thread/decrypt/utils/key_id_comparison.js +2 -3
  242. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts +4 -3
  243. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +1 -1
  244. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts +6 -1
  245. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  246. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +2 -13
  247. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +62 -4
  248. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  249. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +163 -28
  250. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +46 -4
  251. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  252. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +78 -140
  253. package/dist/commonjs/main_thread/init/send_message.js +1 -1
  254. package/dist/commonjs/main_thread/init/types.d.ts +6 -1
  255. package/dist/commonjs/main_thread/init/types.d.ts.map +1 -1
  256. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +3 -4
  257. package/dist/commonjs/main_thread/init/utils/create_media_source.d.ts +3 -2
  258. package/dist/commonjs/main_thread/init/utils/create_media_source.d.ts.map +1 -1
  259. package/dist/commonjs/main_thread/init/utils/create_media_source.js +2 -3
  260. package/dist/commonjs/main_thread/init/utils/get_initial_time.js +1 -1
  261. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts +2 -1
  262. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts.map +1 -1
  263. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.js +1 -1
  264. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts +2 -1
  265. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  266. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +1 -1
  267. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.d.ts +17 -6
  268. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.d.ts.map +1 -1
  269. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.js +17 -22
  270. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +2 -1
  271. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  272. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.d.ts +2 -1
  273. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.d.ts.map +1 -1
  274. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.js +1 -1
  275. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +33 -0
  276. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -0
  277. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +224 -0
  278. package/dist/commonjs/main_thread/text_displayer/html/html_parsers.js +1 -1
  279. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.d.ts +2 -1
  280. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.d.ts.map +1 -1
  281. package/dist/commonjs/main_thread/text_displayer/html/update_proportional_elements.js +1 -1
  282. package/dist/commonjs/main_thread/text_displayer/html/utils.js +5 -6
  283. package/dist/commonjs/main_thread/text_displayer/native/native_parsers.js +1 -1
  284. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +2 -1
  285. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  286. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts +6 -1
  287. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  288. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts +5 -2
  289. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  290. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.js +7 -26
  291. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +49 -25
  292. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  293. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +263 -103
  294. package/dist/commonjs/manifest/classes/adaptation.d.ts +9 -9
  295. package/dist/commonjs/manifest/classes/adaptation.d.ts.map +1 -1
  296. package/dist/commonjs/manifest/classes/adaptation.js +50 -24
  297. package/dist/commonjs/manifest/classes/codec_support_cache.d.ts +45 -0
  298. package/dist/commonjs/manifest/classes/codec_support_cache.d.ts.map +1 -0
  299. package/dist/commonjs/manifest/classes/codec_support_cache.js +84 -0
  300. package/dist/commonjs/manifest/classes/index.d.ts +2 -2
  301. package/dist/commonjs/manifest/classes/index.d.ts.map +1 -1
  302. package/dist/commonjs/manifest/classes/manifest.d.ts +28 -6
  303. package/dist/commonjs/manifest/classes/manifest.d.ts.map +1 -1
  304. package/dist/commonjs/manifest/classes/manifest.js +46 -7
  305. package/dist/commonjs/manifest/classes/period.d.ts +6 -7
  306. package/dist/commonjs/manifest/classes/period.d.ts.map +1 -1
  307. package/dist/commonjs/manifest/classes/period.js +23 -14
  308. package/dist/commonjs/manifest/classes/representation.d.ts +10 -11
  309. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  310. package/dist/commonjs/manifest/classes/representation.js +64 -68
  311. package/dist/commonjs/manifest/classes/update_period_in_place.js +1 -1
  312. package/dist/commonjs/manifest/classes/update_periods.js +2 -3
  313. package/dist/commonjs/manifest/classes/utils.js +2 -3
  314. package/dist/commonjs/manifest/index.d.ts +2 -2
  315. package/dist/commonjs/manifest/types.d.ts +32 -5
  316. package/dist/commonjs/manifest/types.d.ts.map +1 -1
  317. package/dist/commonjs/manifest/utils.d.ts +1 -1
  318. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  319. package/dist/commonjs/manifest/utils.js +36 -20
  320. package/dist/commonjs/minimal.d.ts.map +1 -1
  321. package/dist/commonjs/minimal.js +2 -8
  322. package/dist/commonjs/mse/index.d.ts +1 -1
  323. package/dist/commonjs/mse/index.d.ts.map +1 -1
  324. package/dist/commonjs/mse/main_media_source_interface.d.ts +2 -1
  325. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  326. package/dist/commonjs/mse/main_media_source_interface.js +5 -4
  327. package/dist/commonjs/mse/types.d.ts +0 -29
  328. package/dist/commonjs/mse/types.d.ts.map +1 -1
  329. package/dist/commonjs/mse/utils/end_of_stream.d.ts +3 -2
  330. package/dist/commonjs/mse/utils/end_of_stream.d.ts.map +1 -1
  331. package/dist/commonjs/mse/utils/end_of_stream.js +2 -3
  332. package/dist/commonjs/mse/utils/media_source_duration_updater.d.ts +2 -1
  333. package/dist/commonjs/mse/utils/media_source_duration_updater.d.ts.map +1 -1
  334. package/dist/commonjs/multithread_types.d.ts +26 -14
  335. package/dist/commonjs/multithread_types.d.ts.map +1 -1
  336. package/dist/commonjs/parsers/containers/isobmff/create_box.js +2 -3
  337. package/dist/commonjs/parsers/containers/isobmff/drm/playready.js +1 -2
  338. package/dist/commonjs/parsers/containers/isobmff/extract_complete_chunks.js +1 -1
  339. package/dist/commonjs/parsers/containers/isobmff/find_complete_box.js +1 -1
  340. package/dist/commonjs/parsers/containers/isobmff/get_box.js +7 -8
  341. package/dist/commonjs/parsers/containers/isobmff/read.js +5 -6
  342. package/dist/commonjs/parsers/containers/isobmff/take_pssh_out.js +2 -3
  343. package/dist/commonjs/parsers/containers/isobmff/utils.js +9 -9
  344. package/dist/commonjs/parsers/containers/matroska/utils.js +2 -3
  345. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -2
  346. package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
  347. package/dist/commonjs/parsers/manifest/dash/common/get_clock_offset.js +1 -1
  348. package/dist/commonjs/parsers/manifest/dash/common/get_hdr_information.js +1 -2
  349. package/dist/commonjs/parsers/manifest/dash/common/get_http_utc-timing_url.js +1 -1
  350. package/dist/commonjs/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +1 -1
  351. package/dist/commonjs/parsers/manifest/dash/common/get_periods_time_infos.js +1 -1
  352. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_init_segment.js +1 -1
  353. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +1 -1
  354. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts.map +1 -1
  355. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +1 -1
  356. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +1 -1
  357. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +1 -1
  358. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +1 -1
  359. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +1 -1
  360. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +2 -3
  361. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts.map +1 -1
  362. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +4 -4
  363. package/dist/commonjs/parsers/manifest/dash/common/indexes/tokens.js +3 -4
  364. package/dist/commonjs/parsers/manifest/dash/common/indexes/utils.js +1 -2
  365. package/dist/commonjs/parsers/manifest/dash/common/infer_adaptation_type.js +1 -1
  366. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +6 -2
  367. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts.map +1 -1
  368. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -3
  369. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +1 -1
  370. package/dist/commonjs/parsers/manifest/dash/common/parse_availability_start_time.js +1 -1
  371. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +16 -2
  372. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +1 -1
  373. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +1 -1
  374. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +1 -1
  375. package/dist/commonjs/parsers/manifest/dash/common/resolve_base_urls.js +1 -1
  376. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.js +1 -2
  377. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/BaseURL.js +1 -1
  378. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentComponent.js +1 -1
  379. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentProtection.js +1 -1
  380. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/EventStream.js +1 -2
  381. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Initialization.js +1 -1
  382. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.js +1 -2
  383. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Period.js +1 -2
  384. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.js +1 -2
  385. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentBase.js +1 -1
  386. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentList.js +1 -1
  387. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTemplate.js +1 -1
  388. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTimeline.js +1 -1
  389. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentURL.js +1 -1
  390. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts.map +1 -1
  391. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.js +13 -13
  392. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/parse_from_xml_string.js +1 -1
  393. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.js +1 -2
  394. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/BaseURL.js +1 -1
  395. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/ContentComponent.js +1 -1
  396. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/ContentProtection.js +1 -1
  397. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/EventStream.js +1 -1
  398. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Initialization.js +1 -1
  399. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/MPD.js +1 -2
  400. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Period.js +1 -2
  401. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Representation.js +1 -2
  402. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentBase.js +1 -1
  403. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentList.js +1 -1
  404. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTemplate.js +1 -1
  405. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTimeline.js +1 -1
  406. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentURL.js +1 -1
  407. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts.map +1 -1
  408. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.js +12 -12
  409. package/dist/commonjs/parsers/manifest/dash/native-parser/parse_from_document.js +1 -1
  410. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +2 -3
  411. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +1 -2
  412. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +1 -2
  413. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +1 -2
  414. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -3
  415. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +2 -3
  416. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +2 -3
  417. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +2 -3
  418. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +1 -2
  419. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +1 -2
  420. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +1 -2
  421. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +1 -2
  422. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +1 -2
  423. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +1 -2
  424. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/root.js +1 -2
  425. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/utils.js +2 -3
  426. package/dist/commonjs/parsers/manifest/local/parse_local_manifest.js +1 -1
  427. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +1 -1
  428. package/dist/commonjs/parsers/manifest/smooth/get_codecs.js +2 -3
  429. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +1 -1
  430. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +1 -1
  431. package/dist/commonjs/parsers/manifest/smooth/utils/add_segment_infos.js +1 -1
  432. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.js +1 -1
  433. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +1 -1
  434. package/dist/commonjs/parsers/manifest/smooth/utils/tokens.js +2 -3
  435. package/dist/commonjs/parsers/manifest/utils/check_manifest_ids.js +1 -1
  436. package/dist/commonjs/parsers/manifest/utils/clear_timeline_from_position.js +1 -1
  437. package/dist/commonjs/parsers/manifest/utils/get_first_time_from_adaptation.js +1 -1
  438. package/dist/commonjs/parsers/manifest/utils/get_last_time_from_adaptation.js +1 -1
  439. package/dist/commonjs/parsers/manifest/utils/get_maximum_positions.js +1 -1
  440. package/dist/commonjs/parsers/manifest/utils/get_minimum_position.js +1 -1
  441. package/dist/commonjs/parsers/manifest/utils/index_helpers.js +6 -7
  442. package/dist/commonjs/parsers/manifest/utils/update_segment_timeline.js +1 -1
  443. package/dist/commonjs/parsers/texttracks/srt/find_end_of_cue_block.js +1 -1
  444. package/dist/commonjs/parsers/texttracks/srt/get_cue_blocks.js +1 -1
  445. package/dist/commonjs/parsers/texttracks/srt/html.js +1 -1
  446. package/dist/commonjs/parsers/texttracks/srt/native.js +1 -1
  447. package/dist/commonjs/parsers/texttracks/srt/parse_cue.js +1 -1
  448. package/dist/commonjs/parsers/texttracks/srt/parse_timestamp.js +1 -1
  449. package/dist/commonjs/parsers/texttracks/ttml/get_parameters.js +1 -1
  450. package/dist/commonjs/parsers/texttracks/ttml/get_styling.js +2 -3
  451. package/dist/commonjs/parsers/texttracks/ttml/get_time_delimiters.js +1 -1
  452. package/dist/commonjs/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -3
  453. package/dist/commonjs/parsers/texttracks/ttml/html/apply_extent.js +1 -1
  454. package/dist/commonjs/parsers/texttracks/ttml/html/apply_font_size.js +1 -1
  455. package/dist/commonjs/parsers/texttracks/ttml/html/apply_line_height.js +1 -1
  456. package/dist/commonjs/parsers/texttracks/ttml/html/apply_origin.js +1 -1
  457. package/dist/commonjs/parsers/texttracks/ttml/html/apply_padding.js +1 -1
  458. package/dist/commonjs/parsers/texttracks/ttml/html/create_element.js +1 -1
  459. package/dist/commonjs/parsers/texttracks/ttml/html/generate_css_test_outline.js +1 -1
  460. package/dist/commonjs/parsers/texttracks/ttml/html/parse_cue.js +1 -1
  461. package/dist/commonjs/parsers/texttracks/ttml/html/parse_ttml_to_div.js +1 -1
  462. package/dist/commonjs/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +1 -1
  463. package/dist/commonjs/parsers/texttracks/ttml/native/parse_cue.js +1 -1
  464. package/dist/commonjs/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +1 -1
  465. package/dist/commonjs/parsers/texttracks/ttml/parse_ttml.js +1 -1
  466. package/dist/commonjs/parsers/texttracks/ttml/resolve_styles_inheritance.js +1 -1
  467. package/dist/commonjs/parsers/texttracks/ttml/xml_utils.js +9 -10
  468. package/dist/commonjs/parsers/texttracks/webvtt/get_cue_blocks.js +1 -1
  469. package/dist/commonjs/parsers/texttracks/webvtt/get_style_blocks.js +1 -1
  470. package/dist/commonjs/parsers/texttracks/webvtt/html/convert_payload_to_html.js +1 -1
  471. package/dist/commonjs/parsers/texttracks/webvtt/html/create_default_style_elements.js +1 -1
  472. package/dist/commonjs/parsers/texttracks/webvtt/html/create_style_attribute.js +1 -1
  473. package/dist/commonjs/parsers/texttracks/webvtt/html/create_styled_element.js +1 -1
  474. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_style_block.js +1 -1
  475. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +1 -1
  476. package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.js +1 -1
  477. package/dist/commonjs/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +1 -1
  478. package/dist/commonjs/parsers/texttracks/webvtt/native/set_settings_on_cue.js +1 -1
  479. package/dist/commonjs/parsers/texttracks/webvtt/native/to_native_cue.js +1 -1
  480. package/dist/commonjs/parsers/texttracks/webvtt/parse_cue_block.js +1 -1
  481. package/dist/commonjs/parsers/texttracks/webvtt/parse_timestamp.js +1 -1
  482. package/dist/commonjs/parsers/texttracks/webvtt/utils.js +6 -7
  483. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +2 -1
  484. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  485. package/dist/commonjs/playback_observer/media_element_playback_observer.js +3 -5
  486. package/dist/commonjs/playback_observer/utils/generate_read_only_observer.js +1 -1
  487. package/dist/commonjs/public_types.d.ts +77 -0
  488. package/dist/commonjs/public_types.d.ts.map +1 -1
  489. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.d.ts.map +1 -1
  490. package/dist/commonjs/tools/parseBIFThumbnails/index.js +1 -1
  491. package/dist/commonjs/transports/dash/construct_segment_url.js +1 -1
  492. package/dist/commonjs/transports/dash/get_events_out_of_emsgs.js +1 -1
  493. package/dist/commonjs/transports/dash/init_segment_loader.d.ts +2 -2
  494. package/dist/commonjs/transports/dash/init_segment_loader.d.ts.map +1 -1
  495. package/dist/commonjs/transports/dash/init_segment_loader.js +26 -7
  496. package/dist/commonjs/transports/dash/integrity_checks.d.ts +18 -0
  497. package/dist/commonjs/transports/dash/integrity_checks.d.ts.map +1 -0
  498. package/dist/commonjs/transports/dash/integrity_checks.js +209 -0
  499. package/dist/commonjs/transports/dash/{low_latency_segment_loader.d.ts → load_chunked_segment_data.d.ts} +14 -5
  500. package/dist/commonjs/transports/dash/load_chunked_segment_data.d.ts.map +1 -0
  501. package/dist/commonjs/transports/dash/load_chunked_segment_data.js +126 -0
  502. package/dist/commonjs/transports/dash/manifest_parser.js +1 -1
  503. package/dist/commonjs/transports/dash/pipelines.d.ts.map +1 -1
  504. package/dist/commonjs/transports/dash/pipelines.js +4 -2
  505. package/dist/commonjs/transports/dash/segment_loader.d.ts +2 -2
  506. package/dist/commonjs/transports/dash/segment_loader.d.ts.map +1 -1
  507. package/dist/commonjs/transports/dash/segment_loader.js +105 -31
  508. package/dist/commonjs/transports/dash/segment_parser.js +1 -1
  509. package/dist/commonjs/transports/dash/text_loader.d.ts.map +1 -1
  510. package/dist/commonjs/transports/dash/text_loader.js +122 -46
  511. package/dist/commonjs/transports/dash/text_parser.js +1 -1
  512. package/dist/commonjs/transports/local/pipelines.d.ts.map +1 -1
  513. package/dist/commonjs/transports/local/pipelines.js +2 -1
  514. package/dist/commonjs/transports/local/segment_loader.js +1 -1
  515. package/dist/commonjs/transports/local/segment_parser.js +1 -1
  516. package/dist/commonjs/transports/local/text_parser.js +1 -1
  517. package/dist/commonjs/transports/metaplaylist/manifest_loader.d.ts.map +1 -1
  518. package/dist/commonjs/transports/metaplaylist/manifest_loader.js +12 -4
  519. package/dist/commonjs/transports/metaplaylist/pipelines.d.ts.map +1 -1
  520. package/dist/commonjs/transports/metaplaylist/pipelines.js +3 -1
  521. package/dist/commonjs/transports/smooth/extract_timings_infos.js +1 -1
  522. package/dist/commonjs/transports/smooth/is_mp4_embedded_track.js +1 -1
  523. package/dist/commonjs/transports/smooth/isobmff/create_audio_init_segment.js +1 -1
  524. package/dist/commonjs/transports/smooth/isobmff/create_boxes.js +23 -24
  525. package/dist/commonjs/transports/smooth/isobmff/create_init_segment.js +1 -1
  526. package/dist/commonjs/transports/smooth/isobmff/create_traf_box.js +1 -1
  527. package/dist/commonjs/transports/smooth/isobmff/create_video_init_segment.js +1 -1
  528. package/dist/commonjs/transports/smooth/isobmff/get_aaces_header.js +1 -1
  529. package/dist/commonjs/transports/smooth/isobmff/parse_tfrf.js +1 -1
  530. package/dist/commonjs/transports/smooth/isobmff/parse_tfxd.js +1 -1
  531. package/dist/commonjs/transports/smooth/isobmff/patch_segment.js +1 -1
  532. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  533. package/dist/commonjs/transports/smooth/pipelines.js +17 -4
  534. package/dist/commonjs/transports/smooth/segment_loader.d.ts.map +1 -1
  535. package/dist/commonjs/transports/smooth/segment_loader.js +82 -26
  536. package/dist/commonjs/transports/smooth/utils.js +2 -3
  537. package/dist/commonjs/transports/types.d.ts +17 -1
  538. package/dist/commonjs/transports/types.d.ts.map +1 -1
  539. package/dist/commonjs/transports/utils/add_query_string.d.ts +13 -0
  540. package/dist/commonjs/transports/utils/add_query_string.d.ts.map +1 -0
  541. package/dist/commonjs/transports/utils/add_query_string.js +54 -0
  542. package/dist/commonjs/transports/utils/byte_range.js +1 -1
  543. package/dist/commonjs/transports/utils/call_custom_manifest_loader.js +3 -3
  544. package/dist/commonjs/transports/utils/check_isobmff_integrity.js +1 -1
  545. package/dist/commonjs/transports/utils/generate_manifest_loader.d.ts +4 -4
  546. package/dist/commonjs/transports/utils/generate_manifest_loader.d.ts.map +1 -1
  547. package/dist/commonjs/transports/utils/generate_manifest_loader.js +20 -8
  548. package/dist/commonjs/transports/utils/get_isobmff_timing_infos.js +1 -1
  549. package/dist/commonjs/transports/utils/infer_segment_container.js +1 -1
  550. package/dist/commonjs/transports/utils/parse_text_track.js +5 -6
  551. package/dist/commonjs/utils/are_arrays_of_numbers_equal.js +1 -1
  552. package/dist/commonjs/utils/are_codecs_compatible.d.ts +4 -0
  553. package/dist/commonjs/utils/are_codecs_compatible.d.ts.map +1 -1
  554. package/dist/commonjs/utils/are_codecs_compatible.js +18 -8
  555. package/dist/commonjs/utils/array_find.js +1 -1
  556. package/dist/commonjs/utils/array_find_index.js +1 -1
  557. package/dist/commonjs/utils/array_includes.js +1 -1
  558. package/dist/commonjs/utils/assert.js +4 -4
  559. package/dist/commonjs/utils/base64.js +2 -3
  560. package/dist/commonjs/utils/byte_parsing.js +15 -16
  561. package/dist/commonjs/utils/cancellable_sleep.js +1 -1
  562. package/dist/commonjs/utils/create_cancellable_promise.js +1 -1
  563. package/dist/commonjs/utils/create_uuid.d.ts +9 -0
  564. package/dist/commonjs/utils/create_uuid.d.ts.map +1 -0
  565. package/dist/commonjs/utils/create_uuid.js +32 -0
  566. package/dist/commonjs/utils/deep_merge.js +1 -1
  567. package/dist/commonjs/utils/flat_map.js +1 -1
  568. package/dist/commonjs/utils/get_fuzzed_delay.js +1 -1
  569. package/dist/commonjs/utils/hash_buffer.js +1 -1
  570. package/dist/commonjs/utils/id_generator.js +1 -1
  571. package/dist/commonjs/utils/is_non_empty_string.js +1 -1
  572. package/dist/commonjs/utils/is_null_or_undefined.js +1 -1
  573. package/dist/commonjs/utils/languages/normalize.js +2 -3
  574. package/dist/commonjs/utils/logger.d.ts +21 -4
  575. package/dist/commonjs/utils/logger.d.ts.map +1 -1
  576. package/dist/commonjs/utils/logger.js +106 -36
  577. package/dist/commonjs/utils/monotonic_timestamp.js +1 -2
  578. package/dist/commonjs/utils/noop.js +1 -1
  579. package/dist/commonjs/utils/object_values.js +1 -2
  580. package/dist/commonjs/utils/ranges.js +22 -23
  581. package/dist/commonjs/utils/reference.js +1 -2
  582. package/dist/commonjs/utils/request/fetch.d.ts +2 -4
  583. package/dist/commonjs/utils/request/fetch.d.ts.map +1 -1
  584. package/dist/commonjs/utils/request/fetch.js +2 -3
  585. package/dist/commonjs/utils/request/xhr.d.ts +1 -3
  586. package/dist/commonjs/utils/request/xhr.d.ts.map +1 -1
  587. package/dist/commonjs/utils/request/xhr.js +1 -1
  588. package/dist/commonjs/utils/resolve_url.js +2 -3
  589. package/dist/commonjs/utils/retry_promise_with_backoff.js +2 -3
  590. package/dist/commonjs/utils/sleep.js +1 -1
  591. package/dist/commonjs/utils/starts_with.js +1 -1
  592. package/dist/commonjs/utils/string_parsing.js +10 -11
  593. package/dist/commonjs/utils/sync_or_async.d.ts +1 -1
  594. package/dist/commonjs/utils/sync_or_async.d.ts.map +1 -1
  595. package/dist/commonjs/utils/warn_once.js +1 -1
  596. package/dist/commonjs/utils/weak_map_memory.js +1 -1
  597. package/dist/commonjs/utils/wrapInPromise.js +1 -1
  598. package/dist/commonjs/utils/xml-parser.js +5 -6
  599. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  600. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  601. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  602. package/dist/es2017/compat/add_text_track.d.ts +2 -2
  603. package/dist/es2017/compat/add_text_track.d.ts.map +1 -1
  604. package/dist/es2017/compat/browser_compatibility_types.d.ts +196 -13
  605. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  606. package/dist/es2017/compat/browser_compatibility_types.js +29 -0
  607. package/dist/es2017/compat/clear_element_src.d.ts +2 -1
  608. package/dist/es2017/compat/clear_element_src.d.ts.map +1 -1
  609. package/dist/es2017/compat/eme/custom_media_keys/ie11_media_keys.d.ts +3 -2
  610. package/dist/es2017/compat/eme/custom_media_keys/ie11_media_keys.d.ts.map +1 -1
  611. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +2 -1
  612. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts.map +1 -1
  613. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.js +1 -2
  614. package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +3 -2
  615. package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts.map +1 -1
  616. package/dist/es2017/compat/eme/custom_media_keys/types.d.ts +5 -1
  617. package/dist/es2017/compat/eme/custom_media_keys/types.d.ts.map +1 -1
  618. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts +4 -3
  619. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
  620. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.js +2 -3
  621. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts.map +1 -1
  622. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +1 -2
  623. package/dist/es2017/compat/eme/eme-api-implementation.d.ts +4 -3
  624. package/dist/es2017/compat/eme/eme-api-implementation.d.ts.map +1 -1
  625. package/dist/es2017/compat/eme/eme-api-implementation.js +19 -5
  626. package/dist/es2017/compat/eme/get_init_data.d.ts +3 -1
  627. package/dist/es2017/compat/eme/get_init_data.d.ts.map +1 -1
  628. package/dist/es2017/compat/eme/get_init_data.js +2 -2
  629. package/dist/es2017/compat/eme/set_media_keys.d.ts +2 -1
  630. package/dist/es2017/compat/eme/set_media_keys.d.ts.map +1 -1
  631. package/dist/es2017/compat/event_listeners.d.ts +26 -24
  632. package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
  633. package/dist/es2017/compat/event_listeners.js +2 -14
  634. package/dist/es2017/compat/get_start_date.d.ts +2 -1
  635. package/dist/es2017/compat/get_start_date.d.ts.map +1 -1
  636. package/dist/es2017/config.d.ts +1 -1
  637. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts +121 -0
  638. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -0
  639. package/dist/es2017/core/cmcd/cmcd_data_builder.js +313 -0
  640. package/dist/es2017/core/cmcd/index.d.ts +4 -0
  641. package/dist/es2017/core/cmcd/index.d.ts.map +1 -0
  642. package/dist/es2017/core/cmcd/index.js +2 -0
  643. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +8 -0
  644. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  645. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +7 -2
  646. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +43 -23
  647. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts.map +1 -1
  648. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +21 -33
  649. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -3
  650. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts.map +1 -1
  651. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.js +14 -6
  652. package/dist/es2017/core/main/worker/content_preparer.d.ts +7 -0
  653. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -1
  654. package/dist/es2017/core/main/worker/content_preparer.js +5 -2
  655. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  656. package/dist/es2017/core/main/worker/worker_main.js +19 -18
  657. package/dist/es2017/default_config.d.ts +1 -1
  658. package/dist/es2017/default_config.d.ts.map +1 -1
  659. package/dist/es2017/default_config.js +1 -0
  660. package/dist/es2017/experimental/features/local.d.ts.map +1 -1
  661. package/dist/es2017/experimental/features/local.js +0 -2
  662. package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
  663. package/dist/es2017/experimental/features/metaplaylist.js +0 -2
  664. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +2 -1
  665. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts.map +1 -1
  666. package/dist/es2017/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -1
  667. package/dist/es2017/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts.map +1 -1
  668. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts.map +1 -1
  669. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +14 -8
  670. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.d.ts.map +1 -1
  671. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.js +1 -1
  672. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.d.ts.map +1 -1
  673. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +1 -0
  674. package/dist/es2017/features/features_object.d.ts.map +1 -1
  675. package/dist/es2017/features/features_object.js +0 -1
  676. package/dist/es2017/features/list/dash.d.ts.map +1 -1
  677. package/dist/es2017/features/list/dash.js +0 -2
  678. package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
  679. package/dist/es2017/features/list/dash_wasm.js +0 -2
  680. package/dist/es2017/features/list/smooth.d.ts.map +1 -1
  681. package/dist/es2017/features/list/smooth.js +0 -2
  682. package/dist/es2017/features/types.d.ts +3 -11
  683. package/dist/es2017/features/types.d.ts.map +1 -1
  684. package/dist/es2017/index.js +2 -2
  685. package/dist/es2017/main_thread/api/option_utils.d.ts +9 -2
  686. package/dist/es2017/main_thread/api/option_utils.d.ts.map +1 -1
  687. package/dist/es2017/main_thread/api/option_utils.js +4 -5
  688. package/dist/es2017/main_thread/api/public_api.d.ts +23 -2
  689. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  690. package/dist/es2017/main_thread/api/public_api.js +43 -11
  691. package/dist/es2017/main_thread/api/utils.d.ts +5 -4
  692. package/dist/es2017/main_thread/api/utils.d.ts.map +1 -1
  693. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts +3 -2
  694. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts.map +1 -1
  695. package/dist/es2017/main_thread/decrypt/clear_on_stop.d.ts +2 -1
  696. package/dist/es2017/main_thread/decrypt/clear_on_stop.d.ts.map +1 -1
  697. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts +26 -1
  698. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  699. package/dist/es2017/main_thread/decrypt/content_decryptor.js +70 -0
  700. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.d.ts +2 -1
  701. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.d.ts.map +1 -1
  702. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts +17 -2
  703. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  704. package/dist/es2017/main_thread/decrypt/find_key_system.js +48 -0
  705. package/dist/es2017/main_thread/decrypt/get_key_system_configuration.d.ts +2 -1
  706. package/dist/es2017/main_thread/decrypt/get_key_system_configuration.d.ts.map +1 -1
  707. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts +5 -1
  708. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  709. package/dist/es2017/main_thread/decrypt/get_media_keys.js +3 -1
  710. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts +2 -1
  711. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts.map +1 -1
  712. package/dist/es2017/main_thread/decrypt/types.d.ts +1 -0
  713. package/dist/es2017/main_thread/decrypt/types.d.ts.map +1 -1
  714. package/dist/es2017/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts +14 -0
  715. package/dist/es2017/main_thread/decrypt/utils/is_compatible_codec_supported.d.ts.map +1 -0
  716. package/dist/es2017/main_thread/decrypt/utils/is_compatible_codec_supported.js +28 -0
  717. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts +4 -3
  718. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +1 -1
  719. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts +6 -1
  720. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  721. package/dist/es2017/main_thread/init/directfile_content_initializer.js +1 -12
  722. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +62 -4
  723. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  724. package/dist/es2017/main_thread/init/media_source_content_initializer.js +142 -19
  725. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +46 -4
  726. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  727. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +67 -133
  728. package/dist/es2017/main_thread/init/types.d.ts +6 -1
  729. package/dist/es2017/main_thread/init/types.d.ts.map +1 -1
  730. package/dist/es2017/main_thread/init/utils/create_media_source.d.ts +3 -2
  731. package/dist/es2017/main_thread/init/utils/create_media_source.d.ts.map +1 -1
  732. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts +2 -1
  733. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts.map +1 -1
  734. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts +2 -1
  735. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  736. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.d.ts +17 -6
  737. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.d.ts.map +1 -1
  738. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.js +16 -21
  739. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +2 -1
  740. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  741. package/dist/es2017/main_thread/init/utils/throw_on_media_error.d.ts +2 -1
  742. package/dist/es2017/main_thread/init/utils/throw_on_media_error.d.ts.map +1 -1
  743. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +33 -0
  744. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -0
  745. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +149 -0
  746. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.d.ts +2 -1
  747. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.d.ts.map +1 -1
  748. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +2 -1
  749. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  750. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts +6 -1
  751. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  752. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts +5 -2
  753. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts.map +1 -1
  754. package/dist/es2017/main_thread/tracks_store/track_dispatcher.js +7 -26
  755. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +49 -25
  756. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  757. package/dist/es2017/main_thread/tracks_store/tracks_store.js +221 -98
  758. package/dist/es2017/manifest/classes/adaptation.d.ts +9 -9
  759. package/dist/es2017/manifest/classes/adaptation.d.ts.map +1 -1
  760. package/dist/es2017/manifest/classes/adaptation.js +50 -24
  761. package/dist/es2017/manifest/classes/codec_support_cache.d.ts +45 -0
  762. package/dist/es2017/manifest/classes/codec_support_cache.d.ts.map +1 -0
  763. package/dist/es2017/manifest/classes/codec_support_cache.js +58 -0
  764. package/dist/es2017/manifest/classes/index.d.ts +2 -2
  765. package/dist/es2017/manifest/classes/index.d.ts.map +1 -1
  766. package/dist/es2017/manifest/classes/manifest.d.ts +28 -6
  767. package/dist/es2017/manifest/classes/manifest.d.ts.map +1 -1
  768. package/dist/es2017/manifest/classes/manifest.js +45 -7
  769. package/dist/es2017/manifest/classes/period.d.ts +6 -7
  770. package/dist/es2017/manifest/classes/period.d.ts.map +1 -1
  771. package/dist/es2017/manifest/classes/period.js +23 -14
  772. package/dist/es2017/manifest/classes/representation.d.ts +10 -11
  773. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  774. package/dist/es2017/manifest/classes/representation.js +56 -60
  775. package/dist/es2017/manifest/index.d.ts +2 -2
  776. package/dist/es2017/manifest/types.d.ts +32 -5
  777. package/dist/es2017/manifest/types.d.ts.map +1 -1
  778. package/dist/es2017/manifest/utils.d.ts +1 -1
  779. package/dist/es2017/manifest/utils.d.ts.map +1 -1
  780. package/dist/es2017/manifest/utils.js +19 -3
  781. package/dist/es2017/minimal.d.ts.map +1 -1
  782. package/dist/es2017/minimal.js +2 -8
  783. package/dist/es2017/mse/index.d.ts +1 -1
  784. package/dist/es2017/mse/index.d.ts.map +1 -1
  785. package/dist/es2017/mse/main_media_source_interface.d.ts +2 -1
  786. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  787. package/dist/es2017/mse/main_media_source_interface.js +5 -4
  788. package/dist/es2017/mse/types.d.ts +0 -29
  789. package/dist/es2017/mse/types.d.ts.map +1 -1
  790. package/dist/es2017/mse/utils/end_of_stream.d.ts +3 -2
  791. package/dist/es2017/mse/utils/end_of_stream.d.ts.map +1 -1
  792. package/dist/es2017/mse/utils/media_source_duration_updater.d.ts +2 -1
  793. package/dist/es2017/mse/utils/media_source_duration_updater.d.ts.map +1 -1
  794. package/dist/es2017/multithread_types.d.ts +26 -14
  795. package/dist/es2017/multithread_types.d.ts.map +1 -1
  796. package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts.map +1 -1
  797. package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +1 -1
  798. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts.map +1 -1
  799. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +2 -1
  800. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +6 -2
  801. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts.map +1 -1
  802. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -3
  803. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +15 -1
  804. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts.map +1 -1
  805. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts.map +1 -1
  806. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +2 -1
  807. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  808. package/dist/es2017/playback_observer/media_element_playback_observer.js +3 -5
  809. package/dist/es2017/public_types.d.ts +77 -0
  810. package/dist/es2017/public_types.d.ts.map +1 -1
  811. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.d.ts.map +1 -1
  812. package/dist/es2017/transports/dash/init_segment_loader.d.ts +2 -2
  813. package/dist/es2017/transports/dash/init_segment_loader.d.ts.map +1 -1
  814. package/dist/es2017/transports/dash/init_segment_loader.js +14 -6
  815. package/dist/es2017/transports/dash/integrity_checks.d.ts +18 -0
  816. package/dist/es2017/transports/dash/integrity_checks.d.ts.map +1 -0
  817. package/dist/es2017/transports/dash/integrity_checks.js +150 -0
  818. package/dist/es2017/transports/dash/{low_latency_segment_loader.d.ts → load_chunked_segment_data.d.ts} +14 -5
  819. package/dist/es2017/transports/dash/load_chunked_segment_data.d.ts.map +1 -0
  820. package/dist/es2017/transports/dash/{low_latency_segment_loader.js → load_chunked_segment_data.js} +15 -12
  821. package/dist/es2017/transports/dash/pipelines.d.ts.map +1 -1
  822. package/dist/es2017/transports/dash/pipelines.js +3 -1
  823. package/dist/es2017/transports/dash/segment_loader.d.ts +2 -2
  824. package/dist/es2017/transports/dash/segment_loader.d.ts.map +1 -1
  825. package/dist/es2017/transports/dash/segment_loader.js +29 -10
  826. package/dist/es2017/transports/dash/text_loader.d.ts.map +1 -1
  827. package/dist/es2017/transports/dash/text_loader.js +40 -20
  828. package/dist/es2017/transports/local/pipelines.d.ts.map +1 -1
  829. package/dist/es2017/transports/local/pipelines.js +1 -0
  830. package/dist/es2017/transports/metaplaylist/manifest_loader.d.ts.map +1 -1
  831. package/dist/es2017/transports/metaplaylist/manifest_loader.js +11 -3
  832. package/dist/es2017/transports/metaplaylist/pipelines.d.ts.map +1 -1
  833. package/dist/es2017/transports/metaplaylist/pipelines.js +2 -0
  834. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  835. package/dist/es2017/transports/smooth/pipelines.js +16 -3
  836. package/dist/es2017/transports/smooth/segment_loader.d.ts.map +1 -1
  837. package/dist/es2017/transports/smooth/segment_loader.js +27 -16
  838. package/dist/es2017/transports/types.d.ts +17 -1
  839. package/dist/es2017/transports/types.d.ts.map +1 -1
  840. package/dist/es2017/transports/utils/add_query_string.d.ts +13 -0
  841. package/dist/es2017/transports/utils/add_query_string.d.ts.map +1 -0
  842. package/dist/es2017/transports/utils/add_query_string.js +51 -0
  843. package/dist/es2017/transports/utils/call_custom_manifest_loader.js +2 -2
  844. package/dist/es2017/transports/utils/generate_manifest_loader.d.ts +4 -4
  845. package/dist/es2017/transports/utils/generate_manifest_loader.d.ts.map +1 -1
  846. package/dist/es2017/transports/utils/generate_manifest_loader.js +19 -7
  847. package/dist/es2017/utils/are_codecs_compatible.d.ts +4 -0
  848. package/dist/es2017/utils/are_codecs_compatible.d.ts.map +1 -1
  849. package/dist/es2017/utils/are_codecs_compatible.js +17 -8
  850. package/dist/es2017/utils/create_uuid.d.ts +9 -0
  851. package/dist/es2017/utils/create_uuid.d.ts.map +1 -0
  852. package/dist/es2017/utils/create_uuid.js +29 -0
  853. package/dist/es2017/utils/logger.d.ts +21 -4
  854. package/dist/es2017/utils/logger.d.ts.map +1 -1
  855. package/dist/es2017/utils/logger.js +73 -13
  856. package/dist/es2017/utils/request/fetch.d.ts +2 -4
  857. package/dist/es2017/utils/request/fetch.d.ts.map +1 -1
  858. package/dist/es2017/utils/request/xhr.d.ts +1 -3
  859. package/dist/es2017/utils/request/xhr.d.ts.map +1 -1
  860. package/dist/es2017/utils/sync_or_async.d.ts +1 -1
  861. package/dist/es2017/utils/sync_or_async.d.ts.map +1 -1
  862. package/dist/es2017/utils/weak_map_memory.js +1 -1
  863. package/dist/mpd-parser.wasm +0 -0
  864. package/dist/rx-player.js +18 -17
  865. package/dist/worker.js +6 -5
  866. package/package.json +31 -35
  867. package/src/README.md +23 -20
  868. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  869. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  870. package/src/compat/__tests__/add_text_track.test.ts +4 -3
  871. package/src/compat/__tests__/change_source_buffer_type.test.ts +4 -3
  872. package/src/compat/add_text_track.ts +2 -2
  873. package/src/compat/browser_compatibility_types.ts +247 -13
  874. package/src/compat/clear_element_src.ts +2 -1
  875. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +6 -6
  876. package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +3 -4
  877. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +4 -5
  878. package/src/compat/eme/custom_media_keys/types.ts +6 -1
  879. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +11 -15
  880. package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +2 -3
  881. package/src/compat/eme/eme-api-implementation.ts +40 -9
  882. package/src/compat/eme/get_init_data.ts +5 -3
  883. package/src/compat/eme/set_media_keys.ts +2 -1
  884. package/src/compat/event_listeners.ts +37 -12
  885. package/src/compat/get_start_date.ts +4 -2
  886. package/src/core/README.md +5 -0
  887. package/src/core/cmcd/cmcd_data_builder.ts +597 -0
  888. package/src/core/cmcd/index.ts +7 -0
  889. package/src/core/fetchers/manifest/manifest_fetcher.ts +18 -9
  890. package/src/core/fetchers/segment/segment_fetcher.ts +76 -42
  891. package/src/core/fetchers/segment/segment_fetcher_creator.ts +16 -10
  892. package/src/core/main/README.md +2 -2
  893. package/src/core/main/worker/content_preparer.ts +16 -1
  894. package/src/core/main/worker/worker_main.ts +34 -18
  895. package/src/core/segment_sinks/README.md +1 -1
  896. package/src/core/segment_sinks/inventory/segment_inventory.ts +1 -1
  897. package/src/default_config.ts +1 -0
  898. package/src/experimental/features/__tests__/local.test.ts +0 -3
  899. package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -3
  900. package/src/experimental/features/local.ts +0 -2
  901. package/src/experimental/features/metaplaylist.ts +0 -2
  902. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +2 -1
  903. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +2 -1
  904. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +9 -8
  905. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +1 -1
  906. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +1 -1
  907. package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +1 -0
  908. package/src/features/features_object.ts +0 -1
  909. package/src/features/list/__tests__/dash.test.ts +0 -3
  910. package/src/features/list/__tests__/smooth.test.ts +0 -3
  911. package/src/features/list/dash.ts +0 -2
  912. package/src/features/list/dash_wasm.ts +0 -2
  913. package/src/features/list/smooth.ts +0 -2
  914. package/src/features/types.ts +3 -11
  915. package/src/index.ts +2 -2
  916. package/src/main_thread/README.md +1 -1
  917. package/src/main_thread/api/__tests__/option_utils.test.ts +1 -0
  918. package/src/main_thread/api/__tests__/utils.test.ts +12 -11
  919. package/src/main_thread/api/option_utils.ts +12 -3
  920. package/src/main_thread/api/public_api.ts +55 -13
  921. package/src/main_thread/api/utils.ts +5 -4
  922. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +10 -5
  923. package/src/main_thread/decrypt/attach_media_keys.ts +3 -2
  924. package/src/main_thread/decrypt/clear_on_stop.ts +2 -1
  925. package/src/main_thread/decrypt/content_decryptor.ts +98 -5
  926. package/src/main_thread/decrypt/dispose_decryption_resources.ts +2 -1
  927. package/src/main_thread/decrypt/find_key_system.ts +85 -2
  928. package/src/main_thread/decrypt/get_key_system_configuration.ts +2 -1
  929. package/src/main_thread/decrypt/get_media_keys.ts +8 -2
  930. package/src/main_thread/decrypt/init_media_keys.ts +2 -1
  931. package/src/main_thread/decrypt/types.ts +2 -0
  932. package/src/main_thread/decrypt/utils/__tests__/is_compatible_codec_supported.test.ts +38 -0
  933. package/src/main_thread/decrypt/utils/is_compatible_codec_supported.ts +39 -0
  934. package/src/main_thread/decrypt/utils/media_keys_infos_store.ts +5 -7
  935. package/src/main_thread/init/directfile_content_initializer.ts +5 -13
  936. package/src/main_thread/init/media_source_content_initializer.ts +221 -42
  937. package/src/main_thread/init/multi_thread_content_initializer.ts +144 -151
  938. package/src/main_thread/init/types.ts +6 -1
  939. package/src/main_thread/init/utils/create_media_source.ts +4 -3
  940. package/src/main_thread/init/utils/get_loaded_reference.ts +2 -1
  941. package/src/main_thread/init/utils/initial_seek_and_play.ts +2 -1
  942. package/src/main_thread/init/utils/initialize_content_decryption.ts +40 -33
  943. package/src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts +3 -2
  944. package/src/main_thread/init/utils/throw_on_media_error.ts +2 -2
  945. package/src/main_thread/init/utils/update_manifest_codec_support.ts +193 -0
  946. package/src/main_thread/text_displayer/html/html_text_displayer.ts +3 -2
  947. package/src/main_thread/text_displayer/native/native_text_displayer.ts +6 -3
  948. package/src/main_thread/tracks_store/media_element_tracks_store.ts +4 -4
  949. package/src/main_thread/tracks_store/track_dispatcher.ts +7 -26
  950. package/src/main_thread/tracks_store/tracks_store.ts +314 -184
  951. package/src/manifest/classes/__tests__/adaptation.test.ts +50 -19
  952. package/src/manifest/classes/__tests__/manifest.test.ts +37 -6
  953. package/src/manifest/classes/__tests__/period.test.ts +212 -99
  954. package/src/manifest/classes/__tests__/representation.test.ts +96 -103
  955. package/src/manifest/classes/__tests__/update_period_in_place.test.ts +20 -20
  956. package/src/manifest/classes/adaptation.ts +61 -28
  957. package/src/manifest/classes/codec_support_cache.ts +82 -0
  958. package/src/manifest/classes/index.ts +2 -2
  959. package/src/manifest/classes/manifest.ts +61 -7
  960. package/src/manifest/classes/period.ts +30 -14
  961. package/src/manifest/classes/representation.ts +73 -70
  962. package/src/manifest/index.ts +2 -2
  963. package/src/manifest/types.ts +33 -5
  964. package/src/manifest/utils.ts +25 -4
  965. package/src/minimal.ts +2 -9
  966. package/src/mse/index.ts +0 -1
  967. package/src/mse/main_media_source_interface.ts +11 -8
  968. package/src/mse/types.ts +1 -30
  969. package/src/mse/utils/end_of_stream.ts +9 -4
  970. package/src/mse/utils/media_source_duration_updater.ts +10 -6
  971. package/src/multithread_types.ts +27 -14
  972. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +29 -17
  973. package/src/parsers/manifest/dash/common/indexes/template.ts +3 -1
  974. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +3 -1
  975. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +7 -3
  976. package/src/parsers/manifest/dash/common/parse_mpd.ts +15 -1
  977. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +1 -1
  978. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.ts +6 -2
  979. package/src/playback_observer/media_element_playback_observer.ts +11 -11
  980. package/src/public_types.ts +86 -0
  981. package/src/tools/TextTrackRenderer/text_track_renderer.ts +1 -0
  982. package/src/transports/dash/init_segment_loader.ts +26 -6
  983. package/src/transports/dash/integrity_checks.ts +170 -0
  984. package/src/transports/dash/{low_latency_segment_loader.ts → load_chunked_segment_data.ts} +20 -17
  985. package/src/transports/dash/pipelines.ts +3 -0
  986. package/src/transports/dash/segment_loader.ts +47 -12
  987. package/src/transports/dash/text_loader.ts +50 -21
  988. package/src/transports/local/pipelines.ts +1 -0
  989. package/src/transports/metaplaylist/manifest_loader.ts +14 -3
  990. package/src/transports/metaplaylist/pipelines.ts +2 -0
  991. package/src/transports/smooth/pipelines.ts +19 -3
  992. package/src/transports/smooth/segment_loader.ts +33 -17
  993. package/src/transports/types.ts +19 -0
  994. package/src/transports/utils/__tests__/add_query_string.test.ts +108 -0
  995. package/src/transports/utils/add_query_string.ts +54 -0
  996. package/src/transports/utils/call_custom_manifest_loader.ts +2 -2
  997. package/src/transports/utils/generate_manifest_loader.ts +34 -13
  998. package/src/utils/__tests__/array_find.test.ts +3 -3
  999. package/src/utils/__tests__/array_find_index.test.ts +3 -3
  1000. package/src/utils/__tests__/logger.test.ts +174 -17
  1001. package/src/utils/are_codecs_compatible.ts +19 -11
  1002. package/src/utils/create_uuid.ts +28 -0
  1003. package/src/utils/logger.ts +83 -13
  1004. package/src/utils/request/fetch.ts +3 -3
  1005. package/src/utils/request/xhr.ts +2 -2
  1006. package/src/utils/weak_map_memory.ts +1 -1
  1007. package/dist/commonjs/mse/main_codec_support_prober.d.ts +0 -27
  1008. package/dist/commonjs/mse/main_codec_support_prober.d.ts.map +0 -1
  1009. package/dist/commonjs/mse/main_codec_support_prober.js +0 -44
  1010. package/dist/commonjs/mse/worker_codec_support_prober.d.ts +0 -43
  1011. package/dist/commonjs/mse/worker_codec_support_prober.d.ts.map +0 -1
  1012. package/dist/commonjs/mse/worker_codec_support_prober.js +0 -61
  1013. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.d.ts +0 -25
  1014. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.d.ts.map +0 -1
  1015. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.js +0 -95
  1016. package/dist/commonjs/transports/dash/low_latency_segment_loader.d.ts.map +0 -1
  1017. package/dist/commonjs/transports/dash/low_latency_segment_loader.js +0 -77
  1018. package/dist/es2017/mse/main_codec_support_prober.d.ts +0 -27
  1019. package/dist/es2017/mse/main_codec_support_prober.d.ts.map +0 -1
  1020. package/dist/es2017/mse/main_codec_support_prober.js +0 -41
  1021. package/dist/es2017/mse/worker_codec_support_prober.d.ts +0 -43
  1022. package/dist/es2017/mse/worker_codec_support_prober.d.ts.map +0 -1
  1023. package/dist/es2017/mse/worker_codec_support_prober.js +0 -58
  1024. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.d.ts +0 -25
  1025. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.d.ts.map +0 -1
  1026. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.js +0 -81
  1027. package/dist/es2017/transports/dash/low_latency_segment_loader.d.ts.map +0 -1
  1028. package/src/mse/main_codec_support_prober.ts +0 -52
  1029. package/src/mse/worker_codec_support_prober.ts +0 -75
  1030. package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -97
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import type { IMediaElement } from "../../../compat/browser_compatibility_types";
17
18
  import type {
18
19
  ICustomMediaKeys,
19
20
  ICustomMediaKeySystemAccess,
@@ -47,7 +48,7 @@ export interface IMediaElementMediaKeysInfos {
47
48
 
48
49
  // Store the MediaKeys infos attached to a media element.
49
50
  const currentMediaState = new WeakMap<
50
- HTMLMediaElement,
51
+ IMediaElement,
51
52
  IMediaElementMediaKeysInfos | null
52
53
  >();
53
54
 
@@ -57,10 +58,7 @@ export default {
57
58
  * @param {HTMLMediaElement} mediaElement
58
59
  * @param {Object} state
59
60
  */
60
- setState(
61
- mediaElement: HTMLMediaElement,
62
- state: IMediaElementMediaKeysInfos | null,
63
- ): void {
61
+ setState(mediaElement: IMediaElement, state: IMediaElementMediaKeysInfos | null): void {
64
62
  currentMediaState.set(mediaElement, state);
65
63
  },
66
64
 
@@ -69,7 +67,7 @@ export default {
69
67
  * @param {HTMLMediaElement} mediaElement
70
68
  * @returns {Object}
71
69
  */
72
- getState(mediaElement: HTMLMediaElement): IMediaElementMediaKeysInfos | null {
70
+ getState(mediaElement: IMediaElement): IMediaElementMediaKeysInfos | null {
73
71
  const currentState = currentMediaState.get(mediaElement);
74
72
  return currentState === undefined ? null : currentState;
75
73
  },
@@ -78,7 +76,7 @@ export default {
78
76
  * Remove MediaKeys infos currently set on a HMTLMediaElement
79
77
  * @param {HTMLMediaElement} mediaElement
80
78
  */
81
- clearState(mediaElement: HTMLMediaElement): void {
79
+ clearState(mediaElement: IMediaElement): void {
82
80
  currentMediaState.set(mediaElement, null);
83
81
  },
84
82
  };
@@ -19,6 +19,7 @@
19
19
  * It always should be imported through the `features` object.
20
20
  */
21
21
 
22
+ import type { IMediaElement } from "../../compat/browser_compatibility_types";
22
23
  import clearElementSrc from "../../compat/clear_element_src";
23
24
  import type { MediaError } from "../../errors";
24
25
  import log from "../../log";
@@ -28,7 +29,6 @@ import assert from "../../utils/assert";
28
29
  import isNullOrUndefined from "../../utils/is_null_or_undefined";
29
30
  import noop from "../../utils/noop";
30
31
  import type { IReadOnlySharedReference } from "../../utils/reference";
31
- import SharedReference from "../../utils/reference";
32
32
  import TaskCanceller from "../../utils/task_canceller";
33
33
  import { ContentInitializer } from "./types";
34
34
  import type { IInitialTimeOptions } from "./utils/get_initial_time";
@@ -85,7 +85,7 @@ export default class DirectFileContentInitializer extends ContentInitializer {
85
85
  * information.
86
86
  */
87
87
  public start(
88
- mediaElement: HTMLMediaElement,
88
+ mediaElement: IMediaElement,
89
89
  playbackObserver: IMediaElementPlaybackObserver,
90
90
  ): void {
91
91
  const cancelSignal = this._initCanceller.signal;
@@ -93,17 +93,9 @@ export default class DirectFileContentInitializer extends ContentInitializer {
93
93
 
94
94
  clearElementSrc(mediaElement);
95
95
 
96
- /**
97
- * Create dummy encryption data emitter, as those are not sent from the
98
- * RxPlayer for directfile contents.
99
- */
100
- const decryptionRef = new SharedReference(null);
101
- decryptionRef.finish();
102
-
103
- const drmInitRef = initializeContentDecryption(
96
+ const { statusRef: drmInitRef } = initializeContentDecryption(
104
97
  mediaElement,
105
98
  keySystems,
106
- decryptionRef,
107
99
  {
108
100
  onError: (err) => this._onFatalError(err),
109
101
  onWarning: (err: IPlayerError) => this.trigger("warning", err),
@@ -210,7 +202,7 @@ export default class DirectFileContentInitializer extends ContentInitializer {
210
202
  * @param {Object} playbackObserver
211
203
  */
212
204
  private _seekAndPlay(
213
- mediaElement: HTMLMediaElement,
205
+ mediaElement: IMediaElement,
214
206
  playbackObserver: IMediaElementPlaybackObserver,
215
207
  ): void {
216
208
  const cancelSignal = this._initCanceller.signal;
@@ -260,7 +252,7 @@ export default class DirectFileContentInitializer extends ContentInitializer {
260
252
  * @returns {number}
261
253
  */
262
254
  function getDirectFileInitialTime(
263
- mediaElement: HTMLMediaElement,
255
+ mediaElement: IMediaElement,
264
256
  startAt?: IInitialTimeOptions,
265
257
  ): number {
266
258
  if (isNullOrUndefined(startAt)) {
@@ -14,6 +14,8 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ import type { IMediaElement } from "../../compat/browser_compatibility_types";
18
+ import isCodecSupported from "../../compat/is_codec_supported";
17
19
  import mayMediaElementFailOnUndecipherableData from "../../compat/may_media_element_fail_on_undecipherable_data";
18
20
  import shouldReloadMediaSourceOnDecipherabilityUpdate from "../../compat/should_reload_media_source_on_decipherability_update";
19
21
  import config from "../../config";
@@ -22,7 +24,7 @@ import type {
22
24
  IRepresentationEstimator,
23
25
  } from "../../core/adaptive";
24
26
  import AdaptiveRepresentationSelector from "../../core/adaptive";
25
- import type { IManifestFetcherSettings } from "../../core/fetchers";
27
+ import CmcdDataBuilder from "../../core/cmcd";
26
28
  import { ManifestFetcher, SegmentFetcherCreator } from "../../core/fetchers";
27
29
  import createContentTimeBoundariesObserver from "../../core/main/common/create_content_time_boundaries_observer";
28
30
  import DecipherabilityFreezeDetector from "../../core/main/common/DecipherabilityFreezeDetector";
@@ -34,27 +36,34 @@ import type {
34
36
  } from "../../core/stream";
35
37
  import StreamOrchestrator from "../../core/stream";
36
38
  import type { ITextDisplayerInterface } from "../../core/types";
39
+ import type { EncryptedMediaError } from "../../errors";
37
40
  import { MediaError } from "../../errors";
38
41
  import features from "../../features";
39
42
  import log from "../../log";
40
- import type { IManifest, IPeriodMetadata } from "../../manifest";
43
+ import type { IManifest, IPeriodMetadata, ICodecSupportInfo } from "../../manifest";
41
44
  import type MainMediaSourceInterface from "../../mse/main_media_source_interface";
42
45
  import type { IMediaElementPlaybackObserver } from "../../playback_observer";
43
- import type { IKeySystemOption, IPlayerError } from "../../public_types";
46
+ import type {
47
+ ICmcdOptions,
48
+ IInitialManifest,
49
+ IKeySystemOption,
50
+ IPlayerError,
51
+ } from "../../public_types";
44
52
  import type { ITransportPipelines } from "../../transports";
45
53
  import areArraysOfNumbersEqual from "../../utils/are_arrays_of_numbers_equal";
46
54
  import assert from "../../utils/assert";
47
55
  import createCancellablePromise from "../../utils/create_cancellable_promise";
56
+ import isNullOrUndefined from "../../utils/is_null_or_undefined";
48
57
  import noop from "../../utils/noop";
49
58
  import objectAssign from "../../utils/object_assign";
50
59
  import type { IReadOnlySharedReference } from "../../utils/reference";
51
- import SharedReference from "../../utils/reference";
52
60
  import type { ISyncOrAsyncValue } from "../../utils/sync_or_async";
53
61
  import SyncOrAsync from "../../utils/sync_or_async";
54
62
  import type { CancellationSignal } from "../../utils/task_canceller";
55
63
  import TaskCanceller from "../../utils/task_canceller";
56
- import type { IContentProtection, IProcessedProtectionData } from "../decrypt";
57
- import { getKeySystemConfiguration } from "../decrypt";
64
+ import { ContentDecryptorState, getKeySystemConfiguration } from "../decrypt";
65
+ import type { IProcessedProtectionData } from "../decrypt";
66
+ import type ContentDecryptor from "../decrypt";
58
67
  import type { ITextDisplayer } from "../text_displayer";
59
68
  import type { ITextDisplayerOptions } from "./types";
60
69
  import { ContentInitializer } from "./types";
@@ -99,6 +108,36 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
99
108
  */
100
109
  private _manifest: ISyncOrAsyncValue<IManifest> | null;
101
110
 
111
+ private _cmcdDataBuilder: CmcdDataBuilder | null;
112
+
113
+ /**
114
+ * Describes the decryption capabilities on the current content, discriminated
115
+ * by a `status` property:
116
+ *
117
+ * - If set to `"uninitialized"`, decryption capabilities have not been
118
+ * set up yet.
119
+ *
120
+ * - If set to `"disabled"`, decryption capabilities are explicitely
121
+ * disabled. If encrypted content needs to be decrypted, the accompanying
122
+ * error `value` describes the reason why decryption is not enabled.
123
+ *
124
+ * - If set to `"enabled"`, decryption capabilities are available, and
125
+ * `value` points to the corresponding `ContentDecryptor`.
126
+ */
127
+ private _decryptionCapabilities:
128
+ | {
129
+ status: "uninitialized";
130
+ value: null;
131
+ }
132
+ | {
133
+ status: "disabled";
134
+ value: EncryptedMediaError;
135
+ }
136
+ | {
137
+ status: "enabled";
138
+ value: ContentDecryptor;
139
+ };
140
+
102
141
  /**
103
142
  * Create a new `MediaSourceContentInitializer`, associated to the given
104
143
  * settings.
@@ -109,12 +148,15 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
109
148
  this._settings = settings;
110
149
  this._initCanceller = new TaskCanceller();
111
150
  this._manifest = null;
151
+ this._decryptionCapabilities = { status: "uninitialized", value: null };
112
152
  const urls = settings.url === undefined ? undefined : [settings.url];
113
- this._manifestFetcher = new ManifestFetcher(
114
- urls,
115
- settings.transport,
116
- settings.manifestRequestSettings,
117
- );
153
+ this._cmcdDataBuilder =
154
+ settings.cmcd === undefined ? null : new CmcdDataBuilder(settings.cmcd);
155
+ this._manifestFetcher = new ManifestFetcher(urls, settings.transport, {
156
+ ...settings.manifestRequestSettings,
157
+ lowLatencyMode: settings.lowLatencyMode,
158
+ cmcdDataBuilder: this._cmcdDataBuilder,
159
+ });
118
160
  }
119
161
 
120
162
  /**
@@ -150,7 +192,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
150
192
  * @param {Object} playbackObserver
151
193
  */
152
194
  public start(
153
- mediaElement: HTMLMediaElement,
195
+ mediaElement: IMediaElement,
154
196
  playbackObserver: IMediaElementPlaybackObserver,
155
197
  ): void {
156
198
  this.prepare(); // Load Manifest if not already done
@@ -162,20 +204,13 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
162
204
  this._initCanceller.signal,
163
205
  );
164
206
 
165
- /** Send content protection initialization data to the decryption logic. */
166
- const protectionRef = new SharedReference<IContentProtection | null>(
167
- null,
168
- this._initCanceller.signal,
169
- );
170
-
171
- this._initializeMediaSourceAndDecryption(mediaElement, protectionRef)
207
+ this._initializeMediaSourceAndDecryption(mediaElement)
172
208
  .then((initResult) =>
173
209
  this._onInitialMediaSourceReady(
174
210
  mediaElement,
175
211
  initResult.mediaSource,
176
212
  playbackObserver,
177
213
  initResult.drmSystemId,
178
- protectionRef,
179
214
  initResult.unlinkMediaSource,
180
215
  ),
181
216
  )
@@ -207,10 +242,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
207
242
  this.trigger("error", err);
208
243
  }
209
244
 
210
- private _initializeMediaSourceAndDecryption(
211
- mediaElement: HTMLMediaElement,
212
- protectionRef: IReadOnlySharedReference<IContentProtection | null>,
213
- ): Promise<{
245
+ private _initializeMediaSourceAndDecryption(mediaElement: IMediaElement): Promise<{
214
246
  mediaSource: MainMediaSourceInterface;
215
247
  drmSystemId: string | undefined;
216
248
  unlinkMediaSource: TaskCanceller;
@@ -220,10 +252,9 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
220
252
  const { keySystems } = this._settings;
221
253
 
222
254
  /** Initialize decryption capabilities. */
223
- const drmInitRef = initializeContentDecryption(
255
+ const { statusRef: drmInitRef, contentDecryptor } = initializeContentDecryption(
224
256
  mediaElement,
225
257
  keySystems,
226
- protectionRef,
227
258
  {
228
259
  onWarning: (err: IPlayerError) => this.trigger("warning", err),
229
260
  onError: (err: Error) => this._onFatalError(err),
@@ -254,10 +285,38 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
254
285
  );
255
286
  })().catch(noop);
256
287
  },
288
+
289
+ onCodecSupportUpdate: () => {
290
+ const syncManifest = this._manifest?.syncValue;
291
+ if (isNullOrUndefined(syncManifest)) {
292
+ // The Manifest is not yet fetched, but we will be able to check
293
+ // the codecs once it is the case
294
+ this._manifest?.getValueAsAsync().then((loadedManifest) => {
295
+ if (this._initCanceller.isUsed()) {
296
+ return;
297
+ }
298
+ this._refreshManifestCodecSupport(loadedManifest);
299
+ }, noop);
300
+ } else {
301
+ this._refreshManifestCodecSupport(syncManifest);
302
+ }
303
+ },
257
304
  },
258
305
  initCanceller.signal,
259
306
  );
260
307
 
308
+ if (contentDecryptor.enabled) {
309
+ this._decryptionCapabilities = {
310
+ status: "enabled",
311
+ value: contentDecryptor.value,
312
+ };
313
+ } else {
314
+ this._decryptionCapabilities = {
315
+ status: "disabled",
316
+ value: contentDecryptor.value,
317
+ };
318
+ }
319
+
261
320
  drmInitRef.onUpdate(
262
321
  (drmStatus, stopListeningToDrmUpdates) => {
263
322
  if (drmStatus.initializationState.type === "uninitialized") {
@@ -308,11 +367,10 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
308
367
  }
309
368
 
310
369
  private async _onInitialMediaSourceReady(
311
- mediaElement: HTMLMediaElement,
370
+ mediaElement: IMediaElement,
312
371
  initialMediaSource: MainMediaSourceInterface,
313
372
  playbackObserver: IMediaElementPlaybackObserver,
314
373
  drmSystemId: string | undefined,
315
- protectionRef: SharedReference<IContentProtection | null>,
316
374
  initialMediaSourceCanceller: TaskCanceller,
317
375
  ): Promise<void> {
318
376
  const {
@@ -339,6 +397,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
339
397
  "manifestUpdate",
340
398
  (updates) => {
341
399
  this.trigger("manifestUpdate", updates);
400
+ this._refreshManifestCodecSupport(manifest);
342
401
  },
343
402
  initCanceller.signal,
344
403
  );
@@ -351,6 +410,14 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
351
410
  initCanceller.signal,
352
411
  );
353
412
 
413
+ manifest.addEventListener(
414
+ "supportUpdate",
415
+ () => {
416
+ this.trigger("codecSupportUpdate", null);
417
+ },
418
+ initCanceller.signal,
419
+ );
420
+
354
421
  log.debug("Init: Calculating initial time");
355
422
  const initialTime = getInitialTime(manifest, lowLatencyMode, startAt);
356
423
  log.debug("Init: Initial time calculated:", initialTime);
@@ -364,10 +431,12 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
364
431
 
365
432
  const segmentFetcherCreator = new SegmentFetcherCreator(
366
433
  transport,
434
+ this._cmcdDataBuilder,
367
435
  segmentRequestOptions,
368
436
  initCanceller.signal,
369
437
  );
370
438
 
439
+ this._refreshManifestCodecSupport(manifest);
371
440
  this.trigger("manifestReady", manifest);
372
441
  if (initCanceller.isUsed()) {
373
442
  return;
@@ -411,7 +480,6 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
411
480
  representationEstimator,
412
481
  segmentFetcherCreator,
413
482
  speed,
414
- protectionRef,
415
483
  bufferOptions: subBufferOptions,
416
484
  };
417
485
  bufferOnMediaSource(opts, onReloadMediaSource, currentCanceller.signal);
@@ -469,7 +537,6 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
469
537
  mediaElement,
470
538
  mediaSource,
471
539
  playbackObserver,
472
- protectionRef,
473
540
  representationEstimator,
474
541
  segmentFetcherCreator,
475
542
  speed,
@@ -588,6 +655,11 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
588
655
  cancelSignal,
589
656
  );
590
657
 
658
+ this._cmcdDataBuilder?.startMonitoringPlayback(coreObserver);
659
+ cancelSignal.register(() => {
660
+ this._cmcdDataBuilder?.stopMonitoringPlayback();
661
+ });
662
+
591
663
  const rebufferingController = this._createRebufferingController(
592
664
  playbackObserver,
593
665
  manifest,
@@ -838,7 +910,10 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
838
910
  self.trigger("periodStreamCleared", value);
839
911
  },
840
912
 
841
- bitrateEstimateChange: (value) => self.trigger("bitrateEstimateChange", value),
913
+ bitrateEstimateChange: (value) => {
914
+ self._cmcdDataBuilder?.updateThroughput(value.type, value.bitrate);
915
+ self.trigger("bitrateEstimateChange", value);
916
+ },
842
917
 
843
918
  needsMediaSourceReload: (payload) => {
844
919
  reloadMediaSource(
@@ -854,7 +929,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
854
929
  const lastObservation = coreObserver.getReference().getValue();
855
930
  const position = lastObservation.position.isAwaitingFuturePosition()
856
931
  ? lastObservation.position.getWanted()
857
- : coreObserver.getCurrentTime() ?? lastObservation.position.getPolled();
932
+ : (coreObserver.getCurrentTime() ?? lastObservation.position.getPolled());
858
933
  const isPaused =
859
934
  lastObservation.paused.pending ??
860
935
  coreObserver.getIsPaused() ??
@@ -864,7 +939,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
864
939
  const lastObservation = coreObserver.getReference().getValue();
865
940
  const position = lastObservation.position.isAwaitingFuturePosition()
866
941
  ? lastObservation.position.getWanted()
867
- : coreObserver.getCurrentTime() ?? lastObservation.position.getPolled();
942
+ : (coreObserver.getCurrentTime() ?? lastObservation.position.getPolled());
868
943
  // simple seek close to the current position
869
944
  // to flush the buffers
870
945
  if (position + 0.001 < lastObservation.duration) {
@@ -876,8 +951,18 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
876
951
  },
877
952
 
878
953
  encryptionDataEncountered: (value) => {
954
+ if (self._decryptionCapabilities.status === "disabled") {
955
+ self._onFatalError(self._decryptionCapabilities.value);
956
+ return;
957
+ } else if (self._decryptionCapabilities.status === "uninitialized") {
958
+ // Should never happen
959
+ log.error(
960
+ "Init: received encryption data without known decryption capabilities",
961
+ );
962
+ return;
963
+ }
879
964
  for (const protectionData of value) {
880
- protectionRef.setValue(protectionData);
965
+ self._decryptionCapabilities.value.onInitializationData(protectionData);
881
966
  if (cancelSignal.isCancelled()) {
882
967
  return; // Previous call has stopped streams due to a side-effect
883
968
  }
@@ -905,7 +990,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
905
990
  const lastObservation = coreObserver.getReference().getValue();
906
991
  const currentPosition = lastObservation.position.isAwaitingFuturePosition()
907
992
  ? lastObservation.position.getWanted()
908
- : coreObserver.getCurrentTime() ?? lastObservation.position.getPolled();
993
+ : (coreObserver.getCurrentTime() ?? lastObservation.position.getPolled());
909
994
  const isPaused =
910
995
  lastObservation.paused.pending ??
911
996
  coreObserver.getIsPaused() ??
@@ -964,6 +1049,78 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
964
1049
  rebufferingController.start();
965
1050
  return rebufferingController;
966
1051
  }
1052
+
1053
+ /**
1054
+ * Evaluates a list of codecs to determine their support status.
1055
+ *
1056
+ * @param {Array} codecsToCheck - The list of codecs to check.
1057
+ * @returns {Array} - The list of evaluated codecs with their support status updated.
1058
+ */
1059
+ private getCodecsSupportInfo(
1060
+ codecsToCheck: Array<{ mimeType: string; codec: string }>,
1061
+ ): ICodecSupportInfo[] {
1062
+ const codecsSupportInfo: ICodecSupportInfo[] = codecsToCheck.map((codecToCheck) => {
1063
+ const inputCodec = `${codecToCheck.mimeType};codecs="${codecToCheck.codec}"`;
1064
+ const isSupported = isCodecSupported(inputCodec);
1065
+ if (!isSupported) {
1066
+ return {
1067
+ mimeType: codecToCheck.mimeType,
1068
+ codec: codecToCheck.codec,
1069
+ supported: false,
1070
+ supportedIfEncrypted: false,
1071
+ };
1072
+ }
1073
+ /**
1074
+ * `true` if the codec is supported when encrypted, `false` if it is not
1075
+ * supported, or `undefined` if we cannot obtain that information.
1076
+ */
1077
+ let supportedIfEncrypted: boolean | undefined;
1078
+ if (this._decryptionCapabilities.status === "uninitialized") {
1079
+ supportedIfEncrypted = undefined;
1080
+ } else if (this._decryptionCapabilities.status === "disabled") {
1081
+ // It's ambiguous here, but let's say that no ContentDecryptor means that
1082
+ // the codec is supported by it.
1083
+ supportedIfEncrypted = true;
1084
+ } else {
1085
+ const contentDecryptor = this._decryptionCapabilities.value;
1086
+ if (contentDecryptor.getState() !== ContentDecryptorState.Initializing) {
1087
+ // No information is available regarding the support status.
1088
+ // Defaulting to assume the codec is supported.
1089
+ supportedIfEncrypted =
1090
+ contentDecryptor.isCodecSupported(
1091
+ codecToCheck.mimeType,
1092
+ codecToCheck.codec,
1093
+ ) ?? true;
1094
+ }
1095
+ }
1096
+ return {
1097
+ mimeType: codecToCheck.mimeType,
1098
+ codec: codecToCheck.codec,
1099
+ supported: isSupported,
1100
+ supportedIfEncrypted,
1101
+ };
1102
+ });
1103
+ return codecsSupportInfo;
1104
+ }
1105
+
1106
+ /**
1107
+ * Update the support status of all Representations in the Manifest.
1108
+ *
1109
+ * To call anytime either the Manifest is linked to new codecs or new means
1110
+ * to test for codec support are available.
1111
+ * @param {Object} manifest
1112
+ */
1113
+ private _refreshManifestCodecSupport(manifest: IManifest): void {
1114
+ const codecsToTest = manifest.getCodecsWithUnknownSupport();
1115
+ const codecsSupportInfo = this.getCodecsSupportInfo(codecsToTest);
1116
+ if (codecsSupportInfo.length > 0) {
1117
+ try {
1118
+ manifest.updateCodecSupport(codecsSupportInfo);
1119
+ } catch (err) {
1120
+ this._onFatalError(err);
1121
+ }
1122
+ }
1123
+ }
967
1124
  }
968
1125
 
969
1126
  /** Arguments to give to the `InitializeOnMediaSource` function. */
@@ -990,12 +1147,39 @@ export interface IInitializeArguments {
990
1147
  /** Behavior when a new video and/or audio codec is encountered. */
991
1148
  onCodecSwitch: "continue" | "reload";
992
1149
  };
1150
+ /**
1151
+ * When set to an object, enable "Common Media Client Data", or "CMCD".
1152
+ */
1153
+ cmcd?: ICmcdOptions | undefined;
993
1154
  /** Every encryption configuration set. */
994
1155
  keySystems: IKeySystemOption[];
995
1156
  /** `true` to play low-latency contents optimally. */
996
1157
  lowLatencyMode: boolean;
997
1158
  /** Settings linked to Manifest requests. */
998
- manifestRequestSettings: IManifestFetcherSettings;
1159
+ manifestRequestSettings: {
1160
+ /** Maximum number of time a request on error will be retried. */
1161
+ maxRetry: number | undefined;
1162
+ /**
1163
+ * Timeout after which request are aborted and, depending on other options,
1164
+ * retried.
1165
+ * To set to `-1` for no timeout.
1166
+ * `undefined` will lead to a default, large, timeout being used.
1167
+ */
1168
+ requestTimeout: number | undefined;
1169
+ /**
1170
+ * Connection timeout, in milliseconds, after which the request is canceled
1171
+ * if the responses headers has not being received.
1172
+ * Do not set or set to "undefined" to disable it.
1173
+ */
1174
+ connectionTimeout: number | undefined;
1175
+ /** Limit the frequency of Manifest updates. */
1176
+ minimumManifestUpdateInterval: number;
1177
+ /**
1178
+ * Potential first Manifest to rely on, allowing to skip the initial Manifest
1179
+ * request.
1180
+ */
1181
+ initialManifest: IInitialManifest | undefined;
1182
+ };
999
1183
  /** Logic linked Manifest and segment loading and parsing. */
1000
1184
  transport: ITransportPipelines;
1001
1185
  /** Configuration for the segment requesting logic. */
@@ -1033,7 +1217,7 @@ interface IBufferingMediaSettings {
1033
1217
  /* Manifest of the content we want to play. */
1034
1218
  manifest: IManifest;
1035
1219
  /** Media Element on which the content will be played. */
1036
- mediaElement: HTMLMediaElement;
1220
+ mediaElement: IMediaElement;
1037
1221
  /** Emit playback conditions regularly. */
1038
1222
  playbackObserver: IMediaElementPlaybackObserver;
1039
1223
  /** Estimate the right Representation. */
@@ -1042,11 +1226,6 @@ interface IBufferingMediaSettings {
1042
1226
  segmentFetcherCreator: SegmentFetcherCreator;
1043
1227
  /** Last wanted playback rate. */
1044
1228
  speed: IReadOnlySharedReference<number>;
1045
- /**
1046
- * Reference through which decryption initialization information can be
1047
- * communicated.
1048
- */
1049
- protectionRef: SharedReference<IContentProtection | null>;
1050
1229
  /** `MediaSource` element on which the media will be buffered. */
1051
1230
  mediaSource: MainMediaSourceInterface;
1052
1231
  /** The initial position to seek to in media time, in seconds. */