rx-player 3.33.0 → 3.33.1

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 (819) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/VERSION +1 -1
  3. package/dist/_esm5.processed/core/api/public_api.js +2 -2
  4. package/dist/_esm5.processed/manifest/manifest.js +1 -0
  5. package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +11 -0
  6. package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +18 -4
  7. package/dist/mpd-parser.wasm +0 -0
  8. package/dist/rx-player.d.ts +1 -1
  9. package/dist/rx-player.js +24 -9
  10. package/dist/rx-player.min.d.ts +1 -1
  11. package/dist/rx-player.min.js +1 -1
  12. package/package.json +6 -6
  13. package/.editorconfig +0 -22
  14. package/.eslintrc.js +0 -406
  15. package/.github/workflows/checks.yml +0 -101
  16. package/.github/workflows/perfs.yml +0 -22
  17. package/.github/workflows/sonarcloud_analysis.yml +0 -20
  18. package/CONTRIBUTING.md +0 -272
  19. package/FILES.md +0 -283
  20. package/jest.config.js +0 -73
  21. package/manifest.mpd +0 -149
  22. package/scripts/README.md +0 -11
  23. package/scripts/build/constants.d.ts +0 -53
  24. package/scripts/build/generate_build.js +0 -190
  25. package/scripts/build/templates/experimental/features/index.d.ts +0 -16
  26. package/scripts/build/templates/experimental/features/index.js +0 -16
  27. package/scripts/build/templates/experimental/index.d.ts +0 -16
  28. package/scripts/build/templates/experimental/index.js +0 -16
  29. package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.d.ts +0 -18
  30. package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.js +0 -18
  31. package/scripts/build/templates/experimental/tools/index.d.ts +0 -16
  32. package/scripts/build/templates/experimental/tools/index.js +0 -16
  33. package/scripts/build/templates/features/index.d.ts +0 -16
  34. package/scripts/build/templates/features/index.js +0 -16
  35. package/scripts/build/templates/logger/index.d.ts +0 -17
  36. package/scripts/build/templates/logger/index.js +0 -17
  37. package/scripts/build/templates/minimal/index.d.ts +0 -17
  38. package/scripts/build/templates/minimal/index.js +0 -17
  39. package/scripts/build/templates/tools/TextTrackRenderer.d.ts +0 -18
  40. package/scripts/build/templates/tools/TextTrackRenderer.js +0 -18
  41. package/scripts/build/templates/tools/index.d.ts +0 -16
  42. package/scripts/build/templates/tools/index.js +0 -16
  43. package/scripts/build/templates/tools/string-utils.d.ts +0 -18
  44. package/scripts/build/templates/tools/string-utils.js +0 -18
  45. package/scripts/build/templates/types/index.d.ts +0 -16
  46. package/scripts/build/templates/types/index.js +0 -15
  47. package/scripts/canal-release.patch +0 -316
  48. package/scripts/check_nodejs_import_compatibility.js +0 -60
  49. package/scripts/deploy_new_demo +0 -123
  50. package/scripts/fast_demo_build.js +0 -129
  51. package/scripts/generate_certificate +0 -19
  52. package/scripts/generate_demo_list.js +0 -105
  53. package/scripts/generate_documentation_list.js +0 -109
  54. package/scripts/generate_full_demo.js +0 -201
  55. package/scripts/generate_standalone_demo.js +0 -82
  56. package/scripts/launch_static_server.js +0 -163
  57. package/scripts/list-npm-scripts.js +0 -207
  58. package/scripts/make-dev-releases +0 -90
  59. package/scripts/report_build_sizes +0 -96
  60. package/scripts/run_standalone_demo.js +0 -27
  61. package/scripts/start_demo_web_server.js +0 -44
  62. package/scripts/update-version +0 -48
  63. package/scripts/update_gh-pages_demo +0 -132
  64. package/scripts/update_gh-pages_doc +0 -106
  65. package/scripts/utils/display_webpack_errors.js +0 -33
  66. package/scripts/utils/get_human_readable_hours.js +0 -14
  67. package/scripts/wasm-strip.js +0 -359
  68. package/sonar-project.properties +0 -7
  69. package/src/README.md +0 -136
  70. package/src/compat/README.md +0 -29
  71. package/src/compat/__tests__/add_text_track.test.ts +0 -176
  72. package/src/compat/__tests__/browser_compatibility_types.test.ts +0 -152
  73. package/src/compat/__tests__/browser_version.test.ts +0 -84
  74. package/src/compat/__tests__/can_patch_isobmff.test.ts +0 -50
  75. package/src/compat/__tests__/can_rely_on_video_visibility_and_size.test.ts +0 -78
  76. package/src/compat/__tests__/can_reuse_media_keys.test.ts +0 -31
  77. package/src/compat/__tests__/change_source_buffer_type.test.ts +0 -60
  78. package/src/compat/__tests__/clear_element_src.test.ts +0 -252
  79. package/src/compat/__tests__/enable_audio_track.test.ts +0 -341
  80. package/src/compat/__tests__/fullscreen.test.ts +0 -286
  81. package/src/compat/__tests__/is_codec_supported.test.ts +0 -78
  82. package/src/compat/__tests__/is_offline.test.ts +0 -65
  83. package/src/compat/__tests__/is_seeking_approximate.test.ts +0 -48
  84. package/src/compat/__tests__/is_vtt_cue.test.ts +0 -71
  85. package/src/compat/__tests__/make_vtt_cue.test.ts +0 -97
  86. package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +0 -144
  87. package/src/compat/__tests__/remove_cue.test.ts +0 -229
  88. package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +0 -128
  89. package/src/compat/__tests__/should_reload_media_source_on_decipherability_update.test.ts +0 -50
  90. package/src/compat/__tests__/should_renew_media_key_system_access.test.ts +0 -55
  91. package/src/compat/__tests__/should_unset_media_keys.test.ts +0 -53
  92. package/src/compat/__tests__/should_validate_metadata.test.ts +0 -53
  93. package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +0 -121
  94. package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +0 -36
  95. package/src/compat/add_class_name.ts +0 -41
  96. package/src/compat/add_text_track.ts +0 -58
  97. package/src/compat/browser_compatibility_types.ts +0 -222
  98. package/src/compat/browser_detection.ts +0 -172
  99. package/src/compat/browser_version.ts +0 -44
  100. package/src/compat/can_patch_isobmff.ts +0 -30
  101. package/src/compat/can_rely_on_video_visibility_and_size.ts +0 -52
  102. package/src/compat/can_reuse_media_keys.ts +0 -20
  103. package/src/compat/change_source_buffer_type.ts +0 -66
  104. package/src/compat/clear_element_src.ts +0 -55
  105. package/src/compat/eme/close_session.ts +0 -111
  106. package/src/compat/eme/constants.ts +0 -21
  107. package/src/compat/eme/custom_key_system_access.ts +0 -67
  108. package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +0 -186
  109. package/src/compat/eme/custom_media_keys/index.ts +0 -28
  110. package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +0 -88
  111. package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +0 -69
  112. package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +0 -235
  113. package/src/compat/eme/custom_media_keys/types.ts +0 -67
  114. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +0 -308
  115. package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +0 -50
  116. package/src/compat/eme/eme-api-implementation.ts +0 -318
  117. package/src/compat/eme/generate_key_request.ts +0 -162
  118. package/src/compat/eme/get_init_data.ts +0 -159
  119. package/src/compat/eme/get_uuid_kid_from_keystatus_kid.ts +0 -37
  120. package/src/compat/eme/get_webkit_fairplay_initdata.ts +0 -75
  121. package/src/compat/eme/index.ts +0 -47
  122. package/src/compat/eme/load_session.ts +0 -67
  123. package/src/compat/enable_audio_track.ts +0 -33
  124. package/src/compat/event_listeners.ts +0 -566
  125. package/src/compat/fullscreen.ts +0 -87
  126. package/src/compat/get_start_date.ts +0 -48
  127. package/src/compat/has_issues_with_high_media_source_duration.ts +0 -27
  128. package/src/compat/index.ts +0 -87
  129. package/src/compat/is_codec_supported.ts +0 -40
  130. package/src/compat/is_debug_mode_enabled.ts +0 -12
  131. package/src/compat/is_node.ts +0 -18
  132. package/src/compat/is_offline.ts +0 -44
  133. package/src/compat/is_seeking_approximate.ts +0 -32
  134. package/src/compat/is_vtt_cue.ts +0 -30
  135. package/src/compat/make_vtt_cue.ts +0 -51
  136. package/src/compat/on_height_width_change.ts +0 -119
  137. package/src/compat/patch_webkit_source_buffer.ts +0 -89
  138. package/src/compat/remove_cue.ts +0 -64
  139. package/src/compat/should_favour_custom_safari_EME.ts +0 -34
  140. package/src/compat/should_prevent_seeking_at_0_initially.ts +0 -19
  141. package/src/compat/should_reload_media_source_on_decipherability_update.ts +0 -32
  142. package/src/compat/should_renew_media_key_system_access.ts +0 -26
  143. package/src/compat/should_unset_media_keys.ts +0 -27
  144. package/src/compat/should_validate_metadata.ts +0 -27
  145. package/src/compat/should_wait_for_data_before_loaded.ts +0 -35
  146. package/src/compat/should_wait_for_have_enough_data.ts +0 -17
  147. package/src/config.ts +0 -32
  148. package/src/core/README.md +0 -56
  149. package/src/core/adaptive/README.md +0 -147
  150. package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +0 -548
  151. package/src/core/adaptive/adaptive_representation_selector.ts +0 -916
  152. package/src/core/adaptive/buffer_based_chooser.ts +0 -264
  153. package/src/core/adaptive/guess_based_chooser.ts +0 -309
  154. package/src/core/adaptive/index.ts +0 -45
  155. package/src/core/adaptive/network_analyzer.ts +0 -419
  156. package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -134
  157. package/src/core/adaptive/utils/__tests__/ewma.test.ts +0 -79
  158. package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +0 -56
  159. package/src/core/adaptive/utils/__tests__/filter_by_width.test.ts +0 -60
  160. package/src/core/adaptive/utils/__tests__/get_buffer_levels.test.ts +0 -48
  161. package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +0 -243
  162. package/src/core/adaptive/utils/bandwidth_estimator.ts +0 -88
  163. package/src/core/adaptive/utils/ewma.ts +0 -59
  164. package/src/core/adaptive/utils/filter_by_bitrate.ts +0 -46
  165. package/src/core/adaptive/utils/filter_by_width.ts +0 -49
  166. package/src/core/adaptive/utils/get_buffer_levels.ts +0 -50
  167. package/src/core/adaptive/utils/last_estimate_storage.ts +0 -79
  168. package/src/core/adaptive/utils/pending_requests_store.ts +0 -147
  169. package/src/core/adaptive/utils/representation_score_calculator.ts +0 -168
  170. package/src/core/adaptive/utils/select_optimal_representation.ts +0 -54
  171. package/src/core/api/README.md +0 -36
  172. package/src/core/api/__tests__/option_utils.test.ts +0 -1668
  173. package/src/core/api/__tests__/public_api.test.ts +0 -857
  174. package/src/core/api/__tests__/utils.test.ts +0 -195
  175. package/src/core/api/debug/buffer_graph.ts +0 -244
  176. package/src/core/api/debug/buffer_size_graph.ts +0 -130
  177. package/src/core/api/debug/constants.ts +0 -2
  178. package/src/core/api/debug/index.ts +0 -3
  179. package/src/core/api/debug/modules/general_info.ts +0 -213
  180. package/src/core/api/debug/modules/segment_buffer_content.ts +0 -155
  181. package/src/core/api/debug/modules/segment_buffer_size.ts +0 -48
  182. package/src/core/api/debug/render.ts +0 -40
  183. package/src/core/api/debug/utils.ts +0 -103
  184. package/src/core/api/index.ts +0 -27
  185. package/src/core/api/option_utils.ts +0 -700
  186. package/src/core/api/playback_observer.ts +0 -994
  187. package/src/core/api/public_api.ts +0 -3247
  188. package/src/core/api/tracks_management/__tests__/media_element_track_choice_manager.test.ts +0 -184
  189. package/src/core/api/tracks_management/media_element_track_choice_manager.ts +0 -975
  190. package/src/core/api/tracks_management/track_choice_manager.ts +0 -1280
  191. package/src/core/api/utils.ts +0 -216
  192. package/src/core/decrypt/README.md +0 -22
  193. package/src/core/decrypt/__tests__/__global__/get_license.test.ts +0 -422
  194. package/src/core/decrypt/__tests__/__global__/init_data.test.ts +0 -677
  195. package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +0 -528
  196. package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +0 -343
  197. package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +0 -264
  198. package/src/core/decrypt/__tests__/__global__/utils.ts +0 -491
  199. package/src/core/decrypt/attach_media_keys.ts +0 -121
  200. package/src/core/decrypt/clear_on_stop.ts +0 -47
  201. package/src/core/decrypt/content_decryptor.ts +0 -1246
  202. package/src/core/decrypt/create_or_load_session.ts +0 -133
  203. package/src/core/decrypt/create_session.ts +0 -214
  204. package/src/core/decrypt/dispose_decryption_resources.ts +0 -54
  205. package/src/core/decrypt/find_key_system.ts +0 -376
  206. package/src/core/decrypt/get_key_system_configuration.ts +0 -51
  207. package/src/core/decrypt/get_media_keys.ts +0 -147
  208. package/src/core/decrypt/index.ts +0 -36
  209. package/src/core/decrypt/init_media_keys.ts +0 -60
  210. package/src/core/decrypt/session_events_listener.ts +0 -386
  211. package/src/core/decrypt/set_server_certificate.ts +0 -105
  212. package/src/core/decrypt/types.ts +0 -404
  213. package/src/core/decrypt/utils/__tests__/are_init_values_compatible.test.ts +0 -261
  214. package/src/core/decrypt/utils/__tests__/clean_old_loaded_sessions.test.ts +0 -158
  215. package/src/core/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +0 -133
  216. package/src/core/decrypt/utils/are_init_values_compatible.ts +0 -140
  217. package/src/core/decrypt/utils/check_key_statuses.ts +0 -193
  218. package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +0 -45
  219. package/src/core/decrypt/utils/clean_old_stored_persistent_info.ts +0 -48
  220. package/src/core/decrypt/utils/get_drm_system_id.ts +0 -42
  221. package/src/core/decrypt/utils/init_data_values_container.ts +0 -119
  222. package/src/core/decrypt/utils/is_session_usable.ts +0 -62
  223. package/src/core/decrypt/utils/key_id_comparison.ts +0 -57
  224. package/src/core/decrypt/utils/key_session_record.ts +0 -174
  225. package/src/core/decrypt/utils/loaded_sessions_store.ts +0 -505
  226. package/src/core/decrypt/utils/media_keys_infos_store.ts +0 -85
  227. package/src/core/decrypt/utils/persistent_sessions_store.ts +0 -358
  228. package/src/core/decrypt/utils/serializable_bytes.ts +0 -59
  229. package/src/core/decrypt/utils/server_certificate_store.ts +0 -133
  230. package/src/core/fetchers/README.md +0 -84
  231. package/src/core/fetchers/cdn_prioritizer.ts +0 -207
  232. package/src/core/fetchers/index.ts +0 -38
  233. package/src/core/fetchers/manifest/index.ts +0 -28
  234. package/src/core/fetchers/manifest/manifest_fetcher.ts +0 -798
  235. package/src/core/fetchers/segment/__tests__/task_prioritizer.test.ts +0 -763
  236. package/src/core/fetchers/segment/index.ts +0 -28
  237. package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +0 -113
  238. package/src/core/fetchers/segment/segment_fetcher.ts +0 -482
  239. package/src/core/fetchers/segment/segment_fetcher_creator.ts +0 -129
  240. package/src/core/fetchers/segment/task_prioritizer.ts +0 -455
  241. package/src/core/fetchers/utils/error_selector.ts +0 -38
  242. package/src/core/fetchers/utils/schedule_request.ts +0 -493
  243. package/src/core/init/README.md +0 -81
  244. package/src/core/init/directfile_content_initializer.ts +0 -310
  245. package/src/core/init/index.ts +0 -22
  246. package/src/core/init/media_source_content_initializer.ts +0 -878
  247. package/src/core/init/types.ts +0 -266
  248. package/src/core/init/utils/__tests__/are_same_stream_events.test.ts +0 -84
  249. package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +0 -94
  250. package/src/core/init/utils/content_time_boundaries_observer.ts +0 -646
  251. package/src/core/init/utils/create_media_source.ts +0 -139
  252. package/src/core/init/utils/create_stream_playback_observer.ts +0 -132
  253. package/src/core/init/utils/end_of_stream.ts +0 -108
  254. package/src/core/init/utils/get_initial_time.ts +0 -165
  255. package/src/core/init/utils/get_loaded_reference.ts +0 -82
  256. package/src/core/init/utils/initial_seek_and_play.ts +0 -237
  257. package/src/core/init/utils/initialize_content_decryption.ts +0 -172
  258. package/src/core/init/utils/media_source_duration_updater.ts +0 -349
  259. package/src/core/init/utils/rebuffering_controller.ts +0 -642
  260. package/src/core/init/utils/stream_events_emitter/are_same_stream_events.ts +0 -42
  261. package/src/core/init/utils/stream_events_emitter/index.ts +0 -22
  262. package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +0 -74
  263. package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +0 -252
  264. package/src/core/init/utils/stream_events_emitter/types.ts +0 -46
  265. package/src/core/init/utils/throw_on_media_error.ts +0 -74
  266. package/src/core/segment_buffers/README.md +0 -219
  267. package/src/core/segment_buffers/garbage_collector.ts +0 -177
  268. package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +0 -650
  269. package/src/core/segment_buffers/implementations/audio_video/index.ts +0 -18
  270. package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +0 -152
  271. package/src/core/segment_buffers/implementations/image/index.ts +0 -18
  272. package/src/core/segment_buffers/implementations/index.ts +0 -20
  273. package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +0 -343
  274. package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +0 -527
  275. package/src/core/segment_buffers/implementations/text/html/index.ts +0 -24
  276. package/src/core/segment_buffers/implementations/text/html/parsers.ts +0 -49
  277. package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +0 -391
  278. package/src/core/segment_buffers/implementations/text/html/types.ts +0 -23
  279. package/src/core/segment_buffers/implementations/text/html/update_proportional_elements.ts +0 -93
  280. package/src/core/segment_buffers/implementations/text/html/utils.ts +0 -139
  281. package/src/core/segment_buffers/implementations/text/native/index.ts +0 -19
  282. package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +0 -340
  283. package/src/core/segment_buffers/implementations/text/native/parsers.ts +0 -47
  284. package/src/core/segment_buffers/implementations/types.ts +0 -386
  285. package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +0 -80
  286. package/src/core/segment_buffers/index.ts +0 -67
  287. package/src/core/segment_buffers/inventory/buffered_history.ts +0 -131
  288. package/src/core/segment_buffers/inventory/index.ts +0 -30
  289. package/src/core/segment_buffers/inventory/segment_inventory.ts +0 -1111
  290. package/src/core/segment_buffers/inventory/types.ts +0 -35
  291. package/src/core/segment_buffers/segment_buffers_store.ts +0 -383
  292. package/src/core/stream/README.md +0 -59
  293. package/src/core/stream/adaptation/adaptation_stream.ts +0 -378
  294. package/src/core/stream/adaptation/index.ts +0 -20
  295. package/src/core/stream/adaptation/types.ts +0 -199
  296. package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
  297. package/src/core/stream/index.ts +0 -38
  298. package/src/core/stream/orchestrator/README.md +0 -349
  299. package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +0 -70
  300. package/src/core/stream/orchestrator/index.ts +0 -30
  301. package/src/core/stream/orchestrator/stream_orchestrator.ts +0 -664
  302. package/src/core/stream/period/index.ts +0 -20
  303. package/src/core/stream/period/period_stream.ts +0 -469
  304. package/src/core/stream/period/types.ts +0 -132
  305. package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +0 -287
  306. package/src/core/stream/representation/README.md +0 -16
  307. package/src/core/stream/representation/index.ts +0 -20
  308. package/src/core/stream/representation/representation_stream.ts +0 -474
  309. package/src/core/stream/representation/types.ts +0 -292
  310. package/src/core/stream/representation/utils/append_segment_to_buffer.ts +0 -77
  311. package/src/core/stream/representation/utils/check_for_discontinuity.ts +0 -305
  312. package/src/core/stream/representation/utils/downloading_queue.ts +0 -603
  313. package/src/core/stream/representation/utils/force_garbage_collection.ts +0 -113
  314. package/src/core/stream/representation/utils/get_buffer_status.ts +0 -322
  315. package/src/core/stream/representation/utils/get_needed_segments.ts +0 -617
  316. package/src/core/stream/representation/utils/get_segment_priority.ts +0 -43
  317. package/src/core/stream/representation/utils/push_init_segment.ts +0 -85
  318. package/src/core/stream/representation/utils/push_media_segment.ts +0 -113
  319. package/src/default_config.ts +0 -1293
  320. package/src/errors/README.md +0 -6
  321. package/src/errors/__tests__/assertion_error.test.ts +0 -26
  322. package/src/errors/__tests__/encrypted_media_error.test.ts +0 -45
  323. package/src/errors/__tests__/error_message.test.ts +0 -23
  324. package/src/errors/__tests__/format_error.test.ts +0 -62
  325. package/src/errors/__tests__/is_known_error.test.ts +0 -65
  326. package/src/errors/__tests__/media_error.test.ts +0 -55
  327. package/src/errors/__tests__/network_error.test.ts +0 -84
  328. package/src/errors/__tests__/other_error.test.ts +0 -53
  329. package/src/errors/__tests__/request_error.test.ts +0 -45
  330. package/src/errors/assertion_error.ts +0 -40
  331. package/src/errors/custom_loader_error.ts +0 -57
  332. package/src/errors/encrypted_media_error.ts +0 -71
  333. package/src/errors/error_codes.ts +0 -149
  334. package/src/errors/error_message.ts +0 -30
  335. package/src/errors/format_error.ts +0 -39
  336. package/src/errors/index.ts +0 -52
  337. package/src/errors/is_known_error.ts +0 -35
  338. package/src/errors/media_error.ts +0 -118
  339. package/src/errors/network_error.ts +0 -74
  340. package/src/errors/other_error.ts +0 -50
  341. package/src/errors/request_error.ts +0 -76
  342. package/src/experimental/README.md +0 -16
  343. package/src/experimental/features/__tests__/dash_wasm.test.ts +0 -44
  344. package/src/experimental/features/__tests__/debug_element.test.ts +0 -12
  345. package/src/experimental/features/__tests__/index.test.ts +0 -19
  346. package/src/experimental/features/__tests__/local.test.ts +0 -35
  347. package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -35
  348. package/src/experimental/features/dash_wasm.ts +0 -41
  349. package/src/experimental/features/debug_element.ts +0 -13
  350. package/src/experimental/features/index.ts +0 -20
  351. package/src/experimental/features/local.ts +0 -28
  352. package/src/experimental/features/metaplaylist.ts +0 -28
  353. package/src/experimental/index.ts +0 -5
  354. package/src/experimental/tools/VideoThumbnailLoader/features/dash.ts +0 -23
  355. package/src/experimental/tools/VideoThumbnailLoader/features/metaplaylist.ts +0 -23
  356. package/src/experimental/tools/VideoThumbnailLoader/index.ts +0 -25
  357. package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +0 -77
  358. package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +0 -75
  359. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +0 -54
  360. package/src/experimental/tools/VideoThumbnailLoader/types.ts +0 -39
  361. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +0 -423
  362. package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.ts +0 -34
  363. package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +0 -141
  364. package/src/experimental/tools/createMetaplaylist/index.ts +0 -72
  365. package/src/experimental/tools/index.ts +0 -27
  366. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/capabilities.test.ts +0 -37
  367. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +0 -140
  368. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +0 -153
  369. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +0 -405
  370. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +0 -136
  371. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +0 -294
  372. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +0 -189
  373. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/utils.test.ts +0 -361
  374. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +0 -184
  375. package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +0 -136
  376. package/src/experimental/tools/mediaCapabilitiesProber/capabilities.ts +0 -169
  377. package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -18
  378. package/src/experimental/tools/mediaCapabilitiesProber/log.ts +0 -21
  379. package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +0 -67
  380. package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +0 -89
  381. package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +0 -100
  382. package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +0 -66
  383. package/src/experimental/tools/mediaCapabilitiesProber/probers/index.ts +0 -44
  384. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +0 -66
  385. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.ts +0 -100
  386. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +0 -105
  387. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +0 -54
  388. package/src/experimental/tools/mediaCapabilitiesProber/types.ts +0 -75
  389. package/src/experimental/tools/mediaCapabilitiesProber/utils.ts +0 -107
  390. package/src/experimental/tools/parseBIFThumbnails.ts +0 -39
  391. package/src/features/README.md +0 -11
  392. package/src/features/__tests__/add_features.test.ts +0 -69
  393. package/src/features/__tests__/initialize_features.test.ts +0 -674
  394. package/src/features/add_features.ts +0 -37
  395. package/src/features/features_object.ts +0 -37
  396. package/src/features/index.ts +0 -40
  397. package/src/features/initialize_features.ts +0 -136
  398. package/src/features/list/__tests__/bif_parser.test.ts +0 -30
  399. package/src/features/list/__tests__/dash.test.ts +0 -41
  400. package/src/features/list/__tests__/directfile.test.ts +0 -35
  401. package/src/features/list/__tests__/eme.test.ts +0 -28
  402. package/src/features/list/__tests__/html_sami_parser.test.ts +0 -33
  403. package/src/features/list/__tests__/html_srt_parser.test.ts +0 -33
  404. package/src/features/list/__tests__/html_text_buffer.test.ts +0 -29
  405. package/src/features/list/__tests__/html_ttml_parser.test.ts +0 -33
  406. package/src/features/list/__tests__/html_vtt_parser.test.ts +0 -33
  407. package/src/features/list/__tests__/image_buffer.test.ts +0 -28
  408. package/src/features/list/__tests__/index.test.ts +0 -55
  409. package/src/features/list/__tests__/native_sami_parser.test.ts +0 -33
  410. package/src/features/list/__tests__/native_srt_parser.test.ts +0 -33
  411. package/src/features/list/__tests__/native_text_buffer.test.ts +0 -29
  412. package/src/features/list/__tests__/native_ttml_parser.test.ts +0 -33
  413. package/src/features/list/__tests__/native_vtt_parser.test.ts +0 -33
  414. package/src/features/list/__tests__/smooth.test.ts +0 -36
  415. package/src/features/list/bif_parser.ts +0 -31
  416. package/src/features/list/dash.ts +0 -36
  417. package/src/features/list/directfile.ts +0 -35
  418. package/src/features/list/eme.ts +0 -29
  419. package/src/features/list/html_sami_parser.ts +0 -31
  420. package/src/features/list/html_srt_parser.ts +0 -31
  421. package/src/features/list/html_text_buffer.ts +0 -29
  422. package/src/features/list/html_ttml_parser.ts +0 -31
  423. package/src/features/list/html_vtt_parser.ts +0 -31
  424. package/src/features/list/image_buffer.ts +0 -29
  425. package/src/features/list/index.ts +0 -32
  426. package/src/features/list/native_sami_parser.ts +0 -32
  427. package/src/features/list/native_srt_parser.ts +0 -32
  428. package/src/features/list/native_text_buffer.ts +0 -30
  429. package/src/features/list/native_ttml_parser.ts +0 -32
  430. package/src/features/list/native_vtt_parser.ts +0 -32
  431. package/src/features/list/smooth.ts +0 -32
  432. package/src/features/types.ts +0 -183
  433. package/src/index.ts +0 -38
  434. package/src/log.ts +0 -22
  435. package/src/manifest/README.md +0 -55
  436. package/src/manifest/__tests__/adaptation.test.ts +0 -485
  437. package/src/manifest/__tests__/manifest.test.ts +0 -428
  438. package/src/manifest/__tests__/period.test.ts +0 -769
  439. package/src/manifest/__tests__/representation.test.ts +0 -297
  440. package/src/manifest/__tests__/update_period_in_place.test.ts +0 -1074
  441. package/src/manifest/__tests__/update_periods.test.ts +0 -845
  442. package/src/manifest/adaptation.ts +0 -294
  443. package/src/manifest/index.ts +0 -67
  444. package/src/manifest/manifest.ts +0 -811
  445. package/src/manifest/period.ts +0 -211
  446. package/src/manifest/representation.ts +0 -451
  447. package/src/manifest/representation_index/__tests__/static.test.ts +0 -74
  448. package/src/manifest/representation_index/index.ts +0 -31
  449. package/src/manifest/representation_index/static.ts +0 -158
  450. package/src/manifest/representation_index/types.ts +0 -433
  451. package/src/manifest/types.ts +0 -33
  452. package/src/manifest/update_period_in_place.ts +0 -142
  453. package/src/manifest/update_periods.ts +0 -201
  454. package/src/manifest/utils.ts +0 -60
  455. package/src/minimal.ts +0 -34
  456. package/src/parsers/README.md +0 -12
  457. package/src/parsers/containers/isobmff/constants.ts +0 -24
  458. package/src/parsers/containers/isobmff/create_box.ts +0 -81
  459. package/src/parsers/containers/isobmff/drm/index.ts +0 -17
  460. package/src/parsers/containers/isobmff/drm/playready.ts +0 -45
  461. package/src/parsers/containers/isobmff/get_box.ts +0 -278
  462. package/src/parsers/containers/isobmff/index.ts +0 -51
  463. package/src/parsers/containers/isobmff/read.ts +0 -105
  464. package/src/parsers/containers/isobmff/take_pssh_out.ts +0 -101
  465. package/src/parsers/containers/isobmff/utils.ts +0 -555
  466. package/src/parsers/containers/matroska/index.ts +0 -21
  467. package/src/parsers/containers/matroska/utils.ts +0 -313
  468. package/src/parsers/images/bif.ts +0 -128
  469. package/src/parsers/manifest/dash/common/__tests__/attach_trickmode_track.test.ts +0 -65
  470. package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +0 -37
  471. package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +0 -162
  472. package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +0 -65
  473. package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +0 -165
  474. package/src/parsers/manifest/dash/common/__tests__/get_periods_time_infos.test.ts +0 -118
  475. package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +0 -290
  476. package/src/parsers/manifest/dash/common/__tests__/parse_availability_start_time.test.ts +0 -63
  477. package/src/parsers/manifest/dash/common/attach_trickmode_track.ts +0 -55
  478. package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +0 -32
  479. package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +0 -87
  480. package/src/parsers/manifest/dash/common/get_clock_offset.ts +0 -41
  481. package/src/parsers/manifest/dash/common/get_hdr_information.ts +0 -94
  482. package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +0 -46
  483. package/src/parsers/manifest/dash/common/get_minimum_and_maximum_positions.ts +0 -39
  484. package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +0 -91
  485. package/src/parsers/manifest/dash/common/index.ts +0 -40
  486. package/src/parsers/manifest/dash/common/indexes/__tests__/tokens.test.ts +0 -60
  487. package/src/parsers/manifest/dash/common/indexes/base.ts +0 -444
  488. package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +0 -55
  489. package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +0 -148
  490. package/src/parsers/manifest/dash/common/indexes/index.ts +0 -39
  491. package/src/parsers/manifest/dash/common/indexes/list.ts +0 -338
  492. package/src/parsers/manifest/dash/common/indexes/template.ts +0 -652
  493. package/src/parsers/manifest/dash/common/indexes/timeline/__tests__/parse_s_element.test.ts +0 -115
  494. package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +0 -54
  495. package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.ts +0 -102
  496. package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +0 -66
  497. package/src/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.ts +0 -153
  498. package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +0 -21
  499. package/src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts +0 -72
  500. package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +0 -1049
  501. package/src/parsers/manifest/dash/common/indexes/tokens.ts +0 -127
  502. package/src/parsers/manifest/dash/common/indexes/utils.ts +0 -32
  503. package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +0 -142
  504. package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +0 -165
  505. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +0 -569
  506. package/src/parsers/manifest/dash/common/parse_availability_start_time.ts +0 -35
  507. package/src/parsers/manifest/dash/common/parse_mpd.ts +0 -399
  508. package/src/parsers/manifest/dash/common/parse_periods.ts +0 -363
  509. package/src/parsers/manifest/dash/common/parse_representation_index.ts +0 -199
  510. package/src/parsers/manifest/dash/common/parse_representations.ts +0 -352
  511. package/src/parsers/manifest/dash/common/resolve_base_urls.ts +0 -58
  512. package/src/parsers/manifest/dash/index.ts +0 -22
  513. package/src/parsers/manifest/dash/js-parser/__tests__/parse_from_document.test.ts +0 -45
  514. package/src/parsers/manifest/dash/js-parser/index.ts +0 -18
  515. package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +0 -381
  516. package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +0 -35
  517. package/src/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.ts +0 -49
  518. package/src/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.ts +0 -94
  519. package/src/parsers/manifest/dash/js-parser/node_parsers/EventStream.ts +0 -117
  520. package/src/parsers/manifest/dash/js-parser/node_parsers/Initialization.ts +0 -48
  521. package/src/parsers/manifest/dash/js-parser/node_parsers/MPD.ts +0 -180
  522. package/src/parsers/manifest/dash/js-parser/node_parsers/Period.ts +0 -152
  523. package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +0 -234
  524. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +0 -112
  525. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentList.ts +0 -50
  526. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +0 -98
  527. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.ts +0 -35
  528. package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.ts +0 -63
  529. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +0 -407
  530. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentComponent.test.ts +0 -67
  531. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +0 -223
  532. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +0 -139
  533. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentTimeline.test.ts +0 -119
  534. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +0 -205
  535. package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/utils.test.ts +0 -218
  536. package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +0 -384
  537. package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +0 -129
  538. package/src/parsers/manifest/dash/node_parser_types.ts +0 -431
  539. package/src/parsers/manifest/dash/parsers_types.ts +0 -91
  540. package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +0 -25
  541. package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +0 -16
  542. package/src/parsers/manifest/dash/wasm-parser/README.md +0 -267
  543. package/src/parsers/manifest/dash/wasm-parser/index.ts +0 -21
  544. package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +0 -28
  545. package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +0 -373
  546. package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +0 -85
  547. package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +0 -414
  548. package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +0 -472
  549. package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +0 -72
  550. package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +0 -17
  551. package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +0 -147
  552. package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +0 -217
  553. package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +0 -477
  554. package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +0 -343
  555. package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +0 -38
  556. package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.ts +0 -53
  557. package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.ts +0 -62
  558. package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +0 -144
  559. package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +0 -183
  560. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +0 -180
  561. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +0 -215
  562. package/src/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.ts +0 -44
  563. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +0 -115
  564. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +0 -61
  565. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +0 -133
  566. package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.ts +0 -70
  567. package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +0 -66
  568. package/src/parsers/manifest/dash/wasm-parser/ts/generators/index.ts +0 -17
  569. package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +0 -66
  570. package/src/parsers/manifest/dash/wasm-parser/ts/parsers_stack.ts +0 -80
  571. package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +0 -298
  572. package/src/parsers/manifest/dash/wasm-parser/ts/utils.ts +0 -47
  573. package/src/parsers/manifest/index.ts +0 -17
  574. package/src/parsers/manifest/local/index.ts +0 -25
  575. package/src/parsers/manifest/local/parse_local_manifest.ts +0 -164
  576. package/src/parsers/manifest/local/representation_index.ts +0 -246
  577. package/src/parsers/manifest/local/types.ts +0 -291
  578. package/src/parsers/manifest/metaplaylist/index.ts +0 -28
  579. package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +0 -335
  580. package/src/parsers/manifest/metaplaylist/representation_index.ts +0 -251
  581. package/src/parsers/manifest/smooth/create_parser.ts +0 -699
  582. package/src/parsers/manifest/smooth/get_codecs.ts +0 -55
  583. package/src/parsers/manifest/smooth/index.ts +0 -26
  584. package/src/parsers/manifest/smooth/parse_C_nodes.ts +0 -69
  585. package/src/parsers/manifest/smooth/parse_protection_node.ts +0 -72
  586. package/src/parsers/manifest/smooth/representation_index.ts +0 -704
  587. package/src/parsers/manifest/smooth/utils/add_segment_infos.ts +0 -77
  588. package/src/parsers/manifest/smooth/utils/parseBoolean.ts +0 -31
  589. package/src/parsers/manifest/smooth/utils/reduceChildren.ts +0 -36
  590. package/src/parsers/manifest/smooth/utils/tokens.ts +0 -46
  591. package/src/parsers/manifest/types.ts +0 -395
  592. package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +0 -161
  593. package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +0 -161
  594. package/src/parsers/manifest/utils/__tests__/index_helpers.test.ts +0 -55
  595. package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +0 -546
  596. package/src/parsers/manifest/utils/check_manifest_ids.ts +0 -83
  597. package/src/parsers/manifest/utils/clear_timeline_from_position.ts +0 -74
  598. package/src/parsers/manifest/utils/get_first_time_from_adaptation.ts +0 -48
  599. package/src/parsers/manifest/utils/get_last_time_from_adaptation.ts +0 -50
  600. package/src/parsers/manifest/utils/get_maximum_positions.ts +0 -87
  601. package/src/parsers/manifest/utils/get_minimum_position.ts +0 -80
  602. package/src/parsers/manifest/utils/index_helpers.ts +0 -204
  603. package/src/parsers/manifest/utils/update_segment_timeline.ts +0 -141
  604. package/src/parsers/texttracks/index.ts +0 -21
  605. package/src/parsers/texttracks/sami/html.ts +0 -219
  606. package/src/parsers/texttracks/sami/native.ts +0 -192
  607. package/src/parsers/texttracks/srt/__tests__/find_end_of_cue_block.test.ts +0 -99
  608. package/src/parsers/texttracks/srt/__tests__/get_cue_blocks.test.ts +0 -119
  609. package/src/parsers/texttracks/srt/__tests__/parse_cue.test.ts +0 -123
  610. package/src/parsers/texttracks/srt/__tests__/parse_timestamp.test.ts +0 -36
  611. package/src/parsers/texttracks/srt/find_end_of_cue_block.ts +0 -46
  612. package/src/parsers/texttracks/srt/get_cue_blocks.ts +0 -49
  613. package/src/parsers/texttracks/srt/html.ts +0 -182
  614. package/src/parsers/texttracks/srt/native.ts +0 -74
  615. package/src/parsers/texttracks/srt/parse_cue.ts +0 -76
  616. package/src/parsers/texttracks/srt/parse_timestamp.ts +0 -37
  617. package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +0 -248
  618. package/src/parsers/texttracks/ttml/get_parameters.ts +0 -106
  619. package/src/parsers/texttracks/ttml/get_styling.ts +0 -146
  620. package/src/parsers/texttracks/ttml/get_time_delimiters.ts +0 -49
  621. package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +0 -190
  622. package/src/parsers/texttracks/ttml/html/__tests__/generate_css_test_outline.test.ts +0 -32
  623. package/src/parsers/texttracks/ttml/html/__tests__/ttml_color_to_css_color.test.ts +0 -62
  624. package/src/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.ts +0 -67
  625. package/src/parsers/texttracks/ttml/html/apply_extent.ts +0 -65
  626. package/src/parsers/texttracks/ttml/html/apply_font_size.ts +0 -62
  627. package/src/parsers/texttracks/ttml/html/apply_line_height.ts +0 -50
  628. package/src/parsers/texttracks/ttml/html/apply_origin.ts +0 -64
  629. package/src/parsers/texttracks/ttml/html/apply_padding.ts +0 -141
  630. package/src/parsers/texttracks/ttml/html/create_element.ts +0 -549
  631. package/src/parsers/texttracks/ttml/html/generate_css_test_outline.ts +0 -46
  632. package/src/parsers/texttracks/ttml/html/index.ts +0 -23
  633. package/src/parsers/texttracks/ttml/html/parse_cue.ts +0 -65
  634. package/src/parsers/texttracks/ttml/html/parse_ttml_to_div.ts +0 -58
  635. package/src/parsers/texttracks/ttml/html/ttml_color_to_css_color.ts +0 -68
  636. package/src/parsers/texttracks/ttml/native/index.ts +0 -23
  637. package/src/parsers/texttracks/ttml/native/parse_cue.ts +0 -245
  638. package/src/parsers/texttracks/ttml/native/parse_ttml_to_vtt.ts +0 -39
  639. package/src/parsers/texttracks/ttml/parse_ttml.ts +0 -206
  640. package/src/parsers/texttracks/ttml/regexps.ts +0 -65
  641. package/src/parsers/texttracks/ttml/resolve_styles_inheritance.ts +0 -84
  642. package/src/parsers/texttracks/ttml/time_parsing.ts +0 -156
  643. package/src/parsers/texttracks/ttml/xml_utils.ts +0 -166
  644. package/src/parsers/texttracks/types.ts +0 -34
  645. package/src/parsers/texttracks/webvtt/__tests__/get_cue_blocks.test.ts +0 -218
  646. package/src/parsers/texttracks/webvtt/__tests__/get_style_blocks.test.ts +0 -65
  647. package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +0 -249
  648. package/src/parsers/texttracks/webvtt/__tests__/parse_timestamp.test.ts +0 -39
  649. package/src/parsers/texttracks/webvtt/__tests__/utils.test.ts +0 -401
  650. package/src/parsers/texttracks/webvtt/get_cue_blocks.ts +0 -51
  651. package/src/parsers/texttracks/webvtt/get_style_blocks.ts +0 -56
  652. package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +0 -106
  653. package/src/parsers/texttracks/webvtt/html/__tests__/create_default_style_elements.test.ts +0 -44
  654. package/src/parsers/texttracks/webvtt/html/__tests__/create_style_attribute.test.ts +0 -139
  655. package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +0 -140
  656. package/src/parsers/texttracks/webvtt/html/__tests__/parse_style_block.test.ts +0 -345
  657. package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +0 -181
  658. package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +0 -234
  659. package/src/parsers/texttracks/webvtt/html/convert_payload_to_html.ts +0 -46
  660. package/src/parsers/texttracks/webvtt/html/create_default_style_elements.ts +0 -26
  661. package/src/parsers/texttracks/webvtt/html/create_style_attribute.ts +0 -222
  662. package/src/parsers/texttracks/webvtt/html/create_styled_element.ts +0 -95
  663. package/src/parsers/texttracks/webvtt/html/index.ts +0 -25
  664. package/src/parsers/texttracks/webvtt/html/parse_style_block.ts +0 -76
  665. package/src/parsers/texttracks/webvtt/html/parse_webvtt_to_div.ts +0 -67
  666. package/src/parsers/texttracks/webvtt/html/to_html.ts +0 -96
  667. package/src/parsers/texttracks/webvtt/native/index.ts +0 -23
  668. package/src/parsers/texttracks/webvtt/native/parse_vtt_to_cues.ts +0 -70
  669. package/src/parsers/texttracks/webvtt/native/set_settings_on_cue.ts +0 -95
  670. package/src/parsers/texttracks/webvtt/native/to_native_cue.ts +0 -34
  671. package/src/parsers/texttracks/webvtt/parse_cue_block.ts +0 -128
  672. package/src/parsers/texttracks/webvtt/parse_timestamp.ts +0 -40
  673. package/src/parsers/texttracks/webvtt/utils.ts +0 -135
  674. package/src/public_types.ts +0 -846
  675. package/src/tools/README.md +0 -4
  676. package/src/tools/TextTrackRenderer/index.ts +0 -28
  677. package/src/tools/TextTrackRenderer/text_track_renderer.ts +0 -107
  678. package/src/tools/index.ts +0 -20
  679. package/src/tools/string_utils.ts +0 -24
  680. package/src/transports/README.md +0 -276
  681. package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -98
  682. package/src/transports/dash/construct_segment_url.ts +0 -28
  683. package/src/transports/dash/extract_complete_chunks.ts +0 -66
  684. package/src/transports/dash/get_events_out_of_emsgs.ts +0 -105
  685. package/src/transports/dash/image_pipelines.ts +0 -122
  686. package/src/transports/dash/index.ts +0 -23
  687. package/src/transports/dash/init_segment_loader.ts +0 -114
  688. package/src/transports/dash/low_latency_segment_loader.ts +0 -87
  689. package/src/transports/dash/manifest_parser.ts +0 -325
  690. package/src/transports/dash/pipelines.ts +0 -72
  691. package/src/transports/dash/segment_loader.ts +0 -249
  692. package/src/transports/dash/segment_parser.ts +0 -194
  693. package/src/transports/dash/text_loader.ts +0 -120
  694. package/src/transports/dash/text_parser.ts +0 -234
  695. package/src/transports/index.ts +0 -17
  696. package/src/transports/local/index.ts +0 -18
  697. package/src/transports/local/pipelines.ts +0 -100
  698. package/src/transports/local/segment_loader.ts +0 -198
  699. package/src/transports/local/segment_parser.ts +0 -101
  700. package/src/transports/local/text_parser.ts +0 -185
  701. package/src/transports/metaplaylist/README.md +0 -94
  702. package/src/transports/metaplaylist/index.ts +0 -23
  703. package/src/transports/metaplaylist/manifest_loader.ts +0 -62
  704. package/src/transports/metaplaylist/pipelines.ts +0 -425
  705. package/src/transports/smooth/extract_timings_infos.ts +0 -142
  706. package/src/transports/smooth/index.ts +0 -23
  707. package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +0 -231
  708. package/src/transports/smooth/isobmff/create_audio_init_segment.ts +0 -84
  709. package/src/transports/smooth/isobmff/create_boxes.ts +0 -481
  710. package/src/transports/smooth/isobmff/create_init_segment.ts +0 -100
  711. package/src/transports/smooth/isobmff/create_traf_box.ts +0 -40
  712. package/src/transports/smooth/isobmff/create_video_init_segment.ts +0 -78
  713. package/src/transports/smooth/isobmff/get_aaces_header.ts +0 -62
  714. package/src/transports/smooth/isobmff/index.ts +0 -32
  715. package/src/transports/smooth/isobmff/parse_tfrf.ts +0 -57
  716. package/src/transports/smooth/isobmff/parse_tfxd.ts +0 -38
  717. package/src/transports/smooth/isobmff/patch_segment.ts +0 -171
  718. package/src/transports/smooth/pipelines.ts +0 -533
  719. package/src/transports/smooth/segment_loader.ts +0 -288
  720. package/src/transports/smooth/utils.ts +0 -106
  721. package/src/transports/types.ts +0 -809
  722. package/src/transports/utils/__tests__/byte_range.test.ts +0 -35
  723. package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +0 -148
  724. package/src/transports/utils/__tests__/find_complete_box.test.ts +0 -138
  725. package/src/transports/utils/__tests__/infer_segment_container.test.ts +0 -227
  726. package/src/transports/utils/byte_range.ts +0 -25
  727. package/src/transports/utils/call_custom_manifest_loader.ts +0 -147
  728. package/src/transports/utils/check_isobmff_integrity.ts +0 -50
  729. package/src/transports/utils/find_complete_box.ts +0 -63
  730. package/src/transports/utils/generate_manifest_loader.ts +0 -97
  731. package/src/transports/utils/get_isobmff_timing_infos.ts +0 -86
  732. package/src/transports/utils/infer_segment_container.ts +0 -56
  733. package/src/transports/utils/parse_text_track.ts +0 -176
  734. package/src/typings/README.md +0 -7
  735. package/src/typings/globals.d.ts +0 -83
  736. package/src/typings/next-tick.d.ts +0 -23
  737. package/src/utils/README.md +0 -5
  738. package/src/utils/__tests__/are_arrays_of_numbers_equal.test.ts +0 -86
  739. package/src/utils/__tests__/are_codecs_compatible.test.ts +0 -88
  740. package/src/utils/__tests__/array_find.test.ts +0 -113
  741. package/src/utils/__tests__/array_find_index.test.ts +0 -113
  742. package/src/utils/__tests__/array_includes.test.ts +0 -151
  743. package/src/utils/__tests__/assert.test.ts +0 -237
  744. package/src/utils/__tests__/assert_unreachable.test.ts +0 -40
  745. package/src/utils/__tests__/base64.test.ts +0 -147
  746. package/src/utils/__tests__/byte_parsing.test.ts +0 -267
  747. package/src/utils/__tests__/deep_merge.test.ts +0 -48
  748. package/src/utils/__tests__/event_emitter.test.ts +0 -579
  749. package/src/utils/__tests__/flat_map.test.ts +0 -71
  750. package/src/utils/__tests__/get_fuzzed_delay.test.ts +0 -32
  751. package/src/utils/__tests__/hash_buffer.test.ts +0 -105
  752. package/src/utils/__tests__/id_generator.test.ts +0 -80
  753. package/src/utils/__tests__/initialization_segment_cache.test.ts +0 -245
  754. package/src/utils/__tests__/is_non_empty_string.test.ts +0 -41
  755. package/src/utils/__tests__/is_null_or_undefined.test.ts +0 -33
  756. package/src/utils/__tests__/list_to_map.test.ts +0 -46
  757. package/src/utils/__tests__/logger.test.ts +0 -214
  758. package/src/utils/__tests__/noop.test.ts +0 -23
  759. package/src/utils/__tests__/object_assign.test.ts +0 -56
  760. package/src/utils/__tests__/object_values.test.ts +0 -26
  761. package/src/utils/__tests__/ranges.test.ts +0 -907
  762. package/src/utils/__tests__/resolve_url.test.ts +0 -100
  763. package/src/utils/__tests__/simple_set.test.ts +0 -57
  764. package/src/utils/__tests__/sorted_list.test.ts +0 -335
  765. package/src/utils/__tests__/starts_with.test.ts +0 -65
  766. package/src/utils/__tests__/string_parsing.test.ts +0 -267
  767. package/src/utils/__tests__/uniq.test.ts +0 -134
  768. package/src/utils/__tests__/warn_once.test.ts +0 -38
  769. package/src/utils/__tests__/weak_map_memory.test.ts +0 -188
  770. package/src/utils/are_arrays_of_numbers_equal.ts +0 -39
  771. package/src/utils/are_codecs_compatible.ts +0 -51
  772. package/src/utils/array_find.ts +0 -55
  773. package/src/utils/array_find_index.ts +0 -54
  774. package/src/utils/array_includes.ts +0 -93
  775. package/src/utils/assert.ts +0 -65
  776. package/src/utils/assert_unreachable.ts +0 -45
  777. package/src/utils/base64.ts +0 -153
  778. package/src/utils/byte_parsing.ts +0 -256
  779. package/src/utils/cancellable_sleep.ts +0 -41
  780. package/src/utils/create_cancellable_promise.ts +0 -69
  781. package/src/utils/deep_merge.ts +0 -49
  782. package/src/utils/event_emitter.ts +0 -147
  783. package/src/utils/flat_map.ts +0 -50
  784. package/src/utils/get_fuzzed_delay.ts +0 -27
  785. package/src/utils/hash_buffer.ts +0 -42
  786. package/src/utils/id_generator.ts +0 -35
  787. package/src/utils/initialization_segment_cache.ts +0 -68
  788. package/src/utils/is_non_empty_string.ts +0 -23
  789. package/src/utils/is_null_or_undefined.ts +0 -27
  790. package/src/utils/languages/ISO_639-1_to_ISO_639-3.ts +0 -207
  791. package/src/utils/languages/ISO_639-2_to_ISO_639-3.ts +0 -43
  792. package/src/utils/languages/__tests__/normalize.test.ts +0 -290
  793. package/src/utils/languages/index.ts +0 -29
  794. package/src/utils/languages/normalize.ts +0 -152
  795. package/src/utils/list_to_map.ts +0 -32
  796. package/src/utils/logger.ts +0 -100
  797. package/src/utils/noop.ts +0 -26
  798. package/src/utils/object_assign.ts +0 -60
  799. package/src/utils/object_values.ts +0 -31
  800. package/src/utils/ranges.ts +0 -499
  801. package/src/utils/reference.ts +0 -390
  802. package/src/utils/request/fetch.ts +0 -250
  803. package/src/utils/request/index.ts +0 -38
  804. package/src/utils/request/xhr.ts +0 -287
  805. package/src/utils/resolve_url.ts +0 -126
  806. package/src/utils/retry_promise_with_backoff.ts +0 -95
  807. package/src/utils/simple_set.ts +0 -67
  808. package/src/utils/sleep.ts +0 -14
  809. package/src/utils/slice_uint8array.ts +0 -53
  810. package/src/utils/sorted_list.ts +0 -240
  811. package/src/utils/starts_with.ts +0 -42
  812. package/src/utils/string_parsing.ts +0 -414
  813. package/src/utils/task_canceller.ts +0 -367
  814. package/src/utils/uniq.ts +0 -49
  815. package/src/utils/warn_once.ts +0 -34
  816. package/src/utils/weak_map_memory.ts +0 -89
  817. package/src/utils/wrapInPromise.ts +0 -24
  818. package/tsconfig.json +0 -28
  819. package/tsconfig.modules.json +0 -36
