rx-player 4.0.0 → 4.1.0-dev.2024031100

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 (2222) hide show
  1. package/.prettierrc +4 -0
  2. package/CHANGELOG.md +1500 -996
  3. package/MAINTAINERS.md +9 -12
  4. package/README.md +107 -122
  5. package/VERSION +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  7. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  8. package/dist/commonjs/__GENERATED_CODE/embedded_worker_es5.d.ts +3 -0
  9. package/dist/commonjs/__GENERATED_CODE/embedded_worker_es5.js +6 -0
  10. package/dist/commonjs/__GENERATED_CODE/index.d.ts +1 -0
  11. package/dist/commonjs/__GENERATED_CODE/index.js +3 -1
  12. package/dist/commonjs/compat/add_class_name.js +4 -3
  13. package/dist/commonjs/compat/add_text_track.d.ts +1 -1
  14. package/dist/commonjs/compat/add_text_track.js +3 -2
  15. package/dist/commonjs/compat/browser_compatibility_types.js +13 -7
  16. package/dist/commonjs/compat/browser_detection.d.ts +3 -1
  17. package/dist/commonjs/compat/browser_detection.js +16 -12
  18. package/dist/commonjs/compat/can_seek_directly_after_loaded_metadata.d.ts +7 -0
  19. package/dist/commonjs/compat/can_seek_directly_after_loaded_metadata.js +10 -0
  20. package/dist/commonjs/compat/change_source_buffer_type.d.ts +1 -1
  21. package/dist/commonjs/compat/eme/close_session.d.ts +1 -1
  22. package/dist/commonjs/compat/eme/close_session.js +16 -12
  23. package/dist/commonjs/compat/eme/custom_key_system_access.d.ts +1 -1
  24. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.d.ts +1 -1
  25. package/dist/commonjs/compat/eme/custom_media_keys/ie11_media_keys.js +14 -9
  26. package/dist/commonjs/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +1 -1
  27. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +1 -1
  28. package/dist/commonjs/compat/eme/custom_media_keys/old_webkit_media_keys.js +13 -11
  29. package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts +1 -1
  30. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts +1 -1
  31. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.js +5 -11
  32. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +1 -1
  33. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +2 -2
  34. package/dist/commonjs/compat/eme/eme-api-implementation.d.ts +3 -3
  35. package/dist/commonjs/compat/eme/eme-api-implementation.js +13 -9
  36. package/dist/commonjs/compat/eme/generate_key_request.d.ts +1 -1
  37. package/dist/commonjs/compat/eme/generate_key_request.js +16 -19
  38. package/dist/commonjs/compat/eme/get_init_data.js +5 -7
  39. package/dist/commonjs/compat/eme/get_uuid_kid_from_keystatus_kid.js +1 -2
  40. package/dist/commonjs/compat/eme/get_webkit_fairplay_initdata.js +10 -11
  41. package/dist/commonjs/compat/eme/load_session.d.ts +1 -1
  42. package/dist/commonjs/compat/eme/set_media_keys.d.ts +9 -0
  43. package/dist/commonjs/compat/eme/set_media_keys.js +37 -0
  44. package/dist/commonjs/compat/enable_audio_track.d.ts +1 -1
  45. package/dist/commonjs/compat/event_listeners.d.ts +4 -4
  46. package/dist/commonjs/compat/event_listeners.js +42 -33
  47. package/dist/commonjs/compat/has_webassembly.js +1 -2
  48. package/dist/commonjs/compat/has_worker_api.d.ts +9 -0
  49. package/dist/commonjs/compat/has_worker_api.js +17 -0
  50. package/dist/commonjs/compat/is_codec_supported.js +2 -1
  51. package/dist/commonjs/compat/is_vtt_cue.d.ts +1 -1
  52. package/dist/commonjs/compat/make_vtt_cue.d.ts +1 -1
  53. package/dist/commonjs/compat/may_media_element_fail_on_undecipherable_data.d.ts +16 -0
  54. package/dist/commonjs/compat/may_media_element_fail_on_undecipherable_data.js +19 -0
  55. package/dist/commonjs/compat/on_height_width_change.d.ts +2 -2
  56. package/dist/commonjs/compat/patch_webkit_source_buffer.js +29 -29
  57. package/dist/commonjs/compat/should_await_set_media_keys.d.ts +16 -0
  58. package/dist/commonjs/compat/should_await_set_media_keys.js +22 -0
  59. package/dist/commonjs/compat/should_reload_media_source_on_decipherability_update.js +1 -2
  60. package/dist/commonjs/config.d.ts +1 -1
  61. package/dist/commonjs/core/adaptive/adaptive_representation_selector.d.ts +25 -22
  62. package/dist/commonjs/core/adaptive/adaptive_representation_selector.js +47 -25
  63. package/dist/commonjs/core/adaptive/buffer_based_chooser.d.ts +1 -1
  64. package/dist/commonjs/core/adaptive/buffer_based_chooser.js +13 -11
  65. package/dist/commonjs/core/adaptive/guess_based_chooser.d.ts +6 -6
  66. package/dist/commonjs/core/adaptive/guess_based_chooser.js +7 -6
  67. package/dist/commonjs/core/adaptive/index.d.ts +2 -2
  68. package/dist/commonjs/core/adaptive/network_analyzer.d.ts +6 -6
  69. package/dist/commonjs/core/adaptive/network_analyzer.js +44 -40
  70. package/dist/commonjs/core/adaptive/utils/bandwidth_estimator.js +1 -1
  71. package/dist/commonjs/core/adaptive/utils/ewma.js +1 -2
  72. package/dist/commonjs/core/adaptive/utils/filter_by_bitrate.d.ts +2 -2
  73. package/dist/commonjs/core/adaptive/utils/filter_by_resolution.d.ts +2 -2
  74. package/dist/commonjs/core/adaptive/utils/filter_by_resolution.js +2 -4
  75. package/dist/commonjs/core/adaptive/utils/get_buffer_levels.js +7 -4
  76. package/dist/commonjs/core/adaptive/utils/last_estimate_storage.d.ts +3 -3
  77. package/dist/commonjs/core/adaptive/utils/pending_requests_store.d.ts +5 -5
  78. package/dist/commonjs/core/adaptive/utils/pending_requests_store.js +4 -3
  79. package/dist/commonjs/core/adaptive/utils/representation_score_calculator.d.ts +7 -7
  80. package/dist/commonjs/core/adaptive/utils/representation_score_calculator.js +11 -8
  81. package/dist/commonjs/core/adaptive/utils/select_optimal_representation.d.ts +4 -4
  82. package/dist/commonjs/core/adaptive/utils/select_optimal_representation.js +2 -2
  83. package/dist/commonjs/core/fetchers/cdn_prioritizer.d.ts +2 -2
  84. package/dist/commonjs/core/fetchers/cdn_prioritizer.js +5 -6
  85. package/dist/commonjs/core/fetchers/manifest/index.d.ts +1 -1
  86. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts +3 -3
  87. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +80 -65
  88. package/dist/commonjs/core/fetchers/segment/index.d.ts +1 -1
  89. package/dist/commonjs/core/fetchers/segment/initialization_segment_cache.d.ts +4 -4
  90. package/dist/commonjs/core/fetchers/segment/prioritized_segment_fetcher.d.ts +4 -3
  91. package/dist/commonjs/core/fetchers/segment/segment_fetcher.d.ts +12 -12
  92. package/dist/commonjs/core/fetchers/segment/segment_fetcher.js +49 -32
  93. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -5
  94. package/dist/commonjs/core/fetchers/segment/segment_fetcher_creator.js +4 -2
  95. package/dist/commonjs/core/fetchers/segment/task_prioritizer.d.ts +1 -1
  96. package/dist/commonjs/core/fetchers/segment/task_prioritizer.js +18 -17
  97. package/dist/commonjs/core/fetchers/utils/error_selector.d.ts +1 -2
  98. package/dist/commonjs/core/fetchers/utils/error_selector.js +0 -1
  99. package/dist/commonjs/core/fetchers/utils/schedule_request.d.ts +3 -3
  100. package/dist/commonjs/core/fetchers/utils/schedule_request.js +20 -21
  101. package/dist/commonjs/core/main/common/DecipherabilityFreezeDetector.d.ts +79 -0
  102. package/dist/commonjs/core/main/common/DecipherabilityFreezeDetector.js +127 -0
  103. package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts +191 -0
  104. package/dist/commonjs/core/main/common/content_time_boundaries_observer.js +519 -0
  105. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts +27 -0
  106. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.js +48 -0
  107. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts +14 -0
  108. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.js +37 -0
  109. package/dist/commonjs/core/main/worker/content_preparer.d.ts +93 -0
  110. package/dist/commonjs/core/main/worker/content_preparer.js +273 -0
  111. package/dist/commonjs/core/main/worker/globals.d.ts +13 -0
  112. package/dist/commonjs/core/main/worker/globals.js +26 -0
  113. package/dist/commonjs/core/main/worker/index.d.ts +2 -0
  114. package/dist/commonjs/core/main/worker/index.js +4 -0
  115. package/dist/commonjs/core/main/worker/send_message.d.ts +3 -0
  116. package/dist/commonjs/core/main/worker/send_message.js +25 -0
  117. package/dist/commonjs/core/main/worker/track_choice_setter.d.ts +19 -0
  118. package/dist/commonjs/core/main/worker/track_choice_setter.js +140 -0
  119. package/dist/commonjs/core/main/worker/worker_main.d.ts +1 -0
  120. package/dist/commonjs/core/main/worker/worker_main.js +784 -0
  121. package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts +64 -0
  122. package/dist/commonjs/core/main/worker/worker_text_displayer_interface.js +126 -0
  123. package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts +43 -0
  124. package/dist/commonjs/core/segment_sinks/garbage_collector.js +226 -0
  125. package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.d.ts +135 -0
  126. package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.js +358 -0
  127. package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.d.ts +17 -0
  128. package/dist/commonjs/core/segment_sinks/implementations/index.d.ts +19 -0
  129. package/dist/commonjs/core/segment_sinks/implementations/index.js +35 -0
  130. package/dist/commonjs/core/segment_sinks/implementations/text/index.d.ts +3 -0
  131. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_buffer.d.ts +90 -0
  132. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_buffer.js +257 -0
  133. package/dist/commonjs/core/segment_sinks/implementations/types.d.ts +307 -0
  134. package/dist/commonjs/core/segment_sinks/implementations/types.js +117 -0
  135. package/dist/commonjs/core/segment_sinks/index.d.ts +21 -0
  136. package/dist/commonjs/core/segment_sinks/index.js +28 -0
  137. package/dist/commonjs/core/segment_sinks/inventory/buffered_history.d.ts +89 -0
  138. package/dist/commonjs/core/segment_sinks/inventory/index.d.ts +21 -0
  139. package/dist/commonjs/core/segment_sinks/inventory/segment_inventory.d.ts +238 -0
  140. package/dist/commonjs/core/segment_sinks/inventory/segment_inventory.js +917 -0
  141. package/dist/commonjs/core/segment_sinks/inventory/types.d.ts +27 -0
  142. package/dist/commonjs/core/segment_sinks/inventory/utils.d.ts +33 -0
  143. package/dist/commonjs/core/segment_sinks/inventory/utils.js +53 -0
  144. package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts +171 -0
  145. package/dist/commonjs/core/segment_sinks/segment_buffers_store.js +288 -0
  146. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts +4 -4
  147. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +52 -24
  148. package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.d.ts +11 -11
  149. package/dist/commonjs/core/stream/adaptation/get_representations_switch_strategy.js +32 -33
  150. package/dist/commonjs/core/stream/adaptation/types.d.ts +18 -18
  151. package/dist/commonjs/core/stream/index.d.ts +1 -1
  152. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.d.ts +5 -5
  153. package/dist/commonjs/core/stream/orchestrator/get_time_ranges_for_content.js +5 -5
  154. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts +20 -19
  155. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +76 -52
  156. package/dist/commonjs/core/stream/period/period_stream.d.ts +5 -5
  157. package/dist/commonjs/core/stream/period/period_stream.js +85 -47
  158. package/dist/commonjs/core/stream/period/types.d.ts +23 -21
  159. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +13 -13
  160. package/dist/commonjs/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -38
  161. package/dist/commonjs/core/stream/representation/representation_stream.d.ts +5 -5
  162. package/dist/commonjs/core/stream/representation/representation_stream.js +58 -32
  163. package/dist/commonjs/core/stream/representation/types.d.ts +24 -24
  164. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.d.ts +9 -9
  165. package/dist/commonjs/core/stream/representation/utils/append_segment_to_buffer.js +12 -13
  166. package/dist/commonjs/core/stream/representation/utils/check_for_discontinuity.d.ts +7 -7
  167. package/dist/commonjs/core/stream/representation/utils/check_for_discontinuity.js +16 -18
  168. package/dist/commonjs/core/stream/representation/utils/downloading_queue.d.ts +10 -10
  169. package/dist/commonjs/core/stream/representation/utils/downloading_queue.js +11 -11
  170. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.d.ts +11 -11
  171. package/dist/commonjs/core/stream/representation/utils/get_buffer_status.js +50 -29
  172. package/dist/commonjs/core/stream/representation/utils/get_needed_segments.d.ts +6 -7
  173. package/dist/commonjs/core/stream/representation/utils/get_needed_segments.js +29 -30
  174. package/dist/commonjs/core/stream/representation/utils/push_init_segment.d.ts +13 -13
  175. package/dist/commonjs/core/stream/representation/utils/push_init_segment.js +10 -8
  176. package/dist/commonjs/core/stream/representation/utils/push_media_segment.d.ts +14 -14
  177. package/dist/commonjs/core/stream/representation/utils/push_media_segment.js +16 -13
  178. package/dist/commonjs/core/types.d.ts +8 -0
  179. package/dist/commonjs/default_config.js +21 -18
  180. package/dist/commonjs/errors/encrypted_media_error.d.ts +2 -2
  181. package/dist/commonjs/errors/encrypted_media_error.js +4 -2
  182. package/dist/commonjs/errors/error_codes.d.ts +3 -3
  183. package/dist/commonjs/errors/error_codes.js +1 -0
  184. package/dist/commonjs/errors/format_error.d.ts +2 -2
  185. package/dist/commonjs/errors/format_error.js +1 -2
  186. package/dist/commonjs/errors/is_known_error.d.ts +1 -1
  187. package/dist/commonjs/errors/is_known_error.js +2 -2
  188. package/dist/commonjs/errors/media_error.d.ts +2 -2
  189. package/dist/commonjs/errors/media_error.js +4 -2
  190. package/dist/commonjs/errors/network_error.d.ts +2 -2
  191. package/dist/commonjs/errors/network_error.js +6 -4
  192. package/dist/commonjs/errors/other_error.d.ts +1 -1
  193. package/dist/commonjs/errors/other_error.js +1 -3
  194. package/dist/commonjs/errors/source_buffer_error.js +4 -2
  195. package/dist/commonjs/experimental/features/local.d.ts +1 -1
  196. package/dist/commonjs/experimental/features/local.js +1 -2
  197. package/dist/commonjs/experimental/features/metaplaylist.d.ts +1 -1
  198. package/dist/commonjs/experimental/features/metaplaylist.js +1 -2
  199. package/dist/commonjs/experimental/features/multi_thread.d.ts +1 -1
  200. package/dist/commonjs/experimental/features/multi_thread.js +1 -2
  201. package/dist/commonjs/experimental/index.d.ts +1 -1
  202. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/features/dash.d.ts +1 -1
  203. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/features/metaplaylist.d.ts +1 -1
  204. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/index.d.ts +1 -1
  205. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +3 -3
  206. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +2 -2
  207. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +5 -5
  208. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +1 -1
  209. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +2 -2
  210. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/types.d.ts +6 -6
  211. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts +3 -3
  212. package/dist/commonjs/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +11 -18
  213. package/dist/commonjs/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +13 -23
  214. package/dist/commonjs/experimental/tools/createMetaplaylist/index.d.ts +1 -1
  215. package/dist/commonjs/experimental/tools/createMetaplaylist/index.js +8 -7
  216. package/dist/commonjs/experimental/tools/index.d.ts +1 -1
  217. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
  218. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.js +9 -15
  219. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +4 -3
  220. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +6 -3
  221. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
  222. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/capabilities.js +9 -46
  223. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +2 -1
  224. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +8 -5
  225. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +2 -1
  226. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -13
  227. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts +2 -1
  228. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +21 -17
  229. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +12 -12
  230. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
  231. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts +2 -1
  232. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +7 -8
  233. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.d.ts +1 -1
  234. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +6 -11
  235. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +2 -1
  236. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +1 -2
  237. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts +2 -1
  238. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +3 -3
  239. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/types.d.ts +2 -2
  240. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/utils.d.ts +1 -1
  241. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/utils.js +8 -7
  242. package/dist/commonjs/features/add_features.d.ts +1 -1
  243. package/dist/commonjs/features/features_object.d.ts +1 -1
  244. package/dist/commonjs/features/features_object.js +4 -3
  245. package/dist/commonjs/features/index.d.ts +1 -1
  246. package/dist/commonjs/features/list/dash.d.ts +1 -1
  247. package/dist/commonjs/features/list/dash.js +3 -4
  248. package/dist/commonjs/features/list/dash_wasm.d.ts +2 -2
  249. package/dist/commonjs/features/list/dash_wasm.js +1 -2
  250. package/dist/commonjs/features/list/debug_element.d.ts +1 -1
  251. package/dist/commonjs/features/list/debug_element.js +1 -1
  252. package/dist/commonjs/features/list/directfile.d.ts +1 -1
  253. package/dist/commonjs/features/list/directfile.js +2 -3
  254. package/dist/commonjs/features/list/eme.d.ts +1 -1
  255. package/dist/commonjs/features/list/eme.js +1 -1
  256. package/dist/commonjs/features/list/html_sami_parser.d.ts +1 -1
  257. package/dist/commonjs/features/list/html_sami_parser.js +4 -4
  258. package/dist/commonjs/features/list/html_srt_parser.d.ts +1 -1
  259. package/dist/commonjs/features/list/html_srt_parser.js +4 -4
  260. package/dist/commonjs/features/list/html_text_buffer.d.ts +1 -1
  261. package/dist/commonjs/features/list/html_text_buffer.js +1 -1
  262. package/dist/commonjs/features/list/html_ttml_parser.d.ts +1 -1
  263. package/dist/commonjs/features/list/html_ttml_parser.js +4 -4
  264. package/dist/commonjs/features/list/html_vtt_parser.d.ts +1 -1
  265. package/dist/commonjs/features/list/html_vtt_parser.js +4 -4
  266. package/dist/commonjs/features/list/media_source_main.d.ts +1 -1
  267. package/dist/commonjs/features/list/media_source_main.js +1 -2
  268. package/dist/commonjs/features/list/native_sami_parser.d.ts +1 -1
  269. package/dist/commonjs/features/list/native_sami_parser.js +4 -4
  270. package/dist/commonjs/features/list/native_srt_parser.d.ts +1 -1
  271. package/dist/commonjs/features/list/native_srt_parser.js +4 -4
  272. package/dist/commonjs/features/list/native_text_buffer.d.ts +1 -1
  273. package/dist/commonjs/features/list/native_text_buffer.js +1 -1
  274. package/dist/commonjs/features/list/native_ttml_parser.d.ts +1 -1
  275. package/dist/commonjs/features/list/native_ttml_parser.js +4 -4
  276. package/dist/commonjs/features/list/native_vtt_parser.d.ts +1 -1
  277. package/dist/commonjs/features/list/native_vtt_parser.js +4 -4
  278. package/dist/commonjs/features/list/smooth.d.ts +1 -1
  279. package/dist/commonjs/features/list/smooth.js +1 -2
  280. package/dist/commonjs/features/types.d.ts +28 -23
  281. package/dist/commonjs/index.d.ts +1 -1
  282. package/dist/commonjs/index.js +3 -1
  283. package/dist/commonjs/main_thread/api/debug/buffer_graph.d.ts +28 -0
  284. package/dist/commonjs/main_thread/api/debug/buffer_graph.js +168 -0
  285. package/dist/commonjs/main_thread/api/debug/buffer_size_graph.js +131 -0
  286. package/dist/commonjs/main_thread/api/debug/modules/general_info.d.ts +3 -0
  287. package/dist/commonjs/main_thread/api/debug/modules/general_info.js +236 -0
  288. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.d.ts +4 -0
  289. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +127 -0
  290. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_size.d.ts +3 -0
  291. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_size.js +38 -0
  292. package/dist/commonjs/main_thread/api/debug/render.d.ts +3 -0
  293. package/dist/commonjs/main_thread/api/index.d.ts +17 -0
  294. package/dist/commonjs/main_thread/api/index.js +19 -0
  295. package/dist/commonjs/main_thread/api/option_utils.d.ts +124 -0
  296. package/dist/commonjs/main_thread/api/option_utils.js +335 -0
  297. package/dist/commonjs/main_thread/api/public_api.d.ts +768 -0
  298. package/dist/commonjs/main_thread/api/public_api.js +2557 -0
  299. package/dist/commonjs/main_thread/api/utils.d.ts +66 -0
  300. package/dist/commonjs/main_thread/api/utils.js +178 -0
  301. package/dist/commonjs/main_thread/decrypt/__tests__/__global__/utils.d.ts +184 -0
  302. package/dist/commonjs/main_thread/decrypt/__tests__/__global__/utils.js +439 -0
  303. package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts +53 -0
  304. package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +124 -0
  305. package/dist/commonjs/main_thread/decrypt/clear_on_stop.js +43 -0
  306. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts +185 -0
  307. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +1053 -0
  308. package/dist/commonjs/main_thread/decrypt/create_or_load_session.d.ts +64 -0
  309. package/dist/commonjs/main_thread/decrypt/create_or_load_session.js +135 -0
  310. package/dist/commonjs/main_thread/decrypt/create_session.d.ts +54 -0
  311. package/dist/commonjs/main_thread/decrypt/create_session.js +215 -0
  312. package/dist/commonjs/main_thread/decrypt/dispose_decryption_resources.js +83 -0
  313. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts +48 -0
  314. package/dist/commonjs/main_thread/decrypt/find_key_system.js +375 -0
  315. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts +44 -0
  316. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +165 -0
  317. package/dist/commonjs/main_thread/decrypt/index.d.ts +26 -0
  318. package/dist/commonjs/main_thread/decrypt/init_media_keys.d.ts +26 -0
  319. package/dist/commonjs/main_thread/decrypt/init_media_keys.js +87 -0
  320. package/dist/commonjs/main_thread/decrypt/session_events_listener.d.ts +75 -0
  321. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +325 -0
  322. package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts +51 -0
  323. package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +145 -0
  324. package/dist/commonjs/main_thread/decrypt/types.d.ts +374 -0
  325. package/dist/commonjs/main_thread/decrypt/utils/are_init_values_compatible.js +144 -0
  326. package/dist/commonjs/main_thread/decrypt/utils/check_key_statuses.d.ts +52 -0
  327. package/dist/commonjs/main_thread/decrypt/utils/check_key_statuses.js +211 -0
  328. package/dist/commonjs/main_thread/decrypt/utils/clean_old_loaded_sessions.d.ts +26 -0
  329. package/dist/commonjs/main_thread/decrypt/utils/clean_old_stored_persistent_info.d.ts +32 -0
  330. package/dist/commonjs/main_thread/decrypt/utils/init_data_values_container.d.ts +69 -0
  331. package/dist/commonjs/main_thread/decrypt/utils/init_data_values_container.js +137 -0
  332. package/dist/commonjs/main_thread/decrypt/utils/is_session_usable.d.ts +24 -0
  333. package/dist/commonjs/main_thread/decrypt/utils/is_session_usable.js +51 -0
  334. package/dist/commonjs/main_thread/decrypt/utils/key_session_record.d.ts +104 -0
  335. package/dist/commonjs/main_thread/decrypt/utils/key_session_record.js +189 -0
  336. package/dist/commonjs/main_thread/decrypt/utils/loaded_sessions_store.d.ts +213 -0
  337. package/dist/commonjs/main_thread/decrypt/utils/loaded_sessions_store.js +518 -0
  338. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts +56 -0
  339. package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.js +45 -0
  340. package/dist/commonjs/main_thread/decrypt/utils/persistent_sessions_store.d.ts +94 -0
  341. package/dist/commonjs/main_thread/decrypt/utils/persistent_sessions_store.js +356 -0
  342. package/dist/commonjs/main_thread/decrypt/utils/serializable_bytes.d.ts +44 -0
  343. package/dist/commonjs/main_thread/decrypt/utils/serializable_bytes.js +50 -0
  344. package/dist/commonjs/main_thread/decrypt/utils/server_certificate_store.d.ts +64 -0
  345. package/dist/commonjs/main_thread/decrypt/utils/server_certificate_store.js +123 -0
  346. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts +97 -0
  347. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +264 -0
  348. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +166 -0
  349. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +918 -0
  350. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +222 -0
  351. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +1477 -0
  352. package/dist/commonjs/main_thread/init/send_message.d.ts +2 -0
  353. package/dist/commonjs/main_thread/init/send_message.js +13 -0
  354. package/dist/commonjs/main_thread/init/types.d.ts +221 -0
  355. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts +83 -0
  356. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +105 -0
  357. package/dist/commonjs/main_thread/init/utils/create_media_source.d.ts +37 -0
  358. package/dist/commonjs/main_thread/init/utils/create_media_source.js +106 -0
  359. package/dist/commonjs/main_thread/init/utils/get_initial_time.d.ts +76 -0
  360. package/dist/commonjs/main_thread/init/utils/get_initial_time.js +109 -0
  361. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts +28 -0
  362. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.js +67 -0
  363. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts +61 -0
  364. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +204 -0
  365. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.d.ts +87 -0
  366. package/dist/commonjs/main_thread/init/utils/initialize_content_decryption.js +119 -0
  367. package/dist/commonjs/main_thread/init/utils/main_thread_text_displayer_interface.d.ts +35 -0
  368. package/dist/commonjs/main_thread/init/utils/rebuffering_controller.d.ts +114 -0
  369. package/dist/commonjs/main_thread/init/utils/rebuffering_controller.js +450 -0
  370. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/are_same_stream_events.js +35 -0
  371. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/index.d.ts +18 -0
  372. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +25 -0
  373. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +98 -0
  374. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +53 -0
  375. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +230 -0
  376. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/types.d.ts +41 -0
  377. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.d.ts +23 -0
  378. package/dist/commonjs/main_thread/init/utils/throw_on_media_error.js +66 -0
  379. package/dist/commonjs/main_thread/text_displayer/html/html_parsers.js +25 -0
  380. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.d.ts +100 -0
  381. package/dist/commonjs/main_thread/text_displayer/html/html_text_displayer.js +318 -0
  382. package/dist/commonjs/main_thread/text_displayer/html/text_track_cues_store.d.ts +65 -0
  383. package/dist/commonjs/main_thread/text_displayer/html/text_track_cues_store.js +378 -0
  384. package/dist/commonjs/main_thread/text_displayer/html/update_proportional_elements.js +64 -0
  385. package/dist/commonjs/main_thread/text_displayer/html/utils.js +119 -0
  386. package/dist/commonjs/main_thread/text_displayer/index.d.ts +2 -0
  387. package/dist/commonjs/main_thread/text_displayer/manual_time_ranges.js +52 -0
  388. package/dist/commonjs/main_thread/text_displayer/native/native_parsers.d.ts +11 -0
  389. package/dist/commonjs/main_thread/text_displayer/native/native_parsers.js +25 -0
  390. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +56 -0
  391. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.js +207 -0
  392. package/dist/commonjs/main_thread/text_displayer/types.d.ts +71 -0
  393. package/dist/commonjs/main_thread/text_displayer/types.js +2 -0
  394. package/dist/commonjs/main_thread/tracks_store/index.d.ts +20 -0
  395. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts +197 -0
  396. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.js +691 -0
  397. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.d.ts +101 -0
  398. package/dist/commonjs/main_thread/tracks_store/track_dispatcher.js +198 -0
  399. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +448 -0
  400. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +1096 -0
  401. package/dist/commonjs/main_thread/types.d.ts +5 -0
  402. package/dist/commonjs/main_thread/types.js +2 -0
  403. package/dist/commonjs/manifest/classes/adaptation.d.ts +134 -0
  404. package/dist/commonjs/manifest/classes/adaptation.js +237 -0
  405. package/dist/commonjs/manifest/classes/index.d.ts +25 -0
  406. package/dist/commonjs/manifest/classes/index.js +46 -0
  407. package/dist/commonjs/manifest/classes/manifest.d.ts +391 -0
  408. package/dist/commonjs/manifest/classes/manifest.js +494 -0
  409. package/dist/commonjs/manifest/classes/period.d.ts +106 -0
  410. package/dist/commonjs/manifest/classes/period.js +235 -0
  411. package/dist/commonjs/manifest/classes/representation.d.ts +238 -0
  412. package/dist/commonjs/manifest/classes/representation.js +382 -0
  413. package/dist/commonjs/manifest/classes/representation_index/index.d.ts +18 -0
  414. package/dist/commonjs/manifest/classes/representation_index/static.d.ts +101 -0
  415. package/dist/commonjs/manifest/classes/representation_index/static.js +147 -0
  416. package/dist/commonjs/manifest/classes/representation_index/types.d.ts +420 -0
  417. package/dist/commonjs/manifest/classes/types.d.ts +29 -0
  418. package/dist/commonjs/manifest/classes/types.js +33 -0
  419. package/dist/commonjs/manifest/classes/update_period_in_place.d.ts +53 -0
  420. package/dist/commonjs/manifest/classes/update_period_in_place.js +172 -0
  421. package/dist/commonjs/manifest/classes/update_periods.d.ts +50 -0
  422. package/dist/commonjs/manifest/classes/update_periods.js +229 -0
  423. package/dist/commonjs/manifest/classes/utils.d.ts +39 -0
  424. package/dist/commonjs/manifest/classes/utils.js +54 -0
  425. package/dist/commonjs/manifest/index.d.ts +15 -25
  426. package/dist/commonjs/manifest/index.js +5 -46
  427. package/dist/commonjs/manifest/types.d.ts +2 -31
  428. package/dist/commonjs/manifest/types.js +0 -16
  429. package/dist/commonjs/manifest/utils.d.ts +11 -49
  430. package/dist/commonjs/manifest/utils.js +55 -79
  431. package/dist/commonjs/minimal.d.ts +1 -1
  432. package/dist/commonjs/minimal.js +6 -1
  433. package/dist/commonjs/mse/main_codec_support_prober.d.ts +1 -1
  434. package/dist/commonjs/mse/main_media_source_interface.d.ts +2 -2
  435. package/dist/commonjs/mse/main_media_source_interface.js +59 -34
  436. package/dist/commonjs/mse/types.d.ts +3 -3
  437. package/dist/commonjs/mse/utils/end_of_stream.d.ts +33 -0
  438. package/dist/commonjs/mse/utils/end_of_stream.js +114 -0
  439. package/dist/commonjs/mse/utils/media_source_duration_updater.js +272 -0
  440. package/dist/commonjs/mse/worker_codec_support_prober.d.ts +1 -1
  441. package/dist/commonjs/mse/worker_media_source_interface.d.ts +4 -4
  442. package/dist/commonjs/mse/worker_media_source_interface.js +19 -17
  443. package/dist/commonjs/multithread_types.d.ts +15 -18
  444. package/dist/commonjs/parsers/containers/isobmff/create_box.d.ts +1 -1
  445. package/dist/commonjs/parsers/containers/isobmff/create_box.js +4 -3
  446. package/dist/commonjs/parsers/containers/isobmff/drm/playready.js +1 -2
  447. package/dist/commonjs/parsers/containers/isobmff/extract_complete_chunks.js +95 -0
  448. package/dist/commonjs/parsers/containers/isobmff/find_complete_box.js +57 -0
  449. package/dist/commonjs/parsers/containers/isobmff/get_box.js +2 -4
  450. package/dist/commonjs/parsers/containers/isobmff/index.d.ts +5 -3
  451. package/dist/commonjs/parsers/containers/isobmff/index.js +5 -1
  452. package/dist/commonjs/parsers/containers/isobmff/read.d.ts +1 -1
  453. package/dist/commonjs/parsers/containers/isobmff/read.js +7 -7
  454. package/dist/commonjs/parsers/containers/isobmff/take_pssh_out.js +3 -4
  455. package/dist/commonjs/parsers/containers/isobmff/utils.js +64 -40
  456. package/dist/commonjs/parsers/containers/matroska/index.d.ts +1 -1
  457. package/dist/commonjs/parsers/containers/matroska/utils.js +42 -29
  458. package/dist/commonjs/parsers/images/bif.js +17 -4
  459. package/dist/commonjs/parsers/manifest/dash/common/attach_trickmode_track.d.ts +1 -1
  460. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -3
  461. package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.d.ts +1 -1
  462. package/dist/commonjs/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
  463. package/dist/commonjs/parsers/manifest/dash/common/get_hdr_information.js +4 -12
  464. package/dist/commonjs/parsers/manifest/dash/common/get_http_utc-timing_url.d.ts +1 -1
  465. package/dist/commonjs/parsers/manifest/dash/common/get_http_utc-timing_url.js +4 -5
  466. package/dist/commonjs/parsers/manifest/dash/common/get_minimum_and_maximum_positions.d.ts +1 -1
  467. package/dist/commonjs/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +5 -2
  468. package/dist/commonjs/parsers/manifest/dash/common/get_periods_time_infos.d.ts +1 -1
  469. package/dist/commonjs/parsers/manifest/dash/common/get_periods_time_infos.js +14 -10
  470. package/dist/commonjs/parsers/manifest/dash/common/index.d.ts +1 -1
  471. package/dist/commonjs/parsers/manifest/dash/common/indexes/base.d.ts +5 -5
  472. package/dist/commonjs/parsers/manifest/dash/common/indexes/base.js +39 -29
  473. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +2 -2
  474. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_init_segment.js +8 -4
  475. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +4 -4
  476. package/dist/commonjs/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +14 -10
  477. package/dist/commonjs/parsers/manifest/dash/common/indexes/list.d.ts +2 -2
  478. package/dist/commonjs/parsers/manifest/dash/common/indexes/list.js +33 -20
  479. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.d.ts +3 -3
  480. package/dist/commonjs/parsers/manifest/dash/common/indexes/template.js +58 -57
  481. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.d.ts +5 -4
  482. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +13 -10
  483. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.d.ts +3 -2
  484. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +23 -18
  485. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.d.ts +1 -1
  486. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +16 -9
  487. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.d.ts +4 -3
  488. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +47 -26
  489. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/parse_s_element.d.ts +11 -2
  490. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +74 -3
  491. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +9 -8
  492. package/dist/commonjs/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +85 -66
  493. package/dist/commonjs/parsers/manifest/dash/common/indexes/tokens.js +2 -4
  494. package/dist/commonjs/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
  495. package/dist/commonjs/parsers/manifest/dash/common/infer_adaptation_type.js +2 -2
  496. package/dist/commonjs/parsers/manifest/dash/common/manifest_bounds_calculator.js +9 -10
  497. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +5 -5
  498. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +63 -56
  499. package/dist/commonjs/parsers/manifest/dash/common/parse_availability_start_time.d.ts +3 -2
  500. package/dist/commonjs/parsers/manifest/dash/common/parse_availability_start_time.js +5 -3
  501. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.d.ts +6 -6
  502. package/dist/commonjs/parsers/manifest/dash/common/parse_mpd.js +67 -41
  503. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.d.ts +5 -5
  504. package/dist/commonjs/parsers/manifest/dash/common/parse_periods.js +46 -29
  505. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.d.ts +5 -5
  506. package/dist/commonjs/parsers/manifest/dash/common/parse_representation_index.js +4 -6
  507. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.d.ts +5 -5
  508. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +66 -64
  509. package/dist/commonjs/parsers/manifest/dash/common/resolve_base_urls.d.ts +1 -1
  510. package/dist/commonjs/parsers/manifest/dash/common/resolve_base_urls.js +4 -2
  511. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/index.d.ts +17 -0
  512. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/index.js +19 -0
  513. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.d.ts +24 -0
  514. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.js +400 -0
  515. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/BaseURL.d.ts +24 -0
  516. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/BaseURL.js +33 -0
  517. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentComponent.d.ts +23 -0
  518. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentComponent.js +70 -0
  519. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentProtection.d.ts +22 -0
  520. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/ContentProtection.js +118 -0
  521. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/EventStream.d.ts +23 -0
  522. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/EventStream.js +154 -0
  523. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Initialization.d.ts +22 -0
  524. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Initialization.js +70 -0
  525. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.d.ts +23 -0
  526. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.js +221 -0
  527. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Period.d.ts +23 -0
  528. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Period.js +179 -0
  529. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.d.ts +22 -0
  530. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.js +256 -0
  531. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentBase.d.ts +23 -0
  532. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentBase.js +152 -0
  533. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentList.d.ts +22 -0
  534. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentList.js +60 -0
  535. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTemplate.d.ts +24 -0
  536. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTemplate.js +125 -0
  537. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTimeline.d.ts +22 -0
  538. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTimeline.js +36 -0
  539. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentURL.d.ts +24 -0
  540. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentURL.js +82 -0
  541. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts +176 -0
  542. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.js +382 -0
  543. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/parse_from_xml_string.d.ts +24 -0
  544. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/parse_from_xml_string.js +142 -0
  545. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.d.ts +23 -0
  546. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.js +374 -0
  547. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/BaseURL.d.ts +23 -0
  548. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/BaseURL.js +32 -0
  549. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/ContentComponent.d.ts +22 -0
  550. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/ContentProtection.d.ts +21 -0
  551. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/EventStream.d.ts +23 -0
  552. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/EventStream.js +119 -0
  553. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Initialization.d.ts +21 -0
  554. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Initialization.js +44 -0
  555. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/MPD.d.ts +21 -0
  556. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/MPD.js +181 -0
  557. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Period.d.ts +21 -0
  558. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Period.js +138 -0
  559. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Representation.d.ts +21 -0
  560. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/Representation.js +230 -0
  561. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentBase.d.ts +22 -0
  562. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentBase.js +126 -0
  563. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentList.d.ts +21 -0
  564. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTemplate.d.ts +23 -0
  565. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTemplate.js +102 -0
  566. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentTimeline.d.ts +21 -0
  567. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentURL.d.ts +23 -0
  568. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/SegmentURL.js +56 -0
  569. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts +169 -0
  570. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.js +346 -0
  571. package/dist/commonjs/parsers/manifest/dash/native-parser/parse_from_document.d.ts +24 -0
  572. package/dist/commonjs/parsers/manifest/dash/native-parser/parse_from_document.js +136 -0
  573. package/dist/commonjs/parsers/manifest/dash/node_parser_types.d.ts +5 -3
  574. package/dist/commonjs/parsers/manifest/dash/parsers_types.d.ts +1 -1
  575. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +1 -1
  576. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +31 -17
  577. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts +3 -2
  578. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +21 -25
  579. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.d.ts +2 -2
  580. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.d.ts +3 -3
  581. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +1 -1
  582. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts +3 -3
  583. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +4 -2
  584. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts +3 -2
  585. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -4
  586. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts +3 -2
  587. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +4 -4
  588. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts +3 -2
  589. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +9 -6
  590. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.d.ts +3 -2
  591. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +13 -15
  592. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.d.ts +3 -3
  593. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +1 -1
  594. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.d.ts +2 -2
  595. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -10
  596. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.d.ts +3 -2
  597. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.d.ts +2 -2
  598. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +11 -18
  599. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.d.ts +2 -2
  600. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +2 -4
  601. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/XLink.d.ts +3 -2
  602. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +4 -4
  603. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts +2 -2
  604. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/generators/root.js +7 -3
  605. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +5 -2
  606. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/utils.d.ts +1 -1
  607. package/dist/commonjs/parsers/manifest/dash/wasm-parser/ts/utils.js +7 -3
  608. package/dist/commonjs/parsers/manifest/local/parse_local_manifest.d.ts +2 -2
  609. package/dist/commonjs/parsers/manifest/local/parse_local_manifest.js +25 -16
  610. package/dist/commonjs/parsers/manifest/local/representation_index.d.ts +2 -2
  611. package/dist/commonjs/parsers/manifest/local/representation_index.js +8 -10
  612. package/dist/commonjs/parsers/manifest/metaplaylist/index.d.ts +1 -1
  613. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +4 -4
  614. package/dist/commonjs/parsers/manifest/metaplaylist/metaplaylist_parser.js +48 -43
  615. package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.d.ts +3 -3
  616. package/dist/commonjs/parsers/manifest/metaplaylist/representation_index.js +10 -7
  617. package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts +2 -2
  618. package/dist/commonjs/parsers/manifest/smooth/create_parser.js +130 -108
  619. package/dist/commonjs/parsers/manifest/smooth/get_codecs.js +3 -3
  620. package/dist/commonjs/parsers/manifest/smooth/index.d.ts +1 -1
  621. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +9 -9
  622. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +12 -8
  623. package/dist/commonjs/parsers/manifest/smooth/representation_index.d.ts +3 -3
  624. package/dist/commonjs/parsers/manifest/smooth/representation_index.js +37 -37
  625. package/dist/commonjs/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +1 -1
  626. package/dist/commonjs/parsers/manifest/smooth/shared_smooth_segment_timeline.js +8 -9
  627. package/dist/commonjs/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  628. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  629. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.js +1 -1
  630. package/dist/commonjs/parsers/manifest/smooth/utils/tokens.d.ts +1 -1
  631. package/dist/commonjs/parsers/manifest/smooth/utils/tokens.js +1 -2
  632. package/dist/commonjs/parsers/manifest/types.d.ts +2 -2
  633. package/dist/commonjs/parsers/manifest/utils/check_manifest_ids.d.ts +1 -1
  634. package/dist/commonjs/parsers/manifest/utils/clear_timeline_from_position.d.ts +3 -2
  635. package/dist/commonjs/parsers/manifest/utils/clear_timeline_from_position.js +11 -7
  636. package/dist/commonjs/parsers/manifest/utils/get_first_time_from_adaptation.d.ts +1 -1
  637. package/dist/commonjs/parsers/manifest/utils/get_first_time_from_adaptation.js +5 -4
  638. package/dist/commonjs/parsers/manifest/utils/get_last_time_from_adaptation.d.ts +1 -1
  639. package/dist/commonjs/parsers/manifest/utils/get_last_time_from_adaptation.js +5 -4
  640. package/dist/commonjs/parsers/manifest/utils/get_maximum_positions.d.ts +2 -2
  641. package/dist/commonjs/parsers/manifest/utils/get_maximum_positions.js +11 -17
  642. package/dist/commonjs/parsers/manifest/utils/get_minimum_position.d.ts +2 -2
  643. package/dist/commonjs/parsers/manifest/utils/get_minimum_position.js +5 -11
  644. package/dist/commonjs/parsers/manifest/utils/index_helpers.js +4 -5
  645. package/dist/commonjs/parsers/manifest/utils/update_segment_timeline.d.ts +1 -1
  646. package/dist/commonjs/parsers/manifest/utils/update_segment_timeline.js +17 -17
  647. package/dist/commonjs/parsers/texttracks/index.d.ts +1 -1
  648. package/dist/commonjs/parsers/texttracks/sami/html.d.ts +1 -1
  649. package/dist/commonjs/parsers/texttracks/sami/html.js +17 -16
  650. package/dist/commonjs/parsers/texttracks/sami/native.d.ts +1 -1
  651. package/dist/commonjs/parsers/texttracks/sami/native.js +12 -18
  652. package/dist/commonjs/parsers/texttracks/srt/html.js +12 -10
  653. package/dist/commonjs/parsers/texttracks/srt/native.d.ts +1 -1
  654. package/dist/commonjs/parsers/texttracks/srt/native.js +2 -8
  655. package/dist/commonjs/parsers/texttracks/srt/parse_cue.js +4 -8
  656. package/dist/commonjs/parsers/texttracks/ttml/get_parameters.js +7 -8
  657. package/dist/commonjs/parsers/texttracks/ttml/get_time_delimiters.d.ts +1 -1
  658. package/dist/commonjs/parsers/texttracks/ttml/get_time_delimiters.js +9 -10
  659. package/dist/commonjs/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -2
  660. package/dist/commonjs/parsers/texttracks/ttml/html/apply_extent.js +5 -9
  661. package/dist/commonjs/parsers/texttracks/ttml/html/apply_font_size.js +6 -7
  662. package/dist/commonjs/parsers/texttracks/ttml/html/apply_line_height.js +2 -2
  663. package/dist/commonjs/parsers/texttracks/ttml/html/apply_origin.js +5 -9
  664. package/dist/commonjs/parsers/texttracks/ttml/html/apply_padding.js +7 -11
  665. package/dist/commonjs/parsers/texttracks/ttml/html/create_element.d.ts +2 -2
  666. package/dist/commonjs/parsers/texttracks/ttml/html/create_element.js +29 -22
  667. package/dist/commonjs/parsers/texttracks/ttml/html/generate_css_test_outline.js +2 -2
  668. package/dist/commonjs/parsers/texttracks/ttml/html/parse_cue.d.ts +1 -1
  669. package/dist/commonjs/parsers/texttracks/ttml/html/parse_cue.js +5 -3
  670. package/dist/commonjs/parsers/texttracks/ttml/html/parse_ttml_to_div.d.ts +1 -1
  671. package/dist/commonjs/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +39 -23
  672. package/dist/commonjs/parsers/texttracks/ttml/native/parse_cue.d.ts +2 -2
  673. package/dist/commonjs/parsers/texttracks/ttml/native/parse_cue.js +14 -13
  674. package/dist/commonjs/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts +1 -1
  675. package/dist/commonjs/parsers/texttracks/ttml/parse_ttml.d.ts +3 -3
  676. package/dist/commonjs/parsers/texttracks/ttml/parse_ttml.js +27 -15
  677. package/dist/commonjs/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts +1 -1
  678. package/dist/commonjs/parsers/texttracks/ttml/time_parsing.d.ts +1 -1
  679. package/dist/commonjs/parsers/texttracks/ttml/time_parsing.js +2 -2
  680. package/dist/commonjs/parsers/texttracks/ttml/xml_utils.js +2 -1
  681. package/dist/commonjs/parsers/texttracks/types.d.ts +1 -1
  682. package/dist/commonjs/parsers/texttracks/webvtt/get_style_blocks.js +2 -1
  683. package/dist/commonjs/parsers/texttracks/webvtt/html/convert_payload_to_html.d.ts +1 -1
  684. package/dist/commonjs/parsers/texttracks/webvtt/html/create_default_style_elements.d.ts +1 -1
  685. package/dist/commonjs/parsers/texttracks/webvtt/html/create_style_attribute.js +6 -12
  686. package/dist/commonjs/parsers/texttracks/webvtt/html/create_styled_element.d.ts +1 -1
  687. package/dist/commonjs/parsers/texttracks/webvtt/html/create_styled_element.js +7 -8
  688. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_style_block.js +4 -4
  689. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_webvtt_to_div.d.ts +1 -1
  690. package/dist/commonjs/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +1 -1
  691. package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.d.ts +1 -1
  692. package/dist/commonjs/parsers/texttracks/webvtt/html/to_html.js +4 -10
  693. package/dist/commonjs/parsers/texttracks/webvtt/native/parse_vtt_to_cues.d.ts +1 -1
  694. package/dist/commonjs/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +5 -9
  695. package/dist/commonjs/parsers/texttracks/webvtt/native/set_settings_on_cue.d.ts +1 -1
  696. package/dist/commonjs/parsers/texttracks/webvtt/native/to_native_cue.d.ts +2 -2
  697. package/dist/commonjs/parsers/texttracks/webvtt/native/to_native_cue.js +3 -3
  698. package/dist/commonjs/parsers/texttracks/webvtt/parse_cue_block.js +9 -5
  699. package/dist/commonjs/parsers/texttracks/webvtt/parse_timestamp.js +1 -2
  700. package/dist/commonjs/parsers/texttracks/webvtt/utils.js +6 -6
  701. package/dist/commonjs/playback_observer/index.d.ts +6 -0
  702. package/dist/commonjs/playback_observer/index.js +5 -0
  703. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +203 -0
  704. package/dist/commonjs/playback_observer/media_element_playback_observer.js +685 -0
  705. package/dist/commonjs/playback_observer/types.d.ts +223 -0
  706. package/dist/commonjs/playback_observer/types.js +2 -0
  707. package/dist/commonjs/playback_observer/utils/generate_read_only_observer.d.ts +11 -0
  708. package/dist/commonjs/playback_observer/utils/generate_read_only_observer.js +44 -0
  709. package/dist/commonjs/playback_observer/utils/observation_position.d.ts +87 -0
  710. package/dist/commonjs/playback_observer/utils/observation_position.js +88 -0
  711. package/dist/commonjs/playback_observer/worker_playback_observer.d.ts +72 -0
  712. package/dist/commonjs/playback_observer/worker_playback_observer.js +49 -0
  713. package/dist/commonjs/public_types.d.ts +13 -16
  714. package/dist/commonjs/public_types.js +0 -1
  715. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.d.ts +2 -2
  716. package/dist/commonjs/tools/TextTrackRenderer/text_track_renderer.js +10 -7
  717. package/dist/commonjs/tools/index.d.ts +1 -1
  718. package/dist/commonjs/tools/parseBIFThumbnails/index.js +5 -4
  719. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.d.ts +1 -1
  720. package/dist/commonjs/transports/dash/add_segment_integrity_checks_to_loader.js +2 -3
  721. package/dist/commonjs/transports/dash/construct_segment_url.d.ts +2 -2
  722. package/dist/commonjs/transports/dash/construct_segment_url.js +7 -3
  723. package/dist/commonjs/transports/dash/get_events_out_of_emsgs.d.ts +2 -2
  724. package/dist/commonjs/transports/dash/get_events_out_of_emsgs.js +12 -10
  725. package/dist/commonjs/transports/dash/init_segment_loader.d.ts +3 -3
  726. package/dist/commonjs/transports/dash/init_segment_loader.js +46 -22
  727. package/dist/commonjs/transports/dash/low_latency_segment_loader.d.ts +2 -2
  728. package/dist/commonjs/transports/dash/low_latency_segment_loader.js +18 -11
  729. package/dist/commonjs/transports/dash/manifest_parser.d.ts +2 -2
  730. package/dist/commonjs/transports/dash/manifest_parser.js +69 -28
  731. package/dist/commonjs/transports/dash/pipelines.d.ts +1 -1
  732. package/dist/commonjs/transports/dash/pipelines.js +15 -12
  733. package/dist/commonjs/transports/dash/segment_loader.d.ts +4 -4
  734. package/dist/commonjs/transports/dash/segment_loader.js +35 -21
  735. package/dist/commonjs/transports/dash/segment_parser.d.ts +2 -2
  736. package/dist/commonjs/transports/dash/segment_parser.js +54 -22
  737. package/dist/commonjs/transports/dash/text_loader.d.ts +2 -2
  738. package/dist/commonjs/transports/dash/text_loader.js +21 -18
  739. package/dist/commonjs/transports/dash/text_parser.d.ts +2 -2
  740. package/dist/commonjs/transports/dash/text_parser.js +49 -23
  741. package/dist/commonjs/transports/index.d.ts +1 -1
  742. package/dist/commonjs/transports/index.js +0 -15
  743. package/dist/commonjs/transports/local/pipelines.d.ts +1 -1
  744. package/dist/commonjs/transports/local/pipelines.js +15 -10
  745. package/dist/commonjs/transports/local/segment_loader.d.ts +3 -3
  746. package/dist/commonjs/transports/local/segment_loader.js +14 -6
  747. package/dist/commonjs/transports/local/segment_parser.d.ts +1 -1
  748. package/dist/commonjs/transports/local/segment_parser.js +30 -12
  749. package/dist/commonjs/transports/local/text_parser.d.ts +1 -1
  750. package/dist/commonjs/transports/local/text_parser.js +48 -18
  751. package/dist/commonjs/transports/metaplaylist/manifest_loader.d.ts +4 -4
  752. package/dist/commonjs/transports/metaplaylist/manifest_loader.js +9 -5
  753. package/dist/commonjs/transports/metaplaylist/pipelines.d.ts +1 -1
  754. package/dist/commonjs/transports/metaplaylist/pipelines.js +38 -22
  755. package/dist/commonjs/transports/smooth/extract_timings_infos.d.ts +2 -2
  756. package/dist/commonjs/transports/smooth/extract_timings_infos.js +14 -13
  757. package/dist/commonjs/transports/smooth/is_mp4_embedded_track.d.ts +1 -1
  758. package/dist/commonjs/transports/smooth/is_mp4_embedded_track.js +1 -1
  759. package/dist/commonjs/transports/smooth/isobmff/create_audio_init_segment.d.ts +0 -1
  760. package/dist/commonjs/transports/smooth/isobmff/create_audio_init_segment.js +3 -4
  761. package/dist/commonjs/transports/smooth/isobmff/create_boxes.js +22 -31
  762. package/dist/commonjs/transports/smooth/isobmff/create_init_segment.js +1 -1
  763. package/dist/commonjs/transports/smooth/isobmff/get_aaces_header.js +4 -16
  764. package/dist/commonjs/transports/smooth/isobmff/parse_tfrf.js +1 -1
  765. package/dist/commonjs/transports/smooth/isobmff/parse_tfxd.js +1 -1
  766. package/dist/commonjs/transports/smooth/isobmff/patch_segment.js +12 -11
  767. package/dist/commonjs/transports/smooth/pipelines.d.ts +1 -1
  768. package/dist/commonjs/transports/smooth/pipelines.js +101 -60
  769. package/dist/commonjs/transports/smooth/segment_loader.d.ts +3 -3
  770. package/dist/commonjs/transports/smooth/segment_loader.js +50 -27
  771. package/dist/commonjs/transports/smooth/utils.d.ts +4 -4
  772. package/dist/commonjs/transports/smooth/utils.js +9 -5
  773. package/dist/commonjs/transports/types.d.ts +22 -27
  774. package/dist/commonjs/transports/utils/byte_range.js +1 -2
  775. package/dist/commonjs/transports/utils/call_custom_manifest_loader.d.ts +3 -3
  776. package/dist/commonjs/transports/utils/call_custom_manifest_loader.js +10 -6
  777. package/dist/commonjs/transports/utils/check_isobmff_integrity.js +5 -5
  778. package/dist/commonjs/transports/utils/generate_manifest_loader.d.ts +3 -3
  779. package/dist/commonjs/transports/utils/generate_manifest_loader.js +18 -6
  780. package/dist/commonjs/transports/utils/get_isobmff_timing_infos.d.ts +2 -2
  781. package/dist/commonjs/transports/utils/get_isobmff_timing_infos.js +12 -11
  782. package/dist/commonjs/transports/utils/infer_segment_container.d.ts +1 -1
  783. package/dist/commonjs/transports/utils/infer_segment_container.js +1 -3
  784. package/dist/commonjs/transports/utils/parse_text_track.d.ts +4 -4
  785. package/dist/commonjs/transports/utils/parse_text_track.js +4 -7
  786. package/dist/commonjs/utils/array_includes.js +2 -6
  787. package/dist/commonjs/utils/assert.js +3 -6
  788. package/dist/commonjs/utils/base64.js +87 -29
  789. package/dist/commonjs/utils/byte_parsing.js +64 -56
  790. package/dist/commonjs/utils/cancellable_sleep.d.ts +1 -1
  791. package/dist/commonjs/utils/create_cancellable_promise.d.ts +1 -1
  792. package/dist/commonjs/utils/deep_merge.js +4 -4
  793. package/dist/commonjs/utils/event_emitter.d.ts +1 -1
  794. package/dist/commonjs/utils/event_emitter.js +1 -2
  795. package/dist/commonjs/utils/get_fuzzed_delay.js +1 -1
  796. package/dist/commonjs/utils/global_scope.d.ts +1 -1
  797. package/dist/commonjs/utils/global_scope.js +10 -3
  798. package/dist/commonjs/utils/hash_buffer.js +1 -1
  799. package/dist/commonjs/utils/languages/normalize.js +4 -2
  800. package/dist/commonjs/utils/logger.js +21 -31
  801. package/dist/commonjs/utils/monotonic_timestamp.d.ts +6 -9
  802. package/dist/commonjs/utils/monotonic_timestamp.js +15 -6
  803. package/dist/commonjs/utils/object_assign.d.ts +6 -3
  804. package/dist/commonjs/utils/object_assign.js +5 -7
  805. package/dist/commonjs/utils/object_values.d.ts +1 -1
  806. package/dist/commonjs/utils/object_values.js +2 -3
  807. package/dist/commonjs/utils/queue_microtask.js +3 -3
  808. package/dist/commonjs/utils/ranges.js +22 -29
  809. package/dist/commonjs/utils/reference.d.ts +1 -1
  810. package/dist/commonjs/utils/reference.js +1 -3
  811. package/dist/commonjs/utils/request/fetch.d.ts +1 -1
  812. package/dist/commonjs/utils/request/fetch.js +33 -22
  813. package/dist/commonjs/utils/request/request_error.js +2 -2
  814. package/dist/commonjs/utils/request/xhr.d.ts +1 -1
  815. package/dist/commonjs/utils/request/xhr.js +28 -17
  816. package/dist/commonjs/utils/retry_promise_with_backoff.d.ts +10 -1
  817. package/dist/commonjs/utils/retry_promise_with_backoff.js +18 -4
  818. package/dist/commonjs/utils/slice_uint8array.js +3 -3
  819. package/dist/commonjs/utils/starts_with.js +3 -3
  820. package/dist/commonjs/utils/string_parsing.js +16 -18
  821. package/dist/commonjs/utils/sync_or_async.js +6 -2
  822. package/dist/commonjs/utils/task_canceller.js +1 -2
  823. package/dist/commonjs/utils/wrapInPromise.d.ts +1 -1
  824. package/dist/commonjs/utils/xml-parser.d.ts +70 -0
  825. package/dist/commonjs/utils/xml-parser.js +357 -0
  826. package/dist/commonjs/worker_entry_point.js +1 -1
  827. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  828. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  829. package/dist/es2017/__GENERATED_CODE/embedded_worker_es5.d.ts +3 -0
  830. package/dist/es2017/__GENERATED_CODE/embedded_worker_es5.js +3 -0
  831. package/dist/es2017/__GENERATED_CODE/index.d.ts +1 -0
  832. package/dist/es2017/__GENERATED_CODE/index.js +1 -0
  833. package/dist/es2017/compat/add_class_name.js +4 -3
  834. package/dist/es2017/compat/add_text_track.d.ts +1 -1
  835. package/dist/es2017/compat/add_text_track.js +3 -2
  836. package/dist/es2017/compat/browser_compatibility_types.js +13 -7
  837. package/dist/es2017/compat/browser_detection.d.ts +3 -1
  838. package/dist/es2017/compat/browser_detection.js +15 -12
  839. package/dist/es2017/compat/can_reuse_media_keys.js +1 -1
  840. package/dist/es2017/compat/can_seek_directly_after_loaded_metadata.d.ts +7 -0
  841. package/dist/es2017/compat/can_seek_directly_after_loaded_metadata.js +8 -0
  842. package/dist/es2017/compat/change_source_buffer_type.d.ts +1 -1
  843. package/dist/es2017/compat/eme/close_session.d.ts +1 -1
  844. package/dist/es2017/compat/eme/close_session.js +17 -13
  845. package/dist/es2017/compat/eme/custom_key_system_access.d.ts +1 -1
  846. package/dist/es2017/compat/eme/custom_media_keys/ie11_media_keys.d.ts +1 -1
  847. package/dist/es2017/compat/eme/custom_media_keys/ie11_media_keys.js +14 -7
  848. package/dist/es2017/compat/eme/custom_media_keys/index.js +1 -1
  849. package/dist/es2017/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +1 -1
  850. package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +1 -1
  851. package/dist/es2017/compat/eme/custom_media_keys/old_webkit_media_keys.js +10 -10
  852. package/dist/es2017/compat/eme/custom_media_keys/types.d.ts +1 -1
  853. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts +1 -1
  854. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.js +5 -9
  855. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +1 -1
  856. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +3 -3
  857. package/dist/es2017/compat/eme/eme-api-implementation.d.ts +3 -3
  858. package/dist/es2017/compat/eme/eme-api-implementation.js +13 -12
  859. package/dist/es2017/compat/eme/generate_key_request.d.ts +1 -1
  860. package/dist/es2017/compat/eme/generate_key_request.js +17 -20
  861. package/dist/es2017/compat/eme/get_init_data.js +5 -7
  862. package/dist/es2017/compat/eme/get_uuid_kid_from_keystatus_kid.js +2 -3
  863. package/dist/es2017/compat/eme/get_webkit_fairplay_initdata.js +12 -13
  864. package/dist/es2017/compat/eme/load_session.d.ts +1 -1
  865. package/dist/es2017/compat/eme/set_media_keys.d.ts +9 -0
  866. package/dist/es2017/compat/eme/set_media_keys.js +33 -0
  867. package/dist/es2017/compat/enable_audio_track.d.ts +1 -1
  868. package/dist/es2017/compat/event_listeners.d.ts +4 -4
  869. package/dist/es2017/compat/event_listeners.js +39 -36
  870. package/dist/es2017/compat/has_webassembly.js +1 -2
  871. package/dist/es2017/compat/has_worker_api.d.ts +9 -0
  872. package/dist/es2017/compat/has_worker_api.js +14 -0
  873. package/dist/es2017/compat/is_codec_supported.js +2 -1
  874. package/dist/es2017/compat/is_vtt_cue.d.ts +1 -1
  875. package/dist/es2017/compat/make_vtt_cue.d.ts +1 -1
  876. package/dist/es2017/compat/may_media_element_fail_on_undecipherable_data.d.ts +16 -0
  877. package/dist/es2017/compat/may_media_element_fail_on_undecipherable_data.js +17 -0
  878. package/dist/es2017/compat/on_height_width_change.d.ts +2 -2
  879. package/dist/es2017/compat/on_height_width_change.js +1 -1
  880. package/dist/es2017/compat/patch_webkit_source_buffer.js +28 -28
  881. package/dist/es2017/compat/should_await_set_media_keys.d.ts +16 -0
  882. package/dist/es2017/compat/should_await_set_media_keys.js +19 -0
  883. package/dist/es2017/compat/should_favour_custom_safari_EME.js +2 -2
  884. package/dist/es2017/compat/should_reload_media_source_on_decipherability_update.js +1 -2
  885. package/dist/es2017/config.d.ts +1 -1
  886. package/dist/es2017/core/adaptive/adaptive_representation_selector.d.ts +25 -22
  887. package/dist/es2017/core/adaptive/adaptive_representation_selector.js +40 -28
  888. package/dist/es2017/core/adaptive/buffer_based_chooser.d.ts +1 -1
  889. package/dist/es2017/core/adaptive/buffer_based_chooser.js +14 -12
  890. package/dist/es2017/core/adaptive/guess_based_chooser.d.ts +6 -6
  891. package/dist/es2017/core/adaptive/guess_based_chooser.js +8 -7
  892. package/dist/es2017/core/adaptive/index.d.ts +2 -2
  893. package/dist/es2017/core/adaptive/network_analyzer.d.ts +6 -6
  894. package/dist/es2017/core/adaptive/network_analyzer.js +45 -41
  895. package/dist/es2017/core/adaptive/utils/bandwidth_estimator.js +1 -1
  896. package/dist/es2017/core/adaptive/utils/ewma.js +1 -2
  897. package/dist/es2017/core/adaptive/utils/filter_by_bitrate.d.ts +2 -2
  898. package/dist/es2017/core/adaptive/utils/filter_by_resolution.d.ts +2 -2
  899. package/dist/es2017/core/adaptive/utils/filter_by_resolution.js +2 -4
  900. package/dist/es2017/core/adaptive/utils/get_buffer_levels.js +8 -5
  901. package/dist/es2017/core/adaptive/utils/last_estimate_storage.d.ts +3 -3
  902. package/dist/es2017/core/adaptive/utils/pending_requests_store.d.ts +5 -5
  903. package/dist/es2017/core/adaptive/utils/pending_requests_store.js +5 -6
  904. package/dist/es2017/core/adaptive/utils/representation_score_calculator.d.ts +7 -7
  905. package/dist/es2017/core/adaptive/utils/representation_score_calculator.js +10 -8
  906. package/dist/es2017/core/adaptive/utils/select_optimal_representation.d.ts +4 -4
  907. package/dist/es2017/core/adaptive/utils/select_optimal_representation.js +2 -2
  908. package/dist/es2017/core/fetchers/cdn_prioritizer.d.ts +2 -2
  909. package/dist/es2017/core/fetchers/cdn_prioritizer.js +5 -6
  910. package/dist/es2017/core/fetchers/manifest/index.d.ts +1 -1
  911. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts +3 -3
  912. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +76 -76
  913. package/dist/es2017/core/fetchers/segment/index.d.ts +1 -1
  914. package/dist/es2017/core/fetchers/segment/initialization_segment_cache.d.ts +4 -4
  915. package/dist/es2017/core/fetchers/segment/initialization_segment_cache.js +1 -1
  916. package/dist/es2017/core/fetchers/segment/prioritized_segment_fetcher.d.ts +4 -3
  917. package/dist/es2017/core/fetchers/segment/segment_fetcher.d.ts +12 -12
  918. package/dist/es2017/core/fetchers/segment/segment_fetcher.js +52 -37
  919. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -5
  920. package/dist/es2017/core/fetchers/segment/segment_fetcher_creator.js +5 -3
  921. package/dist/es2017/core/fetchers/segment/task_prioritizer.d.ts +1 -1
  922. package/dist/es2017/core/fetchers/segment/task_prioritizer.js +22 -21
  923. package/dist/es2017/core/fetchers/utils/error_selector.d.ts +1 -2
  924. package/dist/es2017/core/fetchers/utils/error_selector.js +1 -2
  925. package/dist/es2017/core/fetchers/utils/schedule_request.d.ts +3 -3
  926. package/dist/es2017/core/fetchers/utils/schedule_request.js +22 -23
  927. package/dist/es2017/core/main/common/DecipherabilityFreezeDetector.d.ts +79 -0
  928. package/dist/es2017/core/main/common/DecipherabilityFreezeDetector.js +91 -0
  929. package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts +191 -0
  930. package/dist/es2017/core/main/common/content_time_boundaries_observer.js +467 -0
  931. package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts +27 -0
  932. package/dist/es2017/core/main/common/create_content_time_boundaries_observer.js +41 -0
  933. package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts +14 -0
  934. package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.js +34 -0
  935. package/dist/es2017/core/main/worker/content_preparer.d.ts +93 -0
  936. package/dist/es2017/core/main/worker/content_preparer.js +239 -0
  937. package/dist/es2017/core/main/worker/globals.d.ts +13 -0
  938. package/dist/es2017/core/main/worker/globals.js +18 -0
  939. package/dist/es2017/core/main/worker/index.d.ts +2 -0
  940. package/dist/es2017/core/main/worker/index.js +2 -0
  941. package/dist/es2017/core/main/worker/send_message.d.ts +3 -0
  942. package/dist/es2017/core/main/worker/send_message.js +20 -0
  943. package/dist/es2017/core/main/worker/track_choice_setter.d.ts +19 -0
  944. package/dist/es2017/core/main/worker/track_choice_setter.js +114 -0
  945. package/dist/es2017/core/main/worker/worker_main.d.ts +1 -0
  946. package/dist/es2017/core/main/worker/worker_main.js +699 -0
  947. package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts +64 -0
  948. package/dist/es2017/core/main/worker/worker_text_displayer_interface.js +120 -0
  949. package/dist/es2017/core/segment_sinks/garbage_collector.d.ts +43 -0
  950. package/dist/es2017/core/segment_sinks/garbage_collector.js +143 -0
  951. package/dist/es2017/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.d.ts +135 -0
  952. package/dist/es2017/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.js +265 -0
  953. package/dist/es2017/core/segment_sinks/implementations/audio_video/index.d.ts +17 -0
  954. package/dist/es2017/core/segment_sinks/implementations/audio_video/index.js +17 -0
  955. package/dist/es2017/core/segment_sinks/implementations/index.d.ts +19 -0
  956. package/dist/es2017/core/segment_sinks/implementations/index.js +18 -0
  957. package/dist/es2017/core/segment_sinks/implementations/text/index.d.ts +3 -0
  958. package/dist/es2017/core/segment_sinks/implementations/text/index.js +2 -0
  959. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_buffer.d.ts +90 -0
  960. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_buffer.js +156 -0
  961. package/dist/es2017/core/segment_sinks/implementations/types.d.ts +307 -0
  962. package/dist/es2017/core/segment_sinks/implementations/types.js +112 -0
  963. package/dist/es2017/core/segment_sinks/implementations/utils/manual_time_ranges.js +63 -0
  964. package/dist/es2017/core/segment_sinks/index.d.ts +21 -0
  965. package/dist/es2017/core/segment_sinks/index.js +21 -0
  966. package/dist/es2017/core/segment_sinks/inventory/buffered_history.d.ts +89 -0
  967. package/dist/es2017/core/segment_sinks/inventory/buffered_history.js +88 -0
  968. package/dist/es2017/core/segment_sinks/inventory/index.d.ts +21 -0
  969. package/dist/es2017/core/segment_sinks/inventory/index.js +18 -0
  970. package/dist/es2017/core/segment_sinks/inventory/segment_inventory.d.ts +238 -0
  971. package/dist/es2017/core/segment_sinks/inventory/segment_inventory.js +868 -0
  972. package/dist/es2017/core/segment_sinks/inventory/types.d.ts +27 -0
  973. package/dist/es2017/core/segment_sinks/inventory/utils.d.ts +33 -0
  974. package/dist/es2017/core/segment_sinks/inventory/utils.js +48 -0
  975. package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts +171 -0
  976. package/dist/es2017/core/segment_sinks/segment_buffers_store.js +281 -0
  977. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts +4 -4
  978. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +43 -32
  979. package/dist/es2017/core/stream/adaptation/get_representations_switch_strategy.d.ts +11 -11
  980. package/dist/es2017/core/stream/adaptation/get_representations_switch_strategy.js +31 -32
  981. package/dist/es2017/core/stream/adaptation/types.d.ts +18 -18
  982. package/dist/es2017/core/stream/index.d.ts +1 -1
  983. package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.d.ts +5 -5
  984. package/dist/es2017/core/stream/orchestrator/get_time_ranges_for_content.js +6 -6
  985. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts +20 -19
  986. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +68 -57
  987. package/dist/es2017/core/stream/period/period_stream.d.ts +5 -5
  988. package/dist/es2017/core/stream/period/period_stream.js +78 -58
  989. package/dist/es2017/core/stream/period/types.d.ts +23 -21
  990. package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +13 -13
  991. package/dist/es2017/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -38
  992. package/dist/es2017/core/stream/representation/representation_stream.d.ts +5 -5
  993. package/dist/es2017/core/stream/representation/representation_stream.js +48 -35
  994. package/dist/es2017/core/stream/representation/types.d.ts +24 -24
  995. package/dist/es2017/core/stream/representation/utils/append_segment_to_buffer.d.ts +9 -9
  996. package/dist/es2017/core/stream/representation/utils/append_segment_to_buffer.js +13 -14
  997. package/dist/es2017/core/stream/representation/utils/check_for_discontinuity.d.ts +7 -7
  998. package/dist/es2017/core/stream/representation/utils/check_for_discontinuity.js +16 -18
  999. package/dist/es2017/core/stream/representation/utils/downloading_queue.d.ts +10 -10
  1000. package/dist/es2017/core/stream/representation/utils/downloading_queue.js +11 -11
  1001. package/dist/es2017/core/stream/representation/utils/get_buffer_status.d.ts +11 -11
  1002. package/dist/es2017/core/stream/representation/utils/get_buffer_status.js +40 -31
  1003. package/dist/es2017/core/stream/representation/utils/get_needed_segments.d.ts +6 -7
  1004. package/dist/es2017/core/stream/representation/utils/get_needed_segments.js +26 -31
  1005. package/dist/es2017/core/stream/representation/utils/push_init_segment.d.ts +13 -13
  1006. package/dist/es2017/core/stream/representation/utils/push_init_segment.js +8 -9
  1007. package/dist/es2017/core/stream/representation/utils/push_media_segment.d.ts +14 -14
  1008. package/dist/es2017/core/stream/representation/utils/push_media_segment.js +14 -15
  1009. package/dist/es2017/core/types.d.ts +8 -0
  1010. package/dist/es2017/default_config.js +21 -18
  1011. package/dist/es2017/errors/encrypted_media_error.d.ts +2 -2
  1012. package/dist/es2017/errors/encrypted_media_error.js +5 -3
  1013. package/dist/es2017/errors/error_codes.d.ts +3 -3
  1014. package/dist/es2017/errors/error_codes.js +2 -1
  1015. package/dist/es2017/errors/format_error.d.ts +2 -2
  1016. package/dist/es2017/errors/format_error.js +2 -3
  1017. package/dist/es2017/errors/is_known_error.d.ts +1 -1
  1018. package/dist/es2017/errors/is_known_error.js +2 -2
  1019. package/dist/es2017/errors/media_error.d.ts +2 -2
  1020. package/dist/es2017/errors/media_error.js +5 -3
  1021. package/dist/es2017/errors/network_error.d.ts +2 -2
  1022. package/dist/es2017/errors/network_error.js +7 -5
  1023. package/dist/es2017/errors/other_error.d.ts +1 -1
  1024. package/dist/es2017/errors/other_error.js +2 -4
  1025. package/dist/es2017/errors/source_buffer_error.js +4 -2
  1026. package/dist/es2017/experimental/features/local.d.ts +1 -1
  1027. package/dist/es2017/experimental/features/local.js +1 -2
  1028. package/dist/es2017/experimental/features/metaplaylist.d.ts +1 -1
  1029. package/dist/es2017/experimental/features/metaplaylist.js +1 -2
  1030. package/dist/es2017/experimental/features/multi_thread.d.ts +1 -1
  1031. package/dist/es2017/experimental/features/multi_thread.js +1 -2
  1032. package/dist/es2017/experimental/index.d.ts +1 -1
  1033. package/dist/es2017/experimental/index.js +1 -1
  1034. package/dist/es2017/experimental/tools/VideoThumbnailLoader/features/dash.d.ts +1 -1
  1035. package/dist/es2017/experimental/tools/VideoThumbnailLoader/features/metaplaylist.d.ts +1 -1
  1036. package/dist/es2017/experimental/tools/VideoThumbnailLoader/index.d.ts +1 -1
  1037. package/dist/es2017/experimental/tools/VideoThumbnailLoader/index.js +2 -2
  1038. package/dist/es2017/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +3 -3
  1039. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +2 -2
  1040. package/dist/es2017/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +5 -5
  1041. package/dist/es2017/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +1 -1
  1042. package/dist/es2017/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +2 -2
  1043. package/dist/es2017/experimental/tools/VideoThumbnailLoader/types.d.ts +6 -6
  1044. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts +3 -3
  1045. package/dist/es2017/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +14 -22
  1046. package/dist/es2017/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +13 -23
  1047. package/dist/es2017/experimental/tools/createMetaplaylist/index.d.ts +1 -1
  1048. package/dist/es2017/experimental/tools/createMetaplaylist/index.js +8 -14
  1049. package/dist/es2017/experimental/tools/index.d.ts +1 -1
  1050. package/dist/es2017/experimental/tools/index.js +1 -1
  1051. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
  1052. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.js +9 -13
  1053. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +4 -3
  1054. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +7 -4
  1055. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
  1056. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/capabilities.js +10 -47
  1057. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +2 -1
  1058. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +9 -6
  1059. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +2 -1
  1060. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +22 -14
  1061. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts +2 -1
  1062. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +22 -18
  1063. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +10 -10
  1064. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
  1065. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts +2 -1
  1066. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +6 -7
  1067. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.d.ts +1 -1
  1068. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +6 -11
  1069. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +2 -1
  1070. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +2 -3
  1071. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts +2 -1
  1072. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +4 -4
  1073. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/types.d.ts +2 -2
  1074. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/utils.d.ts +1 -1
  1075. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/utils.js +8 -7
  1076. package/dist/es2017/features/add_features.d.ts +1 -1
  1077. package/dist/es2017/features/features_object.d.ts +1 -1
  1078. package/dist/es2017/features/features_object.js +4 -3
  1079. package/dist/es2017/features/index.d.ts +1 -1
  1080. package/dist/es2017/features/index.js +1 -1
  1081. package/dist/es2017/features/list/dash.d.ts +1 -1
  1082. package/dist/es2017/features/list/dash.js +3 -4
  1083. package/dist/es2017/features/list/dash_wasm.d.ts +2 -2
  1084. package/dist/es2017/features/list/dash_wasm.js +1 -2
  1085. package/dist/es2017/features/list/debug_element.d.ts +1 -1
  1086. package/dist/es2017/features/list/debug_element.js +1 -1
  1087. package/dist/es2017/features/list/directfile.d.ts +1 -1
  1088. package/dist/es2017/features/list/directfile.js +3 -5
  1089. package/dist/es2017/features/list/eme.d.ts +1 -1
  1090. package/dist/es2017/features/list/eme.js +1 -1
  1091. package/dist/es2017/features/list/html_sami_parser.d.ts +1 -1
  1092. package/dist/es2017/features/list/html_sami_parser.js +1 -1
  1093. package/dist/es2017/features/list/html_srt_parser.d.ts +1 -1
  1094. package/dist/es2017/features/list/html_srt_parser.js +1 -1
  1095. package/dist/es2017/features/list/html_text_buffer.d.ts +1 -1
  1096. package/dist/es2017/features/list/html_text_buffer.js +1 -1
  1097. package/dist/es2017/features/list/html_ttml_parser.d.ts +1 -1
  1098. package/dist/es2017/features/list/html_ttml_parser.js +1 -1
  1099. package/dist/es2017/features/list/html_vtt_parser.d.ts +1 -1
  1100. package/dist/es2017/features/list/html_vtt_parser.js +1 -1
  1101. package/dist/es2017/features/list/media_source_main.d.ts +1 -1
  1102. package/dist/es2017/features/list/media_source_main.js +1 -2
  1103. package/dist/es2017/features/list/native_sami_parser.d.ts +1 -1
  1104. package/dist/es2017/features/list/native_sami_parser.js +1 -1
  1105. package/dist/es2017/features/list/native_srt_parser.d.ts +1 -1
  1106. package/dist/es2017/features/list/native_srt_parser.js +1 -1
  1107. package/dist/es2017/features/list/native_text_buffer.d.ts +1 -1
  1108. package/dist/es2017/features/list/native_text_buffer.js +1 -1
  1109. package/dist/es2017/features/list/native_ttml_parser.d.ts +1 -1
  1110. package/dist/es2017/features/list/native_ttml_parser.js +1 -1
  1111. package/dist/es2017/features/list/native_vtt_parser.d.ts +1 -1
  1112. package/dist/es2017/features/list/native_vtt_parser.js +1 -1
  1113. package/dist/es2017/features/list/smooth.d.ts +1 -1
  1114. package/dist/es2017/features/list/smooth.js +1 -2
  1115. package/dist/es2017/features/types.d.ts +28 -23
  1116. package/dist/es2017/index.d.ts +1 -1
  1117. package/dist/es2017/index.js +3 -1
  1118. package/dist/es2017/main_thread/api/debug/buffer_graph.d.ts +28 -0
  1119. package/dist/es2017/main_thread/api/debug/buffer_graph.js +164 -0
  1120. package/dist/es2017/main_thread/api/debug/buffer_size_graph.js +102 -0
  1121. package/dist/es2017/main_thread/api/debug/modules/general_info.d.ts +3 -0
  1122. package/dist/es2017/main_thread/api/debug/modules/general_info.js +192 -0
  1123. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.d.ts +4 -0
  1124. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.js +124 -0
  1125. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_size.d.ts +3 -0
  1126. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_size.js +35 -0
  1127. package/dist/es2017/main_thread/api/debug/render.d.ts +3 -0
  1128. package/dist/es2017/main_thread/api/debug/render.js +32 -0
  1129. package/dist/es2017/main_thread/api/debug/utils.js +54 -0
  1130. package/dist/es2017/main_thread/api/index.d.ts +17 -0
  1131. package/dist/es2017/main_thread/api/index.js +17 -0
  1132. package/dist/es2017/main_thread/api/option_utils.d.ts +124 -0
  1133. package/dist/es2017/main_thread/api/option_utils.js +308 -0
  1134. package/dist/es2017/main_thread/api/public_api.d.ts +768 -0
  1135. package/dist/es2017/main_thread/api/public_api.js +2386 -0
  1136. package/dist/es2017/main_thread/api/utils.d.ts +66 -0
  1137. package/dist/es2017/main_thread/api/utils.js +170 -0
  1138. package/dist/es2017/main_thread/decrypt/__tests__/__global__/utils.d.ts +184 -0
  1139. package/dist/es2017/main_thread/decrypt/__tests__/__global__/utils.js +378 -0
  1140. package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts +53 -0
  1141. package/dist/es2017/main_thread/decrypt/attach_media_keys.js +72 -0
  1142. package/dist/es2017/main_thread/decrypt/clear_on_stop.js +40 -0
  1143. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts +185 -0
  1144. package/dist/es2017/main_thread/decrypt/content_decryptor.js +799 -0
  1145. package/dist/es2017/main_thread/decrypt/create_or_load_session.d.ts +64 -0
  1146. package/dist/es2017/main_thread/decrypt/create_or_load_session.js +83 -0
  1147. package/dist/es2017/main_thread/decrypt/create_session.d.ts +54 -0
  1148. package/dist/es2017/main_thread/decrypt/create_session.js +150 -0
  1149. package/dist/es2017/main_thread/decrypt/dispose_decryption_resources.js +34 -0
  1150. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts +48 -0
  1151. package/dist/es2017/main_thread/decrypt/find_key_system.js +287 -0
  1152. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts +44 -0
  1153. package/dist/es2017/main_thread/decrypt/get_media_keys.js +103 -0
  1154. package/dist/es2017/main_thread/decrypt/index.d.ts +26 -0
  1155. package/dist/es2017/main_thread/decrypt/index.js +26 -0
  1156. package/dist/es2017/main_thread/decrypt/init_media_keys.d.ts +26 -0
  1157. package/dist/es2017/main_thread/decrypt/init_media_keys.js +37 -0
  1158. package/dist/es2017/main_thread/decrypt/session_events_listener.d.ts +75 -0
  1159. package/dist/es2017/main_thread/decrypt/session_events_listener.js +246 -0
  1160. package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts +51 -0
  1161. package/dist/es2017/main_thread/decrypt/set_server_certificate.js +82 -0
  1162. package/dist/es2017/main_thread/decrypt/types.d.ts +374 -0
  1163. package/dist/es2017/main_thread/decrypt/utils/are_init_values_compatible.js +141 -0
  1164. package/dist/es2017/main_thread/decrypt/utils/check_key_statuses.d.ts +52 -0
  1165. package/dist/es2017/main_thread/decrypt/utils/check_key_statuses.js +163 -0
  1166. package/dist/es2017/main_thread/decrypt/utils/clean_old_loaded_sessions.d.ts +26 -0
  1167. package/dist/es2017/main_thread/decrypt/utils/clean_old_stored_persistent_info.d.ts +32 -0
  1168. package/dist/es2017/main_thread/decrypt/utils/init_data_values_container.d.ts +69 -0
  1169. package/dist/es2017/main_thread/decrypt/utils/init_data_values_container.js +105 -0
  1170. package/dist/es2017/main_thread/decrypt/utils/is_session_usable.d.ts +24 -0
  1171. package/dist/es2017/main_thread/decrypt/utils/is_session_usable.js +48 -0
  1172. package/dist/es2017/main_thread/decrypt/utils/key_id_comparison.js +48 -0
  1173. package/dist/es2017/main_thread/decrypt/utils/key_session_record.d.ts +104 -0
  1174. package/dist/es2017/main_thread/decrypt/utils/key_session_record.js +152 -0
  1175. package/dist/es2017/main_thread/decrypt/utils/loaded_sessions_store.d.ts +213 -0
  1176. package/dist/es2017/main_thread/decrypt/utils/loaded_sessions_store.js +365 -0
  1177. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts +56 -0
  1178. package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.js +43 -0
  1179. package/dist/es2017/main_thread/decrypt/utils/persistent_sessions_store.d.ts +94 -0
  1180. package/dist/es2017/main_thread/decrypt/utils/persistent_sessions_store.js +325 -0
  1181. package/dist/es2017/main_thread/decrypt/utils/serializable_bytes.d.ts +44 -0
  1182. package/dist/es2017/main_thread/decrypt/utils/serializable_bytes.js +46 -0
  1183. package/dist/es2017/main_thread/decrypt/utils/server_certificate_store.d.ts +64 -0
  1184. package/dist/es2017/main_thread/decrypt/utils/server_certificate_store.js +121 -0
  1185. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts +97 -0
  1186. package/dist/es2017/main_thread/init/directfile_content_initializer.js +233 -0
  1187. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +166 -0
  1188. package/dist/es2017/main_thread/init/media_source_content_initializer.js +712 -0
  1189. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +222 -0
  1190. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +1394 -0
  1191. package/dist/es2017/main_thread/init/send_message.d.ts +2 -0
  1192. package/dist/es2017/main_thread/init/send_message.js +10 -0
  1193. package/dist/es2017/main_thread/init/types.d.ts +221 -0
  1194. package/dist/es2017/main_thread/init/utils/create_core_playback_observer.d.ts +83 -0
  1195. package/dist/es2017/main_thread/init/utils/create_core_playback_observer.js +98 -0
  1196. package/dist/es2017/main_thread/init/utils/create_media_source.d.ts +37 -0
  1197. package/dist/es2017/main_thread/init/utils/create_media_source.js +101 -0
  1198. package/dist/es2017/main_thread/init/utils/get_initial_time.d.ts +76 -0
  1199. package/dist/es2017/main_thread/init/utils/get_initial_time.js +106 -0
  1200. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts +28 -0
  1201. package/dist/es2017/main_thread/init/utils/get_loaded_reference.js +64 -0
  1202. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts +61 -0
  1203. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +200 -0
  1204. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.d.ts +87 -0
  1205. package/dist/es2017/main_thread/init/utils/initialize_content_decryption.js +116 -0
  1206. package/dist/es2017/main_thread/init/utils/main_thread_text_displayer_interface.d.ts +35 -0
  1207. package/dist/es2017/main_thread/init/utils/rebuffering_controller.d.ts +114 -0
  1208. package/dist/es2017/main_thread/init/utils/rebuffering_controller.js +426 -0
  1209. package/dist/es2017/main_thread/init/utils/stream_events_emitter/are_same_stream_events.js +33 -0
  1210. package/dist/es2017/main_thread/init/utils/stream_events_emitter/index.d.ts +18 -0
  1211. package/dist/es2017/main_thread/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +25 -0
  1212. package/dist/es2017/main_thread/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +84 -0
  1213. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +53 -0
  1214. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +175 -0
  1215. package/dist/es2017/main_thread/init/utils/stream_events_emitter/types.d.ts +41 -0
  1216. package/dist/es2017/main_thread/init/utils/throw_on_media_error.d.ts +23 -0
  1217. package/dist/es2017/main_thread/init/utils/throw_on_media_error.js +63 -0
  1218. package/dist/es2017/main_thread/text_displayer/html/html_parsers.js +22 -0
  1219. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.d.ts +100 -0
  1220. package/dist/es2017/main_thread/text_displayer/html/html_text_displayer.js +312 -0
  1221. package/dist/es2017/main_thread/text_displayer/html/text_track_cues_store.d.ts +65 -0
  1222. package/dist/es2017/main_thread/text_displayer/html/text_track_cues_store.js +358 -0
  1223. package/dist/es2017/main_thread/text_displayer/html/update_proportional_elements.js +61 -0
  1224. package/dist/es2017/main_thread/text_displayer/html/utils.js +111 -0
  1225. package/dist/es2017/main_thread/text_displayer/index.d.ts +2 -0
  1226. package/dist/es2017/main_thread/text_displayer/manual_time_ranges.js +48 -0
  1227. package/dist/es2017/main_thread/text_displayer/native/native_parsers.d.ts +11 -0
  1228. package/dist/es2017/main_thread/text_displayer/native/native_parsers.js +22 -0
  1229. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +56 -0
  1230. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.js +203 -0
  1231. package/dist/es2017/main_thread/text_displayer/types.d.ts +71 -0
  1232. package/dist/es2017/main_thread/text_displayer/types.js +1 -0
  1233. package/dist/es2017/main_thread/tracks_store/index.d.ts +20 -0
  1234. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts +197 -0
  1235. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.js +663 -0
  1236. package/dist/es2017/main_thread/tracks_store/track_dispatcher.d.ts +101 -0
  1237. package/dist/es2017/main_thread/tracks_store/track_dispatcher.js +175 -0
  1238. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +448 -0
  1239. package/dist/es2017/main_thread/tracks_store/tracks_store.js +998 -0
  1240. package/dist/es2017/main_thread/types.d.ts +5 -0
  1241. package/dist/es2017/main_thread/types.js +1 -0
  1242. package/dist/es2017/manifest/classes/adaptation.d.ts +134 -0
  1243. package/dist/es2017/manifest/classes/adaptation.js +193 -0
  1244. package/dist/es2017/manifest/classes/index.d.ts +25 -0
  1245. package/dist/es2017/manifest/classes/index.js +28 -0
  1246. package/dist/es2017/manifest/classes/manifest.d.ts +391 -0
  1247. package/dist/es2017/manifest/classes/manifest.js +381 -0
  1248. package/dist/es2017/manifest/classes/period.d.ts +106 -0
  1249. package/dist/es2017/manifest/classes/period.js +194 -0
  1250. package/dist/es2017/manifest/classes/representation.d.ts +238 -0
  1251. package/dist/es2017/manifest/classes/representation.js +346 -0
  1252. package/dist/es2017/manifest/classes/representation_index/index.d.ts +18 -0
  1253. package/dist/es2017/manifest/classes/representation_index/static.d.ts +101 -0
  1254. package/dist/es2017/manifest/classes/representation_index/static.js +143 -0
  1255. package/dist/es2017/manifest/classes/representation_index/types.d.ts +420 -0
  1256. package/dist/es2017/manifest/classes/types.d.ts +29 -0
  1257. package/dist/es2017/manifest/classes/types.js +30 -0
  1258. package/dist/es2017/manifest/classes/update_period_in_place.d.ts +53 -0
  1259. package/dist/es2017/manifest/classes/update_period_in_place.js +109 -0
  1260. package/dist/es2017/manifest/classes/update_periods.d.ts +50 -0
  1261. package/dist/es2017/manifest/classes/update_periods.js +193 -0
  1262. package/dist/es2017/manifest/classes/utils.d.ts +39 -0
  1263. package/dist/es2017/manifest/classes/utils.js +49 -0
  1264. package/dist/es2017/manifest/index.d.ts +15 -25
  1265. package/dist/es2017/manifest/index.js +3 -28
  1266. package/dist/es2017/manifest/types.d.ts +2 -31
  1267. package/dist/es2017/manifest/types.js +1 -15
  1268. package/dist/es2017/manifest/utils.d.ts +11 -49
  1269. package/dist/es2017/manifest/utils.js +46 -88
  1270. package/dist/es2017/minimal.d.ts +1 -1
  1271. package/dist/es2017/minimal.js +6 -1
  1272. package/dist/es2017/mse/main_codec_support_prober.d.ts +1 -1
  1273. package/dist/es2017/mse/main_media_source_interface.d.ts +2 -2
  1274. package/dist/es2017/mse/main_media_source_interface.js +61 -36
  1275. package/dist/es2017/mse/types.d.ts +3 -3
  1276. package/dist/es2017/mse/utils/end_of_stream.d.ts +33 -0
  1277. package/dist/es2017/mse/utils/end_of_stream.js +87 -0
  1278. package/dist/es2017/mse/utils/media_source_duration_updater.js +265 -0
  1279. package/dist/es2017/mse/worker_codec_support_prober.d.ts +1 -1
  1280. package/dist/es2017/mse/worker_media_source_interface.d.ts +4 -4
  1281. package/dist/es2017/mse/worker_media_source_interface.js +21 -19
  1282. package/dist/es2017/multithread_types.d.ts +15 -18
  1283. package/dist/es2017/parsers/containers/isobmff/create_box.d.ts +1 -1
  1284. package/dist/es2017/parsers/containers/isobmff/create_box.js +6 -5
  1285. package/dist/es2017/parsers/containers/isobmff/drm/playready.js +2 -3
  1286. package/dist/es2017/parsers/containers/isobmff/extract_complete_chunks.js +67 -0
  1287. package/dist/es2017/parsers/containers/isobmff/find_complete_box.js +54 -0
  1288. package/dist/es2017/parsers/containers/isobmff/get_box.js +3 -5
  1289. package/dist/es2017/parsers/containers/isobmff/index.d.ts +5 -3
  1290. package/dist/es2017/parsers/containers/isobmff/index.js +6 -4
  1291. package/dist/es2017/parsers/containers/isobmff/read.d.ts +1 -1
  1292. package/dist/es2017/parsers/containers/isobmff/read.js +9 -9
  1293. package/dist/es2017/parsers/containers/isobmff/take_pssh_out.js +4 -5
  1294. package/dist/es2017/parsers/containers/isobmff/utils.js +60 -45
  1295. package/dist/es2017/parsers/containers/matroska/index.d.ts +1 -1
  1296. package/dist/es2017/parsers/containers/matroska/index.js +1 -1
  1297. package/dist/es2017/parsers/containers/matroska/utils.js +42 -29
  1298. package/dist/es2017/parsers/images/bif.js +10 -6
  1299. package/dist/es2017/parsers/manifest/dash/common/attach_trickmode_track.d.ts +1 -1
  1300. package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -3
  1301. package/dist/es2017/parsers/manifest/dash/common/flatten_overlapping_periods.d.ts +1 -1
  1302. package/dist/es2017/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
  1303. package/dist/es2017/parsers/manifest/dash/common/get_hdr_information.js +4 -12
  1304. package/dist/es2017/parsers/manifest/dash/common/get_http_utc-timing_url.d.ts +1 -1
  1305. package/dist/es2017/parsers/manifest/dash/common/get_http_utc-timing_url.js +4 -5
  1306. package/dist/es2017/parsers/manifest/dash/common/get_minimum_and_maximum_positions.d.ts +1 -1
  1307. package/dist/es2017/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +4 -2
  1308. package/dist/es2017/parsers/manifest/dash/common/get_periods_time_infos.d.ts +1 -1
  1309. package/dist/es2017/parsers/manifest/dash/common/get_periods_time_infos.js +15 -13
  1310. package/dist/es2017/parsers/manifest/dash/common/index.d.ts +1 -1
  1311. package/dist/es2017/parsers/manifest/dash/common/indexes/base.d.ts +5 -5
  1312. package/dist/es2017/parsers/manifest/dash/common/indexes/base.js +36 -31
  1313. package/dist/es2017/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +2 -2
  1314. package/dist/es2017/parsers/manifest/dash/common/indexes/get_init_segment.js +6 -4
  1315. package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +4 -4
  1316. package/dist/es2017/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +10 -10
  1317. package/dist/es2017/parsers/manifest/dash/common/indexes/list.d.ts +2 -2
  1318. package/dist/es2017/parsers/manifest/dash/common/indexes/list.js +23 -20
  1319. package/dist/es2017/parsers/manifest/dash/common/indexes/template.d.ts +3 -3
  1320. package/dist/es2017/parsers/manifest/dash/common/indexes/template.js +54 -59
  1321. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.d.ts +5 -4
  1322. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +14 -11
  1323. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.d.ts +3 -2
  1324. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +25 -20
  1325. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.d.ts +1 -1
  1326. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +15 -10
  1327. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.d.ts +4 -3
  1328. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +43 -27
  1329. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/parse_s_element.d.ts +11 -2
  1330. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +49 -2
  1331. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +9 -8
  1332. package/dist/es2017/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +77 -69
  1333. package/dist/es2017/parsers/manifest/dash/common/indexes/tokens.js +2 -4
  1334. package/dist/es2017/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
  1335. package/dist/es2017/parsers/manifest/dash/common/infer_adaptation_type.js +2 -2
  1336. package/dist/es2017/parsers/manifest/dash/common/manifest_bounds_calculator.js +9 -10
  1337. package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +5 -5
  1338. package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +61 -66
  1339. package/dist/es2017/parsers/manifest/dash/common/parse_availability_start_time.d.ts +3 -2
  1340. package/dist/es2017/parsers/manifest/dash/common/parse_availability_start_time.js +5 -3
  1341. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.d.ts +6 -6
  1342. package/dist/es2017/parsers/manifest/dash/common/parse_mpd.js +54 -42
  1343. package/dist/es2017/parsers/manifest/dash/common/parse_periods.d.ts +5 -5
  1344. package/dist/es2017/parsers/manifest/dash/common/parse_periods.js +33 -34
  1345. package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.d.ts +5 -5
  1346. package/dist/es2017/parsers/manifest/dash/common/parse_representation_index.js +5 -7
  1347. package/dist/es2017/parsers/manifest/dash/common/parse_representations.d.ts +5 -5
  1348. package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +63 -68
  1349. package/dist/es2017/parsers/manifest/dash/common/resolve_base_urls.d.ts +1 -1
  1350. package/dist/es2017/parsers/manifest/dash/common/resolve_base_urls.js +5 -3
  1351. package/dist/es2017/parsers/manifest/dash/fast-js-parser/index.d.ts +17 -0
  1352. package/dist/es2017/parsers/manifest/dash/fast-js-parser/index.js +17 -0
  1353. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.d.ts +24 -0
  1354. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/AdaptationSet.js +358 -0
  1355. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/BaseURL.d.ts +24 -0
  1356. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/BaseURL.js +30 -0
  1357. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/ContentComponent.d.ts +23 -0
  1358. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/ContentComponent.js +45 -0
  1359. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/ContentProtection.d.ts +22 -0
  1360. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/ContentProtection.js +77 -0
  1361. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/EventStream.d.ts +23 -0
  1362. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/EventStream.js +101 -0
  1363. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Initialization.d.ts +22 -0
  1364. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Initialization.js +45 -0
  1365. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.d.ts +23 -0
  1366. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/MPD.js +179 -0
  1367. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Period.d.ts +23 -0
  1368. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Period.js +137 -0
  1369. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.d.ts +22 -0
  1370. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/Representation.js +214 -0
  1371. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentBase.d.ts +23 -0
  1372. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentBase.js +111 -0
  1373. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentList.d.ts +22 -0
  1374. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentList.js +41 -0
  1375. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTemplate.d.ts +24 -0
  1376. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTemplate.js +84 -0
  1377. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTimeline.d.ts +22 -0
  1378. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentTimeline.js +33 -0
  1379. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentURL.d.ts +24 -0
  1380. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/SegmentURL.js +57 -0
  1381. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts +176 -0
  1382. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/utils.js +310 -0
  1383. package/dist/es2017/parsers/manifest/dash/fast-js-parser/parse_from_xml_string.d.ts +24 -0
  1384. package/dist/es2017/parsers/manifest/dash/fast-js-parser/parse_from_xml_string.js +114 -0
  1385. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.d.ts +23 -0
  1386. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/AdaptationSet.js +354 -0
  1387. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/BaseURL.d.ts +23 -0
  1388. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/BaseURL.js +29 -0
  1389. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/ContentComponent.d.ts +22 -0
  1390. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/ContentProtection.d.ts +21 -0
  1391. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/EventStream.d.ts +23 -0
  1392. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/EventStream.js +100 -0
  1393. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Initialization.d.ts +21 -0
  1394. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Initialization.js +41 -0
  1395. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/MPD.d.ts +21 -0
  1396. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/MPD.js +161 -0
  1397. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Period.d.ts +21 -0
  1398. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Period.js +118 -0
  1399. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Representation.d.ts +21 -0
  1400. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/Representation.js +210 -0
  1401. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentBase.d.ts +22 -0
  1402. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentBase.js +107 -0
  1403. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentList.d.ts +21 -0
  1404. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentTemplate.d.ts +23 -0
  1405. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentTemplate.js +83 -0
  1406. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentTimeline.d.ts +21 -0
  1407. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentURL.d.ts +23 -0
  1408. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/SegmentURL.js +53 -0
  1409. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts +169 -0
  1410. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/utils.js +297 -0
  1411. package/dist/es2017/parsers/manifest/dash/native-parser/parse_from_document.d.ts +24 -0
  1412. package/dist/es2017/parsers/manifest/dash/native-parser/parse_from_document.js +108 -0
  1413. package/dist/es2017/parsers/manifest/dash/node_parser_types.d.ts +5 -3
  1414. package/dist/es2017/parsers/manifest/dash/parsers_types.d.ts +1 -1
  1415. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +1 -1
  1416. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +29 -18
  1417. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts +3 -2
  1418. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +22 -26
  1419. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.d.ts +2 -2
  1420. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.d.ts +3 -3
  1421. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +1 -1
  1422. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts +3 -3
  1423. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +4 -2
  1424. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts +3 -2
  1425. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -4
  1426. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts +3 -2
  1427. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +5 -5
  1428. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts +3 -2
  1429. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +9 -6
  1430. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Representation.d.ts +3 -2
  1431. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +13 -15
  1432. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.d.ts +3 -3
  1433. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +1 -1
  1434. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.d.ts +2 -2
  1435. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -10
  1436. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.d.ts +3 -2
  1437. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.d.ts +2 -2
  1438. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +11 -18
  1439. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.d.ts +2 -2
  1440. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +2 -4
  1441. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/XLink.d.ts +3 -2
  1442. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +5 -5
  1443. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts +2 -2
  1444. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/generators/root.js +8 -4
  1445. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +4 -2
  1446. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/utils.d.ts +1 -1
  1447. package/dist/es2017/parsers/manifest/dash/wasm-parser/ts/utils.js +8 -4
  1448. package/dist/es2017/parsers/manifest/local/parse_local_manifest.d.ts +2 -2
  1449. package/dist/es2017/parsers/manifest/local/parse_local_manifest.js +21 -16
  1450. package/dist/es2017/parsers/manifest/local/representation_index.d.ts +2 -2
  1451. package/dist/es2017/parsers/manifest/local/representation_index.js +7 -7
  1452. package/dist/es2017/parsers/manifest/metaplaylist/index.d.ts +1 -1
  1453. package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +4 -4
  1454. package/dist/es2017/parsers/manifest/metaplaylist/metaplaylist_parser.js +41 -43
  1455. package/dist/es2017/parsers/manifest/metaplaylist/representation_index.d.ts +3 -3
  1456. package/dist/es2017/parsers/manifest/metaplaylist/representation_index.js +10 -7
  1457. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts +2 -2
  1458. package/dist/es2017/parsers/manifest/smooth/create_parser.js +120 -121
  1459. package/dist/es2017/parsers/manifest/smooth/get_codecs.js +3 -3
  1460. package/dist/es2017/parsers/manifest/smooth/index.d.ts +1 -1
  1461. package/dist/es2017/parsers/manifest/smooth/index.js +1 -1
  1462. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +9 -9
  1463. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +12 -8
  1464. package/dist/es2017/parsers/manifest/smooth/representation_index.d.ts +3 -3
  1465. package/dist/es2017/parsers/manifest/smooth/representation_index.js +35 -38
  1466. package/dist/es2017/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +1 -1
  1467. package/dist/es2017/parsers/manifest/smooth/shared_smooth_segment_timeline.js +8 -9
  1468. package/dist/es2017/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
  1469. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  1470. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.js +1 -1
  1471. package/dist/es2017/parsers/manifest/smooth/utils/tokens.d.ts +1 -1
  1472. package/dist/es2017/parsers/manifest/smooth/utils/tokens.js +2 -3
  1473. package/dist/es2017/parsers/manifest/types.d.ts +2 -2
  1474. package/dist/es2017/parsers/manifest/utils/check_manifest_ids.d.ts +1 -1
  1475. package/dist/es2017/parsers/manifest/utils/check_manifest_ids.js +2 -2
  1476. package/dist/es2017/parsers/manifest/utils/clear_timeline_from_position.d.ts +3 -2
  1477. package/dist/es2017/parsers/manifest/utils/clear_timeline_from_position.js +11 -7
  1478. package/dist/es2017/parsers/manifest/utils/get_first_time_from_adaptation.d.ts +1 -1
  1479. package/dist/es2017/parsers/manifest/utils/get_first_time_from_adaptation.js +5 -4
  1480. package/dist/es2017/parsers/manifest/utils/get_last_time_from_adaptation.d.ts +1 -1
  1481. package/dist/es2017/parsers/manifest/utils/get_last_time_from_adaptation.js +5 -4
  1482. package/dist/es2017/parsers/manifest/utils/get_maximum_positions.d.ts +2 -2
  1483. package/dist/es2017/parsers/manifest/utils/get_maximum_positions.js +11 -17
  1484. package/dist/es2017/parsers/manifest/utils/get_minimum_position.d.ts +2 -2
  1485. package/dist/es2017/parsers/manifest/utils/get_minimum_position.js +5 -11
  1486. package/dist/es2017/parsers/manifest/utils/index_helpers.js +4 -5
  1487. package/dist/es2017/parsers/manifest/utils/update_segment_timeline.d.ts +1 -1
  1488. package/dist/es2017/parsers/manifest/utils/update_segment_timeline.js +17 -16
  1489. package/dist/es2017/parsers/texttracks/index.d.ts +1 -1
  1490. package/dist/es2017/parsers/texttracks/sami/html.d.ts +1 -1
  1491. package/dist/es2017/parsers/texttracks/sami/html.js +17 -16
  1492. package/dist/es2017/parsers/texttracks/sami/native.d.ts +1 -1
  1493. package/dist/es2017/parsers/texttracks/sami/native.js +11 -17
  1494. package/dist/es2017/parsers/texttracks/srt/html.js +12 -10
  1495. package/dist/es2017/parsers/texttracks/srt/native.d.ts +1 -1
  1496. package/dist/es2017/parsers/texttracks/srt/native.js +1 -7
  1497. package/dist/es2017/parsers/texttracks/srt/parse_cue.js +4 -9
  1498. package/dist/es2017/parsers/texttracks/ttml/get_parameters.js +8 -13
  1499. package/dist/es2017/parsers/texttracks/ttml/get_time_delimiters.d.ts +1 -1
  1500. package/dist/es2017/parsers/texttracks/ttml/get_time_delimiters.js +9 -10
  1501. package/dist/es2017/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -2
  1502. package/dist/es2017/parsers/texttracks/ttml/html/apply_extent.js +3 -7
  1503. package/dist/es2017/parsers/texttracks/ttml/html/apply_font_size.js +4 -5
  1504. package/dist/es2017/parsers/texttracks/ttml/html/apply_line_height.js +1 -1
  1505. package/dist/es2017/parsers/texttracks/ttml/html/apply_origin.js +3 -7
  1506. package/dist/es2017/parsers/texttracks/ttml/html/apply_padding.js +3 -7
  1507. package/dist/es2017/parsers/texttracks/ttml/html/create_element.d.ts +2 -2
  1508. package/dist/es2017/parsers/texttracks/ttml/html/create_element.js +30 -23
  1509. package/dist/es2017/parsers/texttracks/ttml/html/generate_css_test_outline.js +2 -2
  1510. package/dist/es2017/parsers/texttracks/ttml/html/parse_cue.d.ts +1 -1
  1511. package/dist/es2017/parsers/texttracks/ttml/html/parse_cue.js +5 -4
  1512. package/dist/es2017/parsers/texttracks/ttml/html/parse_ttml_to_div.d.ts +1 -1
  1513. package/dist/es2017/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +39 -23
  1514. package/dist/es2017/parsers/texttracks/ttml/native/parse_cue.d.ts +2 -2
  1515. package/dist/es2017/parsers/texttracks/ttml/native/parse_cue.js +14 -13
  1516. package/dist/es2017/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts +1 -1
  1517. package/dist/es2017/parsers/texttracks/ttml/parse_ttml.d.ts +3 -3
  1518. package/dist/es2017/parsers/texttracks/ttml/parse_ttml.js +22 -19
  1519. package/dist/es2017/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts +1 -1
  1520. package/dist/es2017/parsers/texttracks/ttml/time_parsing.d.ts +1 -1
  1521. package/dist/es2017/parsers/texttracks/ttml/time_parsing.js +2 -2
  1522. package/dist/es2017/parsers/texttracks/ttml/xml_utils.js +2 -1
  1523. package/dist/es2017/parsers/texttracks/types.d.ts +1 -1
  1524. package/dist/es2017/parsers/texttracks/webvtt/get_cue_blocks.js +1 -1
  1525. package/dist/es2017/parsers/texttracks/webvtt/get_style_blocks.js +2 -1
  1526. package/dist/es2017/parsers/texttracks/webvtt/html/convert_payload_to_html.d.ts +1 -1
  1527. package/dist/es2017/parsers/texttracks/webvtt/html/create_default_style_elements.d.ts +1 -1
  1528. package/dist/es2017/parsers/texttracks/webvtt/html/create_style_attribute.js +6 -12
  1529. package/dist/es2017/parsers/texttracks/webvtt/html/create_styled_element.d.ts +1 -1
  1530. package/dist/es2017/parsers/texttracks/webvtt/html/create_styled_element.js +8 -9
  1531. package/dist/es2017/parsers/texttracks/webvtt/html/parse_style_block.js +4 -4
  1532. package/dist/es2017/parsers/texttracks/webvtt/html/parse_webvtt_to_div.d.ts +1 -1
  1533. package/dist/es2017/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +1 -1
  1534. package/dist/es2017/parsers/texttracks/webvtt/html/to_html.d.ts +1 -1
  1535. package/dist/es2017/parsers/texttracks/webvtt/html/to_html.js +5 -13
  1536. package/dist/es2017/parsers/texttracks/webvtt/native/parse_vtt_to_cues.d.ts +1 -1
  1537. package/dist/es2017/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +4 -8
  1538. package/dist/es2017/parsers/texttracks/webvtt/native/set_settings_on_cue.d.ts +1 -1
  1539. package/dist/es2017/parsers/texttracks/webvtt/native/to_native_cue.d.ts +2 -2
  1540. package/dist/es2017/parsers/texttracks/webvtt/native/to_native_cue.js +2 -2
  1541. package/dist/es2017/parsers/texttracks/webvtt/parse_cue_block.js +7 -8
  1542. package/dist/es2017/parsers/texttracks/webvtt/parse_timestamp.js +1 -2
  1543. package/dist/es2017/parsers/texttracks/webvtt/utils.js +6 -6
  1544. package/dist/es2017/playback_observer/index.d.ts +6 -0
  1545. package/dist/es2017/playback_observer/index.js +2 -0
  1546. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +203 -0
  1547. package/dist/es2017/playback_observer/media_element_playback_observer.js +678 -0
  1548. package/dist/es2017/playback_observer/types.d.ts +223 -0
  1549. package/dist/es2017/playback_observer/types.js +1 -0
  1550. package/dist/es2017/playback_observer/utils/generate_read_only_observer.d.ts +11 -0
  1551. package/dist/es2017/playback_observer/utils/generate_read_only_observer.js +41 -0
  1552. package/dist/es2017/playback_observer/utils/observation_position.d.ts +87 -0
  1553. package/dist/es2017/playback_observer/utils/observation_position.js +84 -0
  1554. package/dist/es2017/playback_observer/worker_playback_observer.d.ts +72 -0
  1555. package/dist/es2017/playback_observer/worker_playback_observer.js +45 -0
  1556. package/dist/es2017/public_types.d.ts +13 -16
  1557. package/dist/es2017/public_types.js +0 -1
  1558. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.d.ts +2 -2
  1559. package/dist/es2017/tools/TextTrackRenderer/text_track_renderer.js +11 -9
  1560. package/dist/es2017/tools/index.d.ts +1 -1
  1561. package/dist/es2017/tools/index.js +1 -1
  1562. package/dist/es2017/tools/parseBIFThumbnails/index.js +6 -5
  1563. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.d.ts +1 -1
  1564. package/dist/es2017/transports/dash/add_segment_integrity_checks_to_loader.js +2 -3
  1565. package/dist/es2017/transports/dash/construct_segment_url.d.ts +2 -2
  1566. package/dist/es2017/transports/dash/construct_segment_url.js +7 -3
  1567. package/dist/es2017/transports/dash/get_events_out_of_emsgs.d.ts +2 -2
  1568. package/dist/es2017/transports/dash/get_events_out_of_emsgs.js +12 -10
  1569. package/dist/es2017/transports/dash/init_segment_loader.d.ts +3 -3
  1570. package/dist/es2017/transports/dash/init_segment_loader.js +29 -23
  1571. package/dist/es2017/transports/dash/low_latency_segment_loader.d.ts +2 -2
  1572. package/dist/es2017/transports/dash/low_latency_segment_loader.js +14 -11
  1573. package/dist/es2017/transports/dash/manifest_parser.d.ts +2 -2
  1574. package/dist/es2017/transports/dash/manifest_parser.js +68 -32
  1575. package/dist/es2017/transports/dash/pipelines.d.ts +1 -1
  1576. package/dist/es2017/transports/dash/pipelines.js +15 -12
  1577. package/dist/es2017/transports/dash/segment_loader.d.ts +4 -4
  1578. package/dist/es2017/transports/dash/segment_loader.js +31 -23
  1579. package/dist/es2017/transports/dash/segment_parser.d.ts +2 -2
  1580. package/dist/es2017/transports/dash/segment_parser.js +40 -25
  1581. package/dist/es2017/transports/dash/text_loader.d.ts +2 -2
  1582. package/dist/es2017/transports/dash/text_loader.js +19 -20
  1583. package/dist/es2017/transports/dash/text_parser.d.ts +2 -2
  1584. package/dist/es2017/transports/dash/text_parser.js +44 -26
  1585. package/dist/es2017/transports/index.d.ts +1 -1
  1586. package/dist/es2017/transports/index.js +1 -1
  1587. package/dist/es2017/transports/local/pipelines.d.ts +1 -1
  1588. package/dist/es2017/transports/local/pipelines.js +14 -9
  1589. package/dist/es2017/transports/local/segment_loader.d.ts +3 -3
  1590. package/dist/es2017/transports/local/segment_loader.js +14 -6
  1591. package/dist/es2017/transports/local/segment_parser.d.ts +1 -1
  1592. package/dist/es2017/transports/local/segment_parser.js +24 -14
  1593. package/dist/es2017/transports/local/text_parser.d.ts +1 -1
  1594. package/dist/es2017/transports/local/text_parser.js +36 -18
  1595. package/dist/es2017/transports/metaplaylist/manifest_loader.d.ts +4 -4
  1596. package/dist/es2017/transports/metaplaylist/manifest_loader.js +8 -6
  1597. package/dist/es2017/transports/metaplaylist/pipelines.d.ts +1 -1
  1598. package/dist/es2017/transports/metaplaylist/pipelines.js +35 -24
  1599. package/dist/es2017/transports/smooth/extract_timings_infos.d.ts +2 -2
  1600. package/dist/es2017/transports/smooth/extract_timings_infos.js +17 -19
  1601. package/dist/es2017/transports/smooth/is_mp4_embedded_track.d.ts +1 -1
  1602. package/dist/es2017/transports/smooth/is_mp4_embedded_track.js +1 -1
  1603. package/dist/es2017/transports/smooth/isobmff/create_audio_init_segment.d.ts +0 -1
  1604. package/dist/es2017/transports/smooth/isobmff/create_audio_init_segment.js +3 -4
  1605. package/dist/es2017/transports/smooth/isobmff/create_boxes.js +23 -32
  1606. package/dist/es2017/transports/smooth/isobmff/create_init_segment.js +2 -2
  1607. package/dist/es2017/transports/smooth/isobmff/create_traf_box.js +2 -2
  1608. package/dist/es2017/transports/smooth/isobmff/get_aaces_header.js +4 -16
  1609. package/dist/es2017/transports/smooth/isobmff/parse_tfrf.js +2 -2
  1610. package/dist/es2017/transports/smooth/isobmff/parse_tfxd.js +1 -1
  1611. package/dist/es2017/transports/smooth/isobmff/patch_segment.js +12 -11
  1612. package/dist/es2017/transports/smooth/pipelines.d.ts +1 -1
  1613. package/dist/es2017/transports/smooth/pipelines.js +84 -61
  1614. package/dist/es2017/transports/smooth/segment_loader.d.ts +3 -3
  1615. package/dist/es2017/transports/smooth/segment_loader.js +44 -29
  1616. package/dist/es2017/transports/smooth/utils.d.ts +4 -4
  1617. package/dist/es2017/transports/smooth/utils.js +10 -6
  1618. package/dist/es2017/transports/types.d.ts +22 -27
  1619. package/dist/es2017/transports/utils/byte_range.js +1 -2
  1620. package/dist/es2017/transports/utils/call_custom_manifest_loader.d.ts +3 -3
  1621. package/dist/es2017/transports/utils/call_custom_manifest_loader.js +10 -8
  1622. package/dist/es2017/transports/utils/check_isobmff_integrity.js +4 -4
  1623. package/dist/es2017/transports/utils/generate_manifest_loader.d.ts +3 -3
  1624. package/dist/es2017/transports/utils/generate_manifest_loader.js +12 -6
  1625. package/dist/es2017/transports/utils/get_isobmff_timing_infos.d.ts +2 -2
  1626. package/dist/es2017/transports/utils/get_isobmff_timing_infos.js +12 -11
  1627. package/dist/es2017/transports/utils/infer_segment_container.d.ts +1 -1
  1628. package/dist/es2017/transports/utils/infer_segment_container.js +1 -3
  1629. package/dist/es2017/transports/utils/parse_text_track.d.ts +4 -4
  1630. package/dist/es2017/transports/utils/parse_text_track.js +6 -16
  1631. package/dist/es2017/utils/array_includes.js +2 -6
  1632. package/dist/es2017/utils/assert.js +3 -6
  1633. package/dist/es2017/utils/base64.js +87 -29
  1634. package/dist/es2017/utils/byte_parsing.js +64 -56
  1635. package/dist/es2017/utils/cancellable_sleep.d.ts +1 -1
  1636. package/dist/es2017/utils/create_cancellable_promise.d.ts +1 -1
  1637. package/dist/es2017/utils/deep_merge.js +4 -4
  1638. package/dist/es2017/utils/event_emitter.d.ts +1 -1
  1639. package/dist/es2017/utils/event_emitter.js +1 -2
  1640. package/dist/es2017/utils/get_fuzzed_delay.js +1 -1
  1641. package/dist/es2017/utils/global_scope.d.ts +1 -1
  1642. package/dist/es2017/utils/global_scope.js +10 -3
  1643. package/dist/es2017/utils/hash_buffer.js +1 -1
  1644. package/dist/es2017/utils/languages/normalize.js +5 -5
  1645. package/dist/es2017/utils/logger.js +12 -22
  1646. package/dist/es2017/utils/monotonic_timestamp.d.ts +6 -9
  1647. package/dist/es2017/utils/monotonic_timestamp.js +13 -5
  1648. package/dist/es2017/utils/object_assign.d.ts +6 -3
  1649. package/dist/es2017/utils/object_assign.js +5 -7
  1650. package/dist/es2017/utils/object_values.d.ts +1 -1
  1651. package/dist/es2017/utils/object_values.js +4 -4
  1652. package/dist/es2017/utils/queue_microtask.js +3 -3
  1653. package/dist/es2017/utils/ranges.js +22 -29
  1654. package/dist/es2017/utils/reference.d.ts +1 -1
  1655. package/dist/es2017/utils/reference.js +1 -3
  1656. package/dist/es2017/utils/request/fetch.d.ts +1 -1
  1657. package/dist/es2017/utils/request/fetch.js +24 -23
  1658. package/dist/es2017/utils/request/request_error.js +2 -2
  1659. package/dist/es2017/utils/request/xhr.d.ts +1 -1
  1660. package/dist/es2017/utils/request/xhr.js +19 -17
  1661. package/dist/es2017/utils/retry_promise_with_backoff.d.ts +10 -1
  1662. package/dist/es2017/utils/retry_promise_with_backoff.js +15 -3
  1663. package/dist/es2017/utils/slice_uint8array.js +3 -3
  1664. package/dist/es2017/utils/starts_with.js +3 -3
  1665. package/dist/es2017/utils/string_parsing.js +16 -18
  1666. package/dist/es2017/utils/sync_or_async.js +6 -2
  1667. package/dist/es2017/utils/task_canceller.js +1 -2
  1668. package/dist/es2017/utils/wrapInPromise.d.ts +1 -1
  1669. package/dist/es2017/utils/xml-parser.d.ts +70 -0
  1670. package/dist/es2017/utils/xml-parser.js +322 -0
  1671. package/dist/es2017/worker_entry_point.js +2 -2
  1672. package/dist/mpd-parser.wasm +0 -0
  1673. package/dist/rx-player.js +46203 -45666
  1674. package/dist/rx-player.min.js +1 -1
  1675. package/dist/worker.es5.js +2 -0
  1676. package/dist/worker.es5.js.LICENSE.txt +1 -0
  1677. package/dist/worker.js +8 -3
  1678. package/package.json +20 -10
  1679. package/dist/commonjs/compat/index.d.ts +0 -36
  1680. package/dist/commonjs/compat/index.js +0 -64
  1681. package/dist/commonjs/core/api/debug/buffer_graph.d.ts +0 -28
  1682. package/dist/commonjs/core/api/debug/buffer_graph.js +0 -173
  1683. package/dist/commonjs/core/api/debug/buffer_size_graph.js +0 -132
  1684. package/dist/commonjs/core/api/debug/modules/general_info.d.ts +0 -3
  1685. package/dist/commonjs/core/api/debug/modules/general_info.js +0 -232
  1686. package/dist/commonjs/core/api/debug/modules/segment_buffer_content.d.ts +0 -4
  1687. package/dist/commonjs/core/api/debug/modules/segment_buffer_content.js +0 -125
  1688. package/dist/commonjs/core/api/debug/modules/segment_buffer_size.d.ts +0 -3
  1689. package/dist/commonjs/core/api/debug/modules/segment_buffer_size.js +0 -38
  1690. package/dist/commonjs/core/api/debug/render.d.ts +0 -3
  1691. package/dist/commonjs/core/api/index.d.ts +0 -20
  1692. package/dist/commonjs/core/api/index.js +0 -22
  1693. package/dist/commonjs/core/api/option_utils.d.ts +0 -124
  1694. package/dist/commonjs/core/api/option_utils.js +0 -318
  1695. package/dist/commonjs/core/api/playback_observer.d.ts +0 -521
  1696. package/dist/commonjs/core/api/playback_observer.js +0 -771
  1697. package/dist/commonjs/core/api/public_api.d.ts +0 -751
  1698. package/dist/commonjs/core/api/public_api.js +0 -2458
  1699. package/dist/commonjs/core/api/track_management/index.d.ts +0 -18
  1700. package/dist/commonjs/core/api/track_management/media_element_tracks_store.d.ts +0 -197
  1701. package/dist/commonjs/core/api/track_management/media_element_tracks_store.js +0 -688
  1702. package/dist/commonjs/core/api/track_management/track_dispatcher.d.ts +0 -100
  1703. package/dist/commonjs/core/api/track_management/track_dispatcher.js +0 -184
  1704. package/dist/commonjs/core/api/track_management/tracks_store.d.ts +0 -441
  1705. package/dist/commonjs/core/api/track_management/tracks_store.js +0 -1066
  1706. package/dist/commonjs/core/api/utils.d.ts +0 -66
  1707. package/dist/commonjs/core/api/utils.js +0 -175
  1708. package/dist/commonjs/core/decrypt/__tests__/__global__/utils.d.ts +0 -178
  1709. package/dist/commonjs/core/decrypt/__tests__/__global__/utils.js +0 -413
  1710. package/dist/commonjs/core/decrypt/attach_media_keys.d.ts +0 -53
  1711. package/dist/commonjs/core/decrypt/attach_media_keys.js +0 -121
  1712. package/dist/commonjs/core/decrypt/clear_on_stop.js +0 -43
  1713. package/dist/commonjs/core/decrypt/content_decryptor.d.ts +0 -184
  1714. package/dist/commonjs/core/decrypt/content_decryptor.js +0 -1035
  1715. package/dist/commonjs/core/decrypt/create_or_load_session.d.ts +0 -63
  1716. package/dist/commonjs/core/decrypt/create_or_load_session.js +0 -127
  1717. package/dist/commonjs/core/decrypt/create_session.d.ts +0 -53
  1718. package/dist/commonjs/core/decrypt/create_session.js +0 -215
  1719. package/dist/commonjs/core/decrypt/dispose_decryption_resources.js +0 -91
  1720. package/dist/commonjs/core/decrypt/find_key_system.d.ts +0 -48
  1721. package/dist/commonjs/core/decrypt/find_key_system.js +0 -369
  1722. package/dist/commonjs/core/decrypt/get_media_keys.d.ts +0 -44
  1723. package/dist/commonjs/core/decrypt/get_media_keys.js +0 -156
  1724. package/dist/commonjs/core/decrypt/index.d.ts +0 -26
  1725. package/dist/commonjs/core/decrypt/init_media_keys.d.ts +0 -26
  1726. package/dist/commonjs/core/decrypt/init_media_keys.js +0 -93
  1727. package/dist/commonjs/core/decrypt/session_events_listener.d.ts +0 -75
  1728. package/dist/commonjs/core/decrypt/session_events_listener.js +0 -330
  1729. package/dist/commonjs/core/decrypt/set_server_certificate.d.ts +0 -51
  1730. package/dist/commonjs/core/decrypt/set_server_certificate.js +0 -146
  1731. package/dist/commonjs/core/decrypt/types.d.ts +0 -374
  1732. package/dist/commonjs/core/decrypt/utils/are_init_values_compatible.js +0 -116
  1733. package/dist/commonjs/core/decrypt/utils/check_key_statuses.d.ts +0 -52
  1734. package/dist/commonjs/core/decrypt/utils/check_key_statuses.js +0 -211
  1735. package/dist/commonjs/core/decrypt/utils/clean_old_loaded_sessions.d.ts +0 -26
  1736. package/dist/commonjs/core/decrypt/utils/clean_old_stored_persistent_info.d.ts +0 -32
  1737. package/dist/commonjs/core/decrypt/utils/init_data_values_container.d.ts +0 -69
  1738. package/dist/commonjs/core/decrypt/utils/init_data_values_container.js +0 -126
  1739. package/dist/commonjs/core/decrypt/utils/is_session_usable.d.ts +0 -24
  1740. package/dist/commonjs/core/decrypt/utils/is_session_usable.js +0 -52
  1741. package/dist/commonjs/core/decrypt/utils/key_session_record.d.ts +0 -104
  1742. package/dist/commonjs/core/decrypt/utils/key_session_record.js +0 -190
  1743. package/dist/commonjs/core/decrypt/utils/loaded_sessions_store.d.ts +0 -215
  1744. package/dist/commonjs/core/decrypt/utils/loaded_sessions_store.js +0 -515
  1745. package/dist/commonjs/core/decrypt/utils/media_keys_infos_store.d.ts +0 -56
  1746. package/dist/commonjs/core/decrypt/utils/media_keys_infos_store.js +0 -46
  1747. package/dist/commonjs/core/decrypt/utils/persistent_sessions_store.d.ts +0 -94
  1748. package/dist/commonjs/core/decrypt/utils/persistent_sessions_store.js +0 -346
  1749. package/dist/commonjs/core/decrypt/utils/serializable_bytes.d.ts +0 -44
  1750. package/dist/commonjs/core/decrypt/utils/serializable_bytes.js +0 -50
  1751. package/dist/commonjs/core/decrypt/utils/server_certificate_store.d.ts +0 -64
  1752. package/dist/commonjs/core/decrypt/utils/server_certificate_store.js +0 -114
  1753. package/dist/commonjs/core/init/directfile_content_initializer.d.ts +0 -97
  1754. package/dist/commonjs/core/init/directfile_content_initializer.js +0 -267
  1755. package/dist/commonjs/core/init/media_source_content_initializer.d.ts +0 -165
  1756. package/dist/commonjs/core/init/media_source_content_initializer.js +0 -865
  1757. package/dist/commonjs/core/init/multithread/main_thread/multi_thread_content_initializer.d.ts +0 -167
  1758. package/dist/commonjs/core/init/multithread/main_thread/multi_thread_content_initializer.js +0 -1393
  1759. package/dist/commonjs/core/init/multithread/main_thread/send_message.d.ts +0 -2
  1760. package/dist/commonjs/core/init/multithread/main_thread/send_message.js +0 -13
  1761. package/dist/commonjs/core/init/multithread/worker/content_preparer.d.ts +0 -92
  1762. package/dist/commonjs/core/init/multithread/worker/content_preparer.js +0 -259
  1763. package/dist/commonjs/core/init/multithread/worker/globals.d.ts +0 -13
  1764. package/dist/commonjs/core/init/multithread/worker/globals.js +0 -26
  1765. package/dist/commonjs/core/init/multithread/worker/index.d.ts +0 -2
  1766. package/dist/commonjs/core/init/multithread/worker/index.js +0 -4
  1767. package/dist/commonjs/core/init/multithread/worker/send_message.d.ts +0 -3
  1768. package/dist/commonjs/core/init/multithread/worker/send_message.js +0 -25
  1769. package/dist/commonjs/core/init/multithread/worker/track_choice_setter.d.ts +0 -19
  1770. package/dist/commonjs/core/init/multithread/worker/track_choice_setter.js +0 -140
  1771. package/dist/commonjs/core/init/multithread/worker/worker_playback_observer.d.ts +0 -21
  1772. package/dist/commonjs/core/init/multithread/worker/worker_playback_observer.js +0 -47
  1773. package/dist/commonjs/core/init/multithread/worker/worker_portal.d.ts +0 -1
  1774. package/dist/commonjs/core/init/multithread/worker/worker_portal.js +0 -727
  1775. package/dist/commonjs/core/init/multithread/worker/worker_text_displayer_interface.d.ts +0 -64
  1776. package/dist/commonjs/core/init/multithread/worker/worker_text_displayer_interface.js +0 -127
  1777. package/dist/commonjs/core/init/types.d.ts +0 -226
  1778. package/dist/commonjs/core/init/utils/DecipherabilityFreezeDetector.d.ts +0 -54
  1779. package/dist/commonjs/core/init/utils/DecipherabilityFreezeDetector.js +0 -129
  1780. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.d.ts +0 -192
  1781. package/dist/commonjs/core/init/utils/content_time_boundaries_observer.js +0 -518
  1782. package/dist/commonjs/core/init/utils/create_content_time_boundaries_observer.d.ts +0 -28
  1783. package/dist/commonjs/core/init/utils/create_content_time_boundaries_observer.js +0 -48
  1784. package/dist/commonjs/core/init/utils/create_core_playback_observer.d.ts +0 -61
  1785. package/dist/commonjs/core/init/utils/create_core_playback_observer.js +0 -130
  1786. package/dist/commonjs/core/init/utils/create_media_source.d.ts +0 -37
  1787. package/dist/commonjs/core/init/utils/create_media_source.js +0 -108
  1788. package/dist/commonjs/core/init/utils/end_of_stream.d.ts +0 -33
  1789. package/dist/commonjs/core/init/utils/end_of_stream.js +0 -115
  1790. package/dist/commonjs/core/init/utils/get_initial_time.d.ts +0 -76
  1791. package/dist/commonjs/core/init/utils/get_initial_time.js +0 -116
  1792. package/dist/commonjs/core/init/utils/get_loaded_reference.d.ts +0 -28
  1793. package/dist/commonjs/core/init/utils/get_loaded_reference.js +0 -61
  1794. package/dist/commonjs/core/init/utils/initial_seek_and_play.d.ts +0 -61
  1795. package/dist/commonjs/core/init/utils/initial_seek_and_play.js +0 -210
  1796. package/dist/commonjs/core/init/utils/initialize_content_decryption.d.ts +0 -86
  1797. package/dist/commonjs/core/init/utils/initialize_content_decryption.js +0 -113
  1798. package/dist/commonjs/core/init/utils/main_thread_text_displayer_interface.d.ts +0 -35
  1799. package/dist/commonjs/core/init/utils/media_source_duration_updater.js +0 -270
  1800. package/dist/commonjs/core/init/utils/rebuffering_controller.d.ts +0 -114
  1801. package/dist/commonjs/core/init/utils/rebuffering_controller.js +0 -445
  1802. package/dist/commonjs/core/init/utils/stream_events_emitter/are_same_stream_events.js +0 -37
  1803. package/dist/commonjs/core/init/utils/stream_events_emitter/index.d.ts +0 -18
  1804. package/dist/commonjs/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +0 -25
  1805. package/dist/commonjs/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +0 -91
  1806. package/dist/commonjs/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +0 -53
  1807. package/dist/commonjs/core/init/utils/stream_events_emitter/stream_events_emitter.js +0 -234
  1808. package/dist/commonjs/core/init/utils/stream_events_emitter/types.d.ts +0 -41
  1809. package/dist/commonjs/core/init/utils/throw_on_media_error.d.ts +0 -23
  1810. package/dist/commonjs/core/init/utils/throw_on_media_error.js +0 -61
  1811. package/dist/commonjs/core/segment_buffers/garbage_collector.d.ts +0 -43
  1812. package/dist/commonjs/core/segment_buffers/garbage_collector.js +0 -220
  1813. package/dist/commonjs/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +0 -134
  1814. package/dist/commonjs/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +0 -350
  1815. package/dist/commonjs/core/segment_buffers/implementations/audio_video/index.d.ts +0 -17
  1816. package/dist/commonjs/core/segment_buffers/implementations/index.d.ts +0 -19
  1817. package/dist/commonjs/core/segment_buffers/implementations/index.js +0 -35
  1818. package/dist/commonjs/core/segment_buffers/implementations/text/index.d.ts +0 -3
  1819. package/dist/commonjs/core/segment_buffers/implementations/text/text_segment_buffer.d.ts +0 -89
  1820. package/dist/commonjs/core/segment_buffers/implementations/text/text_segment_buffer.js +0 -253
  1821. package/dist/commonjs/core/segment_buffers/implementations/types.d.ts +0 -309
  1822. package/dist/commonjs/core/segment_buffers/implementations/types.js +0 -117
  1823. package/dist/commonjs/core/segment_buffers/index.d.ts +0 -21
  1824. package/dist/commonjs/core/segment_buffers/index.js +0 -28
  1825. package/dist/commonjs/core/segment_buffers/inventory/buffered_history.d.ts +0 -89
  1826. package/dist/commonjs/core/segment_buffers/inventory/index.d.ts +0 -21
  1827. package/dist/commonjs/core/segment_buffers/inventory/segment_inventory.d.ts +0 -238
  1828. package/dist/commonjs/core/segment_buffers/inventory/segment_inventory.js +0 -906
  1829. package/dist/commonjs/core/segment_buffers/inventory/types.d.ts +0 -27
  1830. package/dist/commonjs/core/segment_buffers/inventory/utils.d.ts +0 -33
  1831. package/dist/commonjs/core/segment_buffers/inventory/utils.js +0 -54
  1832. package/dist/commonjs/core/segment_buffers/segment_buffers_store.d.ts +0 -171
  1833. package/dist/commonjs/core/segment_buffers/segment_buffers_store.js +0 -292
  1834. package/dist/commonjs/manifest/adaptation.d.ts +0 -135
  1835. package/dist/commonjs/manifest/adaptation.js +0 -242
  1836. package/dist/commonjs/manifest/manifest.d.ts +0 -388
  1837. package/dist/commonjs/manifest/manifest.js +0 -496
  1838. package/dist/commonjs/manifest/period.d.ts +0 -106
  1839. package/dist/commonjs/manifest/period.js +0 -236
  1840. package/dist/commonjs/manifest/representation.d.ts +0 -238
  1841. package/dist/commonjs/manifest/representation.js +0 -376
  1842. package/dist/commonjs/manifest/representation_index/index.d.ts +0 -18
  1843. package/dist/commonjs/manifest/representation_index/static.d.ts +0 -101
  1844. package/dist/commonjs/manifest/representation_index/static.js +0 -143
  1845. package/dist/commonjs/manifest/representation_index/types.d.ts +0 -420
  1846. package/dist/commonjs/manifest/update_period_in_place.d.ts +0 -52
  1847. package/dist/commonjs/manifest/update_period_in_place.js +0 -172
  1848. package/dist/commonjs/manifest/update_periods.d.ts +0 -50
  1849. package/dist/commonjs/manifest/update_periods.js +0 -228
  1850. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.d.ts +0 -23
  1851. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +0 -331
  1852. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/BaseURL.d.ts +0 -23
  1853. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +0 -33
  1854. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.d.ts +0 -22
  1855. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.d.ts +0 -21
  1856. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/EventStream.d.ts +0 -23
  1857. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +0 -113
  1858. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Initialization.d.ts +0 -21
  1859. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +0 -42
  1860. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/MPD.d.ts +0 -21
  1861. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/MPD.js +0 -164
  1862. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Period.d.ts +0 -21
  1863. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Period.js +0 -132
  1864. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Representation.d.ts +0 -21
  1865. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/Representation.js +0 -209
  1866. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.d.ts +0 -22
  1867. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +0 -108
  1868. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentList.d.ts +0 -21
  1869. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.d.ts +0 -23
  1870. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +0 -92
  1871. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.d.ts +0 -21
  1872. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.d.ts +0 -23
  1873. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +0 -52
  1874. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +0 -187
  1875. package/dist/commonjs/parsers/manifest/dash/js-parser/node_parsers/utils.js +0 -354
  1876. package/dist/commonjs/parsers/manifest/dash/js-parser/parse_from_document.d.ts +0 -24
  1877. package/dist/commonjs/parsers/manifest/dash/js-parser/parse_from_document.js +0 -131
  1878. package/dist/commonjs/text_displayer/html/html_parsers.js +0 -25
  1879. package/dist/commonjs/text_displayer/html/html_text_displayer.d.ts +0 -100
  1880. package/dist/commonjs/text_displayer/html/html_text_displayer.js +0 -317
  1881. package/dist/commonjs/text_displayer/html/text_track_cues_store.d.ts +0 -65
  1882. package/dist/commonjs/text_displayer/html/text_track_cues_store.js +0 -378
  1883. package/dist/commonjs/text_displayer/html/update_proportional_elements.js +0 -65
  1884. package/dist/commonjs/text_displayer/html/utils.js +0 -115
  1885. package/dist/commonjs/text_displayer/index.d.ts +0 -2
  1886. package/dist/commonjs/text_displayer/manual_time_ranges.js +0 -52
  1887. package/dist/commonjs/text_displayer/native/native_parsers.d.ts +0 -11
  1888. package/dist/commonjs/text_displayer/native/native_parsers.js +0 -25
  1889. package/dist/commonjs/text_displayer/native/native_text_displayer.d.ts +0 -56
  1890. package/dist/commonjs/text_displayer/native/native_text_displayer.js +0 -207
  1891. package/dist/commonjs/text_displayer/types.d.ts +0 -74
  1892. package/dist/commonjs/transports/dash/extract_complete_chunks.js +0 -91
  1893. package/dist/commonjs/transports/utils/find_complete_box.js +0 -56
  1894. package/dist/es2017/compat/index.d.ts +0 -36
  1895. package/dist/es2017/compat/index.js +0 -42
  1896. package/dist/es2017/core/api/debug/buffer_graph.d.ts +0 -28
  1897. package/dist/es2017/core/api/debug/buffer_graph.js +0 -169
  1898. package/dist/es2017/core/api/debug/buffer_size_graph.js +0 -103
  1899. package/dist/es2017/core/api/debug/modules/general_info.d.ts +0 -3
  1900. package/dist/es2017/core/api/debug/modules/general_info.js +0 -188
  1901. package/dist/es2017/core/api/debug/modules/segment_buffer_content.d.ts +0 -4
  1902. package/dist/es2017/core/api/debug/modules/segment_buffer_content.js +0 -122
  1903. package/dist/es2017/core/api/debug/modules/segment_buffer_size.d.ts +0 -3
  1904. package/dist/es2017/core/api/debug/modules/segment_buffer_size.js +0 -35
  1905. package/dist/es2017/core/api/debug/render.d.ts +0 -3
  1906. package/dist/es2017/core/api/debug/render.js +0 -32
  1907. package/dist/es2017/core/api/debug/utils.js +0 -54
  1908. package/dist/es2017/core/api/index.d.ts +0 -20
  1909. package/dist/es2017/core/api/index.js +0 -19
  1910. package/dist/es2017/core/api/option_utils.d.ts +0 -124
  1911. package/dist/es2017/core/api/option_utils.js +0 -315
  1912. package/dist/es2017/core/api/playback_observer.d.ts +0 -521
  1913. package/dist/es2017/core/api/playback_observer.js +0 -770
  1914. package/dist/es2017/core/api/public_api.d.ts +0 -751
  1915. package/dist/es2017/core/api/public_api.js +0 -2346
  1916. package/dist/es2017/core/api/track_management/index.d.ts +0 -18
  1917. package/dist/es2017/core/api/track_management/media_element_tracks_store.d.ts +0 -197
  1918. package/dist/es2017/core/api/track_management/media_element_tracks_store.js +0 -669
  1919. package/dist/es2017/core/api/track_management/track_dispatcher.d.ts +0 -100
  1920. package/dist/es2017/core/api/track_management/track_dispatcher.js +0 -166
  1921. package/dist/es2017/core/api/track_management/tracks_store.d.ts +0 -441
  1922. package/dist/es2017/core/api/track_management/tracks_store.js +0 -981
  1923. package/dist/es2017/core/api/utils.d.ts +0 -66
  1924. package/dist/es2017/core/api/utils.js +0 -167
  1925. package/dist/es2017/core/decrypt/__tests__/__global__/utils.d.ts +0 -178
  1926. package/dist/es2017/core/decrypt/__tests__/__global__/utils.js +0 -363
  1927. package/dist/es2017/core/decrypt/attach_media_keys.d.ts +0 -53
  1928. package/dist/es2017/core/decrypt/attach_media_keys.js +0 -72
  1929. package/dist/es2017/core/decrypt/clear_on_stop.js +0 -40
  1930. package/dist/es2017/core/decrypt/content_decryptor.d.ts +0 -184
  1931. package/dist/es2017/core/decrypt/content_decryptor.js +0 -792
  1932. package/dist/es2017/core/decrypt/create_or_load_session.d.ts +0 -63
  1933. package/dist/es2017/core/decrypt/create_or_load_session.js +0 -75
  1934. package/dist/es2017/core/decrypt/create_session.d.ts +0 -53
  1935. package/dist/es2017/core/decrypt/create_session.js +0 -150
  1936. package/dist/es2017/core/decrypt/dispose_decryption_resources.js +0 -42
  1937. package/dist/es2017/core/decrypt/find_key_system.d.ts +0 -48
  1938. package/dist/es2017/core/decrypt/find_key_system.js +0 -281
  1939. package/dist/es2017/core/decrypt/get_media_keys.d.ts +0 -44
  1940. package/dist/es2017/core/decrypt/get_media_keys.js +0 -100
  1941. package/dist/es2017/core/decrypt/index.d.ts +0 -26
  1942. package/dist/es2017/core/decrypt/index.js +0 -26
  1943. package/dist/es2017/core/decrypt/init_media_keys.d.ts +0 -26
  1944. package/dist/es2017/core/decrypt/init_media_keys.js +0 -47
  1945. package/dist/es2017/core/decrypt/session_events_listener.d.ts +0 -75
  1946. package/dist/es2017/core/decrypt/session_events_listener.js +0 -249
  1947. package/dist/es2017/core/decrypt/set_server_certificate.d.ts +0 -51
  1948. package/dist/es2017/core/decrypt/set_server_certificate.js +0 -83
  1949. package/dist/es2017/core/decrypt/types.d.ts +0 -374
  1950. package/dist/es2017/core/decrypt/utils/are_init_values_compatible.js +0 -113
  1951. package/dist/es2017/core/decrypt/utils/check_key_statuses.d.ts +0 -52
  1952. package/dist/es2017/core/decrypt/utils/check_key_statuses.js +0 -165
  1953. package/dist/es2017/core/decrypt/utils/clean_old_loaded_sessions.d.ts +0 -26
  1954. package/dist/es2017/core/decrypt/utils/clean_old_stored_persistent_info.d.ts +0 -32
  1955. package/dist/es2017/core/decrypt/utils/init_data_values_container.d.ts +0 -69
  1956. package/dist/es2017/core/decrypt/utils/init_data_values_container.js +0 -96
  1957. package/dist/es2017/core/decrypt/utils/is_session_usable.d.ts +0 -24
  1958. package/dist/es2017/core/decrypt/utils/is_session_usable.js +0 -49
  1959. package/dist/es2017/core/decrypt/utils/key_id_comparison.js +0 -48
  1960. package/dist/es2017/core/decrypt/utils/key_session_record.d.ts +0 -104
  1961. package/dist/es2017/core/decrypt/utils/key_session_record.js +0 -153
  1962. package/dist/es2017/core/decrypt/utils/loaded_sessions_store.d.ts +0 -215
  1963. package/dist/es2017/core/decrypt/utils/loaded_sessions_store.js +0 -365
  1964. package/dist/es2017/core/decrypt/utils/media_keys_infos_store.d.ts +0 -56
  1965. package/dist/es2017/core/decrypt/utils/media_keys_infos_store.js +0 -44
  1966. package/dist/es2017/core/decrypt/utils/persistent_sessions_store.d.ts +0 -94
  1967. package/dist/es2017/core/decrypt/utils/persistent_sessions_store.js +0 -321
  1968. package/dist/es2017/core/decrypt/utils/serializable_bytes.d.ts +0 -44
  1969. package/dist/es2017/core/decrypt/utils/serializable_bytes.js +0 -46
  1970. package/dist/es2017/core/decrypt/utils/server_certificate_store.d.ts +0 -64
  1971. package/dist/es2017/core/decrypt/utils/server_certificate_store.js +0 -112
  1972. package/dist/es2017/core/init/directfile_content_initializer.d.ts +0 -97
  1973. package/dist/es2017/core/init/directfile_content_initializer.js +0 -238
  1974. package/dist/es2017/core/init/media_source_content_initializer.d.ts +0 -165
  1975. package/dist/es2017/core/init/media_source_content_initializer.js +0 -685
  1976. package/dist/es2017/core/init/multithread/main_thread/multi_thread_content_initializer.d.ts +0 -167
  1977. package/dist/es2017/core/init/multithread/main_thread/multi_thread_content_initializer.js +0 -1317
  1978. package/dist/es2017/core/init/multithread/main_thread/send_message.d.ts +0 -2
  1979. package/dist/es2017/core/init/multithread/main_thread/send_message.js +0 -10
  1980. package/dist/es2017/core/init/multithread/worker/content_preparer.d.ts +0 -92
  1981. package/dist/es2017/core/init/multithread/worker/content_preparer.js +0 -236
  1982. package/dist/es2017/core/init/multithread/worker/globals.d.ts +0 -13
  1983. package/dist/es2017/core/init/multithread/worker/globals.js +0 -18
  1984. package/dist/es2017/core/init/multithread/worker/index.d.ts +0 -2
  1985. package/dist/es2017/core/init/multithread/worker/index.js +0 -2
  1986. package/dist/es2017/core/init/multithread/worker/send_message.d.ts +0 -3
  1987. package/dist/es2017/core/init/multithread/worker/send_message.js +0 -20
  1988. package/dist/es2017/core/init/multithread/worker/track_choice_setter.d.ts +0 -19
  1989. package/dist/es2017/core/init/multithread/worker/track_choice_setter.js +0 -114
  1990. package/dist/es2017/core/init/multithread/worker/worker_playback_observer.d.ts +0 -21
  1991. package/dist/es2017/core/init/multithread/worker/worker_playback_observer.js +0 -43
  1992. package/dist/es2017/core/init/multithread/worker/worker_portal.d.ts +0 -1
  1993. package/dist/es2017/core/init/multithread/worker/worker_portal.js +0 -671
  1994. package/dist/es2017/core/init/multithread/worker/worker_text_displayer_interface.d.ts +0 -64
  1995. package/dist/es2017/core/init/multithread/worker/worker_text_displayer_interface.js +0 -121
  1996. package/dist/es2017/core/init/types.d.ts +0 -226
  1997. package/dist/es2017/core/init/utils/DecipherabilityFreezeDetector.d.ts +0 -54
  1998. package/dist/es2017/core/init/utils/DecipherabilityFreezeDetector.js +0 -93
  1999. package/dist/es2017/core/init/utils/content_time_boundaries_observer.d.ts +0 -192
  2000. package/dist/es2017/core/init/utils/content_time_boundaries_observer.js +0 -468
  2001. package/dist/es2017/core/init/utils/create_content_time_boundaries_observer.d.ts +0 -28
  2002. package/dist/es2017/core/init/utils/create_content_time_boundaries_observer.js +0 -41
  2003. package/dist/es2017/core/init/utils/create_core_playback_observer.d.ts +0 -61
  2004. package/dist/es2017/core/init/utils/create_core_playback_observer.js +0 -122
  2005. package/dist/es2017/core/init/utils/create_media_source.d.ts +0 -37
  2006. package/dist/es2017/core/init/utils/create_media_source.js +0 -103
  2007. package/dist/es2017/core/init/utils/end_of_stream.d.ts +0 -33
  2008. package/dist/es2017/core/init/utils/end_of_stream.js +0 -88
  2009. package/dist/es2017/core/init/utils/get_initial_time.d.ts +0 -76
  2010. package/dist/es2017/core/init/utils/get_initial_time.js +0 -113
  2011. package/dist/es2017/core/init/utils/get_loaded_reference.d.ts +0 -28
  2012. package/dist/es2017/core/init/utils/get_loaded_reference.js +0 -58
  2013. package/dist/es2017/core/init/utils/initial_seek_and_play.d.ts +0 -61
  2014. package/dist/es2017/core/init/utils/initial_seek_and_play.js +0 -206
  2015. package/dist/es2017/core/init/utils/initialize_content_decryption.d.ts +0 -86
  2016. package/dist/es2017/core/init/utils/initialize_content_decryption.js +0 -110
  2017. package/dist/es2017/core/init/utils/main_thread_text_displayer_interface.d.ts +0 -35
  2018. package/dist/es2017/core/init/utils/media_source_duration_updater.js +0 -263
  2019. package/dist/es2017/core/init/utils/rebuffering_controller.d.ts +0 -114
  2020. package/dist/es2017/core/init/utils/rebuffering_controller.js +0 -421
  2021. package/dist/es2017/core/init/utils/stream_events_emitter/are_same_stream_events.js +0 -35
  2022. package/dist/es2017/core/init/utils/stream_events_emitter/index.d.ts +0 -18
  2023. package/dist/es2017/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +0 -25
  2024. package/dist/es2017/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +0 -85
  2025. package/dist/es2017/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +0 -53
  2026. package/dist/es2017/core/init/utils/stream_events_emitter/stream_events_emitter.js +0 -180
  2027. package/dist/es2017/core/init/utils/stream_events_emitter/types.d.ts +0 -41
  2028. package/dist/es2017/core/init/utils/throw_on_media_error.d.ts +0 -23
  2029. package/dist/es2017/core/init/utils/throw_on_media_error.js +0 -58
  2030. package/dist/es2017/core/segment_buffers/garbage_collector.d.ts +0 -43
  2031. package/dist/es2017/core/segment_buffers/garbage_collector.js +0 -137
  2032. package/dist/es2017/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +0 -134
  2033. package/dist/es2017/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +0 -259
  2034. package/dist/es2017/core/segment_buffers/implementations/audio_video/index.d.ts +0 -17
  2035. package/dist/es2017/core/segment_buffers/implementations/audio_video/index.js +0 -17
  2036. package/dist/es2017/core/segment_buffers/implementations/index.d.ts +0 -19
  2037. package/dist/es2017/core/segment_buffers/implementations/index.js +0 -18
  2038. package/dist/es2017/core/segment_buffers/implementations/text/index.d.ts +0 -3
  2039. package/dist/es2017/core/segment_buffers/implementations/text/index.js +0 -2
  2040. package/dist/es2017/core/segment_buffers/implementations/text/text_segment_buffer.d.ts +0 -89
  2041. package/dist/es2017/core/segment_buffers/implementations/text/text_segment_buffer.js +0 -152
  2042. package/dist/es2017/core/segment_buffers/implementations/types.d.ts +0 -309
  2043. package/dist/es2017/core/segment_buffers/implementations/types.js +0 -112
  2044. package/dist/es2017/core/segment_buffers/implementations/utils/manual_time_ranges.js +0 -63
  2045. package/dist/es2017/core/segment_buffers/index.d.ts +0 -21
  2046. package/dist/es2017/core/segment_buffers/index.js +0 -21
  2047. package/dist/es2017/core/segment_buffers/inventory/buffered_history.d.ts +0 -89
  2048. package/dist/es2017/core/segment_buffers/inventory/buffered_history.js +0 -90
  2049. package/dist/es2017/core/segment_buffers/inventory/index.d.ts +0 -21
  2050. package/dist/es2017/core/segment_buffers/inventory/index.js +0 -18
  2051. package/dist/es2017/core/segment_buffers/inventory/segment_inventory.d.ts +0 -238
  2052. package/dist/es2017/core/segment_buffers/inventory/segment_inventory.js +0 -863
  2053. package/dist/es2017/core/segment_buffers/inventory/types.d.ts +0 -27
  2054. package/dist/es2017/core/segment_buffers/inventory/utils.d.ts +0 -33
  2055. package/dist/es2017/core/segment_buffers/inventory/utils.js +0 -49
  2056. package/dist/es2017/core/segment_buffers/segment_buffers_store.d.ts +0 -171
  2057. package/dist/es2017/core/segment_buffers/segment_buffers_store.js +0 -281
  2058. package/dist/es2017/manifest/adaptation.d.ts +0 -135
  2059. package/dist/es2017/manifest/adaptation.js +0 -195
  2060. package/dist/es2017/manifest/manifest.d.ts +0 -388
  2061. package/dist/es2017/manifest/manifest.js +0 -383
  2062. package/dist/es2017/manifest/period.d.ts +0 -106
  2063. package/dist/es2017/manifest/period.js +0 -194
  2064. package/dist/es2017/manifest/representation.d.ts +0 -238
  2065. package/dist/es2017/manifest/representation.js +0 -344
  2066. package/dist/es2017/manifest/representation_index/index.d.ts +0 -18
  2067. package/dist/es2017/manifest/representation_index/static.d.ts +0 -101
  2068. package/dist/es2017/manifest/representation_index/static.js +0 -139
  2069. package/dist/es2017/manifest/representation_index/types.d.ts +0 -420
  2070. package/dist/es2017/manifest/update_period_in_place.d.ts +0 -52
  2071. package/dist/es2017/manifest/update_period_in_place.js +0 -110
  2072. package/dist/es2017/manifest/update_periods.d.ts +0 -50
  2073. package/dist/es2017/manifest/update_periods.js +0 -192
  2074. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.d.ts +0 -23
  2075. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +0 -311
  2076. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/BaseURL.d.ts +0 -23
  2077. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +0 -30
  2078. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.d.ts +0 -22
  2079. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.d.ts +0 -21
  2080. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/EventStream.d.ts +0 -23
  2081. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +0 -94
  2082. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Initialization.d.ts +0 -21
  2083. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +0 -39
  2084. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/MPD.d.ts +0 -21
  2085. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/MPD.js +0 -144
  2086. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Period.d.ts +0 -21
  2087. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Period.js +0 -112
  2088. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Representation.d.ts +0 -21
  2089. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/Representation.js +0 -189
  2090. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.d.ts +0 -22
  2091. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +0 -89
  2092. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentList.d.ts +0 -21
  2093. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.d.ts +0 -23
  2094. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +0 -73
  2095. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.d.ts +0 -21
  2096. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.d.ts +0 -23
  2097. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +0 -49
  2098. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +0 -187
  2099. package/dist/es2017/parsers/manifest/dash/js-parser/node_parsers/utils.js +0 -306
  2100. package/dist/es2017/parsers/manifest/dash/js-parser/parse_from_document.d.ts +0 -24
  2101. package/dist/es2017/parsers/manifest/dash/js-parser/parse_from_document.js +0 -106
  2102. package/dist/es2017/text_displayer/html/html_parsers.js +0 -22
  2103. package/dist/es2017/text_displayer/html/html_text_displayer.d.ts +0 -100
  2104. package/dist/es2017/text_displayer/html/html_text_displayer.js +0 -311
  2105. package/dist/es2017/text_displayer/html/text_track_cues_store.d.ts +0 -65
  2106. package/dist/es2017/text_displayer/html/text_track_cues_store.js +0 -358
  2107. package/dist/es2017/text_displayer/html/update_proportional_elements.js +0 -62
  2108. package/dist/es2017/text_displayer/html/utils.js +0 -107
  2109. package/dist/es2017/text_displayer/index.d.ts +0 -2
  2110. package/dist/es2017/text_displayer/manual_time_ranges.js +0 -48
  2111. package/dist/es2017/text_displayer/native/native_parsers.d.ts +0 -11
  2112. package/dist/es2017/text_displayer/native/native_parsers.js +0 -22
  2113. package/dist/es2017/text_displayer/native/native_text_displayer.d.ts +0 -56
  2114. package/dist/es2017/text_displayer/native/native_text_displayer.js +0 -203
  2115. package/dist/es2017/text_displayer/types.d.ts +0 -74
  2116. package/dist/es2017/transports/dash/extract_complete_chunks.js +0 -63
  2117. package/dist/es2017/transports/utils/find_complete_box.js +0 -53
  2118. /package/dist/commonjs/core/{segment_buffers → segment_sinks}/implementations/audio_video/index.js +0 -0
  2119. /package/dist/commonjs/core/{segment_buffers → segment_sinks}/implementations/text/index.js +0 -0
  2120. /package/dist/commonjs/core/{segment_buffers → segment_sinks}/implementations/utils/manual_time_ranges.d.ts +0 -0
  2121. /package/dist/commonjs/core/{segment_buffers → segment_sinks}/implementations/utils/manual_time_ranges.js +0 -0
  2122. /package/dist/commonjs/core/{segment_buffers → segment_sinks}/inventory/buffered_history.js +0 -0
  2123. /package/dist/commonjs/core/{segment_buffers → segment_sinks}/inventory/index.js +0 -0
  2124. /package/dist/commonjs/core/{init/utils/stream_events_emitter → segment_sinks/inventory}/types.js +0 -0
  2125. /package/dist/commonjs/{text_displayer → core}/types.js +0 -0
  2126. /package/dist/commonjs/{core → main_thread}/api/debug/buffer_size_graph.d.ts +0 -0
  2127. /package/dist/commonjs/{core → main_thread}/api/debug/constants.d.ts +0 -0
  2128. /package/dist/commonjs/{core → main_thread}/api/debug/constants.js +0 -0
  2129. /package/dist/commonjs/{core → main_thread}/api/debug/index.d.ts +0 -0
  2130. /package/dist/commonjs/{core → main_thread}/api/debug/index.js +0 -0
  2131. /package/dist/commonjs/{core → main_thread}/api/debug/render.js +0 -0
  2132. /package/dist/commonjs/{core → main_thread}/api/debug/utils.d.ts +0 -0
  2133. /package/dist/commonjs/{core → main_thread}/api/debug/utils.js +0 -0
  2134. /package/dist/commonjs/{core → main_thread}/decrypt/clear_on_stop.d.ts +0 -0
  2135. /package/dist/commonjs/{core → main_thread}/decrypt/dispose_decryption_resources.d.ts +0 -0
  2136. /package/dist/commonjs/{core → main_thread}/decrypt/get_key_system_configuration.d.ts +0 -0
  2137. /package/dist/commonjs/{core → main_thread}/decrypt/get_key_system_configuration.js +0 -0
  2138. /package/dist/commonjs/{core → main_thread}/decrypt/index.js +0 -0
  2139. /package/dist/commonjs/{core → main_thread}/decrypt/types.js +0 -0
  2140. /package/dist/commonjs/{core → main_thread}/decrypt/utils/are_init_values_compatible.d.ts +0 -0
  2141. /package/dist/commonjs/{core → main_thread}/decrypt/utils/clean_old_loaded_sessions.js +0 -0
  2142. /package/dist/commonjs/{core → main_thread}/decrypt/utils/clean_old_stored_persistent_info.js +0 -0
  2143. /package/dist/commonjs/{core → main_thread}/decrypt/utils/get_drm_system_id.d.ts +0 -0
  2144. /package/dist/commonjs/{core → main_thread}/decrypt/utils/get_drm_system_id.js +0 -0
  2145. /package/dist/commonjs/{core → main_thread}/decrypt/utils/key_id_comparison.d.ts +0 -0
  2146. /package/dist/commonjs/{core → main_thread}/decrypt/utils/key_id_comparison.js +0 -0
  2147. /package/dist/commonjs/{core → main_thread}/init/index.d.ts +0 -0
  2148. /package/dist/commonjs/{core → main_thread}/init/index.js +0 -0
  2149. /package/dist/commonjs/{core → main_thread}/init/types.js +0 -0
  2150. /package/dist/commonjs/{core → main_thread}/init/utils/main_thread_text_displayer_interface.js +0 -0
  2151. /package/dist/commonjs/{core → main_thread}/init/utils/stream_events_emitter/are_same_stream_events.d.ts +0 -0
  2152. /package/dist/commonjs/{core → main_thread}/init/utils/stream_events_emitter/index.js +0 -0
  2153. /package/dist/commonjs/{core/segment_buffers/inventory → main_thread/init/utils/stream_events_emitter}/types.js +0 -0
  2154. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/html/html_parsers.d.ts +0 -0
  2155. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/html/index.d.ts +0 -0
  2156. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/html/index.js +0 -0
  2157. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/html/update_proportional_elements.d.ts +0 -0
  2158. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/html/utils.d.ts +0 -0
  2159. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/index.js +0 -0
  2160. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/manual_time_ranges.d.ts +0 -0
  2161. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/native/index.d.ts +0 -0
  2162. /package/dist/commonjs/{text_displayer → main_thread/text_displayer}/native/index.js +0 -0
  2163. /package/dist/commonjs/{core/api/track_management → main_thread/tracks_store}/index.js +0 -0
  2164. /package/dist/commonjs/manifest/{representation_index → classes/representation_index}/index.js +0 -0
  2165. /package/dist/commonjs/manifest/{representation_index → classes/representation_index}/types.js +0 -0
  2166. /package/dist/commonjs/{core/init → mse}/utils/media_source_duration_updater.d.ts +0 -0
  2167. /package/dist/commonjs/{transports/dash → parsers/containers/isobmff}/extract_complete_chunks.d.ts +0 -0
  2168. /package/dist/commonjs/{transports/utils → parsers/containers/isobmff}/find_complete_box.d.ts +0 -0
  2169. /package/dist/commonjs/parsers/manifest/dash/{js-parser → native-parser}/index.d.ts +0 -0
  2170. /package/dist/commonjs/parsers/manifest/dash/{js-parser → native-parser}/index.js +0 -0
  2171. /package/dist/commonjs/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/ContentComponent.js +0 -0
  2172. /package/dist/commonjs/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/ContentProtection.js +0 -0
  2173. /package/dist/commonjs/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/SegmentList.js +0 -0
  2174. /package/dist/commonjs/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/SegmentTimeline.js +0 -0
  2175. /package/dist/es2017/core/{segment_buffers → segment_sinks}/implementations/utils/manual_time_ranges.d.ts +0 -0
  2176. /package/dist/es2017/core/{init/utils/stream_events_emitter → segment_sinks/inventory}/types.js +0 -0
  2177. /package/dist/es2017/{text_displayer → core}/types.js +0 -0
  2178. /package/dist/es2017/{core → main_thread}/api/debug/buffer_size_graph.d.ts +0 -0
  2179. /package/dist/es2017/{core → main_thread}/api/debug/constants.d.ts +0 -0
  2180. /package/dist/es2017/{core → main_thread}/api/debug/constants.js +0 -0
  2181. /package/dist/es2017/{core → main_thread}/api/debug/index.d.ts +0 -0
  2182. /package/dist/es2017/{core → main_thread}/api/debug/index.js +0 -0
  2183. /package/dist/es2017/{core → main_thread}/api/debug/utils.d.ts +0 -0
  2184. /package/dist/es2017/{core → main_thread}/decrypt/clear_on_stop.d.ts +0 -0
  2185. /package/dist/es2017/{core → main_thread}/decrypt/dispose_decryption_resources.d.ts +0 -0
  2186. /package/dist/es2017/{core → main_thread}/decrypt/get_key_system_configuration.d.ts +0 -0
  2187. /package/dist/es2017/{core → main_thread}/decrypt/get_key_system_configuration.js +0 -0
  2188. /package/dist/es2017/{core → main_thread}/decrypt/types.js +0 -0
  2189. /package/dist/es2017/{core → main_thread}/decrypt/utils/are_init_values_compatible.d.ts +0 -0
  2190. /package/dist/es2017/{core → main_thread}/decrypt/utils/clean_old_loaded_sessions.js +0 -0
  2191. /package/dist/es2017/{core → main_thread}/decrypt/utils/clean_old_stored_persistent_info.js +0 -0
  2192. /package/dist/es2017/{core → main_thread}/decrypt/utils/get_drm_system_id.d.ts +0 -0
  2193. /package/dist/es2017/{core → main_thread}/decrypt/utils/get_drm_system_id.js +0 -0
  2194. /package/dist/es2017/{core → main_thread}/decrypt/utils/key_id_comparison.d.ts +0 -0
  2195. /package/dist/es2017/{core → main_thread}/init/index.d.ts +0 -0
  2196. /package/dist/es2017/{core → main_thread}/init/index.js +0 -0
  2197. /package/dist/es2017/{core → main_thread}/init/types.js +0 -0
  2198. /package/dist/es2017/{core → main_thread}/init/utils/main_thread_text_displayer_interface.js +0 -0
  2199. /package/dist/es2017/{core → main_thread}/init/utils/stream_events_emitter/are_same_stream_events.d.ts +0 -0
  2200. /package/dist/es2017/{core → main_thread}/init/utils/stream_events_emitter/index.js +0 -0
  2201. /package/dist/es2017/{core/segment_buffers/inventory → main_thread/init/utils/stream_events_emitter}/types.js +0 -0
  2202. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/html/html_parsers.d.ts +0 -0
  2203. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/html/index.d.ts +0 -0
  2204. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/html/index.js +0 -0
  2205. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/html/update_proportional_elements.d.ts +0 -0
  2206. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/html/utils.d.ts +0 -0
  2207. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/index.js +0 -0
  2208. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/manual_time_ranges.d.ts +0 -0
  2209. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/native/index.d.ts +0 -0
  2210. /package/dist/es2017/{text_displayer → main_thread/text_displayer}/native/index.js +0 -0
  2211. /package/dist/es2017/{core/api/track_management → main_thread/tracks_store}/index.js +0 -0
  2212. /package/dist/es2017/manifest/{representation_index → classes/representation_index}/index.js +0 -0
  2213. /package/dist/es2017/manifest/{representation_index → classes/representation_index}/types.js +0 -0
  2214. /package/dist/es2017/{core/init → mse}/utils/media_source_duration_updater.d.ts +0 -0
  2215. /package/dist/es2017/{transports/dash → parsers/containers/isobmff}/extract_complete_chunks.d.ts +0 -0
  2216. /package/dist/es2017/{transports/utils → parsers/containers/isobmff}/find_complete_box.d.ts +0 -0
  2217. /package/dist/es2017/parsers/manifest/dash/{js-parser → native-parser}/index.d.ts +0 -0
  2218. /package/dist/es2017/parsers/manifest/dash/{js-parser → native-parser}/index.js +0 -0
  2219. /package/dist/es2017/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/ContentComponent.js +0 -0
  2220. /package/dist/es2017/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/ContentProtection.js +0 -0
  2221. /package/dist/es2017/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/SegmentList.js +0 -0
  2222. /package/dist/es2017/parsers/manifest/dash/{js-parser → native-parser}/node_parsers/SegmentTimeline.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ ## Unrelased
2
+
3
+ ### Features
4
+
5
+ - Add a supplementary `worker.es5.js` file and its corresponding `EMBEDDED_WORKER_ES5` embed to make the `MULTI_THREAD` experimental feature work on old browser environments [#1400]
6
+
7
+ ### Bug fixes
8
+
9
+ - Directfile/compat: On safari mobile in directfile mode, do not stay in an infinite `LOADING` state if the `duration` is set to `NaN` (rare issue in a normally-unsupported multiple RxPlayer-per-media-element scenario) [#1393]
10
+ - DRM/Compat: On the PlayStation 5, reload directly when a decryption key become unusable to prevent fatal errors [#1399]
11
+
12
+ ### Other improvements
13
+
14
+ - Signal an error if multiple active RxPlayer are linked to the same media element [#1394]
15
+ - MULTI_THREAD: The experimental `MULTI_THREAD` feature does not need a `dashWasmUrl` anymore nor compatibility to WebAssembly [#1384]
16
+ - MULTI_THREAD: Perform several actions so that our `MULTI_THREAD` experimental feature now works on older browser and on the playstation 4 [#1400, #1401, #1402]
17
+ - DRM: Refactor MediaKeys attachment logic to simplify device support updates [#1357]
18
+ - tests: use exponential backoff to speed up integration tests [#1389]
19
+ - code: Rely on the TypeScript `type` keyword at type imports to be sure they have no code impact on our final build [#1365]
20
+ - code: Reorganize core RxPlayer code into a `src/main_thread` and `src/core` respectively for main thread and worker code in a "multithread" mode [#1365]
21
+ - code: Rely on the prettier and rustfmt formatting tools in the codebase [#1387]
22
+
1
23
  ## v4.0.0 (2024-02-21)
2
24
 
3
25
  ### Changes
@@ -128,1154 +150,1591 @@
128
150
  - Add cache when checking for codec support, improving performance on some devices and potentially working around some xbox bugs on long-lived pages [#1324]
129
151
  - Demo: Add possibility to see the debug element in the demo page
130
152
 
131
-
132
153
  ## v3.33.0 (2024-01-24)
133
154
 
134
155
  ### Features
135
156
 
136
- - Add `getLivePosition` RxPlayer method [#1300]
137
- - Add `startAt.fromLivePosition` `loadVideo` option [#1300]
138
- - Add the possibility to set a new `keySystems` option on the `reload` API [#1308]
157
+ - Add `getLivePosition` RxPlayer method [#1300]
158
+ - Add `startAt.fromLivePosition` `loadVideo` option [#1300]
159
+ - Add the possibility to set a new `keySystems` option on the `reload` API [#1308]
139
160
 
140
161
  ### Bug fixes
141
162
 
142
- - Fix subtitles "blinking" in some specific conditions, especially with some DASH low-latency contents [#1314]
143
- - DASH: Fix Period overlap resolution logic for when the first Period is removed [#1311]
144
- - TTML: Fix handling of the `tts:lineHeight` attribute [#1320]
145
- - Fix import of the `LOCAL_MANIFEST` experimental feature
146
- - Avoid very rarely skipping segments which initially were too big to be pushed due to memory limitations [#1323]
147
- - Fix issue arising when using track APIs at the exact last possible position of a Period with no consecutive Period [#1337]
148
- - Starting at the end (through a `startAt` `loadVideo` option) or reloading at the end led to the restart of the content [#1338]
149
- - DRM/Safari: also perform Safari DRM work-arounds when the page is launched from the dock [#1351, #1356]
163
+ - Fix subtitles "blinking" in some specific conditions, especially with some DASH
164
+ low-latency contents [#1314]
165
+ - DASH: Fix Period overlap resolution logic for when the first Period is removed [#1311]
166
+ - TTML: Fix handling of the `tts:lineHeight` attribute [#1320]
167
+ - Fix import of the `LOCAL_MANIFEST` experimental feature
168
+ - Avoid very rarely skipping segments which initially were too big to be pushed due to
169
+ memory limitations [#1323]
170
+ - Fix issue arising when using track APIs at the exact last possible position of a Period
171
+ with no consecutive Period [#1337]
172
+ - Starting at the end (through a `startAt` `loadVideo` option) or reloading at the end led
173
+ to the restart of the content [#1338]
174
+ - DRM/Safari: also perform Safari DRM work-arounds when the page is launched from the dock
175
+ [#1351, #1356]
150
176
 
151
177
  ### Other improvements
152
178
 
153
- - DASH: rely on SCTE214 `supplementalCodecs` instead of `codecs` if it's supported to better support backward compatible Dolby Vision contents [#1307]
154
- - DASH: Provide better support of the `availabilityTimeOffset` attribute [#1300]
155
- - DEBUG_ELEMENT: Add unsupported and undecipherable bitrates to the debug element [#1321]
156
- - DEBUG_ELEMENT: update buffer graph maximum size so it becomes more readable for lengthy contents [#1316]
157
- - DEBUG_ELEMENT: always synchronize inventory of segments before rendering it [#1317]
158
- - Remove remaining RxPlayer dependency removing possibility of some application-side bundling errors [#1312]
159
- - Add exception to text Garbage collection logic to avoid unnecessarily reload text segments frequently [#1325]
160
- - Avoid logging too much the buffer's content when our debugging UI or the demo is used [#1341]
161
- - Demo: Fix reporting of live position in demo page [#1313]
162
- - build: automatically install Rust and WASM toolchain locally if unavailable when building the RxPlayer [#1373]
163
- - doc: Update our documentation generator and fix all invalid anchors in it
164
- - npm: prevent the publishing of unnecessary files on the npm registry [#1377, #1378]
165
-
179
+ - DASH: rely on SCTE214 `supplementalCodecs` instead of `codecs` if it's supported to
180
+ better support backward compatible Dolby Vision contents [#1307]
181
+ - DASH: Provide better support of the `availabilityTimeOffset` attribute [#1300]
182
+ - DEBUG_ELEMENT: Add unsupported and undecipherable bitrates to the debug element [#1321]
183
+ - DEBUG_ELEMENT: update buffer graph maximum size so it becomes more readable for lengthy
184
+ contents [#1316]
185
+ - DEBUG_ELEMENT: always synchronize inventory of segments before rendering it [#1317]
186
+ - Remove remaining RxPlayer dependency removing possibility of some application-side
187
+ bundling errors [#1312]
188
+ - Add exception to text Garbage collection logic to avoid unnecessarily reload text
189
+ segments frequently [#1325]
190
+ - Avoid logging too much the buffer's content when our debugging UI or the demo is used
191
+ [#1341]
192
+ - Demo: Fix reporting of live position in demo page [#1313]
166
193
 
167
194
  ## v3.32.1 (2023-10-19)
168
195
 
169
196
  ### Features
170
197
 
171
- - DASH: add optional `isSpatialAudio` boolean property to Representation returned by `getAvailableAudioTracks`, `getAudioTrack`, corresponding events, and `trackInfo` optional property of `MediaError` objects to signal Dolby Atmos techology [#1275]
172
- - `LOCAL`: add `isSpatialAudio` property to Representation of the experiment `"local"` transport (used for offline playback) [#1275]
173
- - `addFeatures` static method is now available on all RxPlayer builds. It was previously only in the minimal (`rx-player/minimal` import path) [#1287]
174
- - The `NATIVE_TEXT_BUFFER`, `HTML_TEXT_BUFFER` and `IMAGE_BUFFER` features are now totally optional [#1287, #1293]
198
+ - DASH: add optional `isSpatialAudio` boolean property to Representation returned by
199
+ `getAvailableAudioTracks`, `getAudioTrack`, corresponding events, and `trackInfo`
200
+ optional property of `MediaError` objects to signal Dolby Atmos techology [#1275]
201
+ - `LOCAL`: add `isSpatialAudio` property to Representation of the experiment `"local"`
202
+ transport (used for offline playback) [#1275]
203
+ - `addFeatures` static method is now available on all RxPlayer builds. It was previously
204
+ only in the minimal (`rx-player/minimal` import path) [#1287]
205
+ - The `NATIVE_TEXT_BUFFER`, `HTML_TEXT_BUFFER` and `IMAGE_BUFFER` features are now totally
206
+ optional [#1287, #1293]
175
207
 
176
208
  ### Bug fixes
177
209
 
178
- - Fix `setVideoBitrate` and `setAudioBitrate` API which may have led to a higher quality than wanted in the default `"seamless"` `manualBitrateSwitchingMode` if our buffer-based adaptive logic decided to [#1267, #1271]
179
- - On the PlayStation 5, only switch to the `"LOADED"` state once the HTMLMediaElement's `readyState` of `4` has been reached, as it seems to switch to `3` too soon there [#1257]
180
- - DASH: Fix potential track duplication if more than two `AdaptationSet` have an `adaptation-set-switching` `<SupplementalProperty>` between one another [#1279]
181
- - DASH-WASM: availabilityTimeOffset is actually a floating number [#1278]
210
+ - Fix `setVideoBitrate` and `setAudioBitrate` API which may have led to a higher quality
211
+ than wanted in the default `"seamless"` `manualBitrateSwitchingMode` if our buffer-based
212
+ adaptive logic decided to [#1267, #1271]
213
+ - On the PlayStation 5, only switch to the `"LOADED"` state once the HTMLMediaElement's
214
+ `readyState` of `4` has been reached, as it seems to switch to `3` too soon there
215
+ [#1257]
216
+ - DASH: Fix potential track duplication if more than two `AdaptationSet` have an
217
+ `adaptation-set-switching` `<SupplementalProperty>` between one another [#1279]
218
+ - DASH-WASM: availabilityTimeOffset is actually a floating number [#1278]
182
219
 
183
220
  ### Other improvements
184
221
 
185
- - Do not load the last text segment if the current position goes after it as it is unnecessary [#1256]
186
- - Implement better `NetworkError` messages [#1274]
187
- - Set a better error message for when no `keySystems` option is set when playing an encrypted content
188
- - Fix very small memory leak when reloading a content [#1286]
189
- - Re-check for segments to load immediately after the manifest has been refreshed [#1282]
190
- - When "fallbacking" an undecipherable Representation, now empty the whole buffer if we can't make out where content was in the buffer [#1283]
191
- - Improve segment start detection in buffer when there's unknown data buffered before it [#1284]
192
- - DRM: Selection of alternative EME API like those used on IE11 or Safari has been refactored to facilitate future developments [#1261]
222
+ - Do not load the last text segment if the current position goes after it as it is
223
+ unnecessary [#1256]
224
+ - Implement better `NetworkError` messages [#1274]
225
+ - Set a better error message for when no `keySystems` option is set when playing an
226
+ encrypted content
227
+ - Fix very small memory leak when reloading a content [#1286]
228
+ - Re-check for segments to load immediately after the manifest has been refreshed [#1282]
229
+ - When "fallbacking" an undecipherable Representation, now empty the whole buffer if we
230
+ can't make out where content was in the buffer [#1283]
231
+ - Improve segment start detection in buffer when there's unknown data buffered before it
232
+ [#1284]
233
+ - DRM: Selection of alternative EME API like those used on IE11 or Safari has been
234
+ refactored to facilitate future developments [#1261]
193
235
 
194
236
  ### Deprecated
195
237
 
196
- - Deprecate the `manifestUpdateUrl` `loadVideo` option as it doesn't seem used anymore [#1288]
197
- - Deprecate the `NATIVE_TEXT_BUFFER`, `HTML_TEXT_BUFFER` and `IMAGE_BUFFER` features as they are now unneeded [#1287, #1293]
198
-
238
+ - Deprecate the `manifestUpdateUrl` `loadVideo` option as it doesn't seem used anymore
239
+ [#1288]
240
+ - Deprecate the `NATIVE_TEXT_BUFFER`, `HTML_TEXT_BUFFER` and `IMAGE_BUFFER` features as
241
+ they are now unneeded [#1287, #1293]
199
242
 
200
243
  ## v3.31.0 (2023-06-14)
201
244
 
202
245
  ### Features
203
246
 
204
- - Add `isContentLoaded`, `isBuffering`, `isPaused`, and `getLastStoredContentPosition` methods [#1248]
205
- - Add `play` and `paused` events [#1253]
206
- - Add `trackInfo` property to some `MediaError` to expose information on the track that caused the error [#1241]
247
+ - Add `isContentLoaded`, `isBuffering`, `isPaused`, and `getLastStoredContentPosition`
248
+ methods [#1248]
249
+ - Add `play` and `paused` events [#1253]
250
+ - Add `trackInfo` property to some `MediaError` to expose information on the track that
251
+ caused the error [#1241]
207
252
 
208
253
  ### Bug fixes
209
254
 
210
- - DASH: Fix issue which could lead to infinite rebuffering when switching between multiple Periods [#1232]
211
- - Return actual ending duration through the `getVideoDuration` method when playing dynamic contents whose future end is already known [#1235]
212
- - DASH/WASM: actually reject the `DASH_WASM.initialize`'s Promise if it fails [#1238]
213
- - On the PlayStation 5, set `Infinity` MediaSource duration for live contents to prevent playback issues [#1250]
255
+ - DASH: Fix issue which could lead to infinite rebuffering when switching between multiple
256
+ Periods [#1232]
257
+ - Return actual ending duration through the `getVideoDuration` method when playing dynamic
258
+ contents whose future end is already known [#1235]
259
+ - DASH/WASM: actually reject the `DASH_WASM.initialize`'s Promise if it fails [#1238]
260
+ - On the PlayStation 5, set `Infinity` MediaSource duration for live contents to prevent
261
+ playback issues [#1250]
214
262
 
215
263
  ### Other improvements
216
264
 
217
- - adaptive: Perform various adaptive tweaks to avoid switching too much between qualities in some conditions [#1237]
218
- - Directfile: Detect "forced" subtitles on Safari when playing directfile contents (such as HLS) [#1239]
219
- - Improve `"direct"` `audioTrackSwitchingMode` compatibility by re-seeking [#1246]
220
- - The `DEBUG_ELEMENT` feature now uses the `monospace` fallback font as a default for a better rendering on apple devices
221
- - doc: externalize documentation-generator code
222
-
265
+ - adaptive: Perform various adaptive tweaks to avoid switching too much between qualities
266
+ in some conditions [#1237]
267
+ - Directfile: Detect "forced" subtitles on Safari when playing directfile contents (such
268
+ as HLS) [#1239]
269
+ - Improve `"direct"` `audioTrackSwitchingMode` compatibility by re-seeking [#1246]
270
+ - The `DEBUG_ELEMENT` feature now uses the `monospace` fallback font as a default for a
271
+ better rendering on apple devices
272
+ - doc: externalize documentation-generator code
223
273
 
224
274
  ## v3.30.0 (2023-03-07)
225
275
 
226
276
  ### Features
227
277
 
228
- - Add `updateContentUrls` API, allowing to update the Manifest's URL during playback [#1182]
229
- - DASH: implement forced-subtitles, adding the `forced` property to the audio tracks API and selecting by default a forced text track linked to the audio track's language if present [#1187]
230
- - DRM: add the `getKeySystemConfiguration` method to the RxPlayer [#1202]
231
- - add experimental `DEBUG_ELEMENT` feature and `createDebugElement` method to render a default debugging HTML element [#1200]
278
+ - Add `updateContentUrls` API, allowing to update the Manifest's URL during playback
279
+ [#1182]
280
+ - DASH: implement forced-subtitles, adding the `forced` property to the audio tracks API
281
+ and selecting by default a forced text track linked to the audio track's language if
282
+ present [#1187]
283
+ - DRM: add the `getKeySystemConfiguration` method to the RxPlayer [#1202]
284
+ - add experimental `DEBUG_ELEMENT` feature and `createDebugElement` method to render a
285
+ default debugging HTML element [#1200]
232
286
 
233
287
  ### Deprecated
234
288
 
235
- - Deprecate the `getVideoLoadedTime` method which can be easily replaced (see Deprecated method documentation)
236
- - Deprecate the `getVideoPlayedTime` method which can be easily replaced (see Deprecated method documentation)
237
- - Deprecate the `transportOptions.aggressiveMode` option
238
- - DRM: Deprecate the `keySystems[].onKeyStatusesChange` callback as no good use case was found for it.
289
+ - Deprecate the `getVideoLoadedTime` method which can be easily replaced (see Deprecated
290
+ method documentation)
291
+ - Deprecate the `getVideoPlayedTime` method which can be easily replaced (see Deprecated
292
+ method documentation)
293
+ - Deprecate the `transportOptions.aggressiveMode` option
294
+ - DRM: Deprecate the `keySystems[].onKeyStatusesChange` callback as no good use case was
295
+ found for it.
239
296
 
240
297
  ### Bug fixes
241
298
 
242
- - Fix segment requesting error when playing a DASH content without an url and without BaseURL elements [#1192]
243
- - API: Stop sending events if the content is stopped due to a side-effect of one of the event handler [#1197]
244
- - text-tracks/ttml: fix inconsistent line spacing when resizing the `textTrackElement` [#1191]
245
- - DRM: Fix race condition leading to a JS error instead of a `NO_PLAYABLE_REPRESENTATION` [#1201]
246
- - DRM/Compat: Renew MediaKeys at each `loadVideo` on all WebOS (LG TV) platforms to work around issues [#1188]
299
+ - Fix segment requesting error when playing a DASH content without an url and without
300
+ BaseURL elements [#1192]
301
+ - API: Stop sending events if the content is stopped due to a side-effect of one of the
302
+ event handler [#1197]
303
+ - text-tracks/ttml: fix inconsistent line spacing when resizing the `textTrackElement`
304
+ [#1191]
305
+ - DRM: Fix race condition leading to a JS error instead of a `NO_PLAYABLE_REPRESENTATION`
306
+ [#1201]
307
+ - DRM/Compat: Renew MediaKeys at each `loadVideo` on all WebOS (LG TV) platforms to work
308
+ around issues [#1188]
247
309
 
248
310
  ### Other improvements
249
311
 
250
- - DASH: better detect closed captions [#1187]
251
- - DASH: handle `endNumber` DASH attribute [#1186]
252
- - DASH: Do not merge AdaptationSet with role "main" anymore [#1214]
253
- - DASH: parse `transferCharacteristics` property in the MPD to better detect hdr [#1212]
254
- - Support encrypted contents on Panasonic 2019 TVs [#1226]
255
- - Better handle SourceBuffer's QuotaExceededError, responsible for `MediaError` with the `BUFFER_FULL_ERROR` code [#1221]
256
- - API: send available...TracksChange events in the very unlikely scenario where tracks are added after a manifest update [#1197]
257
- - Completely remove RxJS dependency from the RxPlayer's source code [#1193]
258
- - DRM: Request PR recommendation when PlayReady is asked and try default recommendation robustnesses [#1189]
259
-
312
+ - DASH: better detect closed captions [#1187]
313
+ - DASH: handle `endNumber` DASH attribute [#1186]
314
+ - DASH: Do not merge AdaptationSet with role "main" anymore [#1214]
315
+ - DASH: parse `transferCharacteristics` property in the MPD to better detect hdr [#1212]
316
+ - Support encrypted contents on Panasonic 2019 TVs [#1226]
317
+ - Better handle SourceBuffer's QuotaExceededError, responsible for `MediaError` with the
318
+ `BUFFER_FULL_ERROR` code [#1221]
319
+ - API: send available...TracksChange events in the very unlikely scenario where tracks are
320
+ added after a manifest update [#1197]
321
+ - Completely remove RxJS dependency from the RxPlayer's source code [#1193]
322
+ - DRM: Request PR recommendation when PlayReady is asked and try default recommendation
323
+ robustnesses [#1189]
260
324
 
261
325
  ## v3.29.0 (2022-11-16)
262
326
 
263
327
  ### Features
264
328
 
265
- - add `networkConfig.segmentRequestTimeout` and `networkConfig.manifestRequestTimeout` options to loadVideo to configure the timeout of respectively segment and manifest requests [#1156]
266
- - add `timeout` property to the first argument communicated to a `segmentLoader` (from `loadVideo`'s `transportOptions`) [#1156]
267
- - add `timeout` property to a new third argument communicated to a `manifestLoader` (from `loadVideo`'s `transportOptions`) [#1156]
268
- - DRM: add `keySystems[].onKeyExpiration` to `loadVideo` options to configure the behavior the RxPlayer should have on key expiration [#1157]
269
- - DRM: add `keyStatuses` property to an `EncryptedMediaError` with the `KEY_STATUS_CHANGE_ERROR` code to communicate which key id and key statuses caused issues. [#1157]
329
+ - add `networkConfig.segmentRequestTimeout` and `networkConfig.manifestRequestTimeout`
330
+ options to loadVideo to configure the timeout of respectively segment and manifest
331
+ requests [#1156]
332
+ - add `timeout` property to the first argument communicated to a `segmentLoader` (from
333
+ `loadVideo`'s `transportOptions`) [#1156]
334
+ - add `timeout` property to a new third argument communicated to a `manifestLoader` (from
335
+ `loadVideo`'s `transportOptions`) [#1156]
336
+ - DRM: add `keySystems[].onKeyExpiration` to `loadVideo` options to configure the behavior
337
+ the RxPlayer should have on key expiration [#1157]
338
+ - DRM: add `keyStatuses` property to an `EncryptedMediaError` with the
339
+ `KEY_STATUS_CHANGE_ERROR` code to communicate which key id and key statuses caused
340
+ issues. [#1157]
270
341
 
271
342
  ### Deprecated
272
343
 
273
- - DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this boolean can be replaced with more customizability by the new `keySystems[].onKeyExpiration` `loadVideo` option [#1157]
344
+ - DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this
345
+ boolean can be replaced with more customizability by the new
346
+ `keySystems[].onKeyExpiration` `loadVideo` option [#1157]
274
347
 
275
348
  ### Bug fixes
276
349
 
277
- - Directfile: Fix long-running issues with rare "directfile" contents and some browsers/platforms (seen on Chrome PC and PlayStation 5) where playback would stay in `LOADING` state indefinitely despite playing [#1174]
278
- - DRM: Fix undocumented `keySystems[].videoRobustnesses` `loadVideo` option. `audioRobustnesses` was previously used even for video capabilities [#1171]
279
- - Compat/Directfile: Fix an issue with WebOS (LG TVs) when playing multiple directfile contents with the `stopAtEnd` player option set to `true` [#1154]
280
- - Compat/DRM: Fix infinite loading on WebOS (LG TVs) 2021 and 2022 when loading more than once an encrypted content by resetting decryption capabilities each time [#1175]
281
- - Compat: To work around an issue on WebOS (LG TVs), also specify a request timeout manually through a `setTimeout` call when XMLHttpRequests are created for Manifest and segment requests [#1152]
282
- - Compat/Directfile: Fix an issue on Tizen (Samsung TVs) where playing directfile contents could randomly lead to not having audio [#1170]
283
- - Compat: Fix issue with Tizen (Samsung TVs) where starting playback on a discontinuity could lead to infinite rebuffering [#1140, #1176]
284
- - Compat/Directfile: For `"directfile"` contents, also consider `AudioTrack` with a `description` (without an "s") as audio-description audio tracks to work-around what seems to be a Safari typo [#1160]
285
- - DRM: When using persistent licenses, create new MediaKeySession when `load` resolves with `false`, instead of relying the same, to fix issues with such persistent sessions if the browser cleaned it up [#1139]
286
- - Only call "MediaSource.endOfStream" once, the most visible side-effect should have been repeated logs [#1163]
350
+ - Directfile: Fix long-running issues with rare "directfile" contents and some
351
+ browsers/platforms (seen on Chrome PC and PlayStation 5) where playback would stay in
352
+ `LOADING` state indefinitely despite playing [#1174]
353
+ - DRM: Fix undocumented `keySystems[].videoRobustnesses` `loadVideo` option.
354
+ `audioRobustnesses` was previously used even for video capabilities [#1171]
355
+ - Compat/Directfile: Fix an issue with WebOS (LG TVs) when playing multiple directfile
356
+ contents with the `stopAtEnd` player option set to `true` [#1154]
357
+ - Compat/DRM: Fix infinite loading on WebOS (LG TVs) 2021 and 2022 when loading more than
358
+ once an encrypted content by resetting decryption capabilities each time [#1175]
359
+ - Compat: To work around an issue on WebOS (LG TVs), also specify a request timeout
360
+ manually through a `setTimeout` call when XMLHttpRequests are created for Manifest and
361
+ segment requests [#1152]
362
+ - Compat/Directfile: Fix an issue on Tizen (Samsung TVs) where playing directfile contents
363
+ could randomly lead to not having audio [#1170]
364
+ - Compat: Fix issue with Tizen (Samsung TVs) where starting playback on a discontinuity
365
+ could lead to infinite rebuffering [#1140, #1176]
366
+ - Compat/Directfile: For `"directfile"` contents, also consider `AudioTrack` with a
367
+ `description` (without an "s") as audio-description audio tracks to work-around what
368
+ seems to be a Safari typo [#1160]
369
+ - DRM: When using persistent licenses, create new MediaKeySession when `load` resolves
370
+ with `false`, instead of relying the same, to fix issues with such persistent sessions
371
+ if the browser cleaned it up [#1139]
372
+ - Only call "MediaSource.endOfStream" once, the most visible side-effect should have been
373
+ repeated logs [#1163]
287
374
 
288
375
  ### Other improvements
289
376
 
290
- - DASH: Improve multi-CDN configurations, by smartly selecting the right CDN depending on past status [#1165]
291
- - Allow reverse playback use cases by not skipping gaps and most discontinuities when the playback rate has been set to `0` or a negative value [#1138]
292
- - In the experimental "local" transport, add `incomingRanges` property to signal the time ranges of remaining data, allowing better discontinuity handling and duration estimates for sill-loading dowloaded contents [#1151]
293
- - Only send, through `"warning"` events, one `EncryptedMediaError` with a `KEY_STATUS_CHANGE_ERROR` code when multiple ones arises at the same time [#1157]
294
-
377
+ - DASH: Improve multi-CDN configurations, by smartly selecting the right CDN depending on
378
+ past status [#1165]
379
+ - Allow reverse playback use cases by not skipping gaps and most discontinuities when the
380
+ playback rate has been set to `0` or a negative value [#1138]
381
+ - In the experimental "local" transport, add `incomingRanges` property to signal the time
382
+ ranges of remaining data, allowing better discontinuity handling and duration estimates
383
+ for sill-loading dowloaded contents [#1151]
384
+ - Only send, through `"warning"` events, one `EncryptedMediaError` with a
385
+ `KEY_STATUS_CHANGE_ERROR` code when multiple ones arises at the same time [#1157]
295
386
 
296
387
  ## v3.28.0 (2022-07-12)
297
388
 
298
389
  ### Features
299
390
 
300
- - Add `label` to audio, video and text track APIs (such as `getAvailableAudioTracks`) which gives a human-readable description of the corresponding track, if available in the Manifest [#1105, #1109]
301
- - Automatically set the LogLevel to `"DEBUG"` if a global `__RX_PLAYER_DEBUG_MODE__` constant is set to `true`, to simplify debugging [#1115]
391
+ - Add `label` to audio, video and text track APIs (such as `getAvailableAudioTracks`)
392
+ which gives a human-readable description of the corresponding track, if available in the
393
+ Manifest [#1105, #1109]
394
+ - Automatically set the LogLevel to `"DEBUG"` if a global `__RX_PLAYER_DEBUG_MODE__`
395
+ constant is set to `true`, to simplify debugging [#1115]
302
396
 
303
397
  ### Bug fixes
304
398
 
305
- - Use the first **compatible** codec of the current AdaptationSet when creating a SourceBuffer [#1094]
306
- - DASH/DRM: Fix potential infinite rebuffering when a KID is not announced in the MPD [#1113]
307
- - DRM: Fix quality fallback when loading a content whose license has been cached under an extended `singleLicensePer` setting and when starting (and staying) with a quality whose key id is not in it [#1133]
308
- - DASH: Avoid infinite loop due to rounding errors while parsing multi-Periods MPDs [#1111, #1110]
309
- - After a `RELOADING` state, stay in `PAUSED` if the media element was paused synchronously before the side-effect which triggered the reloading (usually coming from the API) was perform [#1132]
310
- - Fix issue with `maxVideoBufferSize` setting which could lead to too much data being buffered [#1125]
311
- - Prevent possibility of requests loops and infinite rebuffering when a pushed segment is always completely and immediately garbage collected by the browser [#1123]
312
- - DASH: Fix potential rare memory leak when stopping the content after it has reloaded at least once [#1135]
313
- - Directfile: Properly announce the audio track's `audioDescription` accessibility attribute in directfile mode on Safari [#1136]
314
- - DASH: Fix issues that could arise if a segment is calculated to start at a negative position [#1122]
315
- - DASH: Fix possibility of wrong segments being requested when a SegmentTimeline in a given Period (whose Period@end is set) had an S@r set to `-1` at its end [#1098]
316
- - DASH: If the first `<S>` has its S@t attribute not set, make as if it is set to `0` [#1118]
399
+ - Use the first **compatible** codec of the current AdaptationSet when creating a
400
+ SourceBuffer [#1094]
401
+ - DASH/DRM: Fix potential infinite rebuffering when a KID is not announced in the MPD
402
+ [#1113]
403
+ - DRM: Fix quality fallback when loading a content whose license has been cached under an
404
+ extended `singleLicensePer` setting and when starting (and staying) with a quality whose
405
+ key id is not in it [#1133]
406
+ - DASH: Avoid infinite loop due to rounding errors while parsing multi-Periods MPDs
407
+ [#1111, #1110]
408
+ - After a `RELOADING` state, stay in `PAUSED` if the media element was paused
409
+ synchronously before the side-effect which triggered the reloading (usually coming from
410
+ the API) was perform [#1132]
411
+ - Fix issue with `maxVideoBufferSize` setting which could lead to too much data being
412
+ buffered [#1125]
413
+ - Prevent possibility of requests loops and infinite rebuffering when a pushed segment is
414
+ always completely and immediately garbage collected by the browser [#1123]
415
+ - DASH: Fix potential rare memory leak when stopping the content after it has reloaded at
416
+ least once [#1135]
417
+ - Directfile: Properly announce the audio track's `audioDescription` accessibility
418
+ attribute in directfile mode on Safari [#1136]
419
+ - DASH: Fix issues that could arise if a segment is calculated to start at a negative
420
+ position [#1122]
421
+ - DASH: Fix possibility of wrong segments being requested when a SegmentTimeline in a
422
+ given Period (whose Period@end is set) had an S@r set to `-1` at its end [#1098]
423
+ - DASH: If the first `<S>` has its S@t attribute not set, make as if it is set to `0`
424
+ [#1118]
317
425
 
318
426
  ### Other improvements
319
427
 
320
- - TTML: Add support for percent based thickness for textOutline in TTML Subtitles [#1108]
321
- - Improve TypeScript's language servers auto import feature with the RxPlayer by better redirecting to the exported type [#1126]
322
- - If seeking after the last potential position, load last segments before ending [#1097]
323
- - The duration set on the media element is now only relative to the current chosen tracks (it was previously relative to all potential track). This allows to seek later when switching e.g. to a longer video track [#1102]
324
- - Errors coming from an HTMLMediaElement now have the browser's error message if it exists [#1112]
325
- - TTML: Better handle EBU-TT subtitles by handling the `tt` XML namespace in our TTML parser [#1131]
326
- - DRM: Information on persisted DRM sessions are now automatically updated to their last version when possible [#1096]
327
- - Only log values which are relatively inexpensive to stringify to reduce the difference between debugging sessions and what is usually seen in production [#1116]
328
-
428
+ - TTML: Add support for percent based thickness for textOutline in TTML Subtitles [#1108]
429
+ - Improve TypeScript's language servers auto import feature with the RxPlayer by better
430
+ redirecting to the exported type [#1126]
431
+ - If seeking after the last potential position, load last segments before ending [#1097]
432
+ - The duration set on the media element is now only relative to the current chosen tracks
433
+ (it was previously relative to all potential track). This allows to seek later when
434
+ switching e.g. to a longer video track [#1102]
435
+ - Errors coming from an HTMLMediaElement now have the browser's error message if it exists
436
+ [#1112]
437
+ - TTML: Better handle EBU-TT subtitles by handling the `tt` XML namespace in our TTML
438
+ parser [#1131]
439
+ - DRM: Information on persisted DRM sessions are now automatically updated to their last
440
+ version when possible [#1096]
441
+ - Only log values which are relatively inexpensive to stringify to reduce the difference
442
+ between debugging sessions and what is usually seen in production [#1116]
329
443
 
330
444
  ## v3.27.0 (2022-03-31)
331
445
 
332
446
  ### Features
333
447
 
334
- - Add a `maxVideoBufferSize` constructor option and `{get,set}MaxVideoBufferSize` methods to limit the size of loaded video data buffered at the same time [#1041, #1054]
335
- - DRM: Add a `"periods"` mode to the `keySystems[].singleLicensePer` `loadVideo` option, allowing to obtain decryption license for groups of Periods allowing a compromise between optimization, features and compatibility [#1028, #1061]
336
- - Add a `"reload"` `audioTrackSwitchingMode` to work-around rare compatibility issues when switching audio tracks [#1089]
448
+ - Add a `maxVideoBufferSize` constructor option and `{get,set}MaxVideoBufferSize` methods
449
+ to limit the size of loaded video data buffered at the same time [#1041, #1054]
450
+ - DRM: Add a `"periods"` mode to the `keySystems[].singleLicensePer` `loadVideo` option,
451
+ allowing to obtain decryption license for groups of Periods allowing a compromise
452
+ between optimization, features and compatibility [#1028, #1061]
453
+ - Add a `"reload"` `audioTrackSwitchingMode` to work-around rare compatibility issues when
454
+ switching audio tracks [#1089]
337
455
 
338
456
  ### Bug fixes
339
457
 
340
- - subtitles: Fix rare issue where subtitles could be skipped due to a rounding error [#1064]
341
- - DASH: fix issue where the wrong segments would be requested on $Number$-based MPD with a SegmentTimeline older than the `timeShiftBufferDepth` [#1052, #1060]
342
- - directfile: disable all audio tracks before enabling one to work-around Safari issue on MacOS Monterey [#1067]
343
- - avoid performing a small seek when changing the audio track [#1080]
344
- - api: allow switching to RELOADING state synchronously after LOADED [#1083]
345
- - Safari Mobile: Improve decryption support on Safari mobile by relying on the vendored `WebKitMediaKeys` API [#1072]
346
- - DASH: Fix issue which prevented the integrity check of most MP4 DASH segments when `transportOptions.checkMediaSegmentIntegrity` was set to `true`
347
- - avoid unnecessary warning logs when loading some initialization segments [#1049]
348
- - TypeScript: Add forgotten TypeScript types in the exposed segment and manifest loader APIs [#1057]
349
- - DRM: Avoid decryption issues when a license is persisted in a `singleLicensePer` `"init-data"` mode but loaded in a `"content"` mode [#1031, #1042]
350
- - DRM: Totally avoid the theoretical possibility of leaking MediaKeySessions when a `generateRequest` or `load` call takes multiple seconds [#1093]
458
+ - subtitles: Fix rare issue where subtitles could be skipped due to a rounding error
459
+ [#1064]
460
+ - DASH: fix issue where the wrong segments would be requested on $Number$-based MPD with a
461
+ SegmentTimeline older than the `timeShiftBufferDepth` [#1052, #1060]
462
+ - directfile: disable all audio tracks before enabling one to work-around Safari issue on
463
+ MacOS Monterey [#1067]
464
+ - avoid performing a small seek when changing the audio track [#1080]
465
+ - api: allow switching to RELOADING state synchronously after LOADED [#1083]
466
+ - Safari Mobile: Improve decryption support on Safari mobile by relying on the vendored
467
+ `WebKitMediaKeys` API [#1072]
468
+ - DASH: Fix issue which prevented the integrity check of most MP4 DASH segments when
469
+ `transportOptions.checkMediaSegmentIntegrity` was set to `true`
470
+ - avoid unnecessary warning logs when loading some initialization segments [#1049]
471
+ - TypeScript: Add forgotten TypeScript types in the exposed segment and manifest loader
472
+ APIs [#1057]
473
+ - DRM: Avoid decryption issues when a license is persisted in a `singleLicensePer`
474
+ `"init-data"` mode but loaded in a `"content"` mode [#1031, #1042]
475
+ - DRM: Totally avoid the theoretical possibility of leaking MediaKeySessions when a
476
+ `generateRequest` or `load` call takes multiple seconds [#1093]
351
477
 
352
478
  ### Other improvements
353
479
 
354
- - DASH: always consider that the non-last Period is finished when it contains SegmentTimeline elements [#1047]
355
- - add better buffer cleaning logic on a browser's `QuotaExceededError` to better handle memory limitations [#1065]
356
- - DASH: Prioritize selectionPriority attribute over a "main" Role when ordering AdaptationSets [#1082]
357
- - directfile/Safari: use the `getStartDate` method in `getWallClockTime`, `seekTo` and the `positionUpdate` event when available to obtain true offseted "wall-clock" times when playing HLS contents on Safari [#1055]
358
- - DRM: Improve DRM Session caches performance when `singleLicensePer` is set to `"content"`
359
- - DRM: Stop retrying closing MediaKeySessions multiple times when it fails, instead doing it only once when it should work [#1093]
360
- - TypeScript: Add IBitrateEstimate, IPositionUpdate and IPlayerState types to the exported types [#1084]
361
- - Remove dependency on pinkie's promise ponyfill [#1058, #1090]
362
- - tests: add performance tests, to better catch and avoid performance regressions [#1053, #1062]
363
- - DRM: Refactor DRM logic for better maintainability. DRM-linked logs are now prefixed by `DRM:` instead of `EME:` like previously [#1042]
364
-
480
+ - DASH: always consider that the non-last Period is finished when it contains
481
+ SegmentTimeline elements [#1047]
482
+ - add better buffer cleaning logic on a browser's `QuotaExceededError` to better handle
483
+ memory limitations [#1065]
484
+ - DASH: Prioritize selectionPriority attribute over a "main" Role when ordering
485
+ AdaptationSets [#1082]
486
+ - directfile/Safari: use the `getStartDate` method in `getWallClockTime`, `seekTo` and the
487
+ `positionUpdate` event when available to obtain true offseted "wall-clock" times when
488
+ playing HLS contents on Safari [#1055]
489
+ - DRM: Improve DRM Session caches performance when `singleLicensePer` is set to
490
+ `"content"`
491
+ - DRM: Stop retrying closing MediaKeySessions multiple times when it fails, instead doing
492
+ it only once when it should work [#1093]
493
+ - TypeScript: Add IBitrateEstimate, IPositionUpdate and IPlayerState types to the exported
494
+ types [#1084]
495
+ - Remove dependency on pinkie's promise ponyfill [#1058, #1090]
496
+ - tests: add performance tests, to better catch and avoid performance regressions [#1053,
497
+ #1062]
498
+ - DRM: Refactor DRM logic for better maintainability. DRM-linked logs are now prefixed by
499
+ `DRM:` instead of `EME:` like previously [#1042]
365
500
 
366
501
  ## v3.26.2 (2022-01-11)
367
502
 
368
503
  ### Bug fixes
369
504
 
370
- - API: re-switch to SEEKING state instead of BUFFERING when seeking to already-buffered data [#1015]
371
- - DASH: provide default startNumber attribute for number-based SegmentTemplate indexes with a SegmentTimeline [#1009]
372
- - TTML (subtitles): interpret percentages as relative to the computed cell size and not as the percentage of the inherited font size in the page [#1013]
373
- - subtitles: Work-around recent Chrome issue where the content of a native `<track>` element would still be visible despite being removed from the DOM (issue only reproducible in the `"native"` `textTrackMode`) [#1039]
374
- - API: Fix rare issue happening when switching rapidly between Representations, which led to multiple APIs such as `getAvailableVideoBitrate` or `getAvailableAudioTracks` returning either incorrect or empty results [#1018]
375
- - Improve prevention of rare segment-loading loops by fixing an issue with the clean-up of the short-term buffer history we maintain [#1045]
505
+ - API: re-switch to SEEKING state instead of BUFFERING when seeking to already-buffered
506
+ data [#1015]
507
+ - DASH: provide default startNumber attribute for number-based SegmentTemplate indexes
508
+ with a SegmentTimeline [#1009]
509
+ - TTML (subtitles): interpret percentages as relative to the computed cell size and not as
510
+ the percentage of the inherited font size in the page [#1013]
511
+ - subtitles: Work-around recent Chrome issue where the content of a native `<track>`
512
+ element would still be visible despite being removed from the DOM (issue only
513
+ reproducible in the `"native"` `textTrackMode`) [#1039]
514
+ - API: Fix rare issue happening when switching rapidly between Representations, which led
515
+ to multiple APIs such as `getAvailableVideoBitrate` or `getAvailableAudioTracks`
516
+ returning either incorrect or empty results [#1018]
517
+ - Improve prevention of rare segment-loading loops by fixing an issue with the clean-up of
518
+ the short-term buffer history we maintain [#1045]
376
519
 
377
520
  ### Other improvements
378
521
 
379
- - DASH-LL: Improve adaptive bitrate logic on low-latency contents by implementing a specific algorithm for those [#1025, #1036]
380
- - DASH-LL: Improve handling of $Time$-based DASH-LL contents [#1020]
381
- - DASH: Support UTCTiming element with the `urn:mpeg:dash:utc:http-xsdate:2014` scheme [#1021]
382
- - DOC: Important refactoring of the RxPlayer API documentation to improve readability, discoverability and to add search capability to it [#1016]
383
- - DASH: handle ContentProtection elements that have been defined at the Representation-level (and not at the AdaptationSet-level, as defined by the DASH-IF IOP) [#1027]
384
- - DASH: Be resilient when the resource behind an UTCTiming element leads to an error (usually due to an HTTP-related issue) - instead of failing with an error like now [#1026]
385
- - Better estimate the duration of ISOBMFF segments with multiple moof boxes [#1037]
386
- - EME: Add hex-encoded key id to the `KEY_STATUS_CHANGE_ERROR` error message so we can know which key we're talking about when debugging [#1033]
387
- - dev/scripts: for the "modular" (a.k.a. minimal) RxPlayer build now rely on TypeScript's const enums, instead of uglily using sed, to replace compile-time constants. [#1014]
388
- - dev/scripts: remove reliance on environment variables when running the RxPlayer build scripts [#1004]
389
- - dev/scripts: add esbuild devdependency and add "s" script to allow faster checks for RxPlayer developpers [#1003]
390
- - CI: Rely on Github actions instead of Travis for most CI-related matters [#1046]
391
- - code/refacto: replace central `Clock` concept (Observable bringing media-related updates to the RxPlayer at a regular pace) by a more flexible `PlaybackObserver` class [#1002]
392
-
522
+ - DASH-LL: Improve adaptive bitrate logic on low-latency contents by implementing a
523
+ specific algorithm for those [#1025, #1036]
524
+ - DASH-LL: Improve handling of $Time$-based DASH-LL contents [#1020]
525
+ - DASH: Support UTCTiming element with the `urn:mpeg:dash:utc:http-xsdate:2014` scheme
526
+ [#1021]
527
+ - DOC: Important refactoring of the RxPlayer API documentation to improve readability,
528
+ discoverability and to add search capability to it [#1016]
529
+ - DASH: handle ContentProtection elements that have been defined at the
530
+ Representation-level (and not at the AdaptationSet-level, as defined by the DASH-IF IOP)
531
+ [#1027]
532
+ - DASH: Be resilient when the resource behind an UTCTiming element leads to an error
533
+ (usually due to an HTTP-related issue) - instead of failing with an error like now
534
+ [#1026]
535
+ - Better estimate the duration of ISOBMFF segments with multiple moof boxes [#1037]
536
+ - EME: Add hex-encoded key id to the `KEY_STATUS_CHANGE_ERROR` error message so we can
537
+ know which key we're talking about when debugging [#1033]
538
+ - dev/scripts: for the "modular" (a.k.a. minimal) RxPlayer build now rely on TypeScript's
539
+ const enums, instead of uglily using sed, to replace compile-time constants. [#1014]
540
+ - dev/scripts: remove reliance on environment variables when running the RxPlayer build
541
+ scripts [#1004]
542
+ - dev/scripts: add esbuild devdependency and add "s" script to allow faster checks for
543
+ RxPlayer developpers [#1003]
544
+ - CI: Rely on Github actions instead of Travis for most CI-related matters [#1046]
545
+ - code/refacto: replace central `Clock` concept (Observable bringing media-related updates
546
+ to the RxPlayer at a regular pace) by a more flexible `PlaybackObserver` class [#1002]
393
547
 
394
548
  ## v3.26.1 (2021-09-14)
395
549
 
396
550
  ### Bug fixes
397
551
 
398
- - ttml: Do not throw if a TTML subtitles file doesn't contain any `<body>` tag, just ignore it [#993]
399
- - Auto-detect when playback is unexplicably frozen and try to unlock it through a small seek [#982]
400
- - Properly send `available{Audio,Video}BitratesChange` event for multi-Period contents [#983]
401
- - DASH/MetaPlaylist/Local: fix rare infinite rebuffering issue which could happen when changing or disabling the track of a future Period [#1000]
402
- - compat: Prevent rare segment-loading loops by automatically detecting when segments are garbage collected by the browser immediately after being pushed [#987, #990]
403
- - compat/DRM: In some Safari versions, communicating a license as a JS `ArrayBuffer` could throw, this is now fixed [#974]
404
- - DASH_WASM: Don't stop with a fatal error if an expected ISO8601 duration value is empty in the MPD
405
- - DASH_WASM: Parse `<Event>` elements which contain an XML namespace defined outside that element [#981]
406
- - DASH_WASM: Drastically reduce wasm compilation time and file size [#980]
552
+ - ttml: Do not throw if a TTML subtitles file doesn't contain any `<body>` tag, just
553
+ ignore it [#993]
554
+ - Auto-detect when playback is unexplicably frozen and try to unlock it through a small
555
+ seek [#982]
556
+ - Properly send `available{Audio,Video}BitratesChange` event for multi-Period contents
557
+ [#983]
558
+ - DASH/MetaPlaylist/Local: fix rare infinite rebuffering issue which could happen when
559
+ changing or disabling the track of a future Period [#1000]
560
+ - compat: Prevent rare segment-loading loops by automatically detecting when segments are
561
+ garbage collected by the browser immediately after being pushed [#987, #990]
562
+ - compat/DRM: In some Safari versions, communicating a license as a JS `ArrayBuffer` could
563
+ throw, this is now fixed [#974]
564
+ - DASH_WASM: Don't stop with a fatal error if an expected ISO8601 duration value is empty
565
+ in the MPD
566
+ - DASH_WASM: Parse `<Event>` elements which contain an XML namespace defined outside that
567
+ element [#981]
568
+ - DASH_WASM: Drastically reduce wasm compilation time and file size [#980]
407
569
 
408
570
  ### Other improvements
409
571
 
410
- - Request initialization segment and the first media segments at the same time when possible, potentially reducing loading times [#973]
411
- - Remove cached segment request detection in the adaptive logic, as it is sensible to false positives, leading to a poor bitrate in some short contents [#977]
412
- - Export more needed types through the `rx-player/types` path [#972, #976]
413
- - demo: Expose some player options in the demo page [#999]
414
- - dev: Rewrite build logic from bash to node.js to improve its maintainability
415
- - dev: Replace internal `info` script by more helpful and interactive `list` script [#991]
416
- - dev/code: Forbid the usage of TypeScript's type `any` in most of the RxPlayer's code - performing runtime type-checking in some cases (in DEV mode only) [#994]
417
- - dev/code: Remove RxJS from the transports code [#962]
418
-
572
+ - Request initialization segment and the first media segments at the same time when
573
+ possible, potentially reducing loading times [#973]
574
+ - Remove cached segment request detection in the adaptive logic, as it is sensible to
575
+ false positives, leading to a poor bitrate in some short contents [#977]
576
+ - Export more needed types through the `rx-player/types` path [#972, #976]
577
+ - demo: Expose some player options in the demo page [#999]
578
+ - dev: Rewrite build logic from bash to node.js to improve its maintainability
579
+ - dev: Replace internal `info` script by more helpful and interactive `list` script [#991]
580
+ - dev/code: Forbid the usage of TypeScript's type `any` in most of the RxPlayer's code -
581
+ performing runtime type-checking in some cases (in DEV mode only) [#994]
582
+ - dev/code: Remove RxJS from the transports code [#962]
419
583
 
420
584
  ## v3.26.0 (2021-06-10)
421
585
 
422
586
  ### Features
423
587
 
424
- - Add HDR information through the `hdrInfo` property on video Representation/tracks as returned by APIs such as `getVideoTrack`, `getAvailableVideoTracks`, the `videoTrackChange` event, `getManifest`, `getCurrentAdaptations` and `getCurrentRepresentations` [#946]
425
- - Add the `DASH_WASM` experimental feature, allowing faster MPD parsing using WebAssembly [#937]
426
- - Add the experimental `VideoThumbnailLoader` tool, which uses "trickmodes" DASH AdaptationSet to generate thumbnails [#647]
427
- - Add `preferTrickModeTracks` option to `setPlaybackRate`, to switch on or off trickmode tracks when available on the Manifest [#940]
428
- - Add `areTrickModeTracksEnabled` method to indicate whether the RxPlayer is using trickmode tracks in priority [#940]
429
- - Add `trickModeTracks` and `isTrickModeTrack` properties to video tracks as returned by the `getVideoTrack` and `getAvailableVideoTracks` method and by the `videoTrackChange` event [#940]
430
- - Add `maxSessionCacheSize` `keySystems` option, to configure the maximum number of decryption sessions that can be kept alive at the same time in a cache [#938]
431
- - The `manifestLoader` callback defined in `transportOptions` can now ask for a request to be retried [#964]
432
- - `initialManifest` now accepts the Manifest as an `ArrayBuffer` [#937]
433
- - The `manifestLoader` callback defined in `transportOptions` can now send the Manifest as an `ArrayBuffer` [#937]
588
+ - Add HDR information through the `hdrInfo` property on video Representation/tracks as
589
+ returned by APIs such as `getVideoTrack`, `getAvailableVideoTracks`, the
590
+ `videoTrackChange` event, `getManifest`, `getCurrentAdaptations` and
591
+ `getCurrentRepresentations` [#946]
592
+ - Add the `DASH_WASM` experimental feature, allowing faster MPD parsing using WebAssembly
593
+ [#937]
594
+ - Add the experimental `VideoThumbnailLoader` tool, which uses "trickmodes" DASH
595
+ AdaptationSet to generate thumbnails [#647]
596
+ - Add `preferTrickModeTracks` option to `setPlaybackRate`, to switch on or off trickmode
597
+ tracks when available on the Manifest [#940]
598
+ - Add `areTrickModeTracksEnabled` method to indicate whether the RxPlayer is using
599
+ trickmode tracks in priority [#940]
600
+ - Add `trickModeTracks` and `isTrickModeTrack` properties to video tracks as returned by
601
+ the `getVideoTrack` and `getAvailableVideoTracks` method and by the `videoTrackChange`
602
+ event [#940]
603
+ - Add `maxSessionCacheSize` `keySystems` option, to configure the maximum number of
604
+ decryption sessions that can be kept alive at the same time in a cache [#938]
605
+ - The `manifestLoader` callback defined in `transportOptions` can now ask for a request to
606
+ be retried [#964]
607
+ - `initialManifest` now accepts the Manifest as an `ArrayBuffer` [#937]
608
+ - The `manifestLoader` callback defined in `transportOptions` can now send the Manifest as
609
+ an `ArrayBuffer` [#937]
434
610
 
435
611
  ### Bug fixes
436
612
 
437
- - DASH: don't ignore new EventStream elements that weren't in the previous MPD update for a given Period [#956]
438
- - DASH: fix fatal error linked to the `duration` of the `MediaSource` happening when playing a multi-Period live DASH content whose previous (before updating) last Period's segments had been fully generated and fully pushed. [#952]
439
- - DASH: Avoid loading plain-text subtitles in a loop when playing before the first cue starts or after the last cue ends [#945, #948]
440
- - DASH: Avoid loading plain-text subtitles in a loop when the `transportOptions.checkMediaSegmentIntegrity` is set to `true` [#947]
441
- - DASH: avoid ending a dynamic stream if new Periods may be added later to the MPD [#959]
442
- - DASH: avoid unnecessarily refresh a MPD based on SegmentList elements when they don't perfectly align with the pushed data [#963]
613
+ - DASH: don't ignore new EventStream elements that weren't in the previous MPD update for
614
+ a given Period [#956]
615
+ - DASH: fix fatal error linked to the `duration` of the `MediaSource` happening when
616
+ playing a multi-Period live DASH content whose previous (before updating) last Period's
617
+ segments had been fully generated and fully pushed. [#952]
618
+ - DASH: Avoid loading plain-text subtitles in a loop when playing before the first cue
619
+ starts or after the last cue ends [#945, #948]
620
+ - DASH: Avoid loading plain-text subtitles in a loop when the
621
+ `transportOptions.checkMediaSegmentIntegrity` is set to `true` [#947]
622
+ - DASH: avoid ending a dynamic stream if new Periods may be added later to the MPD [#959]
623
+ - DASH: avoid unnecessarily refresh a MPD based on SegmentList elements when they don't
624
+ perfectly align with the pushed data [#963]
443
625
 
444
626
  ### Other improvements
445
627
 
446
- - Improve `audioTrackSwitchingMode` `"direct"` mode by avoiding unnecessary reloading cases [#872, #887, #943]
447
- - When seeking after the end of an ended content, actually seek just a little before to avoid subtle issues [#941]
448
- - DASH: limit the postponment of a Manifest refresh due to poor MPD-parsing performance to 6-times the "regular" delay (not impacted by `tansportOptions.minimumManifestUpdateInterval`) [#958]
449
- - DASH: Avoid loading two times a segment instead of once when that segment is not anounced in the MPD through a SegmentBase, SegmentList nor SegmentTemplate element but just through the Representation's BaseURL. [#949]
450
- - Update used RxJS version to 7.0.0, which might bring with it a smaller size and better performances [#954]
451
- - demo: remove Chart.js dependency (we found that its new API documentation and errors were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955, #957]
452
-
628
+ - Improve `audioTrackSwitchingMode` `"direct"` mode by avoiding unnecessary reloading
629
+ cases [#872, #887, #943]
630
+ - When seeking after the end of an ended content, actually seek just a little before to
631
+ avoid subtle issues [#941]
632
+ - DASH: limit the postponment of a Manifest refresh due to poor MPD-parsing performance to
633
+ 6-times the "regular" delay (not impacted by
634
+ `tansportOptions.minimumManifestUpdateInterval`) [#958]
635
+ - DASH: Avoid loading two times a segment instead of once when that segment is not
636
+ anounced in the MPD through a SegmentBase, SegmentList nor SegmentTemplate element but
637
+ just through the Representation's BaseURL. [#949]
638
+ - Update used RxJS version to 7.0.0, which might bring with it a smaller size and better
639
+ performances [#954]
640
+ - demo: remove Chart.js dependency (we found that its new API documentation and errors
641
+ were too impenetrable) and replace the "Buffer Size" chart by a homemade one. [#955,
642
+ #957]
453
643
 
454
644
  ## v3.24.0 (2021-04-01)
455
645
 
456
646
  ### Features
457
647
 
458
- - Add `inbandEvent` event for when an event is encountered in a media segment [#892]
459
- - DRM: Add `singleLicensePer` `keySystems` option to be able to signal in advance that the current content has a single license, even if it has multiple encryption keys [#863, #904]
460
- - DRM: Add `keySystems[].licenseStorage.disableRetroCompatibility` boolean to unlock optimizations when compatibility with EME sessions persisted in older RxPlayer versions is not important [#919]
648
+ - Add `inbandEvent` event for when an event is encountered in a media segment [#892]
649
+ - DRM: Add `singleLicensePer` `keySystems` option to be able to signal in advance that the
650
+ current content has a single license, even if it has multiple encryption keys [#863,
651
+ #904]
652
+ - DRM: Add `keySystems[].licenseStorage.disableRetroCompatibility` boolean to unlock
653
+ optimizations when compatibility with EME sessions persisted in older RxPlayer versions
654
+ is not important [#919]
461
655
 
462
656
  ### Bug fixes
463
657
 
464
- - DASH: Fix rounding error that could cause infinite buffering issues when going from a DASH Period to the next [#897, #899]
465
- - DRM: Always pass on server certificate before any challenge is generated. Contents with multiple licenses previously could lead to the latter being done before the former. [#895]
466
- - DRM: Fix possible leaks of MediaKeySessions if closed at the wrong time [#920]
467
- - Fix issue making sudden and acute fall in bandwidth not being considered soon enough [#906]
468
- - On some devices when `maxBufferAhead` is set, avoid removing the initially loaded data if done before the initial seek could be performed [#907]
469
- - Avoid cases of infinite rebuffering on Tizen 4 by avoiding pushing segments "on top of others" too close to the current position [#925]
470
- - Avoid seeking issues on Tizen by not seeking over discontinuities that will be already handled by the browser [#922]
471
- - Fix initial seek on Tizen (Samsung TVs) on live contents by setting a much lower duration (to work-around a Tizen overflow) [#914]
472
- - DASH: Consider multiple defined `<Accessibility>` tags for a single AdaptationSet [#903]
473
- - Fix error that could be thrown on Safari when calling the `getStatusForHDCP` method from the experimental `MediaCapabilitiesProber` tool [#927]
658
+ - DASH: Fix rounding error that could cause infinite buffering issues when going from a
659
+ DASH Period to the next [#897, #899]
660
+ - DRM: Always pass on server certificate before any challenge is generated. Contents with
661
+ multiple licenses previously could lead to the latter being done before the former.
662
+ [#895]
663
+ - DRM: Fix possible leaks of MediaKeySessions if closed at the wrong time [#920]
664
+ - Fix issue making sudden and acute fall in bandwidth not being considered soon enough
665
+ [#906]
666
+ - On some devices when `maxBufferAhead` is set, avoid removing the initially loaded data
667
+ if done before the initial seek could be performed [#907]
668
+ - Avoid cases of infinite rebuffering on Tizen 4 by avoiding pushing segments "on top of
669
+ others" too close to the current position [#925]
670
+ - Avoid seeking issues on Tizen by not seeking over discontinuities that will be already
671
+ handled by the browser [#922]
672
+ - Fix initial seek on Tizen (Samsung TVs) on live contents by setting a much lower
673
+ duration (to work-around a Tizen overflow) [#914]
674
+ - DASH: Consider multiple defined `<Accessibility>` tags for a single AdaptationSet [#903]
675
+ - Fix error that could be thrown on Safari when calling the `getStatusForHDCP` method from
676
+ the experimental `MediaCapabilitiesProber` tool [#927]
474
677
 
475
678
  ### Other improvements
476
679
 
477
- - Avoid to push on top of the current position if there's already a segment there as it can provoke minor decoding issues on some devices [#925]
478
- - Update video element's duration if the content duration changes [#917]
479
- - DASH: Improve loading time with encrypted contents by only using the encrypted initialization data found in the Manifest when found in it [#911, #919]
480
- - Record redirections made on a `manifestUpdateUrl` to request directly the right URL on next update. [#929]
481
- - Improve loading time when a `serverCertificate` is given by calling the `setServerCertificate` API earlier [#895]
482
- - Improve loading time when switching contents by fetching the Manifest at the same time the previous content is cleaned-up [#894]
483
- - Improve loading time on some CPU-constrained devices by not running unnecessary playback checks on the "progress" HTMLMediaElement event anymore [#893]
484
- - DASH: Consider DASH audio AdaptationSet with a "urn:mpeg:dash:role:2011" schemeIdUri and a "description" role as `audioDescription` tracks [#903]
485
- - Warn through the logger when the autoplay attribute is enabled on the media element but not on RxPlayer [#924]
486
- - Avoid switching to a SEEKING state if the seek operation was performed inside the RxPlayer's code [#872, #887]
487
- - DRM: Wait up to 100 milliseconds after a persistent MediaKeySession has been loaded to wait for possibly late `keyStatuses` updates [#928]
488
- - DRM: Only store persistent MediaKeySession once at least one key is known [#926]
489
- - DRM: Reconsider Representations that have been fallbacked from if they become decipherable [#905]
490
- - DRM: Lower the maximum size of the MediaKeySession cache from 50 to 15 to improve compatibility, even more now that license with multiple keys are properly handled
491
- - Doc: Move architecture documentation closer to the code it documents [#764, #900]
492
- - Doc: add "Quick links" to the top of the API documentation [#909]
493
-
680
+ - Avoid to push on top of the current position if there's already a segment there as it
681
+ can provoke minor decoding issues on some devices [#925]
682
+ - Update video element's duration if the content duration changes [#917]
683
+ - DASH: Improve loading time with encrypted contents by only using the encrypted
684
+ initialization data found in the Manifest when found in it [#911, #919]
685
+ - Record redirections made on a `manifestUpdateUrl` to request directly the right URL on
686
+ next update. [#929]
687
+ - Improve loading time when a `serverCertificate` is given by calling the
688
+ `setServerCertificate` API earlier [#895]
689
+ - Improve loading time when switching contents by fetching the Manifest at the same time
690
+ the previous content is cleaned-up [#894]
691
+ - Improve loading time on some CPU-constrained devices by not running unnecessary playback
692
+ checks on the "progress" HTMLMediaElement event anymore [#893]
693
+ - DASH: Consider DASH audio AdaptationSet with a "urn:mpeg:dash:role:2011" schemeIdUri and
694
+ a "description" role as `audioDescription` tracks [#903]
695
+ - Warn through the logger when the autoplay attribute is enabled on the media element but
696
+ not on RxPlayer [#924]
697
+ - Avoid switching to a SEEKING state if the seek operation was performed inside the
698
+ RxPlayer's code [#872, #887]
699
+ - DRM: Wait up to 100 milliseconds after a persistent MediaKeySession has been loaded to
700
+ wait for possibly late `keyStatuses` updates [#928]
701
+ - DRM: Only store persistent MediaKeySession once at least one key is known [#926]
702
+ - DRM: Reconsider Representations that have been fallbacked from if they become
703
+ decipherable [#905]
704
+ - DRM: Lower the maximum size of the MediaKeySession cache from 50 to 15 to improve
705
+ compatibility, even more now that license with multiple keys are properly handled
706
+ - Doc: Move architecture documentation closer to the code it documents [#764, #900]
707
+ - Doc: add "Quick links" to the top of the API documentation [#909]
494
708
 
495
709
  ## v3.23.1 (2021-02-01)
496
710
 
497
711
  ### Bug fixes
498
712
 
499
- - Fix support of encrypted contents on Safari (v3.23.0 regression)
500
-
713
+ - Fix support of encrypted contents on Safari (v3.23.0 regression)
501
714
 
502
715
  ## v3.23.0 (2021-02-01)
503
716
 
504
717
  ### Features
505
718
 
506
- - Add the `reload` method to be able to re-load the last loaded content as fast as possible (e.g. after fatal errors) [#859, #867]
507
- - Add `onCodecSwitch` loadVideo option, to select a strategy when a new incompatible codec is encountered [#856]
508
- - Emit `DISCONTINUITY_ENCOUNTERED` warnings when a discontinuity has been seeked over [#862]
509
- - Add minAudioBitrate and minVideoBitrate constructor options and the {set,get}Minimum{Audio,Video}Bitrate methods to define the minimum quality reachable through adaptive streaming [#876]
719
+ - Add the `reload` method to be able to re-load the last loaded content as fast as
720
+ possible (e.g. after fatal errors) [#859, #867]
721
+ - Add `onCodecSwitch` loadVideo option, to select a strategy when a new incompatible codec
722
+ is encountered [#856]
723
+ - Emit `DISCONTINUITY_ENCOUNTERED` warnings when a discontinuity has been seeked over
724
+ [#862]
725
+ - Add minAudioBitrate and minVideoBitrate constructor options and the
726
+ {set,get}Minimum{Audio,Video}Bitrate methods to define the minimum quality reachable
727
+ through adaptive streaming [#876]
510
728
 
511
729
  ### Bug fixes
512
730
 
513
- - Fix impossibility to fallback to another Representation (with the `keySystems[].fallbackOn` `loadVideo` options) when a decryption key has been found to be non-usable [#889]
514
- - Fix DRM-related events being sent twice in a row instead of just once [#850]
515
- - Stop and throw `MANIFEST_PARSE_ERROR` error again when either audio or video has only unsupported codecs (instead of just playing the other type) [#864]
516
- - Avoid re-downloading a segment that ends a lot before its expected end [#846]
517
- - In "native" `textTrackMode`, avoid requesting text segments in a loop [#878]
518
- - Disable effects of `throttleVideoBitrateWhenHidden`, `limitVideoWidth` and `throttleVideoBitrate` player options on Firefox >= 67 due to how Picture in Picture mode is currently handled in them [#874]
519
- - Work-around race condition in old Chromium versions where loading a persistent MediaKeySession led to no key statuses right away [#847]
731
+ - Fix impossibility to fallback to another Representation (with the
732
+ `keySystems[].fallbackOn` `loadVideo` options) when a decryption key has been found to
733
+ be non-usable [#889]
734
+ - Fix DRM-related events being sent twice in a row instead of just once [#850]
735
+ - Stop and throw `MANIFEST_PARSE_ERROR` error again when either audio or video has only
736
+ unsupported codecs (instead of just playing the other type) [#864]
737
+ - Avoid re-downloading a segment that ends a lot before its expected end [#846]
738
+ - In "native" `textTrackMode`, avoid requesting text segments in a loop [#878]
739
+ - Disable effects of `throttleVideoBitrateWhenHidden`, `limitVideoWidth` and
740
+ `throttleVideoBitrate` player options on Firefox >= 67 due to how Picture in Picture
741
+ mode is currently handled in them [#874]
742
+ - Work-around race condition in old Chromium versions where loading a persistent
743
+ MediaKeySession led to no key statuses right away [#847]
520
744
 
521
745
  ### Other improvements
522
746
 
523
- - Skip over most audio or video discontinuities in the stream, even those not announced in the Manifest [#862]
524
- - When track or bitrate switching lead to a reload, seek back a consistent number of milliseconds to give back context [#848]
525
- - Don't call `setServerCertificate` API when `keySystems[].serverCertificate` option is set to `null` [#849]
526
- - On the rare platforms where an undefined initialization data type can be received on encrypted events, retry `generateRequest` with a default "cenc" value if the first one fails due to it being empty [#870]
527
- - Re-add debug logs logging the principal media properties at each clock tick [#844]
528
- - Use TextEncoder and TextDecoder interfaces when available to speed-up string conversions [#843, #875]
529
- - Throw a better error when no EME API is found
530
- - Reduce default bundles size by switching to webpack 5 to generate them
531
- - tests: Add conformance tests on the initial seek to help debugging related issues on new platforms [#873]
532
- - lint/code: Use eslint code linter even for the TypeScript code [#842]
533
-
747
+ - Skip over most audio or video discontinuities in the stream, even those not announced in
748
+ the Manifest [#862]
749
+ - When track or bitrate switching lead to a reload, seek back a consistent number of
750
+ milliseconds to give back context [#848]
751
+ - Don't call `setServerCertificate` API when `keySystems[].serverCertificate` option is
752
+ set to `null` [#849]
753
+ - On the rare platforms where an undefined initialization data type can be received on
754
+ encrypted events, retry `generateRequest` with a default "cenc" value if the first one
755
+ fails due to it being empty [#870]
756
+ - Re-add debug logs logging the principal media properties at each clock tick [#844]
757
+ - Use TextEncoder and TextDecoder interfaces when available to speed-up string conversions
758
+ [#843, #875]
759
+ - Throw a better error when no EME API is found
760
+ - Reduce default bundles size by switching to webpack 5 to generate them
761
+ - tests: Add conformance tests on the initial seek to help debugging related issues on new
762
+ platforms [#873]
763
+ - lint/code: Use eslint code linter even for the TypeScript code [#842]
534
764
 
535
765
  ## v3.22.0 (2020-11-17)
536
766
 
537
767
  ### Features
538
768
 
539
- - Add `audioTrackSwitchingMode` `loadVideo` option to allow different strategies when switching between audio tracks [#801, #806]
540
- - Add `enableFastSwitching` `loadVideo` option to enable or disable optimizations doing segment replacement in the browser's buffer [#779, #780]
541
- - Add `initialManifest` `loadVideo` option to provide the Manifest to the RxPlayer when it has already been loaded [#807]
542
- - tools: Add `StringUtils` utilitary functions to tools to convert bytes to strings and the other way around [#809]
543
- - tools: The `TextTrackRenderer` tool is not experimental anymore: it now has a stable API [#810]
544
- - experimental/local-manifest: The RxPlayer now (only) plays the new `"0.2"` format version of the "LocalManifest" (in the experimental `"local"` transport) [#810]
769
+ - Add `audioTrackSwitchingMode` `loadVideo` option to allow different strategies when
770
+ switching between audio tracks [#801, #806]
771
+ - Add `enableFastSwitching` `loadVideo` option to enable or disable optimizations doing
772
+ segment replacement in the browser's buffer [#779, #780]
773
+ - Add `initialManifest` `loadVideo` option to provide the Manifest to the RxPlayer when it
774
+ has already been loaded [#807]
775
+ - tools: Add `StringUtils` utilitary functions to tools to convert bytes to strings and
776
+ the other way around [#809]
777
+ - tools: The `TextTrackRenderer` tool is not experimental anymore: it now has a stable API
778
+ [#810]
779
+ - experimental/local-manifest: The RxPlayer now (only) plays the new `"0.2"` format
780
+ version of the "LocalManifest" (in the experimental `"local"` transport) [#810]
545
781
 
546
782
  ### Bug fixes
547
783
 
548
- - directfile: Fix impossibility to play an encrypted content in directfile mode (regression brought in v3.21.1) [#827, #830]
549
- - subtitles: Display multiple cues with overlapping times [#829]
550
- - smooth: Fix minimum position in a Smooth live content when fewer segments than the dvr window length are available [#826]
551
- - dash/metaplaylist: Fix possible playback issues on multi-Period contents, where segments from multiple Periods overlap [#837]
552
- - Fix very rare race condition which triggered a "setting priority of null" error after synchronous segment requests were done [#817]
553
- - local-manifest: LocalManifest that transition from not finished to finished while playing now end properly [#818]
554
- - local-manifest: Fix and clarify the duration and maximum position reported for a playing LocalManifest [#818]
555
- - compatibility/drm: On some webkit-based browsers, do not require the use of a server certificate for DRM if the key system used is not FairPlay [#833]
556
- - drm: Properly update to a different server certificate on the MediaKeys or remove it if needed [#835]
557
- - drm: throw MEDIA_IS_ENCRYPTED_ERROR again when playing an encrypted event without either the `EME` feature, EME APIs or a `keySystems` option [#841]
784
+ - directfile: Fix impossibility to play an encrypted content in directfile mode
785
+ (regression brought in v3.21.1) [#827, #830]
786
+ - subtitles: Display multiple cues with overlapping times [#829]
787
+ - smooth: Fix minimum position in a Smooth live content when fewer segments than the dvr
788
+ window length are available [#826]
789
+ - dash/metaplaylist: Fix possible playback issues on multi-Period contents, where segments
790
+ from multiple Periods overlap [#837]
791
+ - Fix very rare race condition which triggered a "setting priority of null" error after
792
+ synchronous segment requests were done [#817]
793
+ - local-manifest: LocalManifest that transition from not finished to finished while
794
+ playing now end properly [#818]
795
+ - local-manifest: Fix and clarify the duration and maximum position reported for a playing
796
+ LocalManifest [#818]
797
+ - compatibility/drm: On some webkit-based browsers, do not require the use of a server
798
+ certificate for DRM if the key system used is not FairPlay [#833]
799
+ - drm: Properly update to a different server certificate on the MediaKeys or remove it if
800
+ needed [#835]
801
+ - drm: throw MEDIA_IS_ENCRYPTED_ERROR again when playing an encrypted event without either
802
+ the `EME` feature, EME APIs or a `keySystems` option [#841]
558
803
 
559
804
  ### Other improvements
560
805
 
561
- - subtitles/ttml: Apply default position to TTML subtitles in `"html"` `textTrackMode` when no style is found [#815]
562
- - subtitles/ttml: Set default text color to white to TTML subtitles in `"html"` textTrackMode [#832]
563
- - drm: Avoid re-setting a server certificate we know has already been pushed to improve loading performance [#824, #835]
564
- - dash: Always prefer a "main" AdaptationSet when hesitating between multiple ones [#828]
565
- - dash: Improve minimum position precision for dynamic DASH contents when less segments are available than what would be guessed from the timeShiftBufferDepth [#826]
566
- - drm/logs: Better log why a MediaKeySession is not considered as "usable" [#822]
567
- - drm/logs: Be more verbose with DRM-related logs, even at lower logger levels [#821]
568
- - tests/conformance: Add "conformance tests", to quickly test the capabilities of new devices and targets [#814]
569
- - code: avoid circular dependency in `src/features` in original typescript source files [#805]
570
- - demo: Fix default position for the video track select element in the demo to always be at the currently selected video track [#813]
571
- - demo/code: Better integrate the RxPlayer to the demo: through a simple import, instead of adding a script tag for the bundled version [#811]
572
- - dev: Remove all enforced git-hooks (on pre-commit and pre-push) [#808]
573
-
806
+ - subtitles/ttml: Apply default position to TTML subtitles in `"html"` `textTrackMode`
807
+ when no style is found [#815]
808
+ - subtitles/ttml: Set default text color to white to TTML subtitles in `"html"`
809
+ textTrackMode [#832]
810
+ - drm: Avoid re-setting a server certificate we know has already been pushed to improve
811
+ loading performance [#824, #835]
812
+ - dash: Always prefer a "main" AdaptationSet when hesitating between multiple ones [#828]
813
+ - dash: Improve minimum position precision for dynamic DASH contents when less segments
814
+ are available than what would be guessed from the timeShiftBufferDepth [#826]
815
+ - drm/logs: Better log why a MediaKeySession is not considered as "usable" [#822]
816
+ - drm/logs: Be more verbose with DRM-related logs, even at lower logger levels [#821]
817
+ - tests/conformance: Add "conformance tests", to quickly test the capabilities of new
818
+ devices and targets [#814]
819
+ - code: avoid circular dependency in `src/features` in original typescript source files
820
+ [#805]
821
+ - demo: Fix default position for the video track select element in the demo to always be
822
+ at the currently selected video track [#813]
823
+ - demo/code: Better integrate the RxPlayer to the demo: through a simple import, instead
824
+ of adding a script tag for the bundled version [#811]
825
+ - dev: Remove all enforced git-hooks (on pre-commit and pre-push) [#808]
574
826
 
575
827
  ## v3.21.1 (2020-09-21)
576
828
 
577
829
  ### Bug fixes
578
830
 
579
- - compatibility/drm: make switching the current `MediaKeys` work on most platforms by re-ordering browser API calls [#766, #744]
580
- - compatibility/drm: in Edge and IE11, fix behavior which could lead to not fallbacking from a non-decryptable quality due to a badly parsed key ID [#790]
581
- - dash: when a Representation depends on multiple SegmentTemplate at the same time, merge all corresponding information instead of just relying on the last one [#767, #768]
582
- - smooth: skip discontinuity when seeking in the middle of one when playing a smooth content [#792]
583
- - api: fix `getUrl` and the minimum position calculation after playing for some time a live content with a set `manifestUpdateUrl` [#775, #776]
584
- - drm/subtitles: better handle UTF-8 and UTF-16 characters in an encrypted initialization data or in subtitles [#791]
585
- - requests: still retry all the other segment's URLs when a non-retryable error happen on the request for one of them [#798]
586
- - dash: fix infinite rebuffering when playing multi-Period DASH contents for some time with a `manifestUpdateUrl` set [#797]
831
+ - compatibility/drm: make switching the current `MediaKeys` work on most platforms by
832
+ re-ordering browser API calls [#766, #744]
833
+ - compatibility/drm: in Edge and IE11, fix behavior which could lead to not fallbacking
834
+ from a non-decryptable quality due to a badly parsed key ID [#790]
835
+ - dash: when a Representation depends on multiple SegmentTemplate at the same time, merge
836
+ all corresponding information instead of just relying on the last one [#767, #768]
837
+ - smooth: skip discontinuity when seeking in the middle of one when playing a smooth
838
+ content [#792]
839
+ - api: fix `getUrl` and the minimum position calculation after playing for some time a
840
+ live content with a set `manifestUpdateUrl` [#775, #776]
841
+ - drm/subtitles: better handle UTF-8 and UTF-16 characters in an encrypted initialization
842
+ data or in subtitles [#791]
843
+ - requests: still retry all the other segment's URLs when a non-retryable error happen on
844
+ the request for one of them [#798]
845
+ - dash: fix infinite rebuffering when playing multi-Period DASH contents for some time
846
+ with a `manifestUpdateUrl` set [#797]
587
847
 
588
848
  ### Other improvements
589
849
 
590
- - improve seek latency in some rare cases where we could profit from cancelling a request for a needed segment [#752, #769]
591
- - requests: only download an initialization segment when media segments for that Representation are needed [#773]
592
- - requests: avoid unnecessary segment requests when segments loaded don't exactly align with what is expected if contiguous segments exist [#772, #771]
593
- - better time quality switches to avoid having to re-download segments in the new quality [#781, #782, #783]
594
- - adaptive: limit bandwidth oscillations when the buffer level is low by choosing a lower bitrate by default and limiting fall in bandwidth when in "starvation mode" [#796]
595
- - compatibility/drm: filter out badly-formed CENC PSSH when found, if some well-formed exist [#788]
596
- - isobmff: support rare but possible occurence where an ISOBMFF box size is stored on 8 bytes [#784]
597
- - logs: when logs are set to `"DEBUG"`, now regularly print visual representations of which segments live currently in the buffer(s) [#795]
598
- - demo: change separator in the demo's generated links from "\" to "!" to not change its form when percent-encoded [#758, #759]
599
- - project: better document changes in changelog and release notes, mostly by linking to related issues and PRs
600
- - code: rename "Buffer" module to "Stream" in the code, documentation and logs to better reflect what that code does [#793]
601
- - tests: add "global" unit tests for a more a module-oriented testing strategy (when compared to our existing function-oriented unit tests) to our EME (DRM) related code [#753]
602
-
850
+ - improve seek latency in some rare cases where we could profit from cancelling a request
851
+ for a needed segment [#752, #769]
852
+ - requests: only download an initialization segment when media segments for that
853
+ Representation are needed [#773]
854
+ - requests: avoid unnecessary segment requests when segments loaded don't exactly align
855
+ with what is expected if contiguous segments exist [#772, #771]
856
+ - better time quality switches to avoid having to re-download segments in the new quality
857
+ [#781, #782, #783]
858
+ - adaptive: limit bandwidth oscillations when the buffer level is low by choosing a lower
859
+ bitrate by default and limiting fall in bandwidth when in "starvation mode" [#796]
860
+ - compatibility/drm: filter out badly-formed CENC PSSH when found, if some well-formed
861
+ exist [#788]
862
+ - isobmff: support rare but possible occurence where an ISOBMFF box size is stored on 8
863
+ bytes [#784]
864
+ - logs: when logs are set to `"DEBUG"`, now regularly print visual representations of
865
+ which segments live currently in the buffer(s) [#795]
866
+ - demo: change separator in the demo's generated links from "\" to "!" to not change its
867
+ form when percent-encoded [#758, #759]
868
+ - project: better document changes in changelog and release notes, mostly by linking to
869
+ related issues and PRs
870
+ - code: rename "Buffer" module to "Stream" in the code, documentation and logs to better
871
+ reflect what that code does [#793]
872
+ - tests: add "global" unit tests for a more a module-oriented testing strategy (when
873
+ compared to our existing function-oriented unit tests) to our EME (DRM) related code
874
+ [#753]
603
875
 
604
876
  ## v3.21.0 (2020-06-17)
605
877
 
606
878
  ### Features
607
879
 
608
- - api/events: add `"streamEvent"` event for when a DASH EventStream's event is reached
609
- - api/events: add `"streamEventSkip"` event for when a DASH EventStream's event is "skipped"
610
- - types/events: add `IStreamEvent` and `IStreamEventData` - which define the payload emitted by both a `"streamEvent"` and `"streamEventSkip"` events to the exported types
611
- - api/tracks: add second argument to `setPreferredAudioTracks`, `setPreferredTextTracks` and `setPreferredVideoTracks` to be able to also apply them to the currently loaded Periods / content
612
- - text/webvtt: parse settings attributes of WebVTT subtitles when in HTML mode
613
- - api/tracks: add codec information to `getAvailableAudioTracks` and `getAudioTrack`
880
+ - api/events: add `"streamEvent"` event for when a DASH EventStream's event is reached
881
+ - api/events: add `"streamEventSkip"` event for when a DASH EventStream's event is
882
+ "skipped"
883
+ - types/events: add `IStreamEvent` and `IStreamEventData` - which define the payload
884
+ emitted by both a `"streamEvent"` and `"streamEventSkip"` events to the exported types
885
+ - api/tracks: add second argument to `setPreferredAudioTracks`, `setPreferredTextTracks`
886
+ and `setPreferredVideoTracks` to be able to also apply them to the currently loaded
887
+ Periods / content
888
+ - text/webvtt: parse settings attributes of WebVTT subtitles when in HTML mode
889
+ - api/tracks: add codec information to `getAvailableAudioTracks` and `getAudioTrack`
614
890
 
615
891
  ### Bug fixes
616
892
 
617
- - dash: do not reduce the minimum position when using the `manifestUpdateUrl` `transportOptions` in `loadVideo`
618
- - local-manifest: consider `language` property from a "local" Manifest
619
- - local-manifest: refresh the Manifest even if we dont have a Manifest URL, as is often the case when playing locally-stored contents
620
- - local-manifest: allow the "expired" property of a local-manifest to be updated
621
- - compat/eme/fairplay: for fairplay contents, better format the initialization data given to the CDM. The previous behavior could lead to invalid license requests
622
- - eme: re-allow serialization into a JSON string of the persisted session data, as presented in the DRM tutorial
623
- - compat/low-latency: fix compilation of async/await when playing low-latency contents with the default bundled builds
624
- - eme: ensure that the previous MediaKeySystemAccess used had `persistentState` to "required" when a new content needs it to be
625
- - eme: fix `closeSessionsOnStop` `keySystems` option actually not removing any MediaKeySession when stopping a content (v3.20.1 regression).
893
+ - dash: do not reduce the minimum position when using the `manifestUpdateUrl`
894
+ `transportOptions` in `loadVideo`
895
+ - local-manifest: consider `language` property from a "local" Manifest
896
+ - local-manifest: refresh the Manifest even if we dont have a Manifest URL, as is often
897
+ the case when playing locally-stored contents
898
+ - local-manifest: allow the "expired" property of a local-manifest to be updated
899
+ - compat/eme/fairplay: for fairplay contents, better format the initialization data given
900
+ to the CDM. The previous behavior could lead to invalid license requests
901
+ - eme: re-allow serialization into a JSON string of the persisted session data, as
902
+ presented in the DRM tutorial
903
+ - compat/low-latency: fix compilation of async/await when playing low-latency contents
904
+ with the default bundled builds
905
+ - eme: ensure that the previous MediaKeySystemAccess used had `persistentState` to
906
+ "required" when a new content needs it to be
907
+ - eme: fix `closeSessionsOnStop` `keySystems` option actually not removing any
908
+ MediaKeySession when stopping a content (v3.20.1 regression).
626
909
 
627
910
  ### Other improvements
628
911
 
629
- - dash: emit minor errors arising when parsing the DASH MPD through warning events (whose payload will be an error with the `PIPELINE_PARSE_ERROR` code)
630
- - dash: consider AdaptationSet@selectionPriority in our initial track choice if the user preferences lead to multiple compatible tracks
631
- - misc: do not download video segments when playing on an "audio" element.
632
- - eme: replace the MediaKeySession's cache entry based on the least recently used instead of on the least recently created to improve cache effectiveness.
633
- - eme/persistent sessions: Limit the maximum of stored persistent MediaKeySessions to 1000 to avoid the storage to grow indefinitely (higher than that, the least-recently used will be evicted)
634
-
912
+ - dash: emit minor errors arising when parsing the DASH MPD through warning events (whose
913
+ payload will be an error with the `PIPELINE_PARSE_ERROR` code)
914
+ - dash: consider AdaptationSet@selectionPriority in our initial track choice if the user
915
+ preferences lead to multiple compatible tracks
916
+ - misc: do not download video segments when playing on an "audio" element.
917
+ - eme: replace the MediaKeySession's cache entry based on the least recently used instead
918
+ of on the least recently created to improve cache effectiveness.
919
+ - eme/persistent sessions: Limit the maximum of stored persistent MediaKeySessions to 1000
920
+ to avoid the storage to grow indefinitely (higher than that, the least-recently used
921
+ will be evicted)
635
922
 
636
923
  ## v3.20.1 (2020-05-06)
637
924
 
638
925
  ### Bug fixes
639
926
 
640
- - eme: fix `OTHER_ERROR` issue arising when loading a new encrypted media when a previous since-disposed instance of the RxPlayer played encrypted contents on the same media element
641
- - eme: fix `OTHER_ERROR` issue arising on Internet Explorer 11 when playing more than one encrypted content
642
- - eme: fix issue where more than 50 active MediaKeySessions at the same time could lead to infinite rebuffering when playing back a previous content with multiple encryption keys
643
- - directfile: for directfile contents, don't reset to the preferred audio, text or video track when the track list changes
644
- - eme: remove any possibility of collision in the storage of EME initialization data. The previous behavior could theorically lead some initialization data to be ignored.
645
- - eme: fix typo which conflated an EME "internal-error" key status and an "output-restricted" one.
646
-
927
+ - eme: fix `OTHER_ERROR` issue arising when loading a new encrypted media when a previous
928
+ since-disposed instance of the RxPlayer played encrypted contents on the same media
929
+ element
930
+ - eme: fix `OTHER_ERROR` issue arising on Internet Explorer 11 when playing more than one
931
+ encrypted content
932
+ - eme: fix issue where more than 50 active MediaKeySessions at the same time could lead to
933
+ infinite rebuffering when playing back a previous content with multiple encryption keys
934
+ - directfile: for directfile contents, don't reset to the preferred audio, text or video
935
+ track when the track list changes
936
+ - eme: remove any possibility of collision in the storage of EME initialization data. The
937
+ previous behavior could theorically lead some initialization data to be ignored.
938
+ - eme: fix typo which conflated an EME "internal-error" key status and an
939
+ "output-restricted" one.
647
940
 
648
941
  ## v3.20.0 (2020-04-22)
649
942
 
650
943
  ### Features
651
944
 
652
- - api: add `disableVideoTrack` method
653
- - api: add the `preferredVideoTrack` constructor option and `setPreferredVideoTracks` / `getPreferredVideoTracks` methods to set a video track preference (or to start with the video track disabled).
654
- - api: add optional `codec` property to preferred audio tracks APIs, allowing applications to communicate a codec preference.
655
- - api: make the `language` and `audioDescription` properties in `preferredAudioTracks`' objects optional.
656
- - api: add `signInterpreted` to `getVideoTrack` and `getAvailableVideoTracks` return objects to know when a track contains sign language interpretation
945
+ - api: add `disableVideoTrack` method
946
+ - api: add the `preferredVideoTrack` constructor option and `setPreferredVideoTracks` /
947
+ `getPreferredVideoTracks` methods to set a video track preference (or to start with the
948
+ video track disabled).
949
+ - api: add optional `codec` property to preferred audio tracks APIs, allowing applications
950
+ to communicate a codec preference.
951
+ - api: make the `language` and `audioDescription` properties in `preferredAudioTracks`'
952
+ objects optional.
953
+ - api: add `signInterpreted` to `getVideoTrack` and `getAvailableVideoTracks` return
954
+ objects to know when a track contains sign language interpretation
657
955
 
658
956
  ### Deprecated
659
957
 
660
- - api: deprecate the `getManifest()` method
661
- - api: deprecate the `getCurrentAdaptations()` method
662
- - api: deprecate the `getCurrentRepresentations()` method
958
+ - api: deprecate the `getManifest()` method
959
+ - api: deprecate the `getCurrentAdaptations()` method
960
+ - api: deprecate the `getCurrentRepresentations()` method
663
961
 
664
962
  ### Bug fixes
665
963
 
666
- - compat/eme: Set proper EME Safari implementation, to play contents with DRM on it without issues
667
- - compat/directfile/iOS: On Safari iOS, fix auto-play warnings when a directfile content is played with the `playsinline` attribute set.
668
- - directfile: In Directfile mode, always disable the current text track when a `null` is encountered in the preferredTextTracks array
964
+ - compat/eme: Set proper EME Safari implementation, to play contents with DRM on it
965
+ without issues
966
+ - compat/directfile/iOS: On Safari iOS, fix auto-play warnings when a directfile content
967
+ is played with the `playsinline` attribute set.
968
+ - directfile: In Directfile mode, always disable the current text track when a `null` is
969
+ encountered in the preferredTextTracks array
669
970
 
670
971
  ### Other improvements
671
972
 
672
- - abr: ignore requests that may have directly hit the cache in our adaptive logic
673
- - dash/perf: improve parsing efficiency for very large MPDs, at the expense of a very small risk of de-synchronization. Mechanisms still allow for regular re-synchronization.
674
-
973
+ - abr: ignore requests that may have directly hit the cache in our adaptive logic
974
+ - dash/perf: improve parsing efficiency for very large MPDs, at the expense of a very
975
+ small risk of de-synchronization. Mechanisms still allow for regular re-synchronization.
675
976
 
676
977
  ## v3.19.0 (2020-03-11)
677
978
 
678
979
  ### Features
679
980
 
680
- - dash: handle multiple URL per segment announced through multiple BaseURL elements in the MPD
681
- - dash/smooth/metaplaylist: add `manifestUpdateUrl` to loadVideo's `transportOptions` to provide a shorter version of the Manifest, used for more resource-efficient Manifest updates
682
- - tools/createMetaplaylist: add the experimental `createMetaplaylist` tool, which allows to generate Metaplaylist contents from given Manifests
683
- - tools/TextTrackRenderer: add the optional `language` property to the `setTextTrack` method of the experimental `TextTrackRenderer` tool as it could be needed when parsing SAMI subtitles
684
- - types: export IAvailableAudioTrack, IAvailableTextTrack and IAvailableVideoTrack types
685
- - types: export IAudioTrack, ITextTrack and IVideoTrack types
981
+ - dash: handle multiple URL per segment announced through multiple BaseURL elements in the
982
+ MPD
983
+ - dash/smooth/metaplaylist: add `manifestUpdateUrl` to loadVideo's `transportOptions` to
984
+ provide a shorter version of the Manifest, used for more resource-efficient Manifest
985
+ updates
986
+ - tools/createMetaplaylist: add the experimental `createMetaplaylist` tool, which allows
987
+ to generate Metaplaylist contents from given Manifests
988
+ - tools/TextTrackRenderer: add the optional `language` property to the `setTextTrack`
989
+ method of the experimental `TextTrackRenderer` tool as it could be needed when parsing
990
+ SAMI subtitles
991
+ - types: export IAvailableAudioTrack, IAvailableTextTrack and IAvailableVideoTrack types
992
+ - types: export IAudioTrack, ITextTrack and IVideoTrack types
686
993
 
687
994
  ### Bug fixes
688
995
 
689
- - dash/smooth: fix segment url resolution when there is query parameters in the Manifest URL and/or segment path, themselves containing "/" characters
690
- - local-manifest: fix videoElement's duration and `getVideoDuration` for contents in the experimental `local` transport
691
- - tools/parseBifThumbnails: do not return an un-displayable ArrayBuffer of the whole thing in each `image` property in the experimental `parseBifThumbnails` function
996
+ - dash/smooth: fix segment url resolution when there is query parameters in the Manifest
997
+ URL and/or segment path, themselves containing "/" characters
998
+ - local-manifest: fix videoElement's duration and `getVideoDuration` for contents in the
999
+ experimental `local` transport
1000
+ - tools/parseBifThumbnails: do not return an un-displayable ArrayBuffer of the whole thing
1001
+ in each `image` property in the experimental `parseBifThumbnails` function
692
1002
 
693
1003
  ### Other improvements
694
1004
 
695
- - compat: avoid pushing a segment on top of the current position in Safari, as it can sometime lead to green macro-blocks
696
- - dash: add multiple performance improvements related to MPD parsing on embedded devices
697
- - dash/smooth/metaplaylist/local: refresh less often the Manifest when parsing it takes too much time to improve performance
698
- - smooth: filter unsupported video and audio QualityLevels when parsing a Smooth Manifest
699
- - build: greatly reduce the time needed to produce a modular build through the `npm run build:modular` script
700
- - build: remove Object.assign dependency
701
-
1005
+ - compat: avoid pushing a segment on top of the current position in Safari, as it can
1006
+ sometime lead to green macro-blocks
1007
+ - dash: add multiple performance improvements related to MPD parsing on embedded devices
1008
+ - dash/smooth/metaplaylist/local: refresh less often the Manifest when parsing it takes
1009
+ too much time to improve performance
1010
+ - smooth: filter unsupported video and audio QualityLevels when parsing a Smooth Manifest
1011
+ - build: greatly reduce the time needed to produce a modular build through the
1012
+ `npm run build:modular` script
1013
+ - build: remove Object.assign dependency
702
1014
 
703
1015
  ## v3.18.0 (2020-01-30)
704
1016
 
705
1017
  ### Features
706
1018
 
707
- - directfile: support most audio tracks API when playing a directfile content
708
- - directfile: support most text tracks API when playing a directfile content
709
- - directfile: support most video tracks API when playing a directfile content
710
- - api: add `seeking` and `seeked` events which announce the beginning and end of a seek, even when seeking to an already buffered part
711
- - subtitles/ttml: handle styles inheriting other styles in TTML subtitles
712
- - local-manifest: add experimental `local` transport to allow the playback of downloaded contents (even when offline)
713
- - tools: add the experimental `TextTrackRenderer` tool to be able to add a custom text track to any content
714
- - tools: add the experimental `parseBifThumbnails` tool to easily parse thumbnails in the BIF format
1019
+ - directfile: support most audio tracks API when playing a directfile content
1020
+ - directfile: support most text tracks API when playing a directfile content
1021
+ - directfile: support most video tracks API when playing a directfile content
1022
+ - api: add `seeking` and `seeked` events which announce the beginning and end of a seek,
1023
+ even when seeking to an already buffered part
1024
+ - subtitles/ttml: handle styles inheriting other styles in TTML subtitles
1025
+ - local-manifest: add experimental `local` transport to allow the playback of downloaded
1026
+ contents (even when offline)
1027
+ - tools: add the experimental `TextTrackRenderer` tool to be able to add a custom text
1028
+ track to any content
1029
+ - tools: add the experimental `parseBifThumbnails` tool to easily parse thumbnails in the
1030
+ BIF format
715
1031
 
716
1032
  ### Deprecated
717
1033
 
718
- - api: deprecate the `supplementaryTextTracks` loadVideo option in profit of the external TextTrackRenderer tool
719
- - api: aeprecate the `supplementaryImageTracks` loadVideo option in profit of the external parseBifThumbnails tool
720
- - api: deprecate the `getImageTrackData` method in profit of the external `parseBifThumbnails` tool
721
- - api: deprecate the `imageTrackUpdate` event in profit of the external `parseBifThumbnails` tool
722
- - api: deprecate `hideNativeSubtitles` (officially)
1034
+ - api: deprecate the `supplementaryTextTracks` loadVideo option in profit of the external
1035
+ TextTrackRenderer tool
1036
+ - api: aeprecate the `supplementaryImageTracks` loadVideo option in profit of the external
1037
+ parseBifThumbnails tool
1038
+ - api: deprecate the `getImageTrackData` method in profit of the external
1039
+ `parseBifThumbnails` tool
1040
+ - api: deprecate the `imageTrackUpdate` event in profit of the external
1041
+ `parseBifThumbnails` tool
1042
+ - api: deprecate `hideNativeSubtitles` (officially)
723
1043
 
724
1044
  ### Bug fixes
725
1045
 
726
- - subtitles/ttml: Correctly handle alpha information in the rgba values included in a TTML file
727
- - images/bif: fix sometimes incorrect "ts" value on thumbnails returned by the `getImageTrackData` method and the `imageTrackUpdate` event
1046
+ - subtitles/ttml: Correctly handle alpha information in the rgba values included in a TTML
1047
+ file
1048
+ - images/bif: fix sometimes incorrect "ts" value on thumbnails returned by the
1049
+ `getImageTrackData` method and the `imageTrackUpdate` event
728
1050
 
729
1051
  ### Other improvements
730
1052
 
731
- - node: allow the RxPlayer to be imported from Node.js for server-side-rendering
732
- - images/bif: throw a better error when an invalid BIF file is received
733
- - api: be more "generous" with player events by ditching the deep-equal npm module due to package size and some edge-case behavior
734
- - demo: avoid re-rendering multiple ui components when unnecessary
735
-
1053
+ - node: allow the RxPlayer to be imported from Node.js for server-side-rendering
1054
+ - images/bif: throw a better error when an invalid BIF file is received
1055
+ - api: be more "generous" with player events by ditching the deep-equal npm module due to
1056
+ package size and some edge-case behavior
1057
+ - demo: avoid re-rendering multiple ui components when unnecessary
736
1058
 
737
1059
  ## v3.17.1 (2019-12-20)
738
1060
 
739
1061
  ### Bug fixes
740
1062
 
741
- - dash/metaplaylist: fix infinite rebuffering issue when refreshing multi-Period contents under specific conditions
742
- - buffer: be less aggressive when garbage collecting subtitles (if the maxBufferAhead/maxBufferBehind options are set) to avoid useful subtitles being removed
743
- - directfile/compat: for directfile contents, trigger directly the LOADED state on iOS/iPad/iPod browsers as those are not preloaded there
1063
+ - dash/metaplaylist: fix infinite rebuffering issue when refreshing multi-Period contents
1064
+ under specific conditions
1065
+ - buffer: be less aggressive when garbage collecting subtitles (if the
1066
+ maxBufferAhead/maxBufferBehind options are set) to avoid useful subtitles being removed
1067
+ - directfile/compat: for directfile contents, trigger directly the LOADED state on
1068
+ iOS/iPad/iPod browsers as those are not preloaded there
744
1069
 
745
1070
  ### Other improvements
746
1071
 
747
- - demo: display clickable "play" button on the video element when autoplay is blocked due to browser policies - to help users unlock the situation
748
- - demo: add "Other" key system to allow specifying a custom key system in the demo page
749
-
1072
+ - demo: display clickable "play" button on the video element when autoplay is blocked due
1073
+ to browser policies - to help users unlock the situation
1074
+ - demo: add "Other" key system to allow specifying a custom key system in the demo page
750
1075
 
751
1076
  ## v3.17.0 (2019-12-09)
752
1077
 
753
1078
  ### Features
754
1079
 
755
- - eme/api: add keySystems.fallbackOn property to `loadVideo` to allow fallbacking to other qualities when encountering various key errors
756
- - eme/api: allow to set `fallbackOnLastTry` on a `getLicense` Error to be able to fallback on other qualities when a license request is on error
757
- - eme/api: add `NO_PLAYABLE_REPRESENTATION` `MediaError` for when every video or audio quality cannot be played
758
- - manifest/api: add `decipherable` property to a Representation object
759
- - api: add `decipherabilityUpdate` event triggered when a Representation's decipherability status is updated
760
- - languages/api: add `dub` boolean to audio tracks (through `getAudioTrack` and `getAvailableAudioTracks`) to tell if this is a dubbed track
761
- - languages/ttml: with TTML subtitles, support length relative to the Computed Cell Size for `tts:fontSize`, `tts:padding`, `tts:extent`, `tts:origin` and `tts:lineHeight`
762
- - transports/api: add `checkMediaSegmentIntegrity` `transportOptions` to automatically retry media segments which appear corrupted
763
- - transports/api: add `minimumManifestUpdateInterval` `transportOptions` to limit the Manifest update frequency
764
- - transports/api: add "progress" callback to a custom segmentLoader to improve adaptive streaming when an external segment loader is used
1080
+ - eme/api: add keySystems.fallbackOn property to `loadVideo` to allow fallbacking to other
1081
+ qualities when encountering various key errors
1082
+ - eme/api: allow to set `fallbackOnLastTry` on a `getLicense` Error to be able to fallback
1083
+ on other qualities when a license request is on error
1084
+ - eme/api: add `NO_PLAYABLE_REPRESENTATION` `MediaError` for when every video or audio
1085
+ quality cannot be played
1086
+ - manifest/api: add `decipherable` property to a Representation object
1087
+ - api: add `decipherabilityUpdate` event triggered when a Representation's decipherability
1088
+ status is updated
1089
+ - languages/api: add `dub` boolean to audio tracks (through `getAudioTrack` and
1090
+ `getAvailableAudioTracks`) to tell if this is a dubbed track
1091
+ - languages/ttml: with TTML subtitles, support length relative to the Computed Cell Size
1092
+ for `tts:fontSize`, `tts:padding`, `tts:extent`, `tts:origin` and `tts:lineHeight`
1093
+ - transports/api: add `checkMediaSegmentIntegrity` `transportOptions` to automatically
1094
+ retry media segments which appear corrupted
1095
+ - transports/api: add `minimumManifestUpdateInterval` `transportOptions` to limit the
1096
+ Manifest update frequency
1097
+ - transports/api: add "progress" callback to a custom segmentLoader to improve adaptive
1098
+ streaming when an external segment loader is used
765
1099
 
766
1100
  ### Bug fixes
767
1101
 
768
- - dash/metaplaylist: download the first segment of a new Period when the last downloaded segment from the previous Period ends after that segment ends
769
- - smooth/metaplaylist: consider `serverSyncInfos` `transportOptions` for Smooth and MetaPlaylist contents
770
- - buffers: completely clean a previous audio/text track from the SourceBuffer when switching to a different audio/text track
771
- - dash: avoid requesting an inexistent segment when downloading a multi-Period DASH content with a number-based SegmentTemplate with the `agressiveMode` option set to `true`
772
- - eme: do not wait for a previous invalid MediaKeySession to be closed before re-creating a valid one for the same content, to work around a widevine issue
773
- - eme: avoid race condition issue arising when multiple init data are received before the MediaKeys have been attached to the media element
774
- - dash: do not consider "trickmodes" AdaptationSet as directly playable video tracks
775
- - directfile: begin directly at the end (instead of the beginning) when setting a `startAt` loadVideo option with a `fromLastPosition` property set to `0` on directfile contents
776
- - metaplaylist: fix playback for non-live MetaPlaylist contents not starting at a `0` time
1102
+ - dash/metaplaylist: download the first segment of a new Period when the last downloaded
1103
+ segment from the previous Period ends after that segment ends
1104
+ - smooth/metaplaylist: consider `serverSyncInfos` `transportOptions` for Smooth and
1105
+ MetaPlaylist contents
1106
+ - buffers: completely clean a previous audio/text track from the SourceBuffer when
1107
+ switching to a different audio/text track
1108
+ - dash: avoid requesting an inexistent segment when downloading a multi-Period DASH
1109
+ content with a number-based SegmentTemplate with the `agressiveMode` option set to
1110
+ `true`
1111
+ - eme: do not wait for a previous invalid MediaKeySession to be closed before re-creating
1112
+ a valid one for the same content, to work around a widevine issue
1113
+ - eme: avoid race condition issue arising when multiple init data are received before the
1114
+ MediaKeys have been attached to the media element
1115
+ - dash: do not consider "trickmodes" AdaptationSet as directly playable video tracks
1116
+ - directfile: begin directly at the end (instead of the beginning) when setting a
1117
+ `startAt` loadVideo option with a `fromLastPosition` property set to `0` on directfile
1118
+ contents
1119
+ - metaplaylist: fix playback for non-live MetaPlaylist contents not starting at a `0` time
777
1120
 
778
1121
  ### Other improvements
779
1122
 
780
- - abr: better estimate a lower bitrate after a sudden fall in bandwidth
781
- - dash/low-latency: properly use @availabilityTimeOffset when playing a low-latency DASH content
782
- - code: use only strict boolean expressions in the code (do not rely on falsy or truthy values anymore).
783
- - demo: add buffer content graphs to the demo page to vizualize exactly what have been buffered
784
- - demo: improve accessibility of the demo page for the english-speaking visually impaired
785
- - misc: replace uglifyJS by terser for minification purposes
786
-
787
-
1123
+ - abr: better estimate a lower bitrate after a sudden fall in bandwidth
1124
+ - dash/low-latency: properly use @availabilityTimeOffset when playing a low-latency DASH
1125
+ content
1126
+ - code: use only strict boolean expressions in the code (do not rely on falsy or truthy
1127
+ values anymore).
1128
+ - demo: add buffer content graphs to the demo page to vizualize exactly what have been
1129
+ buffered
1130
+ - demo: improve accessibility of the demo page for the english-speaking visually impaired
1131
+ - misc: replace uglifyJS by terser for minification purposes
788
1132
 
789
1133
  ## v3.16.1 (2019-10-03)
790
1134
 
791
1135
  ### Bug fixes
792
1136
 
793
- - dash: update timeshiftBufferDepth considered when refreshing the MPD
794
- - dash: fix infinite rebuffering issue when refreshing a Multi-Period MPD with the oldest Periods removed
795
- - api: go to `"SEEKING"` state instead of `"BUFFERING"` when seeking while the player is in the "BUFFERING" state
796
- - api: Avoid reinitializing the video, audio and text track choice after a `"RELOADING"` state
797
- - api: When going back to a Period on which `disableTextTracks` was called, keep the text track disabled even if different `preferredTextTracks` are set
798
- - smooth: Replace ``{CustomAttributes}`` token in a segment URL
799
- - dash: load the last segment of a Period when it is declared in a SegmentTemplate (with no SegmentTimeline) and when its end is exactly equal to the end of the Period
1137
+ - dash: update timeshiftBufferDepth considered when refreshing the MPD
1138
+ - dash: fix infinite rebuffering issue when refreshing a Multi-Period MPD with the oldest
1139
+ Periods removed
1140
+ - api: go to `"SEEKING"` state instead of `"BUFFERING"` when seeking while the player is
1141
+ in the "BUFFERING" state
1142
+ - api: Avoid reinitializing the video, audio and text track choice after a `"RELOADING"`
1143
+ state
1144
+ - api: When going back to a Period on which `disableTextTracks` was called, keep the text
1145
+ track disabled even if different `preferredTextTracks` are set
1146
+ - smooth: Replace `{CustomAttributes}` token in a segment URL
1147
+ - dash: load the last segment of a Period when it is declared in a SegmentTemplate (with
1148
+ no SegmentTimeline) and when its end is exactly equal to the end of the Period
800
1149
 
801
1150
  ### Other improvements
802
1151
 
803
- - dash/metaplaylist: be more tolerant with the appendWindows set as the previous behavior could lead to infinite rebuffering and segments re-downloading
804
- - dash/metaplaylist/smooth: Better handle discontinuities in a VoD content
805
- - dash/metaplaylist: Handle discontinuities between DASH Periods and between MetaPlaylist contents
806
- - dash/smooth: Avoid requesting multiple time the last segment when the duration given in the Manifest are inexact
807
- - smooth: Skip without throwing Manifest's StreamIndex with an unrecognized type
808
- - dash: Improve prediction of when to update a dynamic MPD with xlinks
809
- - dash: Be more tolerant of differences between a segment's time announced by the Manifest and the reality to avoid multiple cases of segment re-downloading
810
- - dash: Guess initialization range for segments defined in a SegmentBase without an Initialization element
811
- - dash: Throw better error when a sidx with a reference_type `1` is encountered
812
- - api: Throw a better error when setting a `preferredAudioTracks` or `preferredTextTracks` value in the wrong format
813
- - demo: Allow to export and share demo links with custom contents
814
- - demo: Fix video track switching in the demo page
815
- - demo: Fix spinner not hiding when playing on very specific conditions
816
- - demo: reset playback rate before loading a content
817
-
1152
+ - dash/metaplaylist: be more tolerant with the appendWindows set as the previous behavior
1153
+ could lead to infinite rebuffering and segments re-downloading
1154
+ - dash/metaplaylist/smooth: Better handle discontinuities in a VoD content
1155
+ - dash/metaplaylist: Handle discontinuities between DASH Periods and between MetaPlaylist
1156
+ contents
1157
+ - dash/smooth: Avoid requesting multiple time the last segment when the duration given in
1158
+ the Manifest are inexact
1159
+ - smooth: Skip without throwing Manifest's StreamIndex with an unrecognized type
1160
+ - dash: Improve prediction of when to update a dynamic MPD with xlinks
1161
+ - dash: Be more tolerant of differences between a segment's time announced by the Manifest
1162
+ and the reality to avoid multiple cases of segment re-downloading
1163
+ - dash: Guess initialization range for segments defined in a SegmentBase without an
1164
+ Initialization element
1165
+ - dash: Throw better error when a sidx with a reference_type `1` is encountered
1166
+ - api: Throw a better error when setting a `preferredAudioTracks` or `preferredTextTracks`
1167
+ value in the wrong format
1168
+ - demo: Allow to export and share demo links with custom contents
1169
+ - demo: Fix video track switching in the demo page
1170
+ - demo: Fix spinner not hiding when playing on very specific conditions
1171
+ - demo: reset playback rate before loading a content
818
1172
 
819
1173
  ## v3.16.0 (2019-09-16)
820
1174
 
821
1175
  ### Features
822
1176
 
823
- - dash: add `lowLatencyMode` `loadVideo` option to play low-latency DASH contents with chunk-encoded CMAF and chunked transfer encoding close to the live edge efficiently
824
- - metaplaylist: add the experimental `metaplaylist` transport, which allows to smoothly play a concatenation of multiple contents
825
- - api: add `serverSyncInfos` to `transportOptions` (`loadVideo` option)
826
- - errors: add `code` property to a `NetworkError` indicating the corresponding HTTP status
1177
+ - dash: add `lowLatencyMode` `loadVideo` option to play low-latency DASH contents with
1178
+ chunk-encoded CMAF and chunked transfer encoding close to the live edge efficiently
1179
+ - metaplaylist: add the experimental `metaplaylist` transport, which allows to smoothly
1180
+ play a concatenation of multiple contents
1181
+ - api: add `serverSyncInfos` to `transportOptions` (`loadVideo` option)
1182
+ - errors: add `code` property to a `NetworkError` indicating the corresponding HTTP status
827
1183
 
828
1184
  ### Bug fixes
829
1185
 
830
- - dash: fix minimum time calculation for Multi-Period MPDs with SegmentTemplate segment indexes but no SegmentTimeline
831
- - dash: play static MPD not declaring any segment for a time of 0 seconds at the minimum possible time by default
832
- - dash: fix maximum position calculation for live Multi-Period contents where the currently generated period is not the last one declared in the MPD
1186
+ - dash: fix minimum time calculation for Multi-Period MPDs with SegmentTemplate segment
1187
+ indexes but no SegmentTimeline
1188
+ - dash: play static MPD not declaring any segment for a time of 0 seconds at the minimum
1189
+ possible time by default
1190
+ - dash: fix maximum position calculation for live Multi-Period contents where the
1191
+ currently generated period is not the last one declared in the MPD
833
1192
 
834
1193
  ### Other improvements
835
1194
 
836
- - api: authorize to set no `url` to `loadVideo` if the `manifestLoader` `transportOption` is set
837
- - smooth: the `aggressiveMode` option now only allows requests for segments which had time to at least begin to be generated to avoid too much HTTP 412
838
- - dash: the `aggressiveMode` now also have an effect for some SegmentTemplate DASH contents (download segments even if they're not finished)
839
- - code: add pre-commit and pre-push git hooks to automate checking and facilitate bisecting
840
- - dash: better handle live Multi-Period contents where the currently broadcasted period is not the last one declared in the MPD
841
- - dash: better infer the end of a Period if the start of the next one is defined
842
- - api: always start live contents at the live edge if one is defined and not just before the last available segments
843
- - ci: run integration tests with Travis and appveyor again
844
-
1195
+ - api: authorize to set no `url` to `loadVideo` if the `manifestLoader` `transportOption`
1196
+ is set
1197
+ - smooth: the `aggressiveMode` option now only allows requests for segments which had time
1198
+ to at least begin to be generated to avoid too much HTTP 412
1199
+ - dash: the `aggressiveMode` now also have an effect for some SegmentTemplate DASH
1200
+ contents (download segments even if they're not finished)
1201
+ - code: add pre-commit and pre-push git hooks to automate checking and facilitate
1202
+ bisecting
1203
+ - dash: better handle live Multi-Period contents where the currently broadcasted period is
1204
+ not the last one declared in the MPD
1205
+ - dash: better infer the end of a Period if the start of the next one is defined
1206
+ - api: always start live contents at the live edge if one is defined and not just before
1207
+ the last available segments
1208
+ - ci: run integration tests with Travis and appveyor again
845
1209
 
846
1210
  ## v3.15.1 (2019-08-07)
847
1211
 
848
1212
  ### Bug fixes
849
1213
 
850
- - api: fix `networkConfig.segmentRetry` `loadVideo` option. Due to a typo, it was forced to the default value (4)
851
- - api/abr: when the `throttleVideoBitrateWhenHidden` option is set to true, wait 60 seconds (as documented) after the page is hidden before switching to a lower bitrate
852
- - dash: fix segment indexing for SegmentList-based MPD with a period start different than 0
1214
+ - api: fix `networkConfig.segmentRetry` `loadVideo` option. Due to a typo, it was forced
1215
+ to the default value (4)
1216
+ - api/abr: when the `throttleVideoBitrateWhenHidden` option is set to true, wait 60
1217
+ seconds (as documented) after the page is hidden before switching to a lower bitrate
1218
+ - dash: fix segment indexing for SegmentList-based MPD with a period start different than
1219
+ 0
853
1220
 
854
1221
  ### Other improvements
855
1222
 
856
- - dash/smooth: check if the segment should still be available before retrying it (avoid unnecessary HTTP 404 errors)
857
- - dash/smooth: the Manifest can now be refreshed due to unexpected 404 HTTP errors on a segment request (only on particular conditions)
858
- - dash: better handle segments overlapping multiple periods by using the data that is only within the concerned Period's bounds
859
- - demo: authorize to play stored contents with an HTTP Manifest in the HTTPS demo
860
-
1223
+ - dash/smooth: check if the segment should still be available before retrying it (avoid
1224
+ unnecessary HTTP 404 errors)
1225
+ - dash/smooth: the Manifest can now be refreshed due to unexpected 404 HTTP errors on a
1226
+ segment request (only on particular conditions)
1227
+ - dash: better handle segments overlapping multiple periods by using the data that is only
1228
+ within the concerned Period's bounds
1229
+ - demo: authorize to play stored contents with an HTTP Manifest in the HTTPS demo
861
1230
 
862
1231
  ## v3.15.0 (2019-07-24)
863
1232
 
864
1233
  ### Features
865
1234
 
866
- - eme: add `getLicenseConfig` property to the `keySystems` `loadVideo` option, to be able to have much more control over getLicense's behavior
867
- - eme: add `noRetry` to `getLicense` errors to abort retries when the licence request fails
868
- - eme: add `message` to `getLicense` and `onKeyStatusesChange` errors to allow custom errors when the license request fails
869
- - eme: add a new `ENCRYPTED_MEDIA_ERROR` with the code `CREATE_MEDIA_KEYS_ERROR` for when we cannot create a MediaKeys instance (seen on some Android devices).
1235
+ - eme: add `getLicenseConfig` property to the `keySystems` `loadVideo` option, to be able
1236
+ to have much more control over getLicense's behavior
1237
+ - eme: add `noRetry` to `getLicense` errors to abort retries when the licence request
1238
+ fails
1239
+ - eme: add `message` to `getLicense` and `onKeyStatusesChange` errors to allow custom
1240
+ errors when the license request fails
1241
+ - eme: add a new `ENCRYPTED_MEDIA_ERROR` with the code `CREATE_MEDIA_KEYS_ERROR` for when
1242
+ we cannot create a MediaKeys instance (seen on some Android devices).
870
1243
 
871
1244
  ### Bug fixes
872
1245
 
873
- - api: avoid sending {audio,video...}BitrateChange with a `-1` value when starting to play a content
874
- - api/abr: a call to `setAudioBitrate` or `setVideoBitrate` could be ignored for a content if it was still loading. This is now fixed.
875
- - api/abr: a call to `setMaxAutoBitrate` or `setMaxVideoBitrate` could be ignored for a content if it was still loading. This is now fixed.
876
- - dash: fix maximum position calculation when refreshing a live MPD with a UTCTiming element and no SegmentTimeline.
877
- - dash/smooth: a MPD/Manifest request failing could still be retried when loading another content
878
- - eme/compat: on Safari, depend on WebKitMediaKeys even if MediaKeys is defined because of differences of implementations
879
- - pipelines: always send `PIPELINE_LOAD_ERROR` warnings when a segment request or a Manifest request is retried
880
- - errors: replace undocumented `PIPELINE_RESOLVE_ERROR` code into the proper documented `PIPELINE_LOAD_ERROR` code
881
- - errors: replace undocumented `PIPELINE_PARSING_ERROR` code into the proper documented `PIPELINE_PARSE_ERROR` code
882
- - errors: add to the `ErrorCodes` static property the previously forgotten `NONE`, `INVALID_KEY_SYSTEM` and `INVALID_ENCRYPTED_EVENT` codes.
1246
+ - api: avoid sending {audio,video...}BitrateChange with a `-1` value when starting to play
1247
+ a content
1248
+ - api/abr: a call to `setAudioBitrate` or `setVideoBitrate` could be ignored for a content
1249
+ if it was still loading. This is now fixed.
1250
+ - api/abr: a call to `setMaxAutoBitrate` or `setMaxVideoBitrate` could be ignored for a
1251
+ content if it was still loading. This is now fixed.
1252
+ - dash: fix maximum position calculation when refreshing a live MPD with a UTCTiming
1253
+ element and no SegmentTimeline.
1254
+ - dash/smooth: a MPD/Manifest request failing could still be retried when loading another
1255
+ content
1256
+ - eme/compat: on Safari, depend on WebKitMediaKeys even if MediaKeys is defined because of
1257
+ differences of implementations
1258
+ - pipelines: always send `PIPELINE_LOAD_ERROR` warnings when a segment request or a
1259
+ Manifest request is retried
1260
+ - errors: replace undocumented `PIPELINE_RESOLVE_ERROR` code into the proper documented
1261
+ `PIPELINE_LOAD_ERROR` code
1262
+ - errors: replace undocumented `PIPELINE_PARSING_ERROR` code into the proper documented
1263
+ `PIPELINE_PARSE_ERROR` code
1264
+ - errors: add to the `ErrorCodes` static property the previously forgotten `NONE`,
1265
+ `INVALID_KEY_SYSTEM` and `INVALID_ENCRYPTED_EVENT` codes.
883
1266
 
884
1267
  ### Other improvements
885
1268
 
886
- - abr: make use of another adaptive algorithm, buffer-based, when enough buffer has been built.
887
- - demo: allow the user to save custom contents to local storage to be able to reuse them when the page is refreshed
888
- - eme: throw a better error in `onKeyStatusesChange` if the Promise is rejected without an Error
889
- - errors: refactore error management to better correlate the `fatal` boolean to a playback stop and to better ensure a documented error is always thrown
890
- - scripts: make our build script compatible with MacOS (handle BSD sed)
891
-
1269
+ - abr: make use of another adaptive algorithm, buffer-based, when enough buffer has been
1270
+ built.
1271
+ - demo: allow the user to save custom contents to local storage to be able to reuse them
1272
+ when the page is refreshed
1273
+ - eme: throw a better error in `onKeyStatusesChange` if the Promise is rejected without an
1274
+ Error
1275
+ - errors: refactore error management to better correlate the `fatal` boolean to a playback
1276
+ stop and to better ensure a documented error is always thrown
1277
+ - scripts: make our build script compatible with MacOS (handle BSD sed)
892
1278
 
893
1279
  ## v3.14.0 (2019-06-26)
894
1280
 
895
1281
  ### Features
896
1282
 
897
- - api/abr: add `throttleVideoBitrateWhenHidden` which unlike `throttleWhenHidden` does not throttle the video bitrate if the media element is in picture-in-picture mode
1283
+ - api/abr: add `throttleVideoBitrateWhenHidden` which unlike `throttleWhenHidden` does not
1284
+ throttle the video bitrate if the media element is in picture-in-picture mode
898
1285
 
899
1286
  ### Deprecated
900
1287
 
901
- - api/abr: deprecate `throttleWhenHidden` in profit of `throttleVideoBitrateWhenHidden` which has a better API definition for some edge cases
1288
+ - api/abr: deprecate `throttleWhenHidden` in profit of `throttleVideoBitrateWhenHidden`
1289
+ which has a better API definition for some edge cases
902
1290
 
903
1291
  ### Bug fixes
904
1292
 
905
- - api/abr: `limitVideoWidth` now also considers if the video is in picture-in-picture mode
906
- - buffer: better prevent the `BUFFER_FULL_ERROR` `MediaError` on some memory-constrained devices
907
- - dash: consider the buffer depth as infinite (until `availabilityStartTime`) if the `timeShiftBufferDepth` is not set
908
- - smooth: consider the buffer depth as infinite if the `DVRWindowLength` is not set or set to 0
909
- - init: start live contents that just began (less than 10 seconds ago) at the minimum position instead of throwing a STARTING_TIME_NOT_FOUND MEDIA_ERROR.
910
- - tests: use web server (local by default) instead of stubbed XHRs to serve tests contents to our integration and memory tests
911
-
1293
+ - api/abr: `limitVideoWidth` now also considers if the video is in picture-in-picture mode
1294
+ - buffer: better prevent the `BUFFER_FULL_ERROR` `MediaError` on some memory-constrained
1295
+ devices
1296
+ - dash: consider the buffer depth as infinite (until `availabilityStartTime`) if the
1297
+ `timeShiftBufferDepth` is not set
1298
+ - smooth: consider the buffer depth as infinite if the `DVRWindowLength` is not set or set
1299
+ to 0
1300
+ - init: start live contents that just began (less than 10 seconds ago) at the minimum
1301
+ position instead of throwing a STARTING_TIME_NOT_FOUND MEDIA_ERROR.
1302
+ - tests: use web server (local by default) instead of stubbed XHRs to serve tests contents
1303
+ to our integration and memory tests
912
1304
 
913
1305
  ## v3.13.0 (2019-05-15)
914
1306
 
915
1307
  ### Features
916
1308
 
917
- - eme: add `disableMediaKeysAttachmentLock` key system option to bypass a deadlock (with possible tradeoffs) when playing encrypted contents on some peculiar devices
1309
+ - eme: add `disableMediaKeysAttachmentLock` key system option to bypass a deadlock (with
1310
+ possible tradeoffs) when playing encrypted contents on some peculiar devices
918
1311
 
919
1312
  ### Bug fixes
920
1313
 
921
- - dash/smooth: never rely on Date.now when calculating time differences to avoid issues when the user adjusts the system clock while playing a live content
922
- - eme: throw a better error (avoid `toString is not a function` messages) for a `KEY_LOAD_ERROR` when the `getLicense` function provided fails without a proper error
923
- - api: fix rare situation with DASH multi-period contents where we reported no available bitrate, Adaptation nor Representation when switching to another Period.
1314
+ - dash/smooth: never rely on Date.now when calculating time differences to avoid issues
1315
+ when the user adjusts the system clock while playing a live content
1316
+ - eme: throw a better error (avoid `toString is not a function` messages) for a
1317
+ `KEY_LOAD_ERROR` when the `getLicense` function provided fails without a proper error
1318
+ - api: fix rare situation with DASH multi-period contents where we reported no available
1319
+ bitrate, Adaptation nor Representation when switching to another Period.
924
1320
 
925
1321
  ### Other improvements
926
1322
 
927
- - eme: add other default contentTypes when calling requestMediaKeySystemAccess to improve device support
928
- - demo: update the demo UI
929
- - code: change indentation style of a big chunk of the code to increase readability
930
-
1323
+ - eme: add other default contentTypes when calling requestMediaKeySystemAccess to improve
1324
+ device support
1325
+ - demo: update the demo UI
1326
+ - code: change indentation style of a big chunk of the code to increase readability
931
1327
 
932
1328
  ## v3.12.0 (2019-04-10)
933
1329
 
934
1330
  ### Features
935
1331
 
936
- - dash: add UTCTiming support
937
- - smooth: add `aggressiveMode` transportOption to requests segments in advance
938
- - dash/smooth: add `referenceDateTime` transportOption to set a default reference time for live contents
1332
+ - dash: add UTCTiming support
1333
+ - smooth: add `aggressiveMode` transportOption to requests segments in advance
1334
+ - dash/smooth: add `referenceDateTime` transportOption to set a default reference time for
1335
+ live contents
939
1336
 
940
1337
  ### Bug fixes
941
1338
 
942
- - buffer: work around firefox bug leading to infinite rebuffering when seeking many times in a content
1339
+ - buffer: work around firefox bug leading to infinite rebuffering when seeking many times
1340
+ in a content
943
1341
 
944
1342
  ### Other improvements
945
1343
 
946
- - dash/smooth: add optional `url`, `sendingTime` and `receivingTime` properties in the response given by manifestLoader transportOption
947
- - misc: deploy documentation pages and demos from our previous versions
948
- - misc: add new RxPlayer logo to README.md and the demo
949
-
1344
+ - dash/smooth: add optional `url`, `sendingTime` and `receivingTime` properties in the
1345
+ response given by manifestLoader transportOption
1346
+ - misc: deploy documentation pages and demos from our previous versions
1347
+ - misc: add new RxPlayer logo to README.md and the demo
950
1348
 
951
1349
  ## v3.11.1 (2019-03-11)
952
1350
 
953
1351
  ### Bug fixes
954
1352
 
955
- - npm: publish package again. An error in the previous release led to some files missing on npm
956
-
1353
+ - npm: publish package again. An error in the previous release led to some files missing
1354
+ on npm
957
1355
 
958
1356
  ## v3.11.0 (2019-03-07)
959
1357
 
960
1358
  ### Features
961
1359
 
962
- - languages/api: add `preferredAudioTracks` and `preferredTextTracks` player options
963
- - languages/api: add `setPreferredAudioTracks`, `getPreferredAudioTracks`, `setPreferredTextTracks` and `getPreferredTextTracks` methods
964
- - languages/api: add `availableAudioTracksChange`, `availableTextTracksChange` and `availableVideoTracksChange` events
965
- - abr/api: add `availableAudioBitratesChange` and `availableVideoBitratesChange` events
966
- - eme: allow playback of mixed encrypted and unencrypted contents on Chrome
967
- - types: export the new `IAudioTrackPreference` and `ITextTrackPreference` types
1360
+ - languages/api: add `preferredAudioTracks` and `preferredTextTracks` player options
1361
+ - languages/api: add `setPreferredAudioTracks`, `getPreferredAudioTracks`,
1362
+ `setPreferredTextTracks` and `getPreferredTextTracks` methods
1363
+ - languages/api: add `availableAudioTracksChange`, `availableTextTracksChange` and
1364
+ `availableVideoTracksChange` events
1365
+ - abr/api: add `availableAudioBitratesChange` and `availableVideoBitratesChange` events
1366
+ - eme: allow playback of mixed encrypted and unencrypted contents on Chrome
1367
+ - types: export the new `IAudioTrackPreference` and `ITextTrackPreference` types
968
1368
 
969
1369
  ### Deprecated
970
1370
 
971
- - languages/api: deprecate the `defaultAudioTrack` `loadVideo` option in favor of the `preferredAudioTracks` player option.
972
- - languages/api: deprecate the `defaultTextTrack` `loadVideo` option in favor of the `preferredTextTracks` player option.
1371
+ - languages/api: deprecate the `defaultAudioTrack` `loadVideo` option in favor of the
1372
+ `preferredAudioTracks` player option.
1373
+ - languages/api: deprecate the `defaultTextTrack` `loadVideo` option in favor of the
1374
+ `preferredTextTracks` player option.
973
1375
 
974
1376
  ### Bug fixes
975
1377
 
976
- - dash: fix `minimumUpdatePeriod` management for DASH contents
977
- - smooth: better prevent 412 HTTP errors for smooth streaming contents
978
- - subtitles: ensure subtitles are not visible in Firefox when disabling them in the `"native"` textTrack mode.
979
- - errors: avoid sending multiple `MEDIA_TIME_BEFORE_MANIFEST` or `MEDIA_TIME_AFTER_MANIFEST` warnings instead of just one
980
- - api: fix (deprecated) option `hideNativeSubtitles`
1378
+ - dash: fix `minimumUpdatePeriod` management for DASH contents
1379
+ - smooth: better prevent 412 HTTP errors for smooth streaming contents
1380
+ - subtitles: ensure subtitles are not visible in Firefox when disabling them in the
1381
+ `"native"` textTrack mode.
1382
+ - errors: avoid sending multiple `MEDIA_TIME_BEFORE_MANIFEST` or
1383
+ `MEDIA_TIME_AFTER_MANIFEST` warnings instead of just one
1384
+ - api: fix (deprecated) option `hideNativeSubtitles`
981
1385
 
982
1386
  ### Other improvements
983
1387
 
984
- - errors: set a readable error message for every error and warnings thrown
985
- - tools/mediaCapabilitiesProber: set logs about unimportant missing APIs as debug-level instead of warn-level
986
- - types: provide type safety to `addEventListener` and `removeEventListener`
987
-
1388
+ - errors: set a readable error message for every error and warnings thrown
1389
+ - tools/mediaCapabilitiesProber: set logs about unimportant missing APIs as debug-level
1390
+ instead of warn-level
1391
+ - types: provide type safety to `addEventListener` and `removeEventListener`
988
1392
 
989
1393
  ## v3.10.3 (2019-01-30)
990
1394
 
991
1395
  ### Bug fixes
992
1396
 
993
- - dash/api: fix ``getMinimumPosition`` for MPDs with an availabilityStartTime superior to unix epoch
994
- - smooth: be more tolerant on downloaded segments (accept ISOBMFF with boxes in any order)
995
- - buffers/abr: fix issue infrequently leading to a delay in quality changes
996
- - buffers: improve synchronisation to the SourceBuffer's buffer to avoid cases where the same segment could be downloaded multiple times
997
- - subtitles: fix bug in the clean-up logic of subtitles in the `"html"` texttrack mode that would lead to removed subtitles still being displayed
998
- - pipelines: retry a segment request with a backoff instead of stopping when receiving a HTTP 412
999
- - compat/subtitles: work-around firefox issue in the `"native"` texttrack mode to ensure track cues are removed when the content is stopped
1000
- - subtitles/webvtt: support default classes in the WebVTT specification
1001
- - subtitles/webvtt: multiple styles for the same element are now merged into one (instead of considering only the last one)
1002
- - subtitles/webvtt: fix styling issues when both styles applied globally and styles applied on a selector are defined
1003
- - subtitles/webvtt: do not remove whitespaces in styles to keep a sane formatting for some complex values
1397
+ - dash/api: fix `getMinimumPosition` for MPDs with an availabilityStartTime superior to
1398
+ unix epoch
1399
+ - smooth: be more tolerant on downloaded segments (accept ISOBMFF with boxes in any order)
1400
+ - buffers/abr: fix issue infrequently leading to a delay in quality changes
1401
+ - buffers: improve synchronisation to the SourceBuffer's buffer to avoid cases where the
1402
+ same segment could be downloaded multiple times
1403
+ - subtitles: fix bug in the clean-up logic of subtitles in the `"html"` texttrack mode
1404
+ that would lead to removed subtitles still being displayed
1405
+ - pipelines: retry a segment request with a backoff instead of stopping when receiving a
1406
+ HTTP 412
1407
+ - compat/subtitles: work-around firefox issue in the `"native"` texttrack mode to ensure
1408
+ track cues are removed when the content is stopped
1409
+ - subtitles/webvtt: support default classes in the WebVTT specification
1410
+ - subtitles/webvtt: multiple styles for the same element are now merged into one (instead
1411
+ of considering only the last one)
1412
+ - subtitles/webvtt: fix styling issues when both styles applied globally and styles
1413
+ applied on a selector are defined
1414
+ - subtitles/webvtt: do not remove whitespaces in styles to keep a sane formatting for some
1415
+ complex values
1004
1416
 
1005
1417
  ### Other improvements
1006
1418
 
1007
- - dash: warn through logs when fields are not in the expected format
1008
- - drm: throw more explicative error messages when DRM are not supported in the current target
1009
- - dash/smooth: get more precize duration from ISOBMFF by better handling the default duration taken from the tfhd box
1010
- - tests: continue unit test coverage improvements (from 22% in the ``v3.10.2`` to 33.6%)
1011
- - demo: fix initial text-track selection
1012
-
1419
+ - dash: warn through logs when fields are not in the expected format
1420
+ - drm: throw more explicative error messages when DRM are not supported in the current
1421
+ target
1422
+ - dash/smooth: get more precize duration from ISOBMFF by better handling the default
1423
+ duration taken from the tfhd box
1424
+ - tests: continue unit test coverage improvements (from 22% in the `v3.10.2` to 33.6%)
1425
+ - demo: fix initial text-track selection
1013
1426
 
1014
1427
  ## v3.10.2 (2019-01-08)
1015
1428
 
1016
1429
  ### Bug fixes
1017
1430
 
1018
- - dash/smooth: fix manifest updates for some DASH contents (SegmentTimeline without SegmentTemplate) and for some Smooth usages
1019
- - compat/drm: adopt a new strategy for malfunctioning CENC PSSH on Edge by moving them at the end of the initialization data
1020
- - dash/smooth: update deprecated Manifest.adaptations property when updating the manifest
1021
-
1431
+ - dash/smooth: fix manifest updates for some DASH contents (SegmentTimeline without
1432
+ SegmentTemplate) and for some Smooth usages
1433
+ - compat/drm: adopt a new strategy for malfunctioning CENC PSSH on Edge by moving them at
1434
+ the end of the initialization data
1435
+ - dash/smooth: update deprecated Manifest.adaptations property when updating the manifest
1022
1436
 
1023
1437
  ## Other improvements
1024
1438
 
1025
- - dash: refresh the MPD less often
1026
- - dash/smooth: improve precision of `getMaximumPosition` when the Manifest is updated
1027
- - tests: use the Jest library for unit tests
1028
- - tests: add a lot of unit tests to sensitive code (from a coverage of 13% in the v3.10.1 to 22% in the v3.10.2)
1029
- - npm: reduce size of the npm package
1030
-
1439
+ - dash: refresh the MPD less often
1440
+ - dash/smooth: improve precision of `getMaximumPosition` when the Manifest is updated
1441
+ - tests: use the Jest library for unit tests
1442
+ - tests: add a lot of unit tests to sensitive code (from a coverage of 13% in the v3.10.1
1443
+ to 22% in the v3.10.2)
1444
+ - npm: reduce size of the npm package
1031
1445
 
1032
1446
  ## v3.10.1 (2019-01-03)
1033
1447
 
1034
1448
  ### Bug fixes
1035
1449
 
1036
- - abr: always consider the last quality estimation
1037
- - drm: work-arround Edge bug where the browser does not accept a valid CENC PSSH (DRM-related information in an ISOBMFF)
1038
- - dash: handle `S` nodes (segments) with an @r attribute at `-1` in an MPD
1039
- - dash: handle `SegmentTimeline` which have as a first `S` node (segment) an undefined @t attribute in an MPD
1040
- - dash: Representation.index.getLastPosition() for SegmentBase-based DASH Representations now returns the end of the last segment (it returned the start of the last segment before)
1041
- - dash/smooth: throw better error (`MANIFEST_PARSE_ERROR`) if none of the audio or video tracks of a content can be played (e.g. none have supported codecs)
1450
+ - abr: always consider the last quality estimation
1451
+ - drm: work-arround Edge bug where the browser does not accept a valid CENC PSSH
1452
+ (DRM-related information in an ISOBMFF)
1453
+ - dash: handle `S` nodes (segments) with an @r attribute at `-1` in an MPD
1454
+ - dash: handle `SegmentTimeline` which have as a first `S` node (segment) an undefined @t
1455
+ attribute in an MPD
1456
+ - dash: Representation.index.getLastPosition() for SegmentBase-based DASH Representations
1457
+ now returns the end of the last segment (it returned the start of the last segment
1458
+ before)
1459
+ - dash/smooth: throw better error (`MANIFEST_PARSE_ERROR`) if none of the audio or video
1460
+ tracks of a content can be played (e.g. none have supported codecs)
1042
1461
 
1043
1462
  ### Other improvements
1044
1463
 
1045
- - manifest: better infer the minimum time of a Manifest
1046
- - code: refresh code architecture (rename and move modules, remove some dependencies...)
1047
- - tests: add coverage reports for both unit and "integration" tests, to check where tests are lacking and better pin down our hot-spots
1048
- - tests: add appveyor countinous integration service for unit tests
1049
-
1464
+ - manifest: better infer the minimum time of a Manifest
1465
+ - code: refresh code architecture (rename and move modules, remove some dependencies...)
1466
+ - tests: add coverage reports for both unit and "integration" tests, to check where tests
1467
+ are lacking and better pin down our hot-spots
1468
+ - tests: add appveyor countinous integration service for unit tests
1050
1469
 
1051
1470
  ## v3.10.0 (2018-12-11)
1052
1471
 
1053
1472
  ### Features
1054
1473
 
1055
- - dash: Manage xlinks in "onLoad" resolution model
1056
- - dash: Implement AdaptationSet switching by merging similar and switchable AdaptationSet into a single track
1057
- - compat: add ``MEDIA_ERR_METADATA_NOT_LOADED`` warning, triggered when the browser has issues with loading the initial data (only seen on the Samsung mobile browser in directfile mode)
1058
- - compat: add ``MEDIA_ERR_PLAY_NOT_ALLOWED`` warning, triggered when the application tries to ``play`` but the current browser doesn't allow it (often due to autoplay policy)
1059
- - api: the ``play`` API now returns a Promise, mirroring the original browser's ``play`` API
1474
+ - dash: Manage xlinks in "onLoad" resolution model
1475
+ - dash: Implement AdaptationSet switching by merging similar and switchable AdaptationSet
1476
+ into a single track
1477
+ - compat: add `MEDIA_ERR_METADATA_NOT_LOADED` warning, triggered when the browser has
1478
+ issues with loading the initial data (only seen on the Samsung mobile browser in
1479
+ directfile mode)
1480
+ - compat: add `MEDIA_ERR_PLAY_NOT_ALLOWED` warning, triggered when the application tries
1481
+ to `play` but the current browser doesn't allow it (often due to autoplay policy)
1482
+ - api: the `play` API now returns a Promise, mirroring the original browser's `play` API
1060
1483
 
1061
1484
  ### Deprecated
1062
1485
 
1063
- - api: The ``xhr`` property from a `NetworkError` is now deprecated
1486
+ - api: The `xhr` property from a `NetworkError` is now deprecated
1064
1487
 
1065
1488
  ### Bug fixes
1066
1489
 
1067
- - compat/smooth: fix fatal error `BUFFER_APPEND_ERROR` happening on some HSS contents with Edge
1068
- - dash/smooth: never refresh the manifest if its content is not dynamic
1069
- - dash/smooth: use new URL if the initial manifest request is redirected (again :/ - thanks @fnatte)
1070
- - api: do not go out of the ``LOADING`` state if the metadata could not be fetched (even if the browser tells us otherwise) - to work around Samsung Browser bug
1071
- - api: avoid going out of the ``LOADED`` state until the initial seek is done and metadata is fetched
1072
- - compat: use Promise ponyfill to improve IE11 compatibility with the MediaCapabilitiesProber and some EME functionalities
1073
- - api: translate most IETF language tags into corresponding ISO639-3 codes for the `normalizedLanguage` property - given from APIs such as `getAvailableAudioTracks`
1074
- - tools: fix ``mediaCapabilitiesProber.getCompatibleDRMConfigurations`` experimental tool on Safari
1075
- - api: filter out duplicates in ``getAvailableVideoBitrates`` and ``getAvailableAudioBitrates``
1490
+ - compat/smooth: fix fatal error `BUFFER_APPEND_ERROR` happening on some HSS contents with
1491
+ Edge
1492
+ - dash/smooth: never refresh the manifest if its content is not dynamic
1493
+ - dash/smooth: use new URL if the initial manifest request is redirected (again :/ -
1494
+ thanks @fnatte)
1495
+ - api: do not go out of the `LOADING` state if the metadata could not be fetched (even if
1496
+ the browser tells us otherwise) - to work around Samsung Browser bug
1497
+ - api: avoid going out of the `LOADED` state until the initial seek is done and metadata
1498
+ is fetched
1499
+ - compat: use Promise ponyfill to improve IE11 compatibility with the
1500
+ MediaCapabilitiesProber and some EME functionalities
1501
+ - api: translate most IETF language tags into corresponding ISO639-3 codes for the
1502
+ `normalizedLanguage` property - given from APIs such as `getAvailableAudioTracks`
1503
+ - tools: fix `mediaCapabilitiesProber.getCompatibleDRMConfigurations` experimental tool on
1504
+ Safari
1505
+ - api: filter out duplicates in `getAvailableVideoBitrates` and
1506
+ `getAvailableAudioBitrates`
1076
1507
 
1077
1508
  ### Other improvements
1078
1509
 
1079
- - dash: better infer unknown Period durations
1080
- - dash: better manage overlapping Periods by giving more importance to the last chronological one
1081
- - memory: clean-up ``Adaptation`` and ``Representation`` information on Periods which are not considered anymore
1082
- - log: warn through our logs every time a warning event is sent by the API
1083
- - demo: authorize DRMs in IE11 or Safari when in HTTP in the demo page
1084
- - demo: fix time indication for non-live contents
1085
-
1510
+ - dash: better infer unknown Period durations
1511
+ - dash: better manage overlapping Periods by giving more importance to the last
1512
+ chronological one
1513
+ - memory: clean-up `Adaptation` and `Representation` information on Periods which are not
1514
+ considered anymore
1515
+ - log: warn through our logs every time a warning event is sent by the API
1516
+ - demo: authorize DRMs in IE11 or Safari when in HTTP in the demo page
1517
+ - demo: fix time indication for non-live contents
1086
1518
 
1087
1519
  ## v3.9.3 (2018-11-23)
1088
1520
 
1089
1521
  ### Bug fixes
1090
1522
 
1091
- - compat: fix `undefined Object.values function` issue happening in some older browsers (mainly encountered in IE11 and old webkit versions)
1092
- - compat: remove side-effects relative to DRM on Safari
1093
- - tools: fix issue about an undefined Array.prototype.find method in some older browsers when calling mediaCapabilitiesProber.getCompatibleDRMConfigurations (mainly encountered in IE11)
1523
+ - compat: fix `undefined Object.values function` issue happening in some older browsers
1524
+ (mainly encountered in IE11 and old webkit versions)
1525
+ - compat: remove side-effects relative to DRM on Safari
1526
+ - tools: fix issue about an undefined Array.prototype.find method in some older browsers
1527
+ when calling mediaCapabilitiesProber.getCompatibleDRMConfigurations (mainly encountered
1528
+ in IE11)
1094
1529
 
1095
1530
  ### Other improvements
1096
1531
 
1097
- - eme: activate MediaKeys caching on Edge
1098
- - compat: add in our validation process a ban of methods and functions unavailable in older browsers
1099
- - tests/smooth: reinforce our Smooth Streaming integration tests
1100
-
1532
+ - eme: activate MediaKeys caching on Edge
1533
+ - compat: add in our validation process a ban of methods and functions unavailable in
1534
+ older browsers
1535
+ - tests/smooth: reinforce our Smooth Streaming integration tests
1101
1536
 
1102
1537
  ## v3.9.2 (2018-11-14)
1103
1538
 
1104
1539
  ### Bug fixes
1105
1540
 
1106
- - smooth: authorize empty tracks ("StreamIndex") in Smooth manifests
1107
-
1541
+ - smooth: authorize empty tracks ("StreamIndex") in Smooth manifests
1108
1542
 
1109
1543
  ## v3.9.1 (2018-11-13)
1110
1544
 
1111
1545
  ### Bug fixes
1112
1546
 
1113
- - smooth: fix issue preventing emergency manifest updates
1114
- - dash: fix timeout for minimumUpdatePeriod in cases where the time at which the manifest was last requested is not known (like when setting a customManifestLoader argument)
1547
+ - smooth: fix issue preventing emergency manifest updates
1548
+ - dash: fix timeout for minimumUpdatePeriod in cases where the time at which the manifest
1549
+ was last requested is not known (like when setting a customManifestLoader argument)
1115
1550
 
1116
1551
  ### Other improvements
1117
1552
 
1118
- - smooth: keep supplementary segment information when updating the manifest
1119
- - smooth: when updating segment information, perform garbage-collection of those concerning unreachable segments
1120
-
1553
+ - smooth: keep supplementary segment information when updating the manifest
1554
+ - smooth: when updating segment information, perform garbage-collection of those
1555
+ concerning unreachable segments
1121
1556
 
1122
1557
  ## v3.9.0 (2018-11-08)
1123
1558
 
1124
1559
  ### Features
1125
1560
 
1126
- - dash: consider ``minimumUpdatePeriod`` attribute in MPDs
1127
- - buffer: add codec-switching for browsers supporting the `SourceBuffer.prototype.changeType` API
1128
- - dash/smooth: accept and parse segments with a "stpp.ttml.im1t" codec (TTML IMSC1 in MP4)
1561
+ - dash: consider `minimumUpdatePeriod` attribute in MPDs
1562
+ - buffer: add codec-switching for browsers supporting the
1563
+ `SourceBuffer.prototype.changeType` API
1564
+ - dash/smooth: accept and parse segments with a "stpp.ttml.im1t" codec (TTML IMSC1 in MP4)
1129
1565
 
1130
1566
  ### Bug fixes
1131
1567
 
1132
- - smooth: fix calculations of the initial time, duration and minimum position for HSS VOD contents not starting at a '0' time
1133
- - buffer: fix priority updates for segment requests
1134
- - dash: calculate VOD duration from the last period if undefined in the MPD's root
1135
- - dash: remove possibility of obtaining two periods with the same id
1136
- - typings: make `manualBitrateSwitchingMode` ``loadVideo`` option an optional TypeScript typing (thanks @fnatte again!)
1568
+ - smooth: fix calculations of the initial time, duration and minimum position for HSS VOD
1569
+ contents not starting at a '0' time
1570
+ - buffer: fix priority updates for segment requests
1571
+ - dash: calculate VOD duration from the last period if undefined in the MPD's root
1572
+ - dash: remove possibility of obtaining two periods with the same id
1573
+ - typings: make `manualBitrateSwitchingMode` `loadVideo` option an optional TypeScript
1574
+ typing (thanks @fnatte again!)
1137
1575
 
1138
1576
  ### Other improvements
1139
1577
 
1140
- - abr: do not always cancel pending requests when switching to a new bitrate
1141
- - abr: re-estimate the bandwidth immediately after each request
1142
- - buffer: remove automatic garbage-collection of the "image" source-buffer (its rules should be more complex than those in place)
1143
- - tools/mediaCapabilitiesProber: Make ``getCompatibleDRMConfigurations`` work under IE11 and old webkit versions
1144
- - tools/mediaCapabilitiesProber: Add a multitude of bug fixes to the experimental mediaCapabilitiesProber
1145
- - package: divide by more than 2 the size of our package published in `npm` (thanks @necccc)
1146
- - tests: add memory tests to detect memory leaks
1147
- - demo: add 'favicon' to the demo page
1148
-
1578
+ - abr: do not always cancel pending requests when switching to a new bitrate
1579
+ - abr: re-estimate the bandwidth immediately after each request
1580
+ - buffer: remove automatic garbage-collection of the "image" source-buffer (its rules
1581
+ should be more complex than those in place)
1582
+ - tools/mediaCapabilitiesProber: Make `getCompatibleDRMConfigurations` work under IE11 and
1583
+ old webkit versions
1584
+ - tools/mediaCapabilitiesProber: Add a multitude of bug fixes to the experimental
1585
+ mediaCapabilitiesProber
1586
+ - package: divide by more than 2 the size of our package published in `npm` (thanks
1587
+ @necccc)
1588
+ - tests: add memory tests to detect memory leaks
1589
+ - demo: add 'favicon' to the demo page
1149
1590
 
1150
1591
  ## v3.8.1 (2018-10-17)
1151
1592
 
1152
1593
  ### Bug fixes
1153
1594
 
1154
- - abr: fix memory leak in ABR Management
1155
- - eme: avoid re-attaching a server certificate at each encrypted event
1595
+ - abr: fix memory leak in ABR Management
1596
+ - eme: avoid re-attaching a server certificate at each encrypted event
1156
1597
 
1157
1598
  ### Other improvements
1158
1599
 
1159
- - buffer: lower the "paddings" applied to the video buffer when raising the quality
1160
- - abr: when pratical, avoid relying on the "Content-Length" header to protect against miscalculations when downloading from misconfigured servers
1161
- - abr: lower the minimum number of bytes we wait to download before we evaluate the bandwidth
1162
- - abr: use performance.now instead of Date.now for better precision
1163
- - module: move express from the dependencies to the devDependencies
1164
- - demo: fix standalone demo and add possibility to launch it via HTTPS
1165
-
1600
+ - buffer: lower the "paddings" applied to the video buffer when raising the quality
1601
+ - abr: when pratical, avoid relying on the "Content-Length" header to protect against
1602
+ miscalculations when downloading from misconfigured servers
1603
+ - abr: lower the minimum number of bytes we wait to download before we evaluate the
1604
+ bandwidth
1605
+ - abr: use performance.now instead of Date.now for better precision
1606
+ - module: move express from the dependencies to the devDependencies
1607
+ - demo: fix standalone demo and add possibility to launch it via HTTPS
1166
1608
 
1167
1609
  ## v3.8.0 (2018-10-11)
1168
1610
 
1169
1611
  ### Features
1170
1612
 
1171
- - api/dash/smooth: add representationFilter API to prevent Representations (i.e. media qualities) from being played
1172
- - api/buffer: add ``manualBitrateSwitchingMode`` option to allow a direct representation switch when calling ``setVideoBitrate`` and ``setAudioBitrate``
1173
- - api/buffer: emit a ``MEDIA_TIME_BEFORE_MANIFEST`` warning when the wanted time is before what is announced in the manifest
1174
- - api/buffer: emit a ``MEDIA_TIME_AFTER_MANIFEST`` warning when the wanted time is after what is announced in the manifest
1613
+ - api/dash/smooth: add representationFilter API to prevent Representations (i.e. media
1614
+ qualities) from being played
1615
+ - api/buffer: add `manualBitrateSwitchingMode` option to allow a direct representation
1616
+ switch when calling `setVideoBitrate` and `setAudioBitrate`
1617
+ - api/buffer: emit a `MEDIA_TIME_BEFORE_MANIFEST` warning when the wanted time is before
1618
+ what is announced in the manifest
1619
+ - api/buffer: emit a `MEDIA_TIME_AFTER_MANIFEST` warning when the wanted time is after
1620
+ what is announced in the manifest
1175
1621
 
1176
1622
  ### Bug fixes
1177
1623
 
1178
- - remove export of undeclared ``ICompatVTTCue`` from modular build
1624
+ - remove export of undeclared `ICompatVTTCue` from modular build
1179
1625
 
1180
1626
  ### Other improvements
1181
1627
 
1182
- - buffer: to avoid taking too much memory, regularly clean-up text and image buffer 5 hours ahead/behind the current position (customizable)
1183
- - demo: add HTTPS capabilities on local full demo
1184
- - rxjs: update rxjs to 6.3.3
1185
- - typescript: update typescript to 3.1.2
1186
-
1628
+ - buffer: to avoid taking too much memory, regularly clean-up text and image buffer 5
1629
+ hours ahead/behind the current position (customizable)
1630
+ - demo: add HTTPS capabilities on local full demo
1631
+ - rxjs: update rxjs to 6.3.3
1632
+ - typescript: update typescript to 3.1.2
1187
1633
 
1188
1634
  ## v3.7.0 (2018-09-21)
1189
1635
 
1190
1636
  ### Features
1191
1637
 
1192
- - eme: add ``throwOnLicenseExpiration`` boolean to ``keySystems`` (``loadVideo`` option) to allow better expiration management
1193
- - eme: in the ``getLicense`` property of ``keySystems`` (``loadVideo`` option), it is now possible to resolve with ``null`` to avoid a license update.
1194
- - eme: in the ``onKeyStatusesChange`` property of ``keySystems`` (``loadVideo`` option), it is now possible to resolve with ``null`` to avoid a license update.
1195
- - tools: replace experimental tool ``mediaCapabilitiesProber.isDRMSupported`` by the more useful ``mediaCapabilitiesProber.getCompatibleDRMConfigurations``
1638
+ - eme: add `throwOnLicenseExpiration` boolean to `keySystems` (`loadVideo` option) to
1639
+ allow better expiration management
1640
+ - eme: in the `getLicense` property of `keySystems` (`loadVideo` option), it is now
1641
+ possible to resolve with `null` to avoid a license update.
1642
+ - eme: in the `onKeyStatusesChange` property of `keySystems` (`loadVideo` option), it is
1643
+ now possible to resolve with `null` to avoid a license update.
1644
+ - tools: replace experimental tool `mediaCapabilitiesProber.isDRMSupported` by the more
1645
+ useful `mediaCapabilitiesProber.getCompatibleDRMConfigurations`
1196
1646
 
1197
1647
  ### Deprecated
1198
1648
 
1199
- - smooth: giving a WSX URL instead of the Manifest URL for a smooth content is now deprecated.
1200
- - smooth: giving a _publishing point definition_ URL (.isml) instead of the Manifest URL for a smooth content is now deprecated.
1201
- - smooth: giving a _Smooth Streaming server manifest_ URL (.ism) instead of the Manifest URL for a smooth content is now deprecated.
1649
+ - smooth: giving a WSX URL instead of the Manifest URL for a smooth content is now
1650
+ deprecated.
1651
+ - smooth: giving a _publishing point definition_ URL (.isml) instead of the Manifest URL
1652
+ for a smooth content is now deprecated.
1653
+ - smooth: giving a _Smooth Streaming server manifest_ URL (.ism) instead of the Manifest
1654
+ URL for a smooth content is now deprecated.
1202
1655
 
1203
1656
  ### Bug fixes
1204
1657
 
1205
- - api: switch state to "ENDED" if seeking to the end while the player is in the "LOADED" state.
1206
- - api: switch state to "SEEKING" if seeking in the content while the player is in the "LOADED" state.
1207
- - dash: consider multiple `Role` nodes for an AdaptationSet.
1208
- - typescript: fix typings error when an application build us without the ``skipLibCheck`` TypeScript option enabled.
1209
- - smooth: fix Manifest URL generation when a ".ism" or a ".isml" URL is given.
1210
- - doc: document deprecation of the ``adaptations`` property returned from a ``Manifest`` object (as returned from the ``getManifest`` method).
1658
+ - api: switch state to "ENDED" if seeking to the end while the player is in the "LOADED"
1659
+ state.
1660
+ - api: switch state to "SEEKING" if seeking in the content while the player is in the
1661
+ "LOADED" state.
1662
+ - dash: consider multiple `Role` nodes for an AdaptationSet.
1663
+ - typescript: fix typings error when an application build us without the `skipLibCheck`
1664
+ TypeScript option enabled.
1665
+ - smooth: fix Manifest URL generation when a ".ism" or a ".isml" URL is given.
1666
+ - doc: document deprecation of the `adaptations` property returned from a `Manifest`
1667
+ object (as returned from the `getManifest` method).
1211
1668
 
1212
1669
  ### Other improvements
1213
1670
 
1214
- - doc: add quick start tutorial.
1215
- - doc: add player states documentation.
1216
- - demo: add possibility to play encrypted contents.
1217
- - demo: update demo page.
1218
- - tests: consolidate our integration tests.
1219
-
1671
+ - doc: add quick start tutorial.
1672
+ - doc: add player states documentation.
1673
+ - demo: add possibility to play encrypted contents.
1674
+ - demo: update demo page.
1675
+ - tests: consolidate our integration tests.
1220
1676
 
1221
1677
  ## v3.6.1 (2018-09-03)
1222
1678
 
1223
1679
  ### Bug fixes
1224
1680
 
1225
- - directfile: send ``LOADED`` event again for directfile contents - thanks @Fnatte
1226
- - dash: don't merge "main" AdaptationSet if they are not of a video type
1227
- - eme: fix bug which prevented the ``closeSessionsOnStop`` keySystem option to work properly
1228
- - typescript: export types compatible with project references
1229
-
1681
+ - directfile: send `LOADED` event again for directfile contents - thanks @Fnatte
1682
+ - dash: don't merge "main" AdaptationSet if they are not of a video type
1683
+ - eme: fix bug which prevented the `closeSessionsOnStop` keySystem option to work properly
1684
+ - typescript: export types compatible with project references
1230
1685
 
1231
1686
  ### Other improvements
1232
1687
 
1233
- - directfile/tests: add basic directfile integration tests
1234
- - build: update to Babel 7
1235
- - rxjs: update to RxJS 6.3.1
1236
-
1688
+ - directfile/tests: add basic directfile integration tests
1689
+ - build: update to Babel 7
1690
+ - rxjs: update to RxJS 6.3.1
1237
1691
 
1238
1692
  ## v3.6.0 (2018-08-24)
1239
1693
 
1240
1694
  ### Features
1241
- - api: add video track switching
1242
- - dash: add webm support
1243
- - api: Emit warning if autoPlay is blocked on the current browser
1244
- - api: add ``getAvailableVideoTracks`` method to retrieve every video tracks
1245
- - api: add ``getVideoTrack`` method to get the active video track
1246
- - api: add ``setVideoTrack`` method to switch the video track
1247
- - api: add ``videoTrackChange`` event to know when a video track has been switched
1248
- - api: add ``RELOADING`` event for cases where the player needs to reload (such as during a video track switch)
1695
+
1696
+ - api: add video track switching
1697
+ - dash: add webm support
1698
+ - api: Emit warning if autoPlay is blocked on the current browser
1699
+ - api: add `getAvailableVideoTracks` method to retrieve every video tracks
1700
+ - api: add `getVideoTrack` method to get the active video track
1701
+ - api: add `setVideoTrack` method to switch the video track
1702
+ - api: add `videoTrackChange` event to know when a video track has been switched
1703
+ - api: add `RELOADING` event for cases where the player needs to reload (such as during a
1704
+ video track switch)
1249
1705
 
1250
1706
  ### Deprecated
1251
1707
 
1252
- - api: the method ``isFullscreen`` has been deprecated
1253
- - api: the method ``setFullscreen`` has been deprecated
1254
- - api: the method ``exitFullscreen`` has been deprecated
1255
- - api: the method ``getNativeTextTrack`` has been deprecated
1256
- - api: the event ``fullscreenChange`` has been deprecated
1257
- - api: the event ``nativeTextTrackChange`` has been deprecated
1708
+ - api: the method `isFullscreen` has been deprecated
1709
+ - api: the method `setFullscreen` has been deprecated
1710
+ - api: the method `exitFullscreen` has been deprecated
1711
+ - api: the method `getNativeTextTrack` has been deprecated
1712
+ - api: the event `fullscreenChange` has been deprecated
1713
+ - api: the event `nativeTextTrackChange` has been deprecated
1258
1714
 
1259
1715
  ### Bug Fixes
1260
1716
 
1261
- - ttml: display forbidden characters (such as ">") in a ``"native"`` ``textTrackMode``
1262
- - ttml: process ``xml:space`` even if it is not defined at the top level
1263
- - buffer: perform a better clean-up of previous media in a SourceBuffer when switching audio or text track
1264
- - manifest/dash: throw a MANIFEST_PARSE_ERROR when no AdaptationSet of a given type in a Period is in a compatible codec
1717
+ - ttml: display forbidden characters (such as ">") in a `"native"` `textTrackMode`
1718
+ - ttml: process `xml:space` even if it is not defined at the top level
1719
+ - buffer: perform a better clean-up of previous media in a SourceBuffer when switching
1720
+ audio or text track
1721
+ - manifest/dash: throw a MANIFEST_PARSE_ERROR when no AdaptationSet of a given type in a
1722
+ Period is in a compatible codec
1265
1723
 
1266
1724
  ### Other improvements
1267
1725
 
1268
- - types: export and document main typings used internally such as ILoadVideoOptions (the loadVideo argument)
1269
- - misc: log every fatal errors
1270
- - misc: remove dumb npm inclusion as a project dependency
1271
- - doc: improve architecture documentation
1272
-
1726
+ - types: export and document main typings used internally such as ILoadVideoOptions (the
1727
+ loadVideo argument)
1728
+ - misc: log every fatal errors
1729
+ - misc: remove dumb npm inclusion as a project dependency
1730
+ - doc: improve architecture documentation
1273
1731
 
1274
1732
  ## v3.5.2 (2018-08-06)
1275
1733
 
1276
1734
  ### Bug fixes
1277
1735
 
1278
- - dash: Manage presentationTimeOffset completely (allow advanced multi-period configurations)
1736
+ - dash: Manage presentationTimeOffset completely (allow advanced multi-period
1737
+ configurations)
1279
1738
  - dash: Fix Adaptations bug when the first DASH adaptation was a "main" one
1280
1739
  - smooth: Remove the limitation of a minimum bitrate in Smooth Streaming
1281
1740
  - dash: Fix condition which prevented to play audio-only live DASH streams
@@ -1288,470 +1747,517 @@
1288
1747
  - drm: Add keyId information to the internal Manifest structure
1289
1748
  - typescript: update typescript to v3.0.1
1290
1749
 
1291
-
1292
1750
  ## v3.5.1 (2018-07-11)
1293
1751
 
1294
1752
  ### Bug fixes
1295
1753
 
1296
- - parsers: fix wrong computation of segment time in template index
1297
- - abr: get concerned request in starvation mode
1754
+ - parsers: fix wrong computation of segment time in template index
1755
+ - abr: get concerned request in starvation mode
1298
1756
 
1299
1757
  ## v3.5.0 (2018-07-03)
1300
1758
 
1301
1759
  ### Added
1302
1760
 
1303
- - tools: add ``mediaCapabilitiesProber`` tool as an experimental tool
1304
- - builds: add minimal import with feature selection (allowing cleaner feature switching or lazy-loading)
1305
- - dash: allow multiple "main" adaptation
1306
- - api: add static ``version`` property to the RxPlayer API
1761
+ - tools: add `mediaCapabilitiesProber` tool as an experimental tool
1762
+ - builds: add minimal import with feature selection (allowing cleaner feature switching or
1763
+ lazy-loading)
1764
+ - dash: allow multiple "main" adaptation
1765
+ - api: add static `version` property to the RxPlayer API
1307
1766
 
1308
1767
  ### Bug fixes
1309
1768
 
1310
- - vtt: fix ``line`` setting for vtt tracks in ``"native"`` textTrackMode
1311
- - dash: always play "main" adaptation first
1312
- - misc: don't interfere with a client's RxJS implementation by switching to RxJS 6
1313
- - dash: presentationTimeOffset doesn't have an influence on requested segment anymore
1314
- - smooth/dash: throw a ``"MANIFEST_PARSE_ERROR"`` if no audio and video adaptations/StreamIndex are available in the current content
1769
+ - vtt: fix `line` setting for vtt tracks in `"native"` textTrackMode
1770
+ - dash: always play "main" adaptation first
1771
+ - misc: don't interfere with a client's RxJS implementation by switching to RxJS 6
1772
+ - dash: presentationTimeOffset doesn't have an influence on requested segment anymore
1773
+ - smooth/dash: throw a `"MANIFEST_PARSE_ERROR"` if no audio and video
1774
+ adaptations/StreamIndex are available in the current content
1315
1775
 
1316
1776
  ### Other improvements
1317
1777
 
1318
- - builds: Reduce size of the builds
1319
- - builds: use uglifyJS instead of Closure-compiler
1320
- - builds: update to typescript 2.9
1321
- - rxjs: update to RxJS version 6 (v6.2.1)
1322
- - code: set complete URL in segment's media property
1323
- - demo: add time indicator on the progress bar
1324
- - demo: update fullscreen mode to also display the text track element
1325
- - misc: moved demo server scripts to the respective demo directories
1326
- - misc: moved manifest parsers to the ``src/parsers`` directory
1327
- - misc: moved scripts from ``./tools`` to ``./scripts``
1328
- - misc: moved webpack configs to the root of the project
1329
-
1778
+ - builds: Reduce size of the builds
1779
+ - builds: use uglifyJS instead of Closure-compiler
1780
+ - builds: update to typescript 2.9
1781
+ - rxjs: update to RxJS version 6 (v6.2.1)
1782
+ - code: set complete URL in segment's media property
1783
+ - demo: add time indicator on the progress bar
1784
+ - demo: update fullscreen mode to also display the text track element
1785
+ - misc: moved demo server scripts to the respective demo directories
1786
+ - misc: moved manifest parsers to the `src/parsers` directory
1787
+ - misc: moved scripts from `./tools` to `./scripts`
1788
+ - misc: moved webpack configs to the root of the project
1330
1789
 
1331
1790
  ## v3.4.1 (2018-05-31)
1332
1791
 
1333
1792
  ### Bug fixes
1334
1793
 
1335
- - buffer: fix several bugs happening when calling ``endOfStream`` to announce the end of the current content. Especially prevalent on Chrome.
1336
- - net: use redirected URL as a base for further requests when the manifest request led to a HTTP redirect.
1337
- - vtt/srt: ignore silently (do not throw) when an unknown block has been detected in a vtt or srt file
1338
- - vtt/srt: support styling spans (like b, i and u XML tags) spanning multiple lines
1339
- - api: ``getAvailableTextTracks`` and ``getAvailableAudioTracks`` now always return an array (and never null) as announced in the API documentation
1340
- - api: set default log level to ``"NONE"`` instead of ``"INFO"``
1341
- - misc: remove development-only code from the non-minified code
1794
+ - buffer: fix several bugs happening when calling `endOfStream` to announce the end of the
1795
+ current content. Especially prevalent on Chrome.
1796
+ - net: use redirected URL as a base for further requests when the manifest request led to
1797
+ a HTTP redirect.
1798
+ - vtt/srt: ignore silently (do not throw) when an unknown block has been detected in a vtt
1799
+ or srt file
1800
+ - vtt/srt: support styling spans (like b, i and u XML tags) spanning multiple lines
1801
+ - api: `getAvailableTextTracks` and `getAvailableAudioTracks` now always return an array
1802
+ (and never null) as announced in the API documentation
1803
+ - api: set default log level to `"NONE"` instead of `"INFO"`
1804
+ - misc: remove development-only code from the non-minified code
1342
1805
 
1343
1806
  ### Other improvements
1344
1807
 
1345
- - misc: move some dev dependencies from ``dependencies`` to ``devDependencies`` in ``package.json``
1346
-
1808
+ - misc: move some dev dependencies from `dependencies` to `devDependencies` in
1809
+ `package.json`
1347
1810
 
1348
1811
  ## v3.4.0 (2018-05-17)
1349
1812
 
1350
1813
  ### Added
1351
1814
 
1352
- - eme: allow multiple licenses per content
1353
- - eme: allow different MediaKeys to be attached on multiple media elements
1815
+ - eme: allow multiple licenses per content
1816
+ - eme: allow different MediaKeys to be attached on multiple media elements
1354
1817
 
1355
1818
  ### Bug fixes
1356
1819
 
1357
- - eme: limit simultaneous loaded MediaKeySession to 50 by default (configurable)
1358
- - source-buffer: clean properly the text SourceBuffer on deactivation
1359
- - buffer: perform discontinuity seeks only for native source buffers
1820
+ - eme: limit simultaneous loaded MediaKeySession to 50 by default (configurable)
1821
+ - source-buffer: clean properly the text SourceBuffer on deactivation
1822
+ - buffer: perform discontinuity seeks only for native source buffers
1360
1823
 
1361
1824
  ### Other improvements
1362
1825
 
1363
- - doc: generate documentation pages
1364
- - misc: add sonarqube quality pass
1365
- - code: set a clearer private state for the API
1366
- - tools: update to webpack v4.8.3
1367
- - tools: update to typescript v2.8.3
1368
-
1826
+ - doc: generate documentation pages
1827
+ - misc: add sonarqube quality pass
1828
+ - code: set a clearer private state for the API
1829
+ - tools: update to webpack v4.8.3
1830
+ - tools: update to typescript v2.8.3
1369
1831
 
1370
1832
  ## v3.3.2 (2018-04-17)
1371
1833
 
1372
1834
  ### Bug Fixes
1373
1835
 
1374
- - api: emit SEEKING state instead of BUFFERING when the user seeks to an unbuffered part just after resuming playback
1375
- - api: work around bug found in old versions of Chrome where the ENDED state would never be triggered at the end of the stream
1376
- - api/language: fix bug where an audio or text language would not be switched to on certain conditions in live contents
1377
- - smooth: fix frequent manifest refreshing happening immediately when changing audio/text language
1378
- - eme/error: fix reason string and error message for KEY_STATUS_CHANGE_ERROR
1836
+ - api: emit SEEKING state instead of BUFFERING when the user seeks to an unbuffered part
1837
+ just after resuming playback
1838
+ - api: work around bug found in old versions of Chrome where the ENDED state would never
1839
+ be triggered at the end of the stream
1840
+ - api/language: fix bug where an audio or text language would not be switched to on
1841
+ certain conditions in live contents
1842
+ - smooth: fix frequent manifest refreshing happening immediately when changing audio/text
1843
+ language
1844
+ - eme/error: fix reason string and error message for KEY_STATUS_CHANGE_ERROR
1379
1845
 
1380
1846
  ### Other improvements
1381
1847
 
1382
- - buffer: update download queue immediately when seeking to an already-buffered part, to always prioritize needed segments
1383
- - buffer: schedule segments per level of priority to lower some buffering/seeking/loading time
1384
- - demo: fix "Big Buck Bunny WEBM"'s URL
1385
-
1848
+ - buffer: update download queue immediately when seeking to an already-buffered part, to
1849
+ always prioritize needed segments
1850
+ - buffer: schedule segments per level of priority to lower some buffering/seeking/loading
1851
+ time
1852
+ - demo: fix "Big Buck Bunny WEBM"'s URL
1386
1853
 
1387
1854
  ## v3.3.1 (2018-03-13)
1388
1855
 
1389
1856
  ### Bug Fixes
1390
1857
 
1391
- - misc: fix missing browser API on IE11
1392
- - buffer: end correctly streams which experienced a custom sourcebuffer (text/image) crash
1858
+ - misc: fix missing browser API on IE11
1859
+ - buffer: end correctly streams which experienced a custom sourcebuffer (text/image) crash
1393
1860
 
1394
1861
  ### Other improvements
1395
1862
 
1396
- - tools: support development on windows
1397
-
1863
+ - tools: support development on windows
1398
1864
 
1399
1865
  ## v3.3.0 (2018-03-05)
1400
1866
 
1401
1867
  ### Added
1402
1868
 
1403
- - api: add directfile API to allow the playback of files natively managed by the browser
1869
+ - api: add directfile API to allow the playback of files natively managed by the browser
1404
1870
 
1405
1871
  ### Bug Fixes
1406
1872
 
1407
- - api: fix player state when seeking after the video ended
1408
- - text/api: fix getTextTrack API which could return the current audio track instead
1409
- - text: clean-up custom HTML text track SourceBuffer's buffered when the text track is disabled
1410
-
1873
+ - api: fix player state when seeking after the video ended
1874
+ - text/api: fix getTextTrack API which could return the current audio track instead
1875
+ - text: clean-up custom HTML text track SourceBuffer's buffered when the text track is
1876
+ disabled
1411
1877
 
1412
1878
  ## v3.2.0 (2018-02-23)
1413
1879
 
1414
1880
  ### Added
1415
1881
 
1416
- - dash: Handle multi-periods DASH manifests
1417
- - api: add ``periodChange`` event
1418
- - api: add ``stopAtEnd`` option to the constructor, to deactivate automatic content un-loading when it ends
1419
- - api: add ``manifestLoader`` to the ``transportOptions`` of a ``loadVideo`` call
1882
+ - dash: Handle multi-periods DASH manifests
1883
+ - api: add `periodChange` event
1884
+ - api: add `stopAtEnd` option to the constructor, to deactivate automatic content
1885
+ un-loading when it ends
1886
+ - api: add `manifestLoader` to the `transportOptions` of a `loadVideo` call
1420
1887
 
1421
1888
  ### Bug Fixes
1422
1889
 
1423
- - stream: call ``endOfStream`` for better end detection and to allow the Chrome browser to display the last frames of a video
1424
- - buffer: always play the last possible milliseconds of a content (removed END_OF_PLAY config attribute)
1425
- - eme: workaround a bug found on Chrome where setting a ``keySystems`` option in ``loadVideo`` would always throw on HTTP (not HTTPS) pages.
1426
- - vtt: fix WebVTT parsing when the last line of a WebVTT file is not a new line
1427
- - dash: ignore availabilityStartTime settings for a static MPD
1428
- - buffer: ignore segments for a duration inferior to the MINIMUM_SEGMENT_SIZE (200ms by default) to avoid infinite re-downloading
1890
+ - stream: call `endOfStream` for better end detection and to allow the Chrome browser to
1891
+ display the last frames of a video
1892
+ - buffer: always play the last possible milliseconds of a content (removed END_OF_PLAY
1893
+ config attribute)
1894
+ - eme: workaround a bug found on Chrome where setting a `keySystems` option in `loadVideo`
1895
+ would always throw on HTTP (not HTTPS) pages.
1896
+ - vtt: fix WebVTT parsing when the last line of a WebVTT file is not a new line
1897
+ - dash: ignore availabilityStartTime settings for a static MPD
1898
+ - buffer: ignore segments for a duration inferior to the MINIMUM_SEGMENT_SIZE (200ms by
1899
+ default) to avoid infinite re-downloading
1429
1900
 
1430
1901
  ### Other improvements
1431
1902
 
1432
- - update RxJS to v5.5.6
1433
- - update TypeScript to v2.7.2
1434
-
1903
+ - update RxJS to v5.5.6
1904
+ - update TypeScript to v2.7.2
1435
1905
 
1436
1906
  ## v3.1.0 (2018-01-30)
1437
1907
 
1438
1908
  ### Added
1439
1909
 
1440
- - api: add ``networkConfig`` to ``loadVideo`` options
1441
- - eme: add ``closeSessionsOnStop`` to the ``keySystems`` ``loadVideo`` option
1910
+ - api: add `networkConfig` to `loadVideo` options
1911
+ - eme: add `closeSessionsOnStop` to the `keySystems` `loadVideo` option
1442
1912
 
1443
1913
  ### Bug Fixes
1444
1914
 
1445
- - dash: fix Range request ranges for representations based on a SegmentList index
1446
- - smooth: allows smooth Manifests for non-live contents to begin at a timestamp != 0
1447
-
1915
+ - dash: fix Range request ranges for representations based on a SegmentList index
1916
+ - smooth: allows smooth Manifests for non-live contents to begin at a timestamp != 0
1448
1917
 
1449
1918
  ## v3.0.7 (2018-01-19)
1450
1919
 
1451
1920
  ### Bug fixes
1452
1921
 
1453
- - eme: fix bug which prevented to play encrypted contents on IE11
1454
-
1922
+ - eme: fix bug which prevented to play encrypted contents on IE11
1455
1923
 
1456
1924
  ## v3.0.6 (2018-01-11)
1457
1925
 
1458
1926
  ### Bug Fixes
1459
1927
 
1460
- - buffer: fix issue which could led to multiple video or audio segments being downloaded at the same time
1461
- - dash/text: support MPD AdaptationSet with a "caption" Role as text Adaptations
1462
- - dash/text: remove offset set for subtitles on live contents, which led to unsynchronized subtitles
1463
- - dash: fix issue which could led to segments being re-downloaded too much in a SegmentTemplate scheme
1928
+ - buffer: fix issue which could led to multiple video or audio segments being downloaded
1929
+ at the same time
1930
+ - dash/text: support MPD AdaptationSet with a "caption" Role as text Adaptations
1931
+ - dash/text: remove offset set for subtitles on live contents, which led to unsynchronized
1932
+ subtitles
1933
+ - dash: fix issue which could led to segments being re-downloaded too much in a
1934
+ SegmentTemplate scheme
1464
1935
 
1465
1936
  ### Other improvements
1466
1937
 
1467
- - demo: set "html" textTrackMode by default to have a better stylization of closed captions.
1468
-
1938
+ - demo: set "html" textTrackMode by default to have a better stylization of closed
1939
+ captions.
1469
1940
 
1470
1941
  ## v3.0.5 (2017-12-11)
1471
1942
 
1472
1943
  ### Bug Fixes
1473
1944
 
1474
- - eme: consider unknown errors (e.g. errors coming from the user of the library) as fatal eme errors
1475
-
1945
+ - eme: consider unknown errors (e.g. errors coming from the user of the library) as fatal
1946
+ eme errors
1476
1947
 
1477
1948
  ## v3.0.4 (2017-12-05)
1478
1949
 
1479
1950
  ### Bug Fixes
1480
1951
 
1481
- - text/webvtt: authorize header options without parsing them
1482
- - text/webvtt: authorize timestamps without hours
1952
+ - text/webvtt: authorize header options without parsing them
1953
+ - text/webvtt: authorize timestamps without hours
1483
1954
 
1484
1955
  ### Other improvements
1485
1956
 
1486
- - misc: remove multiple unneeded assertions in DEV mode
1487
- - misc: update DEV mode default debug level from DEBUG to INFO
1488
-
1957
+ - misc: remove multiple unneeded assertions in DEV mode
1958
+ - misc: update DEV mode default debug level from DEBUG to INFO
1489
1959
 
1490
1960
  ## v3.0.3 (2017-11-24)
1491
1961
 
1492
1962
  ### Bug Fixes
1493
1963
 
1494
- - text/ttml: apply correctly a style if directly set on an attribute
1495
- - eme: load new video even if the last EME clean-up failed
1964
+ - text/ttml: apply correctly a style if directly set on an attribute
1965
+ - eme: load new video even if the last EME clean-up failed
1496
1966
 
1497
1967
  ### Other improvements
1498
1968
 
1499
- - misc: set better work arround for typescript issue [20104](https://github.com/Microsoft/TypeScript/issues/20104) to make building npm scripts usable again
1500
- - tools: update the update-version npm script
1501
- - demo: ``npm run start`` and ``npm run standalone`` now build the rx-player in the "development" environment
1502
- - tools: add more logs in DEBUG mode
1503
-
1969
+ - misc: set better work arround for typescript issue
1970
+ [20104](https://github.com/Microsoft/TypeScript/issues/20104) to make building npm
1971
+ scripts usable again
1972
+ - tools: update the update-version npm script
1973
+ - demo: `npm run start` and `npm run standalone` now build the rx-player in the
1974
+ "development" environment
1975
+ - tools: add more logs in DEBUG mode
1504
1976
 
1505
1977
  ## v3.0.2 (2017-11-17)
1506
1978
 
1507
1979
  ### Bug Fixes
1508
1980
 
1509
- - misc: work around typescript issue [20104](https://github.com/Microsoft/TypeScript/issues/20104) temporarly to launch in Chrome in HTTP
1510
-
1981
+ - misc: work around typescript issue
1982
+ [20104](https://github.com/Microsoft/TypeScript/issues/20104) temporarly to launch in
1983
+ Chrome in HTTP
1511
1984
 
1512
1985
  ## v3.0.1 (2017-11-17)
1513
1986
 
1514
1987
  ### Bug Fixes
1515
1988
 
1516
- - abr: adopt a less agressive strategy to avoid re-bufferings
1517
- - smooth: avoid most of the manifest refresh requests
1989
+ - abr: adopt a less agressive strategy to avoid re-bufferings
1990
+ - smooth: avoid most of the manifest refresh requests
1518
1991
 
1519
1992
  ### Other improvements
1520
1993
 
1521
- - Switch codebase to TypeScript
1522
- - Add Travis CI
1523
-
1994
+ - Switch codebase to TypeScript
1995
+ - Add Travis CI
1524
1996
 
1525
1997
  ## v3.0.0 (2017-11-10)
1526
1998
 
1527
1999
  ### Added
1528
2000
 
1529
- - misc: add possibility to do custom builds through environment variables, to remove unwanted features from minified code.
1530
- - languages: add support for segmented VTT subtitles
1531
- - languages/dash: add support for plain text TTML, SAMI, SRT, VTT and MP4-embedded VTT subtitles in DASH manifests
1532
- - languages/smooth: add support for MP4-embedded VTT subtitles in Smooth manifests
1533
- - languages: add possibility to show fragmented or not TTML, SAMI, SRT and VTT text tracks in a <track> element, even for browser that do not support the VTTCue API
1534
- - languages: add possibility to show TTML, SRT, VTT and SAMI text tracks in HTML tags for richer stylisation.
1535
- - api: add ``textTrackElement`` option to ``loadVideo``
1536
- - api: add ``textTrackMode`` option to ``loadVideo``
1537
- - api: add ``nativeTextTracksChange`` event
1538
- - eme: it is now possible to directly set the reverse domain name of the wanted key system in the ``type`` property of ``loadVideo``'s ``keySystems`` option.
1539
- - api: add property ``percentage`` to the ``startAt`` argument of ``loadVideo``.
1540
- - abr: add ``bitrateEstimationChange`` event
1541
- - api: add ``LogLevel`` static property
1542
- - api: a Date object can now be given to the ``loadVideo`` argument ``startAt.wallClockTime``. It will be automatically converted into seconds.
1543
- - languages: add ``normalizedLanguage`` property in manifest-related-APIs to expose the ISO 639-3 language code of the audio and text tracks
1544
- - languages: add ``normalized`` property in language-related-API to expose the ISO 639-3 language code of the audio and text tracks
1545
- - loadVideo: add ``codecs`` property to supplementaryTextTracks
1546
- - api: add ``wantedBufferAhead`` constructor option
1547
- - api: add ``maxBufferAhead`` constructor option
1548
- - api: add ``maxBufferBehind`` constructor option
1549
- - api: add ``getVideoBufferGap`` method
1550
- - api: add ``isMute`` method
1551
- - api: add ``getManualAudioBitrate`` method
1552
- - api: add ``getManualVideoBitrate`` method
1553
- - config: add a global config file (src/config.js) to easily tweak the player behavior
2001
+ - misc: add possibility to do custom builds through environment variables, to remove
2002
+ unwanted features from minified code.
2003
+ - languages: add support for segmented VTT subtitles
2004
+ - languages/dash: add support for plain text TTML, SAMI, SRT, VTT and MP4-embedded VTT
2005
+ subtitles in DASH manifests
2006
+ - languages/smooth: add support for MP4-embedded VTT subtitles in Smooth manifests
2007
+ - languages: add possibility to show fragmented or not TTML, SAMI, SRT and VTT text tracks
2008
+ in a <track> element, even for browser that do not support the VTTCue API
2009
+ - languages: add possibility to show TTML, SRT, VTT and SAMI text tracks in HTML tags for
2010
+ richer stylisation.
2011
+ - api: add `textTrackElement` option to `loadVideo`
2012
+ - api: add `textTrackMode` option to `loadVideo`
2013
+ - api: add `nativeTextTracksChange` event
2014
+ - eme: it is now possible to directly set the reverse domain name of the wanted key system
2015
+ in the `type` property of `loadVideo`'s `keySystems` option.
2016
+ - api: add property `percentage` to the `startAt` argument of `loadVideo`.
2017
+ - abr: add `bitrateEstimationChange` event
2018
+ - api: add `LogLevel` static property
2019
+ - api: a Date object can now be given to the `loadVideo` argument `startAt.wallClockTime`.
2020
+ It will be automatically converted into seconds.
2021
+ - languages: add `normalizedLanguage` property in manifest-related-APIs to expose the ISO
2022
+ 639-3 language code of the audio and text tracks
2023
+ - languages: add `normalized` property in language-related-API to expose the ISO 639-3
2024
+ language code of the audio and text tracks
2025
+ - loadVideo: add `codecs` property to supplementaryTextTracks
2026
+ - api: add `wantedBufferAhead` constructor option
2027
+ - api: add `maxBufferAhead` constructor option
2028
+ - api: add `maxBufferBehind` constructor option
2029
+ - api: add `getVideoBufferGap` method
2030
+ - api: add `isMute` method
2031
+ - api: add `getManualAudioBitrate` method
2032
+ - api: add `getManualVideoBitrate` method
2033
+ - config: add a global config file (src/config.js) to easily tweak the player behavior
1554
2034
 
1555
2035
  ### Changed
1556
2036
 
1557
- - languages: switch from ISO 639-2 to ISO 639-3 language codes in various APIs
1558
- - languages: the ``language`` property returned by language and manifest related APIs now reflect the exact language as set in the manifest
1559
- - api: ``setVideoBitrate`` can now be called even when no content is playing
1560
- - api: ``setAudioBitrate`` can now be called even when no content is playing
1561
- - api: ``setVideoBitrate`` can now be called even when no video track has the exact same bitrate
1562
- - api: ``setAudioBitrate`` can now be called even when no audio track has the exact same bitrate
1563
- - api: giving a number to ``seekTo`` now has the same effect than setting a position option in argument (``seekTo({ position }) === seekTo(position)``)
1564
- - api: ``getUrl`` now do not throw if no content is playing
1565
- - api: ``isLive`` now do not throw if no content is playing
1566
- - api: ``loadVideo`` does not return anything anymore
1567
- - api: private (undocumented) variables have been isolated on a player instance to a ``_priv`` object.
1568
- - api: the constructor option ``throttleWhenHidden`` is now set to false by default
1569
- - api: the constructor option ``limitVideoWidth`` is now set to false by default
2037
+ - languages: switch from ISO 639-2 to ISO 639-3 language codes in various APIs
2038
+ - languages: the `language` property returned by language and manifest related APIs now
2039
+ reflect the exact language as set in the manifest
2040
+ - api: `setVideoBitrate` can now be called even when no content is playing
2041
+ - api: `setAudioBitrate` can now be called even when no content is playing
2042
+ - api: `setVideoBitrate` can now be called even when no video track has the exact same
2043
+ bitrate
2044
+ - api: `setAudioBitrate` can now be called even when no audio track has the exact same
2045
+ bitrate
2046
+ - api: giving a number to `seekTo` now has the same effect than setting a position option
2047
+ in argument (`seekTo({ position }) === seekTo(position)`)
2048
+ - api: `getUrl` now do not throw if no content is playing
2049
+ - api: `isLive` now do not throw if no content is playing
2050
+ - api: `loadVideo` does not return anything anymore
2051
+ - api: private (undocumented) variables have been isolated on a player instance to a
2052
+ `_priv` object.
2053
+ - api: the constructor option `throttleWhenHidden` is now set to false by default
2054
+ - api: the constructor option `limitVideoWidth` is now set to false by default
1570
2055
 
1571
2056
  ### Removed
1572
2057
 
1573
- - api: remove ``defaultAudioTrack`` constructor option
1574
- - api: remove ``defaultTextTrack`` constructor option
1575
- - api: remove ``transportOptions`` constructor option
1576
- - api: remove ``transport`` constructor option
1577
- - api: remove ``nativeTextTrackChange`` event in favor of ``nativeTextTracksChange`` event (notice the "s")
1578
- - api: remove ``goToStart`` method
1579
- - api: remove ``getStartTime`` method
1580
- - api: remove ``getEndTime`` method
1581
- - api: remove ``toggleDebug`` method
1582
- - api: remove ``hideDebug`` method
1583
- - api: remove ``showDebug`` method
1584
- - api: remove ``getDebug`` method
1585
- - api: remove ``getImageTrack`` method
1586
- - api: remove ``setVideoBufferSize`` method in favor of ``setWantedBufferAhead`` method
1587
- - api: remove ``getVideoBufferSize`` method in favor of ``getWantedBufferAhead`` method
1588
- - api: remove ``setAudioBufferSize`` method in favor of ``setWantedBufferAhead`` method
1589
- - api: remove ``getAudioBufferSize`` method in favor of ``getWantedBufferAhead`` method
1590
- - api: remove ``maximumBufferTime`` property from ``positionUpdate`` events
1591
- - api: remove ``getCurrentTime`` method
1592
- - api: remove ``asObservable`` method
1593
- - api: remove ``loadVideo`` option ``manifests`` in favor of ``url`` and ``keySystems`` options
1594
- - api: remove ``loadVideo`` option ``subtitles`` in favor of ``supplementaryTextTracks`` option
1595
- - api: remove ``loadVideo`` option ``images`` in favor of ``supplementaryImageTracks`` option
1596
- - api: remove constructor option ``initVideoBitrate`` in favor of ``initialVideoBitrate`` option
1597
- - api: remove constructor option ``initAudioBitrate`` in favor of ``initialVideoBitrate`` option
1598
- - api: remove constructor option ``defaultLanguage`` in favor of ``defaultAudioTrack`` option
1599
- - api: remove constructor option ``defaultSubtitle`` in favor of ``defaultTextTrack`` option
1600
- - position: remove ``subtitleChange`` event
1601
- - position: remove ``languageChange`` event
1602
- - position: remove ``progress`` event
1603
- - position: remove ``currentTimeChange`` event in favor of ``positionUpdate`` event
1604
- - adaptive: remove ``getMetrics`` method
1605
- - adaptive: remove ``getAverageBitrates`` method
1606
- - adaptive: remove ``getVideoMaxBitrate`` method in favor of ``getMaxVideoBitrate`` method
1607
- - adaptive: remove ``getAudioMaxBitrate`` method in favor of ``getMaxAudioBitrate`` method
1608
- - errors: remove static method ``getErrorTypes`` in favor of the static property ``errorTypes``
1609
- - errors: remove static method ``getErrorCodes`` in favor of the static property ``errorCodes``
1610
- - languages: remove ``normalizeLanguageCode`` method
1611
- - languages: remove ``getAvailableLanguages`` method
1612
- - languages: remove ``getAvailableSubtitles`` method
1613
- - languages: remove ``isLanguageAvailable`` method
1614
- - languages: remove ``isSubtitleAvailable`` method
1615
- - languages: remove ``getLanguage`` method
1616
- - languages: remove ``getSubtitle`` method
1617
- - languages: remove ``setLanguage`` method
1618
- - languages: remove ``setSubtitle`` method
2058
+ - api: remove `defaultAudioTrack` constructor option
2059
+ - api: remove `defaultTextTrack` constructor option
2060
+ - api: remove `transportOptions` constructor option
2061
+ - api: remove `transport` constructor option
2062
+ - api: remove `nativeTextTrackChange` event in favor of `nativeTextTracksChange` event
2063
+ (notice the "s")
2064
+ - api: remove `goToStart` method
2065
+ - api: remove `getStartTime` method
2066
+ - api: remove `getEndTime` method
2067
+ - api: remove `toggleDebug` method
2068
+ - api: remove `hideDebug` method
2069
+ - api: remove `showDebug` method
2070
+ - api: remove `getDebug` method
2071
+ - api: remove `getImageTrack` method
2072
+ - api: remove `setVideoBufferSize` method in favor of `setWantedBufferAhead` method
2073
+ - api: remove `getVideoBufferSize` method in favor of `getWantedBufferAhead` method
2074
+ - api: remove `setAudioBufferSize` method in favor of `setWantedBufferAhead` method
2075
+ - api: remove `getAudioBufferSize` method in favor of `getWantedBufferAhead` method
2076
+ - api: remove `maximumBufferTime` property from `positionUpdate` events
2077
+ - api: remove `getCurrentTime` method
2078
+ - api: remove `asObservable` method
2079
+ - api: remove `loadVideo` option `manifests` in favor of `url` and `keySystems` options
2080
+ - api: remove `loadVideo` option `subtitles` in favor of `supplementaryTextTracks` option
2081
+ - api: remove `loadVideo` option `images` in favor of `supplementaryImageTracks` option
2082
+ - api: remove constructor option `initVideoBitrate` in favor of `initialVideoBitrate`
2083
+ option
2084
+ - api: remove constructor option `initAudioBitrate` in favor of `initialVideoBitrate`
2085
+ option
2086
+ - api: remove constructor option `defaultLanguage` in favor of `defaultAudioTrack` option
2087
+ - api: remove constructor option `defaultSubtitle` in favor of `defaultTextTrack` option
2088
+ - position: remove `subtitleChange` event
2089
+ - position: remove `languageChange` event
2090
+ - position: remove `progress` event
2091
+ - position: remove `currentTimeChange` event in favor of `positionUpdate` event
2092
+ - adaptive: remove `getMetrics` method
2093
+ - adaptive: remove `getAverageBitrates` method
2094
+ - adaptive: remove `getVideoMaxBitrate` method in favor of `getMaxVideoBitrate` method
2095
+ - adaptive: remove `getAudioMaxBitrate` method in favor of `getMaxAudioBitrate` method
2096
+ - errors: remove static method `getErrorTypes` in favor of the static property
2097
+ `errorTypes`
2098
+ - errors: remove static method `getErrorCodes` in favor of the static property
2099
+ `errorCodes`
2100
+ - languages: remove `normalizeLanguageCode` method
2101
+ - languages: remove `getAvailableLanguages` method
2102
+ - languages: remove `getAvailableSubtitles` method
2103
+ - languages: remove `isLanguageAvailable` method
2104
+ - languages: remove `isSubtitleAvailable` method
2105
+ - languages: remove `getLanguage` method
2106
+ - languages: remove `getSubtitle` method
2107
+ - languages: remove `setLanguage` method
2108
+ - languages: remove `setSubtitle` method
1619
2109
 
1620
2110
  ### Bug Fixes:
1621
2111
 
1622
- - dash: fix bug that prevented to play most dash contents with SegmentTemplate-based manifests
1623
- - dash: it's now possible to play SegmentTimeline-based contents with a numbering scheme
1624
- - dash/text: calculate the text track time offset for dynamic DASH contents (prevented most text tracks from live DASH contents to be displayed)
1625
- - eme: fix EME issues when loading multiple videos in IE/Edge
1626
- - api: The state of the player when ready to play with autoPlay === false is now ``"LOADED"`` and not ``"PAUSED"``
1627
- - api: fix infinite loading bug when a new content is synchronously launched as soon as the previous one is ended or fell on error
1628
- - dash: allow absolute BaseURL in Periods
1629
- - languages: avoid excessive re-downloads if a ``supplementaryTextTracks`` is provided and either a ``maxBufferBehind`` or a ``maxBufferAhead`` is set.
1630
- - eme: the ``reason`` for the eme error ``KEY_STATUS_CHANGE_ERROR`` is now correctly filled in
1631
- - eme: do not set widevine robustnesses for non-widevine key systems
1632
- - languages: fix bug which led the text buffer to _crash_ when the ``wantedBufferBehind`` option is set
1633
- - languages: fix bug which led to TextTracks chunks being re-downloaded multiple times
1634
- - speed: fix playback rate bug when setting it while the player is stalled
1635
- - smooth: fix "fallback" callback in the segmentLoader API for smooth contents.
1636
- - smooth: fix some minor risks of infinite rebuffering for live contents, when the isobmff's tfrf box is not well parsed.
1637
- - buffer: avoid infinite player rebuffering when the manifest is not exactly aligned with the real duration of the content
1638
- - buffer: avoid multiple causes of infinite player rebuffering by managing segment garbage collection
1639
- - languages: getAudioTrack now always returns the currently set audio track
1640
- - languages: getTextTrack now always returns the currently set text track
2112
+ - dash: fix bug that prevented to play most dash contents with SegmentTemplate-based
2113
+ manifests
2114
+ - dash: it's now possible to play SegmentTimeline-based contents with a numbering scheme
2115
+ - dash/text: calculate the text track time offset for dynamic DASH contents (prevented
2116
+ most text tracks from live DASH contents to be displayed)
2117
+ - eme: fix EME issues when loading multiple videos in IE/Edge
2118
+ - api: The state of the player when ready to play with autoPlay === false is now
2119
+ `"LOADED"` and not `"PAUSED"`
2120
+ - api: fix infinite loading bug when a new content is synchronously launched as soon as
2121
+ the previous one is ended or fell on error
2122
+ - dash: allow absolute BaseURL in Periods
2123
+ - languages: avoid excessive re-downloads if a `supplementaryTextTracks` is provided and
2124
+ either a `maxBufferBehind` or a `maxBufferAhead` is set.
2125
+ - eme: the `reason` for the eme error `KEY_STATUS_CHANGE_ERROR` is now correctly filled in
2126
+ - eme: do not set widevine robustnesses for non-widevine key systems
2127
+ - languages: fix bug which led the text buffer to _crash_ when the `wantedBufferBehind`
2128
+ option is set
2129
+ - languages: fix bug which led to TextTracks chunks being re-downloaded multiple times
2130
+ - speed: fix playback rate bug when setting it while the player is stalled
2131
+ - smooth: fix "fallback" callback in the segmentLoader API for smooth contents.
2132
+ - smooth: fix some minor risks of infinite rebuffering for live contents, when the
2133
+ isobmff's tfrf box is not well parsed.
2134
+ - buffer: avoid infinite player rebuffering when the manifest is not exactly aligned with
2135
+ the real duration of the content
2136
+ - buffer: avoid multiple causes of infinite player rebuffering by managing segment garbage
2137
+ collection
2138
+ - languages: getAudioTrack now always returns the currently set audio track
2139
+ - languages: getTextTrack now always returns the currently set text track
1641
2140
 
1642
2141
  ### Other improvements
1643
2142
 
1644
- - manifest: improve manifest refreshing logic, by not downloading it when unnecessary
1645
- - smooth: begin to play arround 10s before the live edge instead of 20 seconds for smooth contents
1646
- - network: the backoff algorithm has been refactored for better network error resilience
1647
- - adaptive: improved ABR management to provide a better, faster and more stable bandwidth estimation
1648
- - adaptive: add strategies for abrupt changes of bandwidth to avoid excessive re-buffering on network fluctuations
1649
- - adaptive: the adaptive algorithm now take into account the current playback rate
1650
- - doc: added file architecture documentation
1651
- - tests: fixed and added integration tests
1652
- - demo: the demo now manages most languages defined by in the ISO 639-3 standard
1653
-
2143
+ - manifest: improve manifest refreshing logic, by not downloading it when unnecessary
2144
+ - smooth: begin to play arround 10s before the live edge instead of 20 seconds for smooth
2145
+ contents
2146
+ - network: the backoff algorithm has been refactored for better network error resilience
2147
+ - adaptive: improved ABR management to provide a better, faster and more stable bandwidth
2148
+ estimation
2149
+ - adaptive: add strategies for abrupt changes of bandwidth to avoid excessive re-buffering
2150
+ on network fluctuations
2151
+ - adaptive: the adaptive algorithm now take into account the current playback rate
2152
+ - doc: added file architecture documentation
2153
+ - tests: fixed and added integration tests
2154
+ - demo: the demo now manages most languages defined by in the ISO 639-3 standard
1654
2155
 
1655
2156
  ## v2.3.2 (2017-07-25)
1656
2157
 
1657
2158
  ### Bug Fixes
1658
2159
 
1659
- - eme: update EME workflow to improve support (especially chromebooks)
1660
-
2160
+ - eme: update EME workflow to improve support (especially chromebooks)
1661
2161
 
1662
2162
  ## v2.3.1 (2017-07-10)
1663
2163
 
1664
2164
  ### Bug Fixes
1665
2165
 
1666
- - buffer: improve buffer ranges "bookeeping" logic to avoid re-downloading the same segments
1667
-
2166
+ - buffer: improve buffer ranges "bookeeping" logic to avoid re-downloading the same
2167
+ segments
1668
2168
 
1669
2169
  ## v2.3.0 (2017-07-07)
1670
2170
 
1671
2171
  ### Added
1672
2172
 
1673
- - eme: add audioRobustnesses to loadVideo's keySystems argument (/!\ undocumented API - can break without official notice)
1674
- - eme: add videoRobustnesses to loadVideo's keySystems argument (/!\ undocumented API - can break without official notice)
1675
- - eme: add serverCertificate to loadVideo's keySystems argument
1676
- - buffer: add {set,get}MaxBufferAhead methods
1677
- - buffer: add {set,get}MaxBufferBehind methods
1678
- - buffer: add {set,get}WantedBufferAhead methods replacing the deprecated buffer size methods
2173
+ - eme: add audioRobustnesses to loadVideo's keySystems argument (/!\ undocumented API -
2174
+ can break without official notice)
2175
+ - eme: add videoRobustnesses to loadVideo's keySystems argument (/!\ undocumented API -
2176
+ can break without official notice)
2177
+ - eme: add serverCertificate to loadVideo's keySystems argument
2178
+ - buffer: add {set,get}MaxBufferAhead methods
2179
+ - buffer: add {set,get}MaxBufferBehind methods
2180
+ - buffer: add {set,get}WantedBufferAhead methods replacing the deprecated buffer size
2181
+ methods
1679
2182
 
1680
2183
  ### Deprecated
1681
2184
 
1682
- - setVideoBufferSize has been deprecated in favor of setWantedBufferAhead
1683
- - getVideoBufferSize has been deprecated in favor of getWantedBufferAhead
1684
- - setAudioBufferSize has been deprecated in favor of setWantedBufferAhead
1685
- - getAudioBufferSize has been deprecated in favor of getWantedBufferAhead
2185
+ - setVideoBufferSize has been deprecated in favor of setWantedBufferAhead
2186
+ - getVideoBufferSize has been deprecated in favor of getWantedBufferAhead
2187
+ - setAudioBufferSize has been deprecated in favor of setWantedBufferAhead
2188
+ - getAudioBufferSize has been deprecated in favor of getWantedBufferAhead
1686
2189
 
1687
2190
  ### Bug Fixes
1688
2191
 
1689
- - buffer: avoid some infinite re-buffering by re-calculating buffer ranges at every tick
1690
- - eme: add eme support for some legacy browser without video or audio capabilities
1691
- - general: add support for older browsers (which does not support array.prototype.{find,findIndex,includes})
1692
- - general: use Object.assign ponyfill instead of the previous polyfill to avoid malicious interferences with other codebases
1693
-
2192
+ - buffer: avoid some infinite re-buffering by re-calculating buffer ranges at every tick
2193
+ - eme: add eme support for some legacy browser without video or audio capabilities
2194
+ - general: add support for older browsers (which does not support
2195
+ array.prototype.{find,findIndex,includes})
2196
+ - general: use Object.assign ponyfill instead of the previous polyfill to avoid malicious
2197
+ interferences with other codebases
1694
2198
 
1695
2199
  ## v2.2.1 (2017-06-27)
1696
2200
 
1697
2201
  ### Bug fixes
1698
2202
 
1699
- - adaptive: fix width limitation bug. Impacted limitVideoWidth + setMaxVideoBitrate APIs
1700
-
2203
+ - adaptive: fix width limitation bug. Impacted limitVideoWidth + setMaxVideoBitrate APIs
1701
2204
 
1702
2205
  ## v2.2.0 (2017-06-19)
1703
2206
 
1704
2207
  ### Added
1705
2208
 
1706
- - position: add maximumBufferPosition to the positionUpdate event's payload to replace the previous "liveGap" from currentTimeChange event
2209
+ - position: add maximumBufferPosition to the positionUpdate event's payload to replace the
2210
+ previous "liveGap" from currentTimeChange event
1707
2211
 
1708
2212
  ### Bug fixes
1709
2213
 
1710
- - upgrade to rxjs 5.4.1 to escape memory leak
1711
- - position: "liveGap" from currentTimeChange event now means the difference to the maximum "bufferisable" position to keep compatibility with the old API
1712
-
2214
+ - upgrade to rxjs 5.4.1 to escape memory leak
2215
+ - position: "liveGap" from currentTimeChange event now means the difference to the maximum
2216
+ "bufferisable" position to keep compatibility with the old API
1713
2217
 
1714
2218
  ## v2.1.3 (2017-06-15)
1715
2219
 
1716
2220
  ### Bug fixes
1717
2221
 
1718
- - api: fix timeFragment.start handling
1719
-
2222
+ - api: fix timeFragment.start handling
1720
2223
 
1721
2224
  ## v2.1.2 (2017-06-14)
1722
2225
 
1723
2226
  ### Bug fixes
1724
2227
 
1725
- - stream: the BUFFER_APPEND_ERROR error, happening when a SourceBuffer.appendBuffer failed for an unknown reason, is now a fatal error for audio/video segments
1726
- - eme: fix rxjs timeout management which prevented from playing DRM-protected contents
1727
- - api: add securities to avoid useless errors to be thrown when the player (already) encounter an error
1728
- - position: fix bug which prevented to seek at the beginning of the content with the new api
1729
- - position: fix typo which prevented to perform absolute seeks with the new api
1730
- - buffer: automatically seek if there is discontinuity in a live stream
1731
- - adaptive: take the lowest bitrate (instead of the initial/default one) when the player is not displayed/too small
1732
-
2228
+ - stream: the BUFFER_APPEND_ERROR error, happening when a SourceBuffer.appendBuffer failed
2229
+ for an unknown reason, is now a fatal error for audio/video segments
2230
+ - eme: fix rxjs timeout management which prevented from playing DRM-protected contents
2231
+ - api: add securities to avoid useless errors to be thrown when the player (already)
2232
+ encounter an error
2233
+ - position: fix bug which prevented to seek at the beginning of the content with the new
2234
+ api
2235
+ - position: fix typo which prevented to perform absolute seeks with the new api
2236
+ - buffer: automatically seek if there is discontinuity in a live stream
2237
+ - adaptive: take the lowest bitrate (instead of the initial/default one) when the player
2238
+ is not displayed/too small
1733
2239
 
1734
2240
  ## v2.1.1 (2017-06-02)
1735
2241
 
1736
2242
  ### Bug fixes
1737
2243
 
1738
- - hotfix: fixed rxjs imports
1739
- - hotfix: the player can now be imported through a commonjs require
1740
- - hotfix: the player could not play if the video element's width was too short
1741
- - manifest: segment id were not always the same on a segmentLoader and on the API calls.
1742
- - adaptive: setVideoBitrate now throw a more meaningful error if no content is playing
1743
- - adaptive: setAudioBitrate now throw a more meaningful error if no content is playing
1744
- - language: setSubtitle now throw a more meaningful error if no content is playing
1745
- - language: setLanguage now throw a more meaningful error if no content is playing
1746
- - language: isLanguageAvailable do not throw and return false if no content is playing
1747
- - language: isSubtitleAvailable do not throw and return false if no content is playing
2244
+ - hotfix: fixed rxjs imports
2245
+ - hotfix: the player can now be imported through a commonjs require
2246
+ - hotfix: the player could not play if the video element's width was too short
2247
+ - manifest: segment id were not always the same on a segmentLoader and on the API calls.
2248
+ - adaptive: setVideoBitrate now throw a more meaningful error if no content is playing
2249
+ - adaptive: setAudioBitrate now throw a more meaningful error if no content is playing
2250
+ - language: setSubtitle now throw a more meaningful error if no content is playing
2251
+ - language: setLanguage now throw a more meaningful error if no content is playing
2252
+ - language: isLanguageAvailable do not throw and return false if no content is playing
2253
+ - language: isSubtitleAvailable do not throw and return false if no content is playing
1748
2254
 
1749
2255
  ### Other improvements
1750
2256
 
1751
- - api: deprecated api now only warn once
1752
- - tests: integration tests have been added
1753
- - manifest: the manifest object and the management of its index has been refactored for future improvements
1754
-
2257
+ - api: deprecated api now only warn once
2258
+ - tests: integration tests have been added
2259
+ - manifest: the manifest object and the management of its index has been refactored for
2260
+ future improvements
1755
2261
 
1756
2262
  ## v2.1.0 (2017-05-29)
1757
2263
 
@@ -1774,10 +2280,12 @@
1774
2280
  - api: add getWallClockTime method
1775
2281
  - manifest: add getCurrentRepresentations method
1776
2282
  - manifest: add getCurrentAdaptations method
1777
- - api: add throttleWhenHidden option to constructor (to disable throttling when the current page is hidden for an extended time)
1778
- - api: add limitVideoWidth option to constructor (to disable throttling to match the video element's width)
2283
+ - api: add throttleWhenHidden option to constructor (to disable throttling when the
2284
+ current page is hidden for an extended time)
2285
+ - api: add limitVideoWidth option to constructor (to disable throttling to match the video
2286
+ element's width)
1779
2287
  - api: add initialAudioBitrate and initialVideoBitrate to constructor's options
1780
- - api: add defaultTextTrack and defaultAudioTrack to loadVideo and constructor's options
2288
+ - api: add defaultTextTrack and defaultAudioTrack to loadVideo and constructor's options
1781
2289
  - languages: add getAvailableAudioTracks method with audio description support
1782
2290
  - languages: add getAvailableTextTracks method with closed caption support
1783
2291
  - languages: add getAudioTrack method with audio description support
@@ -1790,7 +2298,8 @@
1790
2298
 
1791
2299
  ### Deprecated
1792
2300
 
1793
- - position: the timeFragment API is deprecated (loadVideo's timeFragment argument, getStartTime, getEndTime and goToStart)
2301
+ - position: the timeFragment API is deprecated (loadVideo's timeFragment argument,
2302
+ getStartTime, getEndTime and goToStart)
1794
2303
  - api: currentTimeChange event is replaced by the positionUpdate event
1795
2304
  - api: progress event is deprecated and not replaced
1796
2305
  - api: getImageTrack is replaced by the imageTrackUpdate event
@@ -1812,10 +2321,14 @@
1812
2321
  - api: using setFullscreen(false) is replaced by exitFullscreen
1813
2322
  - api: getErrorTypes method has been deprecated in favor of the ErrorTypes property
1814
2323
  - api: getErrorCodes method has been deprecated in favor of the ErrorCodes property
1815
- - languages: initAudioBitrate option in constructor is deprecated in favor of initialAudioBitrate
1816
- - languages: initVideoBitrate option in constructor is deprecated in favor of initialVideoBitrate
1817
- - languages: defaultSubtitle option in constructor and loadVideo is deprecated in favor of defaultTextTrack
1818
- - languages: defaultLanguage option in constructor and loadVideo is deprecated in favor of defaultAudioTrack
2324
+ - languages: initAudioBitrate option in constructor is deprecated in favor of
2325
+ initialAudioBitrate
2326
+ - languages: initVideoBitrate option in constructor is deprecated in favor of
2327
+ initialVideoBitrate
2328
+ - languages: defaultSubtitle option in constructor and loadVideo is deprecated in favor of
2329
+ defaultTextTrack
2330
+ - languages: defaultLanguage option in constructor and loadVideo is deprecated in favor of
2331
+ defaultAudioTrack
1819
2332
  - languages: getAvailableLanguages is deprecated in favor of getAvailableAudioTracks
1820
2333
  - languages: getAvailableSubtitles is deprecated in favor of getAvailableTextTracks
1821
2334
  - languages: getLanguage is deprecated in favor of getAudioTrack
@@ -1827,14 +2340,17 @@
1827
2340
 
1828
2341
  ### Bug fixes
1829
2342
 
1830
- - adaptive: fix a bug where it was impossible to switch between multiple videos representations with the same width
2343
+ - adaptive: fix a bug where it was impossible to switch between multiple videos
2344
+ representations with the same width
1831
2345
  - languages: fix bug where the user could switch to a closed caption track unknowngly
1832
2346
  - languages: fix bug where the user could switch to an audio description track unknowngly
1833
2347
  - manifest: improved and documented getManifest's return value
1834
- - manifest: defined and documented a generic manifest object structure (slowly replacing the old object).
2348
+ - manifest: defined and documented a generic manifest object structure (slowly replacing
2349
+ the old object).
1835
2350
  - images: image playlists are now not re-fetched if the request failed (no retry)
1836
2351
  - dash: lowered security time raising the startup time for SegmentTemplate-based contents
1837
- - api: getLanguage/getSubtitle returns now the language of the last chunk received, not the last set
2352
+ - api: getLanguage/getSubtitle returns now the language of the last chunk received, not
2353
+ the last set
1838
2354
  - manifest: fixed manifest-refreshing logic (mainly for live contents)
1839
2355
  - dash: fixed support for dash SegmentTimeline-based contents
1840
2356
  - api: differentiate unset default languages from empty strings
@@ -1856,12 +2372,10 @@
1856
2372
  - demo: The Demo has been completely rewritten
1857
2373
  - demo: The bundle has been removed from the code committed.
1858
2374
 
1859
-
1860
2375
  ## v2.0.0-alpha1 (2016-02-09)
1861
2376
 
1862
2377
  - RxJS: use RxJS5.beta1
1863
- - Promise: remove es6-promise dependency and stop relying completely
1864
- on promises
2378
+ - Promise: remove es6-promise dependency and stop relying completely on promises
1865
2379
 
1866
2380
  - eme: improve IE11 and Edge support on EME
1867
2381
  - smooth: activate patch in place on non IE targets for less memory allocation
@@ -1875,7 +2389,6 @@
1875
2389
 
1876
2390
  - lint: add new rules (no-var, prefer-const, enforce brackets)
1877
2391
 
1878
-
1879
2392
  ## v1.4.0 (2016-01-26)
1880
2393
 
1881
2394
  ### Added
@@ -1887,7 +2400,7 @@
1887
2400
 
1888
2401
  ### Bug fixes
1889
2402
 
1890
- - player: fix getAvailable* for direct files
2403
+ - player: fix getAvailable\* for direct files
1891
2404
  - player: fix subtle race on loadedmetadata after retry
1892
2405
  - eme: remove compat code for old chrome versions with eme flags
1893
2406
  - eme: always ask for temporary session type
@@ -1895,19 +2408,16 @@
1895
2408
  - eme: improve persistent license support and compat
1896
2409
  - smooth: fix index timeline if no duration
1897
2410
 
1898
- Demo
1899
- ----
2411
+ ## Demo
1900
2412
 
1901
2413
  - allow to pass query parameters
1902
2414
 
1903
-
1904
2415
  ## v1.3.1 (2015-10-14)
1905
2416
 
1906
2417
  ### Bug fixes
1907
2418
 
1908
2419
  - smooth: fix parseBoolean causing isLive to be always true
1909
2420
 
1910
-
1911
2421
  ## v1.3.0 (2015-10-14)
1912
2422
 
1913
2423
  ### Added
@@ -1916,19 +2426,16 @@ Demo
1916
2426
  - timings: add progress sampling
1917
2427
  - compat: add firefox workaround for autoplay
1918
2428
 
1919
-
1920
2429
  ## v1.2.1 (2015-09-23)
1921
2430
 
1922
2431
  ### Bug fixes
1923
2432
 
1924
2433
  - stream: do not stall on loadedmetadata event
1925
2434
 
1926
-
1927
2435
  ## v1.2.0 (2015-09-23)
1928
2436
 
1929
- This release introduces the use of ES6 classes for all modules that
1930
- depends on a sort of class hierarchy. It comes with an upgrade of
1931
- RxJSv3.1.1.
2437
+ This release introduces the use of ES6 classes for all modules that depends on a sort of
2438
+ class hierarchy. It comes with an upgrade of RxJSv3.1.1.
1932
2439
 
1933
2440
  We also started using eslint as our main linter instead of jshint.
1934
2441
 
@@ -1940,7 +2447,6 @@ We also started using eslint as our main linter instead of jshint.
1940
2447
  - dash: incremental id from adaptations/representations (c24fecb)
1941
2448
  - stream: discontinuity check on each stalled tick (3a5b796)
1942
2449
 
1943
-
1944
2450
  ### Bug fixes
1945
2451
 
1946
2452
  - fix missing new on Promise (4679632)
@@ -1952,7 +2458,6 @@ We also started using eslint as our main linter instead of jshint.
1952
2458
  - player: fix getUrl (577ce87)
1953
2459
  - manifest: enforce id setting to parsers (927d275)
1954
2460
 
1955
-
1956
2461
  ## v1.1.0 (2015-08-14)
1957
2462
 
1958
2463
  ### Added
@@ -1969,7 +2474,6 @@ We also started using eslint as our main linter instead of jshint.
1969
2474
  - fix no MediaKeySession reuse on Chrome
1970
2475
  - fix quota error with MediaKeys attached to multiple video elements on Chrome
1971
2476
 
1972
-
1973
2477
  ## v1.0.0 (2015-06-16)
1974
2478
 
1975
2479
  Initial public release.