@@ -1,1074 +0,0 @@
1
- /**
2
- * Copyright 2015 CANAL+ Group
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import log from "../../log";
18
- import type Period from "../period";
19
- import { MANIFEST_UPDATE_TYPE } from "../types";
20
- import updatePeriodInPlace from "../update_period_in_place";
21
-
22
- /* eslint-disable @typescript-eslint/no-explicit-any */
23
-
24
- const oldVideoRepresentation1 = { contentWarnings: [],
25
- id: "rep-video-1",
26
- index: { _update() { /* noop */ },
27
- _replace() { /* noop */ } } };
28
- const oldVideoRepresentation2 = { contentWarnings: [],
29
- id: "rep-video-2",
30
- index: { _update() { /* noop */ },
31
- _replace() { /* noop */ } } };
32
- const oldVideoRepresentation3 = { contentWarnings: [],
33
- id: "rep-video-3",
34
- index: { _update() { /* noop */ },
35
- _replace() { /* noop */ } } };
36
- const oldVideoRepresentation4 = { contentWarnings: [],
37
- id: "rep-video-4",
38
- index: { _update() { /* noop */ },
39
- _replace() { /* noop */ } } };
40
- const oldAudioRepresentation = { contentWarnings: [],
41
- id: "rep-audio-1",
42
- index: { _update() { /* noop */ },
43
- _replace() { /* noop */ } } };
44
-
45
- const newVideoRepresentation1 = { contentWarnings: [],
46
- id: "rep-video-1",
47
- index: { _update() { /* noop */ },
48
- _replace() { /* noop */ } } };
49
- const newVideoRepresentation2 = { contentWarnings: [],
50
- id: "rep-video-2",
51
- index: { _update() { /* noop */ },
52
- _replace() { /* noop */ } } };
53
- const newVideoRepresentation3 = { contentWarnings: [],
54
- id: "rep-video-3",
55
- index: { _update() { /* noop */ },
56
- _replace() { /* noop */ } } };
57
- const newVideoRepresentation4 = { contentWarnings: [],
58
- id: "rep-video-4",
59
- index: { _update() { /* noop */ },
60
- _replace() { /* noop */ } } };
61
- const newAudioRepresentation = { contentWarnings: [],
62
- id: "rep-audio-1",
63
- index: { _update() { /* noop */ },
64
- _replace() { /* noop */ } } };
65
-
66
- describe("Manifest - updatePeriodInPlace", () => {
67
- let mockOldVideoRepresentation1Replace : jest.MockInstance<void, []> | undefined;
68
- let mockOldVideoRepresentation2Replace : jest.MockInstance<void, []> | undefined;
69
- let mockOldVideoRepresentation3Replace : jest.MockInstance<void, []> | undefined;
70
- let mockOldVideoRepresentation4Replace : jest.MockInstance<void, []> | undefined;
71
- let mockOldAudioRepresentationReplace : jest.MockInstance<void, []> | undefined;
72
- let mockOldVideoRepresentation1Update : jest.MockInstance<void, []> | undefined;
73
- let mockOldVideoRepresentation2Update : jest.MockInstance<void, []> | undefined;
74
- let mockOldVideoRepresentation3Update : jest.MockInstance<void, []> | undefined;
75
- let mockOldVideoRepresentation4Update : jest.MockInstance<void, []> | undefined;
76
- let mockOldAudioRepresentationUpdate : jest.MockInstance<void, []> | undefined;
77
- let mockNewVideoRepresentation1Replace : jest.MockInstance<void, []> | undefined;
78
- let mockNewVideoRepresentation2Replace : jest.MockInstance<void, []> | undefined;
79
- let mockNewVideoRepresentation3Replace : jest.MockInstance<void, []> | undefined;
80
- let mockNewVideoRepresentation4Replace : jest.MockInstance<void, []> | undefined;
81
- let mockNewAudioRepresentationReplace : jest.MockInstance<void, []> | undefined;
82
- let mockNewVideoRepresentation1Update : jest.MockInstance<void, []> | undefined;
83
- let mockNewVideoRepresentation2Update : jest.MockInstance<void, []> | undefined;
84
- let mockNewVideoRepresentation3Update : jest.MockInstance<void, []> | undefined;
85
- let mockNewVideoRepresentation4Update : jest.MockInstance<void, []> | undefined;
86
- let mockNewAudioRepresentationUpdate : jest.MockInstance<void, []> | undefined;
87
-
88
- beforeEach(() => {
89
- mockOldVideoRepresentation1Replace =
90
- jest.spyOn(oldVideoRepresentation1.index, "_replace");
91
- mockOldVideoRepresentation2Replace =
92
- jest.spyOn(oldVideoRepresentation2.index, "_replace");
93
- mockOldVideoRepresentation3Replace =
94
- jest.spyOn(oldVideoRepresentation3.index, "_replace");
95
- mockOldVideoRepresentation4Replace =
96
- jest.spyOn(oldVideoRepresentation4.index, "_replace");
97
- mockOldAudioRepresentationReplace =
98
- jest.spyOn(oldAudioRepresentation.index, "_replace");
99
- mockOldVideoRepresentation1Update =
100
- jest.spyOn(oldVideoRepresentation1.index, "_update");
101
- mockOldVideoRepresentation2Update =
102
- jest.spyOn(oldVideoRepresentation2.index, "_update");
103
- mockOldVideoRepresentation3Update =
104
- jest.spyOn(oldVideoRepresentation3.index, "_update");
105
- mockOldVideoRepresentation4Update =
106
- jest.spyOn(oldVideoRepresentation4.index, "_update");
107
- mockOldAudioRepresentationUpdate =
108
- jest.spyOn(oldAudioRepresentation.index, "_update");
109
- mockNewVideoRepresentation1Replace =
110
- jest.spyOn(newVideoRepresentation1.index, "_replace");
111
- mockNewVideoRepresentation2Replace =
112
- jest.spyOn(newVideoRepresentation2.index, "_replace");
113
- mockNewVideoRepresentation3Replace =
114
- jest.spyOn(newVideoRepresentation3.index, "_replace");
115
- mockNewVideoRepresentation4Replace =
116
- jest.spyOn(newVideoRepresentation4.index, "_replace");
117
- mockNewAudioRepresentationReplace =
118
- jest.spyOn(newAudioRepresentation.index, "_replace");
119
- mockNewVideoRepresentation1Update =
120
- jest.spyOn(newVideoRepresentation1.index, "_update");
121
- mockNewVideoRepresentation2Update =
122
- jest.spyOn(newVideoRepresentation2.index, "_update");
123
- mockNewVideoRepresentation3Update =
124
- jest.spyOn(newVideoRepresentation3.index, "_update");
125
- mockNewVideoRepresentation4Update =
126
- jest.spyOn(newVideoRepresentation4.index, "_update");
127
- mockNewAudioRepresentationUpdate =
128
- jest.spyOn(newAudioRepresentation.index, "_update");
129
- });
130
-
131
- afterEach(() => {
132
- mockOldVideoRepresentation1Replace?.mockRestore();
133
- mockOldVideoRepresentation2Replace?.mockRestore();
134
- mockOldVideoRepresentation3Replace?.mockRestore();
135
- mockOldVideoRepresentation4Replace?.mockRestore();
136
- mockOldAudioRepresentationReplace?.mockRestore();
137
- mockOldVideoRepresentation1Update?.mockRestore();
138
- mockOldVideoRepresentation2Update?.mockRestore();
139
- mockOldVideoRepresentation3Update?.mockRestore();
140
- mockOldVideoRepresentation4Update?.mockRestore();
141
- mockOldAudioRepresentationUpdate?.mockRestore();
142
- mockNewVideoRepresentation1Replace?.mockRestore();
143
- mockNewVideoRepresentation2Replace?.mockRestore();
144
- mockNewVideoRepresentation3Replace?.mockRestore();
145
- mockNewVideoRepresentation4Replace?.mockRestore();
146
- mockNewAudioRepresentationReplace?.mockRestore();
147
- mockNewVideoRepresentation1Update?.mockRestore();
148
- mockNewVideoRepresentation2Update?.mockRestore();
149
- mockNewVideoRepresentation3Update?.mockRestore();
150
- mockNewVideoRepresentation4Update?.mockRestore();
151
- mockNewAudioRepresentationUpdate?.mockRestore();
152
- });
153
-
154
- /* eslint-disable max-len */
155
- it("should fully update the first Period given by the second one in a full update", () => {
156
- /* eslint-enable max-len */
157
- const oldVideoAdaptation1 = { contentWarnings: [],
158
- type: "video",
159
- id: "ada-video-1",
160
- representations: [oldVideoRepresentation1,
161
- oldVideoRepresentation2] };
162
- const oldVideoAdaptation2 = { contentWarnings: [],
163
- type: "video",
164
- id: "ada-video-2",
165
- representations: [oldVideoRepresentation3,
166
- oldVideoRepresentation4] };
167
- const oldAudioAdaptation = { contentWarnings: [],
168
- type: "audio",
169
- id: "ada-audio-1",
170
- representations: [oldAudioRepresentation] };
171
- const oldPeriod = {
172
- contentWarnings: [],
173
- start: 5,
174
- end: 15,
175
- duration: 10,
176
- adaptations: { video: [oldVideoAdaptation1,
177
- oldVideoAdaptation2],
178
- audio: [oldAudioAdaptation] },
179
- getAdaptations() {
180
- return [oldVideoAdaptation1,
181
- oldVideoAdaptation2,
182
- oldAudioAdaptation];
183
- },
184
- };
185
- const newVideoAdaptation1 = { contentWarnings: [],
186
- type: "video",
187
- id: "ada-video-1",
188
- representations: [newVideoRepresentation1,
189
- newVideoRepresentation2] };
190
- const newVideoAdaptation2 = { contentWarnings: [],
191
- type: "video",
192
- id: "ada-video-2",
193
- representations: [newVideoRepresentation3,
194
- newVideoRepresentation4] };
195
- const newAudioAdaptation = { contentWarnings: [],
196
- type: "audio",
197
- id: "ada-audio-1",
198
- representations: [newAudioRepresentation] };
199
- const newPeriod = {
200
- contentWarnings: [],
201
- start: 500,
202
- end: 520,
203
- duration: 20,
204
- adaptations: { video: [newVideoAdaptation1,
205
- newVideoAdaptation2],
206
- audio: [newAudioAdaptation] },
207
- getAdaptations() {
208
- return [ newVideoAdaptation1,
209
- newVideoAdaptation2,
210
- newAudioAdaptation ];
211
- },
212
- };
213
-
214
- const oldPeriodAdaptations = jest.spyOn(oldPeriod, "getAdaptations");
215
- const newPeriodAdaptations = jest.spyOn(newPeriod, "getAdaptations");
216
- const mockLog = jest.spyOn(log, "warn");
217
-
218
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
219
- newPeriod as unknown as Period,
220
- MANIFEST_UPDATE_TYPE.Full);
221
-
222
- expect(res).toEqual({ addedAdaptations: [],
223
- removedAdaptations: [],
224
- updatedAdaptations: [
225
- {
226
- adaptation: oldVideoAdaptation1,
227
- addedRepresentations: [],
228
- removedRepresentations: [],
229
- updatedRepresentations: [
230
- oldVideoRepresentation1,
231
- oldVideoRepresentation2,
232
- ],
233
- },
234
- {
235
- adaptation: oldVideoAdaptation2,
236
- addedRepresentations: [],
237
- removedRepresentations: [],
238
- updatedRepresentations: [
239
- oldVideoRepresentation3,
240
- oldVideoRepresentation4,
241
- ],
242
- },
243
- {
244
- adaptation: oldAudioAdaptation,
245
- addedRepresentations: [],
246
- removedRepresentations: [],
247
- updatedRepresentations: [
248
- oldAudioRepresentation,
249
- ],
250
- },
251
- ] });
252
-
253
- expect(oldPeriod.start).toEqual(500);
254
- expect(oldPeriod.end).toEqual(520);
255
- expect(oldPeriod.duration).toEqual(20);
256
- expect(oldPeriodAdaptations).toHaveBeenCalledTimes(1);
257
-
258
- expect(mockOldVideoRepresentation1Replace).toHaveBeenCalledTimes(1);
259
- expect(mockOldVideoRepresentation1Replace)
260
- .toHaveBeenCalledWith(newVideoRepresentation1.index);
261
-
262
- expect(mockOldVideoRepresentation2Replace).toHaveBeenCalledTimes(1);
263
- expect(mockOldVideoRepresentation2Replace)
264
- .toHaveBeenCalledWith(newVideoRepresentation2.index);
265
-
266
- expect(mockOldVideoRepresentation3Replace).toHaveBeenCalledTimes(1);
267
- expect(mockOldVideoRepresentation3Replace)
268
- .toHaveBeenCalledWith(newVideoRepresentation3.index);
269
-
270
- expect(mockOldVideoRepresentation4Replace).toHaveBeenCalledTimes(1);
271
- expect(mockOldVideoRepresentation4Replace)
272
- .toHaveBeenCalledWith(newVideoRepresentation4.index);
273
-
274
- expect(mockOldAudioRepresentationReplace).toHaveBeenCalledTimes(1);
275
- expect(mockOldAudioRepresentationReplace)
276
- .toHaveBeenCalledWith(newAudioRepresentation.index);
277
-
278
- expect(newPeriod.start).toEqual(500);
279
- expect(newPeriod.end).toEqual(520);
280
- expect(newPeriod.duration).toEqual(20);
281
- expect(newPeriodAdaptations).toHaveBeenCalledTimes(1);
282
-
283
- expect(mockNewVideoRepresentation1Replace).not.toHaveBeenCalled();
284
- expect(mockNewVideoRepresentation2Replace).not.toHaveBeenCalled();
285
- expect(mockNewVideoRepresentation3Replace).not.toHaveBeenCalled();
286
- expect(mockNewVideoRepresentation4Replace).not.toHaveBeenCalled();
287
- expect(mockNewAudioRepresentationReplace).not.toHaveBeenCalled();
288
-
289
- expect(mockOldVideoRepresentation1Update).not.toHaveBeenCalled();
290
- expect(mockOldVideoRepresentation2Update).not.toHaveBeenCalled();
291
- expect(mockOldVideoRepresentation3Update).not.toHaveBeenCalled();
292
- expect(mockOldVideoRepresentation4Update).not.toHaveBeenCalled();
293
- expect(mockOldAudioRepresentationUpdate).not.toHaveBeenCalled();
294
- expect(mockNewVideoRepresentation1Update).not.toHaveBeenCalled();
295
- expect(mockNewVideoRepresentation2Update).not.toHaveBeenCalled();
296
- expect(mockNewVideoRepresentation3Update).not.toHaveBeenCalled();
297
- expect(mockNewVideoRepresentation4Update).not.toHaveBeenCalled();
298
- expect(mockNewAudioRepresentationUpdate).not.toHaveBeenCalled();
299
-
300
- expect(mockLog).toHaveBeenCalledTimes(0);
301
- mockLog.mockRestore();
302
- });
303
-
304
- /* eslint-disable max-len */
305
- it("should partially update the first Period given by the second one in a partial update", () => {
306
- /* eslint-enable max-len */
307
- const oldVideoAdaptation1 = { contentWarnings: [],
308
- id: "ada-video-1",
309
- type: "video",
310
- representations: [oldVideoRepresentation1,
311
- oldVideoRepresentation2] };
312
- const oldVideoAdaptation2 = { contentWarnings: [],
313
- id: "ada-video-2",
314
- type: "video",
315
- representations: [oldVideoRepresentation3,
316
- oldVideoRepresentation4] };
317
- const oldAudioAdaptation = { contentWarnings: [],
318
- id: "ada-audio-1",
319
- type: "audio",
320
- representations: [oldAudioRepresentation] };
321
- const oldPeriod = {
322
- contentWarnings: [],
323
- start: 5,
324
- end: 15,
325
- duration: 10,
326
- adaptations: { video: [oldVideoAdaptation1,
327
- oldVideoAdaptation2],
328
- audio: [oldAudioAdaptation] },
329
- getAdaptations() {
330
- return [oldVideoAdaptation1,
331
- oldVideoAdaptation2,
332
- oldAudioAdaptation];
333
- },
334
- };
335
- const newVideoAdaptation1 = { contentWarnings: [],
336
- id: "ada-video-1",
337
- type: "video",
338
- representations: [newVideoRepresentation1,
339
- newVideoRepresentation2] };
340
- const newVideoAdaptation2 = { contentWarnings: [],
341
- id: "ada-video-2",
342
- type: "video",
343
- representations: [newVideoRepresentation3,
344
- newVideoRepresentation4] };
345
- const newAudioAdaptation = { contentWarnings: [],
346
- id: "ada-audio-1",
347
- type: "audio",
348
- representations: [newAudioRepresentation] };
349
- const newPeriod = {
350
- contentWarnings: [],
351
- start: 500,
352
- end: 520,
353
- duration: 20,
354
- adaptations: { video: [newVideoAdaptation1,
355
- newVideoAdaptation2],
356
- audio: [newAudioAdaptation] },
357
- getAdaptations() {
358
- return [ newVideoAdaptation1,
359
- newVideoAdaptation2,
360
- newAudioAdaptation ];
361
- },
362
- };
363
-
364
- const mockOldPeriodGetAdaptations = jest.spyOn(oldPeriod, "getAdaptations");
365
- const mockNewPeriodGetAdaptations = jest.spyOn(newPeriod, "getAdaptations");
366
- const mockLog = jest.spyOn(log, "warn");
367
-
368
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
369
- newPeriod as unknown as Period,
370
- MANIFEST_UPDATE_TYPE.Partial);
371
- expect(res).toEqual({ addedAdaptations: [],
372
- removedAdaptations: [],
373
- updatedAdaptations: [
374
- {
375
- adaptation: oldVideoAdaptation1,
376
- addedRepresentations: [],
377
- removedRepresentations: [],
378
- updatedRepresentations: [
379
- oldVideoRepresentation1,
380
- oldVideoRepresentation2,
381
- ],
382
- },
383
- {
384
- adaptation: oldVideoAdaptation2,
385
- addedRepresentations: [],
386
- removedRepresentations: [],
387
- updatedRepresentations: [
388
- oldVideoRepresentation3,
389
- oldVideoRepresentation4,
390
- ],
391
- },
392
- {
393
- adaptation: oldAudioAdaptation,
394
- addedRepresentations: [],
395
- removedRepresentations: [],
396
- updatedRepresentations: [
397
- oldAudioRepresentation,
398
- ],
399
- },
400
- ] });
401
-
402
- expect(oldPeriod.start).toEqual(500);
403
- expect(oldPeriod.end).toEqual(520);
404
- expect(oldPeriod.duration).toEqual(20);
405
- expect(mockOldPeriodGetAdaptations).toHaveBeenCalledTimes(1);
406
-
407
- expect(mockOldVideoRepresentation1Update).toHaveBeenCalledTimes(1);
408
- expect(mockOldVideoRepresentation1Update)
409
- .toHaveBeenCalledWith(newVideoRepresentation1.index);
410
-
411
- expect(mockOldVideoRepresentation2Update).toHaveBeenCalledTimes(1);
412
- expect(mockOldVideoRepresentation2Update)
413
- .toHaveBeenCalledWith(newVideoRepresentation2.index);
414
-
415
- expect(mockOldVideoRepresentation3Update).toHaveBeenCalledTimes(1);
416
- expect(mockOldVideoRepresentation3Update)
417
- .toHaveBeenCalledWith(newVideoRepresentation3.index);
418
-
419
- expect(mockOldVideoRepresentation4Update).toHaveBeenCalledTimes(1);
420
- expect(mockOldVideoRepresentation4Update)
421
- .toHaveBeenCalledWith(newVideoRepresentation4.index);
422
-
423
- expect(mockOldAudioRepresentationUpdate).toHaveBeenCalledTimes(1);
424
- expect(mockOldAudioRepresentationUpdate)
425
- .toHaveBeenCalledWith(newAudioRepresentation.index);
426
-
427
- expect(newPeriod.start).toEqual(500);
428
- expect(newPeriod.end).toEqual(520);
429
- expect(newPeriod.duration).toEqual(20);
430
- expect(mockNewPeriodGetAdaptations).toHaveBeenCalledTimes(1);
431
-
432
- expect(mockNewVideoRepresentation1Update).not.toHaveBeenCalled();
433
- expect(mockNewVideoRepresentation2Update).not.toHaveBeenCalled();
434
- expect(mockNewVideoRepresentation3Update).not.toHaveBeenCalled();
435
- expect(mockNewVideoRepresentation4Update).not.toHaveBeenCalled();
436
- expect(mockNewAudioRepresentationUpdate).not.toHaveBeenCalled();
437
-
438
- expect(mockOldVideoRepresentation1Replace).not.toHaveBeenCalled();
439
- expect(mockOldVideoRepresentation2Replace).not.toHaveBeenCalled();
440
- expect(mockOldVideoRepresentation3Replace).not.toHaveBeenCalled();
441
- expect(mockOldVideoRepresentation4Replace).not.toHaveBeenCalled();
442
- expect(mockOldAudioRepresentationReplace).not.toHaveBeenCalled();
443
- expect(mockNewVideoRepresentation1Replace).not.toHaveBeenCalled();
444
- expect(mockNewVideoRepresentation2Replace).not.toHaveBeenCalled();
445
- expect(mockNewVideoRepresentation3Replace).not.toHaveBeenCalled();
446
- expect(mockNewVideoRepresentation4Replace).not.toHaveBeenCalled();
447
- expect(mockNewAudioRepresentationReplace).not.toHaveBeenCalled();
448
-
449
- expect(mockLog).toHaveBeenCalledTimes(0);
450
- mockLog.mockRestore();
451
- });
452
-
453
- it("should add new Adaptations in Full mode", () => {
454
- const oldVideoAdaptation1 = { contentWarnings: [],
455
- type: "video",
456
- id: "ada-video-1",
457
- representations: [oldVideoRepresentation1,
458
- oldVideoRepresentation2] };
459
- const oldAudioAdaptation = { contentWarnings: [],
460
- type: "audio",
461
- id: "ada-audio-1",
462
- representations: [oldAudioRepresentation] };
463
- const oldPeriod = {
464
- contentWarnings: [],
465
- start: 5,
466
- end: 15,
467
- duration: 10,
468
- adaptations: { video: [oldVideoAdaptation1],
469
- audio: [oldAudioAdaptation] },
470
- getAdaptations() {
471
- return [oldVideoAdaptation1,
472
- oldAudioAdaptation];
473
- },
474
- };
475
- const newVideoAdaptation1 = { contentWarnings: [],
476
- id: "ada-video-1",
477
- type: "video",
478
- representations: [newVideoRepresentation1,
479
- newVideoRepresentation2] };
480
- const newVideoAdaptation2 = { contentWarnings: [],
481
- id: "ada-video-2",
482
- type: "video",
483
- representations: [newVideoRepresentation3,
484
- newVideoRepresentation4] };
485
- const newAudioAdaptation = { contentWarnings: [],
486
- id: "ada-audio-1",
487
- type: "audio",
488
- representations: [newAudioRepresentation] };
489
- const newPeriod = {
490
- contentWarnings: [],
491
- start: 500,
492
- end: 520,
493
- duration: 20,
494
- adaptations: { video: [newVideoAdaptation1,
495
- newVideoAdaptation2],
496
- audio: [newAudioAdaptation] },
497
- getAdaptations() {
498
- return [newVideoAdaptation1,
499
- newVideoAdaptation2,
500
- newAudioAdaptation];
501
- },
502
- };
503
-
504
- const mockLog = jest.spyOn(log, "warn");
505
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
506
- newPeriod as unknown as Period,
507
- MANIFEST_UPDATE_TYPE.Full);
508
- expect(res).toEqual({ addedAdaptations: [newVideoAdaptation2],
509
- removedAdaptations: [],
510
- updatedAdaptations: [
511
- {
512
- adaptation: oldVideoAdaptation1,
513
- addedRepresentations: [],
514
- removedRepresentations: [],
515
- updatedRepresentations: [
516
- oldVideoRepresentation1,
517
- oldVideoRepresentation2,
518
- ],
519
- },
520
- {
521
- adaptation: oldAudioAdaptation,
522
- addedRepresentations: [],
523
- removedRepresentations: [],
524
- updatedRepresentations: [
525
- oldAudioRepresentation,
526
- ],
527
- },
528
- ] });
529
- expect(mockLog).toHaveBeenCalled();
530
- expect(mockLog).toHaveBeenNthCalledWith(
531
- 1,
532
- "Manifest: 1 new Adaptations found when merging."
533
- );
534
- expect(oldPeriod.adaptations.video).toHaveLength(2);
535
- mockLog.mockRestore();
536
- });
537
-
538
- it("should add new Adaptations in Partial mode", () => {
539
- const oldVideoAdaptation1 = { contentWarnings: [],
540
- type: "video",
541
- id: "ada-video-1",
542
- representations: [oldVideoRepresentation1,
543
- oldVideoRepresentation2] };
544
- const oldAudioAdaptation = { contentWarnings: [],
545
- type: "audio",
546
- id: "ada-audio-1",
547
- representations: [oldAudioRepresentation] };
548
- const oldPeriod = {
549
- contentWarnings: [],
550
- start: 5,
551
- end: 15,
552
- duration: 10,
553
- adaptations: { video: [oldVideoAdaptation1],
554
- audio: [oldAudioAdaptation] },
555
- getAdaptations() {
556
- return [oldVideoAdaptation1,
557
- oldAudioAdaptation];
558
- },
559
- };
560
- const newVideoAdaptation1 = { contentWarnings: [],
561
- id: "ada-video-1",
562
- type: "video",
563
- representations: [newVideoRepresentation1,
564
- newVideoRepresentation2] };
565
- const newVideoAdaptation2 = { contentWarnings: [],
566
- id: "ada-video-2",
567
- type: "video",
568
- representations: [newVideoRepresentation3,
569
- newVideoRepresentation4] };
570
- const newAudioAdaptation = { contentWarnings: [],
571
- id: "ada-audio-1",
572
- type: "audio",
573
- representations: [newAudioRepresentation] };
574
- const newPeriod = {
575
- contentWarnings: [],
576
- start: 500,
577
- end: 520,
578
- duration: 20,
579
- adaptations: { video: [newVideoAdaptation1,
580
- newVideoAdaptation2],
581
- audio: [newAudioAdaptation] },
582
- getAdaptations() {
583
- return [newVideoAdaptation1,
584
- newVideoAdaptation2,
585
- newAudioAdaptation];
586
- },
587
- };
588
-
589
- const mockLog = jest.spyOn(log, "warn");
590
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
591
- newPeriod as unknown as Period,
592
- MANIFEST_UPDATE_TYPE.Partial);
593
- expect(res).toEqual({ addedAdaptations: [newVideoAdaptation2],
594
- removedAdaptations: [],
595
- updatedAdaptations: [
596
- {
597
- adaptation: oldVideoAdaptation1,
598
- addedRepresentations: [],
599
- removedRepresentations: [],
600
- updatedRepresentations: [
601
- oldVideoRepresentation1,
602
- oldVideoRepresentation2,
603
- ],
604
- },
605
- {
606
- adaptation: oldAudioAdaptation,
607
- addedRepresentations: [],
608
- removedRepresentations: [],
609
- updatedRepresentations: [
610
- oldAudioRepresentation,
611
- ],
612
- },
613
- ] });
614
- expect(mockLog).toHaveBeenCalled();
615
- expect(mockLog).toHaveBeenNthCalledWith(
616
- 1,
617
- "Manifest: 1 new Adaptations found when merging."
618
- );
619
- expect(oldPeriod.adaptations.video).toHaveLength(2);
620
- mockLog.mockRestore();
621
- });
622
-
623
- it("should remove unfound Adaptations in Full mode", () => {
624
- const oldVideoAdaptation1 = { contentWarnings: [],
625
- type: "video",
626
- id: "ada-video-1",
627
- representations: [oldVideoRepresentation1,
628
- oldVideoRepresentation2] };
629
- const oldVideoAdaptation2 = { contentWarnings: [],
630
- id: "ada-video-2",
631
- type: "video",
632
- representations: [newVideoRepresentation3,
633
- newVideoRepresentation4] };
634
- const oldAudioAdaptation = { contentWarnings: [],
635
- type: "audio",
636
- id: "ada-audio-1",
637
- representations: [oldAudioRepresentation] };
638
- const oldPeriod = {
639
- contentWarnings: [],
640
- start: 5,
641
- end: 15,
642
- duration: 10,
643
- adaptations: { video: [oldVideoAdaptation1,
644
- oldVideoAdaptation2],
645
- audio: [oldAudioAdaptation] },
646
- getAdaptations() {
647
- return [oldVideoAdaptation1,
648
- oldVideoAdaptation2,
649
- oldAudioAdaptation];
650
- },
651
- };
652
- const newVideoAdaptation1 = { contentWarnings: [],
653
- id: "ada-video-1",
654
- type: "video",
655
- representations: [newVideoRepresentation1,
656
- newVideoRepresentation2] };
657
- const newAudioAdaptation = { contentWarnings: [],
658
- id: "ada-audio-1",
659
- type: "audio",
660
- representations: [newAudioRepresentation] };
661
- const newPeriod = {
662
- contentWarnings: [],
663
- start: 500,
664
- end: 520,
665
- duration: 20,
666
- adaptations: { video: [newVideoAdaptation1],
667
- audio: [newAudioAdaptation] },
668
- getAdaptations() {
669
- return [newVideoAdaptation1,
670
- newAudioAdaptation];
671
- },
672
- };
673
-
674
- const mockLog = jest.spyOn(log, "warn");
675
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
676
- newPeriod as unknown as Period,
677
- MANIFEST_UPDATE_TYPE.Full);
678
- expect(res).toEqual({ addedAdaptations: [],
679
- removedAdaptations: [oldVideoAdaptation2],
680
- updatedAdaptations: [
681
- {
682
- adaptation: oldVideoAdaptation1,
683
- addedRepresentations: [],
684
- removedRepresentations: [],
685
- updatedRepresentations: [
686
- oldVideoRepresentation1,
687
- oldVideoRepresentation2,
688
- ],
689
- },
690
- {
691
- adaptation: oldAudioAdaptation,
692
- addedRepresentations: [],
693
- removedRepresentations: [],
694
- updatedRepresentations: [
695
- oldAudioRepresentation,
696
- ],
697
- },
698
- ] });
699
- expect(mockLog).toHaveBeenCalled();
700
- expect(mockLog).toHaveBeenNthCalledWith(
701
- 1,
702
- "Manifest: Adaptation \"ada-video-2\" not found when merging."
703
- );
704
- expect(oldPeriod.adaptations.video).toHaveLength(2);
705
- mockLog.mockRestore();
706
- });
707
-
708
- it("should remove unfound Adaptations in Partial mode", () => {
709
- const oldVideoAdaptation1 = { contentWarnings: [],
710
- type: "video",
711
- id: "ada-video-1",
712
- representations: [oldVideoRepresentation1,
713
- oldVideoRepresentation2] };
714
- const oldVideoAdaptation2 = { contentWarnings: [],
715
- id: "ada-video-2",
716
- type: "video",
717
- representations: [newVideoRepresentation3,
718
- newVideoRepresentation4] };
719
- const oldAudioAdaptation = { contentWarnings: [],
720
- type: "audio",
721
- id: "ada-audio-1",
722
- representations: [oldAudioRepresentation] };
723
- const oldPeriod = {
724
- contentWarnings: [],
725
- start: 5,
726
- end: 15,
727
- duration: 10,
728
- adaptations: { video: [oldVideoAdaptation1,
729
- oldVideoAdaptation2],
730
- audio: [oldAudioAdaptation] },
731
- getAdaptations() {
732
- return [oldVideoAdaptation1,
733
- oldVideoAdaptation2,
734
- oldAudioAdaptation];
735
- },
736
- };
737
- const newVideoAdaptation1 = { contentWarnings: [],
738
- id: "ada-video-1",
739
- type: "video",
740
- representations: [newVideoRepresentation1,
741
- newVideoRepresentation2] };
742
- const newAudioAdaptation = { contentWarnings: [],
743
- id: "ada-audio-1",
744
- type: "audio",
745
- representations: [newAudioRepresentation] };
746
- const newPeriod = {
747
- contentWarnings: [],
748
- start: 500,
749
- end: 520,
750
- duration: 20,
751
- adaptations: { video: [newVideoAdaptation1],
752
- audio: [newAudioAdaptation] },
753
- getAdaptations() {
754
- return [newVideoAdaptation1,
755
- newAudioAdaptation];
756
- },
757
- };
758
-
759
- const mockLog = jest.spyOn(log, "warn");
760
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
761
- newPeriod as unknown as Period,
762
- MANIFEST_UPDATE_TYPE.Partial);
763
- expect(res).toEqual({ addedAdaptations: [],
764
- removedAdaptations: [oldVideoAdaptation2],
765
- updatedAdaptations: [
766
- {
767
- adaptation: oldVideoAdaptation1,
768
- addedRepresentations: [],
769
- removedRepresentations: [],
770
- updatedRepresentations: [
771
- oldVideoRepresentation1,
772
- oldVideoRepresentation2,
773
- ],
774
- },
775
- {
776
- adaptation: oldAudioAdaptation,
777
- addedRepresentations: [],
778
- removedRepresentations: [],
779
- updatedRepresentations: [
780
- oldAudioRepresentation,
781
- ],
782
- },
783
- ] });
784
- expect(mockLog).toHaveBeenCalled();
785
- expect(mockLog).toHaveBeenNthCalledWith(
786
- 1,
787
- "Manifest: Adaptation \"ada-video-2\" not found when merging."
788
- );
789
- expect(oldPeriod.adaptations.video).toHaveLength(2);
790
- mockLog.mockRestore();
791
- });
792
-
793
- it("should add new Representations in Full mode", () => {
794
- const oldVideoAdaptation1 = { contentWarnings: [],
795
- type: "video",
796
- id: "ada-video-1",
797
- representations: [oldVideoRepresentation1] };
798
- const oldAudioAdaptation = { contentWarnings: [],
799
- type: "audio",
800
- id: "ada-audio-1",
801
- representations: [oldAudioRepresentation] };
802
- const oldPeriod = { contentWarnings: [],
803
- start: 5,
804
- end: 15,
805
- duration: 10,
806
- adaptations: { video: [oldVideoAdaptation1],
807
- audio: [oldAudioAdaptation] },
808
- getAdaptations() { return [oldVideoAdaptation1,
809
- oldAudioAdaptation]; } };
810
-
811
- const newVideoAdaptation1 = { contentWarnings: [],
812
- id: "ada-video-1",
813
- type: "video",
814
- representations: [newVideoRepresentation1,
815
- newVideoRepresentation2] };
816
- const newAudioAdaptation = { contentWarnings: [],
817
- id: "ada-audio-1",
818
- type: "audio",
819
- representations: [newAudioRepresentation] };
820
- const newPeriod = {
821
- contentWarnings: [],
822
- start: 500,
823
- end: 520,
824
- duration: 20,
825
- adaptations: { video: [newVideoAdaptation1],
826
- audio: [newAudioAdaptation] },
827
- getAdaptations() {
828
- return [newVideoAdaptation1, newAudioAdaptation];
829
- },
830
- };
831
-
832
- const mockLog = jest.spyOn(log, "warn");
833
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
834
- newPeriod as unknown as Period,
835
- MANIFEST_UPDATE_TYPE.Full);
836
- expect(res).toEqual({ addedAdaptations: [],
837
- removedAdaptations: [],
838
- updatedAdaptations: [
839
- {
840
- adaptation: oldVideoAdaptation1,
841
- addedRepresentations: [newVideoRepresentation2],
842
- removedRepresentations: [],
843
- updatedRepresentations: [
844
- oldVideoRepresentation1,
845
- ],
846
- },
847
- {
848
- adaptation: oldAudioAdaptation,
849
- addedRepresentations: [],
850
- removedRepresentations: [],
851
- updatedRepresentations: [
852
- oldAudioRepresentation,
853
- ],
854
- },
855
- ] });
856
- expect(mockLog).toHaveBeenCalledTimes(1);
857
- expect(mockLog).toHaveBeenCalledWith(
858
- "Manifest: 1 new Representations found when merging."
859
- );
860
- expect(oldVideoAdaptation1.representations).toHaveLength(2);
861
- mockLog.mockRestore();
862
- });
863
-
864
- it("should add new Representations in Partial mode", () => {
865
- const oldVideoAdaptation1 = { contentWarnings: [],
866
- type: "video",
867
- id: "ada-video-1",
868
- representations: [oldVideoRepresentation1] };
869
- const oldAudioAdaptation = { contentWarnings: [],
870
- type: "audio",
871
- id: "ada-audio-1",
872
- representations: [oldAudioRepresentation] };
873
- const oldPeriod = { contentWarnings: [],
874
- start: 5,
875
- end: 15,
876
- duration: 10,
877
- adaptations: { video: [oldVideoAdaptation1],
878
- audio: [oldAudioAdaptation] },
879
- getAdaptations() { return [oldVideoAdaptation1,
880
- oldAudioAdaptation]; } };
881
-
882
- const newVideoAdaptation1 = { contentWarnings: [],
883
- id: "ada-video-1",
884
- type: "video",
885
- representations: [newVideoRepresentation1,
886
- newVideoRepresentation2] };
887
- const newAudioAdaptation = { contentWarnings: [],
888
- id: "ada-audio-1",
889
- type: "audio",
890
- representations: [newAudioRepresentation] };
891
- const newPeriod = {
892
- contentWarnings: [],
893
- start: 500,
894
- end: 520,
895
- duration: 20,
896
- adaptations: { video: [newVideoAdaptation1],
897
- audio: [newAudioAdaptation] },
898
- getAdaptations() {
899
- return [newVideoAdaptation1, newAudioAdaptation];
900
- },
901
- };
902
-
903
- const mockLog = jest.spyOn(log, "warn");
904
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
905
- newPeriod as unknown as Period,
906
- MANIFEST_UPDATE_TYPE.Partial);
907
- expect(res).toEqual({ addedAdaptations: [],
908
- removedAdaptations: [],
909
- updatedAdaptations: [
910
- {
911
- adaptation: oldVideoAdaptation1,
912
- addedRepresentations: [newVideoRepresentation2],
913
- removedRepresentations: [],
914
- updatedRepresentations: [
915
- oldVideoRepresentation1,
916
- ],
917
- },
918
- {
919
- adaptation: oldAudioAdaptation,
920
- addedRepresentations: [],
921
- removedRepresentations: [],
922
- updatedRepresentations: [
923
- oldAudioRepresentation,
924
- ],
925
- },
926
- ] });
927
- expect(mockLog).toHaveBeenCalledTimes(1);
928
- expect(mockLog).toHaveBeenCalledWith(
929
- "Manifest: 1 new Representations found when merging."
930
- );
931
- expect(oldVideoAdaptation1.representations).toHaveLength(2);
932
- mockLog.mockRestore();
933
- });
934
-
935
- it("should remove an old Representation that is not found in Full mode", () => {
936
- const oldVideoAdaptation1 = { contentWarnings: [],
937
- id: "ada-video-1",
938
- type: "video",
939
- representations: [oldVideoRepresentation1,
940
- oldVideoRepresentation2] };
941
- const oldAudioAdaptation = { contentWarnings: [],
942
- id: "ada-audio-1",
943
- type: "audio",
944
- representations: [oldAudioRepresentation] };
945
- const oldPeriod = { contentWarnings: [],
946
- start: 500,
947
- end: 520,
948
- duration: 20,
949
- adaptations: { video: [oldVideoAdaptation1],
950
- audio: [oldAudioAdaptation] },
951
- getAdaptations() { return [oldVideoAdaptation1,
952
- oldAudioAdaptation]; } };
953
- const newVideoAdaptation1 = { contentWarnings: [],
954
- id: "ada-video-1",
955
- type: "video",
956
- representations: [newVideoRepresentation1] };
957
- const newAudioAdaptation = { contentWarnings: [],
958
- id: "ada-audio-1",
959
- type: "audio",
960
- representations: [newAudioRepresentation] };
961
- const newPeriod = { contentWarnings: [],
962
- start: 5,
963
- end: 15,
964
- duration: 10,
965
- adaptations: { video: [newVideoAdaptation1],
966
- audio: [newAudioAdaptation],
967
- },
968
- getAdaptations() {
969
- return [newVideoAdaptation1, newAudioAdaptation];
970
- },
971
- };
972
-
973
- const mockLog = jest.spyOn(log, "warn");
974
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
975
- newPeriod as unknown as Period,
976
- MANIFEST_UPDATE_TYPE.Full);
977
- expect(res).toEqual({ addedAdaptations: [],
978
- removedAdaptations: [],
979
- updatedAdaptations: [
980
- {
981
- adaptation: oldVideoAdaptation1,
982
- addedRepresentations: [],
983
- removedRepresentations: [oldVideoRepresentation2],
984
- updatedRepresentations: [
985
- oldVideoRepresentation1,
986
- ],
987
- },
988
- {
989
- adaptation: oldAudioAdaptation,
990
- addedRepresentations: [],
991
- removedRepresentations: [],
992
- updatedRepresentations: [
993
- oldAudioRepresentation,
994
- ],
995
- },
996
- ] });
997
- expect(mockLog).toHaveBeenCalledTimes(1);
998
- expect(mockLog).toHaveBeenCalledWith(
999
- "Manifest: Representation \"rep-video-2\" not found when merging."
1000
- );
1001
- expect(oldVideoAdaptation1.representations).toHaveLength(1);
1002
- mockLog.mockRestore();
1003
- });
1004
-
1005
- it("should remove an old Representation that is not found in Partial mode", () => {
1006
- const oldVideoAdaptation1 = { contentWarnings: [],
1007
- id: "ada-video-1",
1008
- type: "video",
1009
- representations: [oldVideoRepresentation1,
1010
- oldVideoRepresentation2] };
1011
- const oldAudioAdaptation = { contentWarnings: [],
1012
- id: "ada-audio-1",
1013
- type: "audio",
1014
- representations: [oldAudioRepresentation] };
1015
- const oldPeriod = { contentWarnings: [],
1016
- start: 500,
1017
- end: 520,
1018
- duration: 20,
1019
- adaptations: { video: [oldVideoAdaptation1],
1020
- audio: [oldAudioAdaptation] },
1021
- getAdaptations() { return [oldVideoAdaptation1,
1022
- oldAudioAdaptation]; } };
1023
- const newVideoAdaptation1 = { contentWarnings: [],
1024
- id: "ada-video-1",
1025
- type: "video",
1026
- representations: [newVideoRepresentation1] };
1027
- const newAudioAdaptation = { contentWarnings: [],
1028
- id: "ada-audio-1",
1029
- type: "audio",
1030
- representations: [newAudioRepresentation] };
1031
- const newPeriod = { contentWarnings: [],
1032
- start: 5,
1033
- end: 15,
1034
- duration: 10,
1035
- adaptations: { video: [newVideoAdaptation1],
1036
- audio: [newAudioAdaptation],
1037
- },
1038
- getAdaptations() {
1039
- return [newVideoAdaptation1, newAudioAdaptation];
1040
- },
1041
- };
1042
-
1043
- const mockLog = jest.spyOn(log, "warn");
1044
- const res = updatePeriodInPlace(oldPeriod as unknown as Period,
1045
- newPeriod as unknown as Period,
1046
- MANIFEST_UPDATE_TYPE.Partial);
1047
- expect(res).toEqual({ addedAdaptations: [],
1048
- removedAdaptations: [],
1049
- updatedAdaptations: [
1050
- {
1051
- adaptation: oldVideoAdaptation1,
1052
- addedRepresentations: [],
1053
- removedRepresentations: [oldVideoRepresentation2],
1054
- updatedRepresentations: [
1055
- oldVideoRepresentation1,
1056
- ],
1057
- },
1058
- {
1059
- adaptation: oldAudioAdaptation,
1060
- addedRepresentations: [],
1061
- removedRepresentations: [],
1062
- updatedRepresentations: [
1063
- oldAudioRepresentation,
1064
- ],
1065
- },
1066
- ] });
1067
- expect(mockLog).toHaveBeenCalledTimes(1);
1068
- expect(mockLog).toHaveBeenCalledWith(
1069
- "Manifest: Representation \"rep-video-2\" not found when merging."
1070
- );
1071
- expect(oldVideoAdaptation1.representations).toHaveLength(1);
1072
- mockLog.mockRestore();
1073
- });
1074
- });