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.
- package/CHANGELOG.md +13 -0
- package/VERSION +1 -1
- package/dist/_esm5.processed/core/api/public_api.js +2 -2
- package/dist/_esm5.processed/manifest/manifest.js +1 -0
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +11 -0
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +18 -4
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.d.ts +1 -1
- package/dist/rx-player.js +24 -9
- package/dist/rx-player.min.d.ts +1 -1
- package/dist/rx-player.min.js +1 -1
- package/package.json +6 -6
- package/.editorconfig +0 -22
- package/.eslintrc.js +0 -406
- package/.github/workflows/checks.yml +0 -101
- package/.github/workflows/perfs.yml +0 -22
- package/.github/workflows/sonarcloud_analysis.yml +0 -20
- package/CONTRIBUTING.md +0 -272
- package/FILES.md +0 -283
- package/jest.config.js +0 -73
- package/manifest.mpd +0 -149
- package/scripts/README.md +0 -11
- package/scripts/build/constants.d.ts +0 -53
- package/scripts/build/generate_build.js +0 -190
- package/scripts/build/templates/experimental/features/index.d.ts +0 -16
- package/scripts/build/templates/experimental/features/index.js +0 -16
- package/scripts/build/templates/experimental/index.d.ts +0 -16
- package/scripts/build/templates/experimental/index.js +0 -16
- package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.d.ts +0 -18
- package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.js +0 -18
- package/scripts/build/templates/experimental/tools/index.d.ts +0 -16
- package/scripts/build/templates/experimental/tools/index.js +0 -16
- package/scripts/build/templates/features/index.d.ts +0 -16
- package/scripts/build/templates/features/index.js +0 -16
- package/scripts/build/templates/logger/index.d.ts +0 -17
- package/scripts/build/templates/logger/index.js +0 -17
- package/scripts/build/templates/minimal/index.d.ts +0 -17
- package/scripts/build/templates/minimal/index.js +0 -17
- package/scripts/build/templates/tools/TextTrackRenderer.d.ts +0 -18
- package/scripts/build/templates/tools/TextTrackRenderer.js +0 -18
- package/scripts/build/templates/tools/index.d.ts +0 -16
- package/scripts/build/templates/tools/index.js +0 -16
- package/scripts/build/templates/tools/string-utils.d.ts +0 -18
- package/scripts/build/templates/tools/string-utils.js +0 -18
- package/scripts/build/templates/types/index.d.ts +0 -16
- package/scripts/build/templates/types/index.js +0 -15
- package/scripts/canal-release.patch +0 -316
- package/scripts/check_nodejs_import_compatibility.js +0 -60
- package/scripts/deploy_new_demo +0 -123
- package/scripts/fast_demo_build.js +0 -129
- package/scripts/generate_certificate +0 -19
- package/scripts/generate_demo_list.js +0 -105
- package/scripts/generate_documentation_list.js +0 -109
- package/scripts/generate_full_demo.js +0 -201
- package/scripts/generate_standalone_demo.js +0 -82
- package/scripts/launch_static_server.js +0 -163
- package/scripts/list-npm-scripts.js +0 -207
- package/scripts/make-dev-releases +0 -90
- package/scripts/report_build_sizes +0 -96
- package/scripts/run_standalone_demo.js +0 -27
- package/scripts/start_demo_web_server.js +0 -44
- package/scripts/update-version +0 -48
- package/scripts/update_gh-pages_demo +0 -132
- package/scripts/update_gh-pages_doc +0 -106
- package/scripts/utils/display_webpack_errors.js +0 -33
- package/scripts/utils/get_human_readable_hours.js +0 -14
- package/scripts/wasm-strip.js +0 -359
- package/sonar-project.properties +0 -7
- package/src/README.md +0 -136
- package/src/compat/README.md +0 -29
- package/src/compat/__tests__/add_text_track.test.ts +0 -176
- package/src/compat/__tests__/browser_compatibility_types.test.ts +0 -152
- package/src/compat/__tests__/browser_version.test.ts +0 -84
- package/src/compat/__tests__/can_patch_isobmff.test.ts +0 -50
- package/src/compat/__tests__/can_rely_on_video_visibility_and_size.test.ts +0 -78
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +0 -31
- package/src/compat/__tests__/change_source_buffer_type.test.ts +0 -60
- package/src/compat/__tests__/clear_element_src.test.ts +0 -252
- package/src/compat/__tests__/enable_audio_track.test.ts +0 -341
- package/src/compat/__tests__/fullscreen.test.ts +0 -286
- package/src/compat/__tests__/is_codec_supported.test.ts +0 -78
- package/src/compat/__tests__/is_offline.test.ts +0 -65
- package/src/compat/__tests__/is_seeking_approximate.test.ts +0 -48
- package/src/compat/__tests__/is_vtt_cue.test.ts +0 -71
- package/src/compat/__tests__/make_vtt_cue.test.ts +0 -97
- package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +0 -144
- package/src/compat/__tests__/remove_cue.test.ts +0 -229
- package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +0 -128
- package/src/compat/__tests__/should_reload_media_source_on_decipherability_update.test.ts +0 -50
- package/src/compat/__tests__/should_renew_media_key_system_access.test.ts +0 -55
- package/src/compat/__tests__/should_unset_media_keys.test.ts +0 -53
- package/src/compat/__tests__/should_validate_metadata.test.ts +0 -53
- package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +0 -121
- package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +0 -36
- package/src/compat/add_class_name.ts +0 -41
- package/src/compat/add_text_track.ts +0 -58
- package/src/compat/browser_compatibility_types.ts +0 -222
- package/src/compat/browser_detection.ts +0 -172
- package/src/compat/browser_version.ts +0 -44
- package/src/compat/can_patch_isobmff.ts +0 -30
- package/src/compat/can_rely_on_video_visibility_and_size.ts +0 -52
- package/src/compat/can_reuse_media_keys.ts +0 -20
- package/src/compat/change_source_buffer_type.ts +0 -66
- package/src/compat/clear_element_src.ts +0 -55
- package/src/compat/eme/close_session.ts +0 -111
- package/src/compat/eme/constants.ts +0 -21
- package/src/compat/eme/custom_key_system_access.ts +0 -67
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +0 -186
- package/src/compat/eme/custom_media_keys/index.ts +0 -28
- package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +0 -88
- package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +0 -69
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +0 -235
- package/src/compat/eme/custom_media_keys/types.ts +0 -67
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +0 -308
- package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +0 -50
- package/src/compat/eme/eme-api-implementation.ts +0 -318
- package/src/compat/eme/generate_key_request.ts +0 -162
- package/src/compat/eme/get_init_data.ts +0 -159
- package/src/compat/eme/get_uuid_kid_from_keystatus_kid.ts +0 -37
- package/src/compat/eme/get_webkit_fairplay_initdata.ts +0 -75
- package/src/compat/eme/index.ts +0 -47
- package/src/compat/eme/load_session.ts +0 -67
- package/src/compat/enable_audio_track.ts +0 -33
- package/src/compat/event_listeners.ts +0 -566
- package/src/compat/fullscreen.ts +0 -87
- package/src/compat/get_start_date.ts +0 -48
- package/src/compat/has_issues_with_high_media_source_duration.ts +0 -27
- package/src/compat/index.ts +0 -87
- package/src/compat/is_codec_supported.ts +0 -40
- package/src/compat/is_debug_mode_enabled.ts +0 -12
- package/src/compat/is_node.ts +0 -18
- package/src/compat/is_offline.ts +0 -44
- package/src/compat/is_seeking_approximate.ts +0 -32
- package/src/compat/is_vtt_cue.ts +0 -30
- package/src/compat/make_vtt_cue.ts +0 -51
- package/src/compat/on_height_width_change.ts +0 -119
- package/src/compat/patch_webkit_source_buffer.ts +0 -89
- package/src/compat/remove_cue.ts +0 -64
- package/src/compat/should_favour_custom_safari_EME.ts +0 -34
- package/src/compat/should_prevent_seeking_at_0_initially.ts +0 -19
- package/src/compat/should_reload_media_source_on_decipherability_update.ts +0 -32
- package/src/compat/should_renew_media_key_system_access.ts +0 -26
- package/src/compat/should_unset_media_keys.ts +0 -27
- package/src/compat/should_validate_metadata.ts +0 -27
- package/src/compat/should_wait_for_data_before_loaded.ts +0 -35
- package/src/compat/should_wait_for_have_enough_data.ts +0 -17
- package/src/config.ts +0 -32
- package/src/core/README.md +0 -56
- package/src/core/adaptive/README.md +0 -147
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +0 -548
- package/src/core/adaptive/adaptive_representation_selector.ts +0 -916
- package/src/core/adaptive/buffer_based_chooser.ts +0 -264
- package/src/core/adaptive/guess_based_chooser.ts +0 -309
- package/src/core/adaptive/index.ts +0 -45
- package/src/core/adaptive/network_analyzer.ts +0 -419
- package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -134
- package/src/core/adaptive/utils/__tests__/ewma.test.ts +0 -79
- package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +0 -56
- package/src/core/adaptive/utils/__tests__/filter_by_width.test.ts +0 -60
- package/src/core/adaptive/utils/__tests__/get_buffer_levels.test.ts +0 -48
- package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +0 -243
- package/src/core/adaptive/utils/bandwidth_estimator.ts +0 -88
- package/src/core/adaptive/utils/ewma.ts +0 -59
- package/src/core/adaptive/utils/filter_by_bitrate.ts +0 -46
- package/src/core/adaptive/utils/filter_by_width.ts +0 -49
- package/src/core/adaptive/utils/get_buffer_levels.ts +0 -50
- package/src/core/adaptive/utils/last_estimate_storage.ts +0 -79
- package/src/core/adaptive/utils/pending_requests_store.ts +0 -147
- package/src/core/adaptive/utils/representation_score_calculator.ts +0 -168
- package/src/core/adaptive/utils/select_optimal_representation.ts +0 -54
- package/src/core/api/README.md +0 -36
- package/src/core/api/__tests__/option_utils.test.ts +0 -1668
- package/src/core/api/__tests__/public_api.test.ts +0 -857
- package/src/core/api/__tests__/utils.test.ts +0 -195
- package/src/core/api/debug/buffer_graph.ts +0 -244
- package/src/core/api/debug/buffer_size_graph.ts +0 -130
- package/src/core/api/debug/constants.ts +0 -2
- package/src/core/api/debug/index.ts +0 -3
- package/src/core/api/debug/modules/general_info.ts +0 -213
- package/src/core/api/debug/modules/segment_buffer_content.ts +0 -155
- package/src/core/api/debug/modules/segment_buffer_size.ts +0 -48
- package/src/core/api/debug/render.ts +0 -40
- package/src/core/api/debug/utils.ts +0 -103
- package/src/core/api/index.ts +0 -27
- package/src/core/api/option_utils.ts +0 -700
- package/src/core/api/playback_observer.ts +0 -994
- package/src/core/api/public_api.ts +0 -3247
- package/src/core/api/tracks_management/__tests__/media_element_track_choice_manager.test.ts +0 -184
- package/src/core/api/tracks_management/media_element_track_choice_manager.ts +0 -975
- package/src/core/api/tracks_management/track_choice_manager.ts +0 -1280
- package/src/core/api/utils.ts +0 -216
- package/src/core/decrypt/README.md +0 -22
- package/src/core/decrypt/__tests__/__global__/get_license.test.ts +0 -422
- package/src/core/decrypt/__tests__/__global__/init_data.test.ts +0 -677
- package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +0 -528
- package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +0 -343
- package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +0 -264
- package/src/core/decrypt/__tests__/__global__/utils.ts +0 -491
- package/src/core/decrypt/attach_media_keys.ts +0 -121
- package/src/core/decrypt/clear_on_stop.ts +0 -47
- package/src/core/decrypt/content_decryptor.ts +0 -1246
- package/src/core/decrypt/create_or_load_session.ts +0 -133
- package/src/core/decrypt/create_session.ts +0 -214
- package/src/core/decrypt/dispose_decryption_resources.ts +0 -54
- package/src/core/decrypt/find_key_system.ts +0 -376
- package/src/core/decrypt/get_key_system_configuration.ts +0 -51
- package/src/core/decrypt/get_media_keys.ts +0 -147
- package/src/core/decrypt/index.ts +0 -36
- package/src/core/decrypt/init_media_keys.ts +0 -60
- package/src/core/decrypt/session_events_listener.ts +0 -386
- package/src/core/decrypt/set_server_certificate.ts +0 -105
- package/src/core/decrypt/types.ts +0 -404
- package/src/core/decrypt/utils/__tests__/are_init_values_compatible.test.ts +0 -261
- package/src/core/decrypt/utils/__tests__/clean_old_loaded_sessions.test.ts +0 -158
- package/src/core/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +0 -133
- package/src/core/decrypt/utils/are_init_values_compatible.ts +0 -140
- package/src/core/decrypt/utils/check_key_statuses.ts +0 -193
- package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +0 -45
- package/src/core/decrypt/utils/clean_old_stored_persistent_info.ts +0 -48
- package/src/core/decrypt/utils/get_drm_system_id.ts +0 -42
- package/src/core/decrypt/utils/init_data_values_container.ts +0 -119
- package/src/core/decrypt/utils/is_session_usable.ts +0 -62
- package/src/core/decrypt/utils/key_id_comparison.ts +0 -57
- package/src/core/decrypt/utils/key_session_record.ts +0 -174
- package/src/core/decrypt/utils/loaded_sessions_store.ts +0 -505
- package/src/core/decrypt/utils/media_keys_infos_store.ts +0 -85
- package/src/core/decrypt/utils/persistent_sessions_store.ts +0 -358
- package/src/core/decrypt/utils/serializable_bytes.ts +0 -59
- package/src/core/decrypt/utils/server_certificate_store.ts +0 -133
- package/src/core/fetchers/README.md +0 -84
- package/src/core/fetchers/cdn_prioritizer.ts +0 -207
- package/src/core/fetchers/index.ts +0 -38
- package/src/core/fetchers/manifest/index.ts +0 -28
- package/src/core/fetchers/manifest/manifest_fetcher.ts +0 -798
- package/src/core/fetchers/segment/__tests__/task_prioritizer.test.ts +0 -763
- package/src/core/fetchers/segment/index.ts +0 -28
- package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +0 -113
- package/src/core/fetchers/segment/segment_fetcher.ts +0 -482
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +0 -129
- package/src/core/fetchers/segment/task_prioritizer.ts +0 -455
- package/src/core/fetchers/utils/error_selector.ts +0 -38
- package/src/core/fetchers/utils/schedule_request.ts +0 -493
- package/src/core/init/README.md +0 -81
- package/src/core/init/directfile_content_initializer.ts +0 -310
- package/src/core/init/index.ts +0 -22
- package/src/core/init/media_source_content_initializer.ts +0 -878
- package/src/core/init/types.ts +0 -266
- package/src/core/init/utils/__tests__/are_same_stream_events.test.ts +0 -84
- package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +0 -94
- package/src/core/init/utils/content_time_boundaries_observer.ts +0 -646
- package/src/core/init/utils/create_media_source.ts +0 -139
- package/src/core/init/utils/create_stream_playback_observer.ts +0 -132
- package/src/core/init/utils/end_of_stream.ts +0 -108
- package/src/core/init/utils/get_initial_time.ts +0 -165
- package/src/core/init/utils/get_loaded_reference.ts +0 -82
- package/src/core/init/utils/initial_seek_and_play.ts +0 -237
- package/src/core/init/utils/initialize_content_decryption.ts +0 -172
- package/src/core/init/utils/media_source_duration_updater.ts +0 -349
- package/src/core/init/utils/rebuffering_controller.ts +0 -642
- package/src/core/init/utils/stream_events_emitter/are_same_stream_events.ts +0 -42
- package/src/core/init/utils/stream_events_emitter/index.ts +0 -22
- package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +0 -74
- package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +0 -252
- package/src/core/init/utils/stream_events_emitter/types.ts +0 -46
- package/src/core/init/utils/throw_on_media_error.ts +0 -74
- package/src/core/segment_buffers/README.md +0 -219
- package/src/core/segment_buffers/garbage_collector.ts +0 -177
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +0 -650
- package/src/core/segment_buffers/implementations/audio_video/index.ts +0 -18
- package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +0 -152
- package/src/core/segment_buffers/implementations/image/index.ts +0 -18
- package/src/core/segment_buffers/implementations/index.ts +0 -20
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +0 -343
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +0 -527
- package/src/core/segment_buffers/implementations/text/html/index.ts +0 -24
- package/src/core/segment_buffers/implementations/text/html/parsers.ts +0 -49
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +0 -391
- package/src/core/segment_buffers/implementations/text/html/types.ts +0 -23
- package/src/core/segment_buffers/implementations/text/html/update_proportional_elements.ts +0 -93
- package/src/core/segment_buffers/implementations/text/html/utils.ts +0 -139
- package/src/core/segment_buffers/implementations/text/native/index.ts +0 -19
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +0 -340
- package/src/core/segment_buffers/implementations/text/native/parsers.ts +0 -47
- package/src/core/segment_buffers/implementations/types.ts +0 -386
- package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +0 -80
- package/src/core/segment_buffers/index.ts +0 -67
- package/src/core/segment_buffers/inventory/buffered_history.ts +0 -131
- package/src/core/segment_buffers/inventory/index.ts +0 -30
- package/src/core/segment_buffers/inventory/segment_inventory.ts +0 -1111
- package/src/core/segment_buffers/inventory/types.ts +0 -35
- package/src/core/segment_buffers/segment_buffers_store.ts +0 -383
- package/src/core/stream/README.md +0 -59
- package/src/core/stream/adaptation/adaptation_stream.ts +0 -378
- package/src/core/stream/adaptation/index.ts +0 -20
- package/src/core/stream/adaptation/types.ts +0 -199
- package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
- package/src/core/stream/index.ts +0 -38
- package/src/core/stream/orchestrator/README.md +0 -349
- package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +0 -70
- package/src/core/stream/orchestrator/index.ts +0 -30
- package/src/core/stream/orchestrator/stream_orchestrator.ts +0 -664
- package/src/core/stream/period/index.ts +0 -20
- package/src/core/stream/period/period_stream.ts +0 -469
- package/src/core/stream/period/types.ts +0 -132
- package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +0 -287
- package/src/core/stream/representation/README.md +0 -16
- package/src/core/stream/representation/index.ts +0 -20
- package/src/core/stream/representation/representation_stream.ts +0 -474
- package/src/core/stream/representation/types.ts +0 -292
- package/src/core/stream/representation/utils/append_segment_to_buffer.ts +0 -77
- package/src/core/stream/representation/utils/check_for_discontinuity.ts +0 -305
- package/src/core/stream/representation/utils/downloading_queue.ts +0 -603
- package/src/core/stream/representation/utils/force_garbage_collection.ts +0 -113
- package/src/core/stream/representation/utils/get_buffer_status.ts +0 -322
- package/src/core/stream/representation/utils/get_needed_segments.ts +0 -617
- package/src/core/stream/representation/utils/get_segment_priority.ts +0 -43
- package/src/core/stream/representation/utils/push_init_segment.ts +0 -85
- package/src/core/stream/representation/utils/push_media_segment.ts +0 -113
- package/src/default_config.ts +0 -1293
- package/src/errors/README.md +0 -6
- package/src/errors/__tests__/assertion_error.test.ts +0 -26
- package/src/errors/__tests__/encrypted_media_error.test.ts +0 -45
- package/src/errors/__tests__/error_message.test.ts +0 -23
- package/src/errors/__tests__/format_error.test.ts +0 -62
- package/src/errors/__tests__/is_known_error.test.ts +0 -65
- package/src/errors/__tests__/media_error.test.ts +0 -55
- package/src/errors/__tests__/network_error.test.ts +0 -84
- package/src/errors/__tests__/other_error.test.ts +0 -53
- package/src/errors/__tests__/request_error.test.ts +0 -45
- package/src/errors/assertion_error.ts +0 -40
- package/src/errors/custom_loader_error.ts +0 -57
- package/src/errors/encrypted_media_error.ts +0 -71
- package/src/errors/error_codes.ts +0 -149
- package/src/errors/error_message.ts +0 -30
- package/src/errors/format_error.ts +0 -39
- package/src/errors/index.ts +0 -52
- package/src/errors/is_known_error.ts +0 -35
- package/src/errors/media_error.ts +0 -118
- package/src/errors/network_error.ts +0 -74
- package/src/errors/other_error.ts +0 -50
- package/src/errors/request_error.ts +0 -76
- package/src/experimental/README.md +0 -16
- package/src/experimental/features/__tests__/dash_wasm.test.ts +0 -44
- package/src/experimental/features/__tests__/debug_element.test.ts +0 -12
- package/src/experimental/features/__tests__/index.test.ts +0 -19
- package/src/experimental/features/__tests__/local.test.ts +0 -35
- package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -35
- package/src/experimental/features/dash_wasm.ts +0 -41
- package/src/experimental/features/debug_element.ts +0 -13
- package/src/experimental/features/index.ts +0 -20
- package/src/experimental/features/local.ts +0 -28
- package/src/experimental/features/metaplaylist.ts +0 -28
- package/src/experimental/index.ts +0 -5
- package/src/experimental/tools/VideoThumbnailLoader/features/dash.ts +0 -23
- package/src/experimental/tools/VideoThumbnailLoader/features/metaplaylist.ts +0 -23
- package/src/experimental/tools/VideoThumbnailLoader/index.ts +0 -25
- package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +0 -77
- package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +0 -75
- package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +0 -54
- package/src/experimental/tools/VideoThumbnailLoader/types.ts +0 -39
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +0 -423
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.ts +0 -34
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +0 -141
- package/src/experimental/tools/createMetaplaylist/index.ts +0 -72
- package/src/experimental/tools/index.ts +0 -27
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/capabilities.test.ts +0 -37
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +0 -140
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +0 -153
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +0 -405
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +0 -136
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +0 -294
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +0 -189
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/utils.test.ts +0 -361
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +0 -184
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +0 -136
- package/src/experimental/tools/mediaCapabilitiesProber/capabilities.ts +0 -169
- package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -18
- package/src/experimental/tools/mediaCapabilitiesProber/log.ts +0 -21
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +0 -67
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +0 -89
- package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +0 -100
- package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +0 -66
- package/src/experimental/tools/mediaCapabilitiesProber/probers/index.ts +0 -44
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +0 -66
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.ts +0 -100
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +0 -105
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +0 -54
- package/src/experimental/tools/mediaCapabilitiesProber/types.ts +0 -75
- package/src/experimental/tools/mediaCapabilitiesProber/utils.ts +0 -107
- package/src/experimental/tools/parseBIFThumbnails.ts +0 -39
- package/src/features/README.md +0 -11
- package/src/features/__tests__/add_features.test.ts +0 -69
- package/src/features/__tests__/initialize_features.test.ts +0 -674
- package/src/features/add_features.ts +0 -37
- package/src/features/features_object.ts +0 -37
- package/src/features/index.ts +0 -40
- package/src/features/initialize_features.ts +0 -136
- package/src/features/list/__tests__/bif_parser.test.ts +0 -30
- package/src/features/list/__tests__/dash.test.ts +0 -41
- package/src/features/list/__tests__/directfile.test.ts +0 -35
- package/src/features/list/__tests__/eme.test.ts +0 -28
- package/src/features/list/__tests__/html_sami_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_srt_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_text_buffer.test.ts +0 -29
- package/src/features/list/__tests__/html_ttml_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_vtt_parser.test.ts +0 -33
- package/src/features/list/__tests__/image_buffer.test.ts +0 -28
- package/src/features/list/__tests__/index.test.ts +0 -55
- package/src/features/list/__tests__/native_sami_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_srt_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_text_buffer.test.ts +0 -29
- package/src/features/list/__tests__/native_ttml_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_vtt_parser.test.ts +0 -33
- package/src/features/list/__tests__/smooth.test.ts +0 -36
- package/src/features/list/bif_parser.ts +0 -31
- package/src/features/list/dash.ts +0 -36
- package/src/features/list/directfile.ts +0 -35
- package/src/features/list/eme.ts +0 -29
- package/src/features/list/html_sami_parser.ts +0 -31
- package/src/features/list/html_srt_parser.ts +0 -31
- package/src/features/list/html_text_buffer.ts +0 -29
- package/src/features/list/html_ttml_parser.ts +0 -31
- package/src/features/list/html_vtt_parser.ts +0 -31
- package/src/features/list/image_buffer.ts +0 -29
- package/src/features/list/index.ts +0 -32
- package/src/features/list/native_sami_parser.ts +0 -32
- package/src/features/list/native_srt_parser.ts +0 -32
- package/src/features/list/native_text_buffer.ts +0 -30
- package/src/features/list/native_ttml_parser.ts +0 -32
- package/src/features/list/native_vtt_parser.ts +0 -32
- package/src/features/list/smooth.ts +0 -32
- package/src/features/types.ts +0 -183
- package/src/index.ts +0 -38
- package/src/log.ts +0 -22
- package/src/manifest/README.md +0 -55
- package/src/manifest/__tests__/adaptation.test.ts +0 -485
- package/src/manifest/__tests__/manifest.test.ts +0 -428
- package/src/manifest/__tests__/period.test.ts +0 -769
- package/src/manifest/__tests__/representation.test.ts +0 -297
- package/src/manifest/__tests__/update_period_in_place.test.ts +0 -1074
- package/src/manifest/__tests__/update_periods.test.ts +0 -845
- package/src/manifest/adaptation.ts +0 -294
- package/src/manifest/index.ts +0 -67
- package/src/manifest/manifest.ts +0 -811
- package/src/manifest/period.ts +0 -211
- package/src/manifest/representation.ts +0 -451
- package/src/manifest/representation_index/__tests__/static.test.ts +0 -74
- package/src/manifest/representation_index/index.ts +0 -31
- package/src/manifest/representation_index/static.ts +0 -158
- package/src/manifest/representation_index/types.ts +0 -433
- package/src/manifest/types.ts +0 -33
- package/src/manifest/update_period_in_place.ts +0 -142
- package/src/manifest/update_periods.ts +0 -201
- package/src/manifest/utils.ts +0 -60
- package/src/minimal.ts +0 -34
- package/src/parsers/README.md +0 -12
- package/src/parsers/containers/isobmff/constants.ts +0 -24
- package/src/parsers/containers/isobmff/create_box.ts +0 -81
- package/src/parsers/containers/isobmff/drm/index.ts +0 -17
- package/src/parsers/containers/isobmff/drm/playready.ts +0 -45
- package/src/parsers/containers/isobmff/get_box.ts +0 -278
- package/src/parsers/containers/isobmff/index.ts +0 -51
- package/src/parsers/containers/isobmff/read.ts +0 -105
- package/src/parsers/containers/isobmff/take_pssh_out.ts +0 -101
- package/src/parsers/containers/isobmff/utils.ts +0 -555
- package/src/parsers/containers/matroska/index.ts +0 -21
- package/src/parsers/containers/matroska/utils.ts +0 -313
- package/src/parsers/images/bif.ts +0 -128
- package/src/parsers/manifest/dash/common/__tests__/attach_trickmode_track.test.ts +0 -65
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +0 -37
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +0 -162
- package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +0 -65
- package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +0 -165
- package/src/parsers/manifest/dash/common/__tests__/get_periods_time_infos.test.ts +0 -118
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +0 -290
- package/src/parsers/manifest/dash/common/__tests__/parse_availability_start_time.test.ts +0 -63
- package/src/parsers/manifest/dash/common/attach_trickmode_track.ts +0 -55
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +0 -32
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +0 -87
- package/src/parsers/manifest/dash/common/get_clock_offset.ts +0 -41
- package/src/parsers/manifest/dash/common/get_hdr_information.ts +0 -94
- package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +0 -46
- package/src/parsers/manifest/dash/common/get_minimum_and_maximum_positions.ts +0 -39
- package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +0 -91
- package/src/parsers/manifest/dash/common/index.ts +0 -40
- package/src/parsers/manifest/dash/common/indexes/__tests__/tokens.test.ts +0 -60
- package/src/parsers/manifest/dash/common/indexes/base.ts +0 -444
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +0 -55
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +0 -148
- package/src/parsers/manifest/dash/common/indexes/index.ts +0 -39
- package/src/parsers/manifest/dash/common/indexes/list.ts +0 -338
- package/src/parsers/manifest/dash/common/indexes/template.ts +0 -652
- package/src/parsers/manifest/dash/common/indexes/timeline/__tests__/parse_s_element.test.ts +0 -115
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +0 -54
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.ts +0 -102
- package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +0 -66
- package/src/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.ts +0 -153
- package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +0 -21
- package/src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts +0 -72
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +0 -1049
- package/src/parsers/manifest/dash/common/indexes/tokens.ts +0 -127
- package/src/parsers/manifest/dash/common/indexes/utils.ts +0 -32
- package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +0 -142
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +0 -165
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +0 -569
- package/src/parsers/manifest/dash/common/parse_availability_start_time.ts +0 -35
- package/src/parsers/manifest/dash/common/parse_mpd.ts +0 -399
- package/src/parsers/manifest/dash/common/parse_periods.ts +0 -363
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +0 -199
- package/src/parsers/manifest/dash/common/parse_representations.ts +0 -352
- package/src/parsers/manifest/dash/common/resolve_base_urls.ts +0 -58
- package/src/parsers/manifest/dash/index.ts +0 -22
- package/src/parsers/manifest/dash/js-parser/__tests__/parse_from_document.test.ts +0 -45
- package/src/parsers/manifest/dash/js-parser/index.ts +0 -18
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +0 -381
- package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +0 -35
- package/src/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.ts +0 -49
- package/src/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.ts +0 -94
- package/src/parsers/manifest/dash/js-parser/node_parsers/EventStream.ts +0 -117
- package/src/parsers/manifest/dash/js-parser/node_parsers/Initialization.ts +0 -48
- package/src/parsers/manifest/dash/js-parser/node_parsers/MPD.ts +0 -180
- package/src/parsers/manifest/dash/js-parser/node_parsers/Period.ts +0 -152
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +0 -234
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +0 -112
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentList.ts +0 -50
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +0 -98
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.ts +0 -35
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.ts +0 -63
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +0 -407
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentComponent.test.ts +0 -67
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +0 -223
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +0 -139
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentTimeline.test.ts +0 -119
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +0 -205
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/utils.test.ts +0 -218
- package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +0 -384
- package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +0 -129
- package/src/parsers/manifest/dash/node_parser_types.ts +0 -431
- package/src/parsers/manifest/dash/parsers_types.ts +0 -91
- package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +0 -25
- package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +0 -16
- package/src/parsers/manifest/dash/wasm-parser/README.md +0 -267
- package/src/parsers/manifest/dash/wasm-parser/index.ts +0 -21
- package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +0 -28
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +0 -373
- package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +0 -85
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +0 -414
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +0 -472
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +0 -72
- package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +0 -17
- package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +0 -147
- package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +0 -217
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +0 -477
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +0 -343
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +0 -38
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.ts +0 -53
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.ts +0 -62
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +0 -144
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +0 -183
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +0 -180
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +0 -215
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.ts +0 -44
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +0 -115
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +0 -61
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +0 -133
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.ts +0 -70
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +0 -66
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/index.ts +0 -17
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +0 -66
- package/src/parsers/manifest/dash/wasm-parser/ts/parsers_stack.ts +0 -80
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +0 -298
- package/src/parsers/manifest/dash/wasm-parser/ts/utils.ts +0 -47
- package/src/parsers/manifest/index.ts +0 -17
- package/src/parsers/manifest/local/index.ts +0 -25
- package/src/parsers/manifest/local/parse_local_manifest.ts +0 -164
- package/src/parsers/manifest/local/representation_index.ts +0 -246
- package/src/parsers/manifest/local/types.ts +0 -291
- package/src/parsers/manifest/metaplaylist/index.ts +0 -28
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +0 -335
- package/src/parsers/manifest/metaplaylist/representation_index.ts +0 -251
- package/src/parsers/manifest/smooth/create_parser.ts +0 -699
- package/src/parsers/manifest/smooth/get_codecs.ts +0 -55
- package/src/parsers/manifest/smooth/index.ts +0 -26
- package/src/parsers/manifest/smooth/parse_C_nodes.ts +0 -69
- package/src/parsers/manifest/smooth/parse_protection_node.ts +0 -72
- package/src/parsers/manifest/smooth/representation_index.ts +0 -704
- package/src/parsers/manifest/smooth/utils/add_segment_infos.ts +0 -77
- package/src/parsers/manifest/smooth/utils/parseBoolean.ts +0 -31
- package/src/parsers/manifest/smooth/utils/reduceChildren.ts +0 -36
- package/src/parsers/manifest/smooth/utils/tokens.ts +0 -46
- package/src/parsers/manifest/types.ts +0 -395
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +0 -161
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +0 -161
- package/src/parsers/manifest/utils/__tests__/index_helpers.test.ts +0 -55
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +0 -546
- package/src/parsers/manifest/utils/check_manifest_ids.ts +0 -83
- package/src/parsers/manifest/utils/clear_timeline_from_position.ts +0 -74
- package/src/parsers/manifest/utils/get_first_time_from_adaptation.ts +0 -48
- package/src/parsers/manifest/utils/get_last_time_from_adaptation.ts +0 -50
- package/src/parsers/manifest/utils/get_maximum_positions.ts +0 -87
- package/src/parsers/manifest/utils/get_minimum_position.ts +0 -80
- package/src/parsers/manifest/utils/index_helpers.ts +0 -204
- package/src/parsers/manifest/utils/update_segment_timeline.ts +0 -141
- package/src/parsers/texttracks/index.ts +0 -21
- package/src/parsers/texttracks/sami/html.ts +0 -219
- package/src/parsers/texttracks/sami/native.ts +0 -192
- package/src/parsers/texttracks/srt/__tests__/find_end_of_cue_block.test.ts +0 -99
- package/src/parsers/texttracks/srt/__tests__/get_cue_blocks.test.ts +0 -119
- package/src/parsers/texttracks/srt/__tests__/parse_cue.test.ts +0 -123
- package/src/parsers/texttracks/srt/__tests__/parse_timestamp.test.ts +0 -36
- package/src/parsers/texttracks/srt/find_end_of_cue_block.ts +0 -46
- package/src/parsers/texttracks/srt/get_cue_blocks.ts +0 -49
- package/src/parsers/texttracks/srt/html.ts +0 -182
- package/src/parsers/texttracks/srt/native.ts +0 -74
- package/src/parsers/texttracks/srt/parse_cue.ts +0 -76
- package/src/parsers/texttracks/srt/parse_timestamp.ts +0 -37
- package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +0 -248
- package/src/parsers/texttracks/ttml/get_parameters.ts +0 -106
- package/src/parsers/texttracks/ttml/get_styling.ts +0 -146
- package/src/parsers/texttracks/ttml/get_time_delimiters.ts +0 -49
- package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +0 -190
- package/src/parsers/texttracks/ttml/html/__tests__/generate_css_test_outline.test.ts +0 -32
- package/src/parsers/texttracks/ttml/html/__tests__/ttml_color_to_css_color.test.ts +0 -62
- package/src/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.ts +0 -67
- package/src/parsers/texttracks/ttml/html/apply_extent.ts +0 -65
- package/src/parsers/texttracks/ttml/html/apply_font_size.ts +0 -62
- package/src/parsers/texttracks/ttml/html/apply_line_height.ts +0 -50
- package/src/parsers/texttracks/ttml/html/apply_origin.ts +0 -64
- package/src/parsers/texttracks/ttml/html/apply_padding.ts +0 -141
- package/src/parsers/texttracks/ttml/html/create_element.ts +0 -549
- package/src/parsers/texttracks/ttml/html/generate_css_test_outline.ts +0 -46
- package/src/parsers/texttracks/ttml/html/index.ts +0 -23
- package/src/parsers/texttracks/ttml/html/parse_cue.ts +0 -65
- package/src/parsers/texttracks/ttml/html/parse_ttml_to_div.ts +0 -58
- package/src/parsers/texttracks/ttml/html/ttml_color_to_css_color.ts +0 -68
- package/src/parsers/texttracks/ttml/native/index.ts +0 -23
- package/src/parsers/texttracks/ttml/native/parse_cue.ts +0 -245
- package/src/parsers/texttracks/ttml/native/parse_ttml_to_vtt.ts +0 -39
- package/src/parsers/texttracks/ttml/parse_ttml.ts +0 -206
- package/src/parsers/texttracks/ttml/regexps.ts +0 -65
- package/src/parsers/texttracks/ttml/resolve_styles_inheritance.ts +0 -84
- package/src/parsers/texttracks/ttml/time_parsing.ts +0 -156
- package/src/parsers/texttracks/ttml/xml_utils.ts +0 -166
- package/src/parsers/texttracks/types.ts +0 -34
- package/src/parsers/texttracks/webvtt/__tests__/get_cue_blocks.test.ts +0 -218
- package/src/parsers/texttracks/webvtt/__tests__/get_style_blocks.test.ts +0 -65
- package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +0 -249
- package/src/parsers/texttracks/webvtt/__tests__/parse_timestamp.test.ts +0 -39
- package/src/parsers/texttracks/webvtt/__tests__/utils.test.ts +0 -401
- package/src/parsers/texttracks/webvtt/get_cue_blocks.ts +0 -51
- package/src/parsers/texttracks/webvtt/get_style_blocks.ts +0 -56
- package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +0 -106
- package/src/parsers/texttracks/webvtt/html/__tests__/create_default_style_elements.test.ts +0 -44
- package/src/parsers/texttracks/webvtt/html/__tests__/create_style_attribute.test.ts +0 -139
- package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +0 -140
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_style_block.test.ts +0 -345
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +0 -181
- package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +0 -234
- package/src/parsers/texttracks/webvtt/html/convert_payload_to_html.ts +0 -46
- package/src/parsers/texttracks/webvtt/html/create_default_style_elements.ts +0 -26
- package/src/parsers/texttracks/webvtt/html/create_style_attribute.ts +0 -222
- package/src/parsers/texttracks/webvtt/html/create_styled_element.ts +0 -95
- package/src/parsers/texttracks/webvtt/html/index.ts +0 -25
- package/src/parsers/texttracks/webvtt/html/parse_style_block.ts +0 -76
- package/src/parsers/texttracks/webvtt/html/parse_webvtt_to_div.ts +0 -67
- package/src/parsers/texttracks/webvtt/html/to_html.ts +0 -96
- package/src/parsers/texttracks/webvtt/native/index.ts +0 -23
- package/src/parsers/texttracks/webvtt/native/parse_vtt_to_cues.ts +0 -70
- package/src/parsers/texttracks/webvtt/native/set_settings_on_cue.ts +0 -95
- package/src/parsers/texttracks/webvtt/native/to_native_cue.ts +0 -34
- package/src/parsers/texttracks/webvtt/parse_cue_block.ts +0 -128
- package/src/parsers/texttracks/webvtt/parse_timestamp.ts +0 -40
- package/src/parsers/texttracks/webvtt/utils.ts +0 -135
- package/src/public_types.ts +0 -846
- package/src/tools/README.md +0 -4
- package/src/tools/TextTrackRenderer/index.ts +0 -28
- package/src/tools/TextTrackRenderer/text_track_renderer.ts +0 -107
- package/src/tools/index.ts +0 -20
- package/src/tools/string_utils.ts +0 -24
- package/src/transports/README.md +0 -276
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -98
- package/src/transports/dash/construct_segment_url.ts +0 -28
- package/src/transports/dash/extract_complete_chunks.ts +0 -66
- package/src/transports/dash/get_events_out_of_emsgs.ts +0 -105
- package/src/transports/dash/image_pipelines.ts +0 -122
- package/src/transports/dash/index.ts +0 -23
- package/src/transports/dash/init_segment_loader.ts +0 -114
- package/src/transports/dash/low_latency_segment_loader.ts +0 -87
- package/src/transports/dash/manifest_parser.ts +0 -325
- package/src/transports/dash/pipelines.ts +0 -72
- package/src/transports/dash/segment_loader.ts +0 -249
- package/src/transports/dash/segment_parser.ts +0 -194
- package/src/transports/dash/text_loader.ts +0 -120
- package/src/transports/dash/text_parser.ts +0 -234
- package/src/transports/index.ts +0 -17
- package/src/transports/local/index.ts +0 -18
- package/src/transports/local/pipelines.ts +0 -100
- package/src/transports/local/segment_loader.ts +0 -198
- package/src/transports/local/segment_parser.ts +0 -101
- package/src/transports/local/text_parser.ts +0 -185
- package/src/transports/metaplaylist/README.md +0 -94
- package/src/transports/metaplaylist/index.ts +0 -23
- package/src/transports/metaplaylist/manifest_loader.ts +0 -62
- package/src/transports/metaplaylist/pipelines.ts +0 -425
- package/src/transports/smooth/extract_timings_infos.ts +0 -142
- package/src/transports/smooth/index.ts +0 -23
- package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +0 -231
- package/src/transports/smooth/isobmff/create_audio_init_segment.ts +0 -84
- package/src/transports/smooth/isobmff/create_boxes.ts +0 -481
- package/src/transports/smooth/isobmff/create_init_segment.ts +0 -100
- package/src/transports/smooth/isobmff/create_traf_box.ts +0 -40
- package/src/transports/smooth/isobmff/create_video_init_segment.ts +0 -78
- package/src/transports/smooth/isobmff/get_aaces_header.ts +0 -62
- package/src/transports/smooth/isobmff/index.ts +0 -32
- package/src/transports/smooth/isobmff/parse_tfrf.ts +0 -57
- package/src/transports/smooth/isobmff/parse_tfxd.ts +0 -38
- package/src/transports/smooth/isobmff/patch_segment.ts +0 -171
- package/src/transports/smooth/pipelines.ts +0 -533
- package/src/transports/smooth/segment_loader.ts +0 -288
- package/src/transports/smooth/utils.ts +0 -106
- package/src/transports/types.ts +0 -809
- package/src/transports/utils/__tests__/byte_range.test.ts +0 -35
- package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +0 -148
- package/src/transports/utils/__tests__/find_complete_box.test.ts +0 -138
- package/src/transports/utils/__tests__/infer_segment_container.test.ts +0 -227
- package/src/transports/utils/byte_range.ts +0 -25
- package/src/transports/utils/call_custom_manifest_loader.ts +0 -147
- package/src/transports/utils/check_isobmff_integrity.ts +0 -50
- package/src/transports/utils/find_complete_box.ts +0 -63
- package/src/transports/utils/generate_manifest_loader.ts +0 -97
- package/src/transports/utils/get_isobmff_timing_infos.ts +0 -86
- package/src/transports/utils/infer_segment_container.ts +0 -56
- package/src/transports/utils/parse_text_track.ts +0 -176
- package/src/typings/README.md +0 -7
- package/src/typings/globals.d.ts +0 -83
- package/src/typings/next-tick.d.ts +0 -23
- package/src/utils/README.md +0 -5
- package/src/utils/__tests__/are_arrays_of_numbers_equal.test.ts +0 -86
- package/src/utils/__tests__/are_codecs_compatible.test.ts +0 -88
- package/src/utils/__tests__/array_find.test.ts +0 -113
- package/src/utils/__tests__/array_find_index.test.ts +0 -113
- package/src/utils/__tests__/array_includes.test.ts +0 -151
- package/src/utils/__tests__/assert.test.ts +0 -237
- package/src/utils/__tests__/assert_unreachable.test.ts +0 -40
- package/src/utils/__tests__/base64.test.ts +0 -147
- package/src/utils/__tests__/byte_parsing.test.ts +0 -267
- package/src/utils/__tests__/deep_merge.test.ts +0 -48
- package/src/utils/__tests__/event_emitter.test.ts +0 -579
- package/src/utils/__tests__/flat_map.test.ts +0 -71
- package/src/utils/__tests__/get_fuzzed_delay.test.ts +0 -32
- package/src/utils/__tests__/hash_buffer.test.ts +0 -105
- package/src/utils/__tests__/id_generator.test.ts +0 -80
- package/src/utils/__tests__/initialization_segment_cache.test.ts +0 -245
- package/src/utils/__tests__/is_non_empty_string.test.ts +0 -41
- package/src/utils/__tests__/is_null_or_undefined.test.ts +0 -33
- package/src/utils/__tests__/list_to_map.test.ts +0 -46
- package/src/utils/__tests__/logger.test.ts +0 -214
- package/src/utils/__tests__/noop.test.ts +0 -23
- package/src/utils/__tests__/object_assign.test.ts +0 -56
- package/src/utils/__tests__/object_values.test.ts +0 -26
- package/src/utils/__tests__/ranges.test.ts +0 -907
- package/src/utils/__tests__/resolve_url.test.ts +0 -100
- package/src/utils/__tests__/simple_set.test.ts +0 -57
- package/src/utils/__tests__/sorted_list.test.ts +0 -335
- package/src/utils/__tests__/starts_with.test.ts +0 -65
- package/src/utils/__tests__/string_parsing.test.ts +0 -267
- package/src/utils/__tests__/uniq.test.ts +0 -134
- package/src/utils/__tests__/warn_once.test.ts +0 -38
- package/src/utils/__tests__/weak_map_memory.test.ts +0 -188
- package/src/utils/are_arrays_of_numbers_equal.ts +0 -39
- package/src/utils/are_codecs_compatible.ts +0 -51
- package/src/utils/array_find.ts +0 -55
- package/src/utils/array_find_index.ts +0 -54
- package/src/utils/array_includes.ts +0 -93
- package/src/utils/assert.ts +0 -65
- package/src/utils/assert_unreachable.ts +0 -45
- package/src/utils/base64.ts +0 -153
- package/src/utils/byte_parsing.ts +0 -256
- package/src/utils/cancellable_sleep.ts +0 -41
- package/src/utils/create_cancellable_promise.ts +0 -69
- package/src/utils/deep_merge.ts +0 -49
- package/src/utils/event_emitter.ts +0 -147
- package/src/utils/flat_map.ts +0 -50
- package/src/utils/get_fuzzed_delay.ts +0 -27
- package/src/utils/hash_buffer.ts +0 -42
- package/src/utils/id_generator.ts +0 -35
- package/src/utils/initialization_segment_cache.ts +0 -68
- package/src/utils/is_non_empty_string.ts +0 -23
- package/src/utils/is_null_or_undefined.ts +0 -27
- package/src/utils/languages/ISO_639-1_to_ISO_639-3.ts +0 -207
- package/src/utils/languages/ISO_639-2_to_ISO_639-3.ts +0 -43
- package/src/utils/languages/__tests__/normalize.test.ts +0 -290
- package/src/utils/languages/index.ts +0 -29
- package/src/utils/languages/normalize.ts +0 -152
- package/src/utils/list_to_map.ts +0 -32
- package/src/utils/logger.ts +0 -100
- package/src/utils/noop.ts +0 -26
- package/src/utils/object_assign.ts +0 -60
- package/src/utils/object_values.ts +0 -31
- package/src/utils/ranges.ts +0 -499
- package/src/utils/reference.ts +0 -390
- package/src/utils/request/fetch.ts +0 -250
- package/src/utils/request/index.ts +0 -38
- package/src/utils/request/xhr.ts +0 -287
- package/src/utils/resolve_url.ts +0 -126
- package/src/utils/retry_promise_with_backoff.ts +0 -95
- package/src/utils/simple_set.ts +0 -67
- package/src/utils/sleep.ts +0 -14
- package/src/utils/slice_uint8array.ts +0 -53
- package/src/utils/sorted_list.ts +0 -240
- package/src/utils/starts_with.ts +0 -42
- package/src/utils/string_parsing.ts +0 -414
- package/src/utils/task_canceller.ts +0 -367
- package/src/utils/uniq.ts +0 -49
- package/src/utils/warn_once.ts +0 -34
- package/src/utils/weak_map_memory.ts +0 -89
- package/src/utils/wrapInPromise.ts +0 -24
- package/tsconfig.json +0 -28
- package/tsconfig.modules.json +0 -36
|
@@ -1,28 +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 {
|
|
18
|
-
IPrioritizedSegmentFetcher,
|
|
19
|
-
} from "./prioritized_segment_fetcher";
|
|
20
|
-
import SegmentFetcherCreator, {
|
|
21
|
-
ISegmentFetcherCreatorBackoffOptions,
|
|
22
|
-
} from "./segment_fetcher_creator";
|
|
23
|
-
|
|
24
|
-
export default SegmentFetcherCreator;
|
|
25
|
-
export {
|
|
26
|
-
IPrioritizedSegmentFetcher,
|
|
27
|
-
ISegmentFetcherCreatorBackoffOptions,
|
|
28
|
-
};
|
|
@@ -1,113 +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 { CancellationSignal } from "../../../utils/task_canceller";
|
|
19
|
-
import {
|
|
20
|
-
ISegmentFetcher,
|
|
21
|
-
ISegmentFetcherCallbacks,
|
|
22
|
-
ISegmentLoaderContent,
|
|
23
|
-
} from "./segment_fetcher";
|
|
24
|
-
import TaskPrioritizer, {
|
|
25
|
-
ITaskFn,
|
|
26
|
-
ITaskPrioritizerCallbacks,
|
|
27
|
-
} from "./task_prioritizer";
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* This function basically put in relation:
|
|
31
|
-
* - an `ISegmentFetcher`, which will be used to perform the segment requests
|
|
32
|
-
* - a `TaskPrioritizer`, which will handle the priority of a segment request
|
|
33
|
-
*
|
|
34
|
-
* and returns functions to fetch segments with a given priority.
|
|
35
|
-
* @param {Object} prioritizer
|
|
36
|
-
* @param {Object} fetcher
|
|
37
|
-
* @returns {Object}
|
|
38
|
-
*/
|
|
39
|
-
export default function applyPrioritizerToSegmentFetcher<TSegmentDataType>(
|
|
40
|
-
prioritizer : TaskPrioritizer<void>,
|
|
41
|
-
fetcher : ISegmentFetcher<TSegmentDataType>
|
|
42
|
-
) : IPrioritizedSegmentFetcher<TSegmentDataType> {
|
|
43
|
-
/**
|
|
44
|
-
* Map Promises returned by the `createRequest` method into the actual tasks
|
|
45
|
-
* used by the `TaskPrioritizer`, allowing to update task priorities just by
|
|
46
|
-
* using the Promise.
|
|
47
|
-
*/
|
|
48
|
-
const taskHandlers = new WeakMap<Promise<void>, ITaskFn<void>>();
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
/**
|
|
52
|
-
* Create a Segment request with a given priority.
|
|
53
|
-
* @param {Object} content - content to request
|
|
54
|
-
* @param {Number} priority - priority at which the content should be requested.
|
|
55
|
-
* Lower number == higher priority.
|
|
56
|
-
* @param {Object} callbacks
|
|
57
|
-
* @param {Object} cancelSignal
|
|
58
|
-
* @returns {Promise}
|
|
59
|
-
*/
|
|
60
|
-
createRequest(
|
|
61
|
-
content : ISegmentLoaderContent,
|
|
62
|
-
priority : number,
|
|
63
|
-
callbacks : IPrioritizedSegmentFetcherCallbacks<TSegmentDataType>,
|
|
64
|
-
cancelSignal : CancellationSignal
|
|
65
|
-
) : Promise<void> {
|
|
66
|
-
const givenTask = (innerCancelSignal : CancellationSignal) => {
|
|
67
|
-
return fetcher(content, callbacks, innerCancelSignal);
|
|
68
|
-
};
|
|
69
|
-
const ret = prioritizer.create(givenTask,
|
|
70
|
-
priority,
|
|
71
|
-
callbacks,
|
|
72
|
-
cancelSignal);
|
|
73
|
-
taskHandlers.set(ret, givenTask);
|
|
74
|
-
return ret;
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Update the priority of a pending request, created through
|
|
79
|
-
* `createRequest`.
|
|
80
|
-
* @param {Promise} task - The Promise returned by `createRequest`.
|
|
81
|
-
* @param {Number} priority - The new priority value.
|
|
82
|
-
*/
|
|
83
|
-
updatePriority(
|
|
84
|
-
task : Promise<void>,
|
|
85
|
-
priority : number
|
|
86
|
-
) : void {
|
|
87
|
-
const correspondingTask = taskHandlers.get(task);
|
|
88
|
-
if (correspondingTask === undefined) {
|
|
89
|
-
log.warn("Fetchers: Cannot update the priority of a request: task not found.");
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
prioritizer.updatePriority(correspondingTask, priority);
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/** Oject returned by `applyPrioritizerToSegmentFetcher`. */
|
|
98
|
-
export interface IPrioritizedSegmentFetcher<TSegmentDataType> {
|
|
99
|
-
/** Create a new request for a segment with a given priority. */
|
|
100
|
-
createRequest : (content : ISegmentLoaderContent,
|
|
101
|
-
priority : number,
|
|
102
|
-
callbacks : IPrioritizedSegmentFetcherCallbacks<TSegmentDataType>,
|
|
103
|
-
cancellationSignal : CancellationSignal
|
|
104
|
-
) => Promise<void>;
|
|
105
|
-
|
|
106
|
-
/** Update priority of a request created through `createRequest`. */
|
|
107
|
-
updatePriority : (task : Promise<void>, priority : number) => void;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/** Callbacks awaited by `applyPrioritizerToSegmentFetcher`. */
|
|
111
|
-
export type IPrioritizedSegmentFetcherCallbacks<TSegmentDataType> =
|
|
112
|
-
ISegmentFetcherCallbacks<TSegmentDataType> &
|
|
113
|
-
ITaskPrioritizerCallbacks;
|
|
@@ -1,482 +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 config from "../../../config";
|
|
18
|
-
import { formatError } from "../../../errors";
|
|
19
|
-
import log from "../../../log";
|
|
20
|
-
import Manifest, {
|
|
21
|
-
Adaptation,
|
|
22
|
-
getLoggableSegmentId,
|
|
23
|
-
ISegment,
|
|
24
|
-
Period,
|
|
25
|
-
Representation,
|
|
26
|
-
} from "../../../manifest";
|
|
27
|
-
import { ICdnMetadata } from "../../../parsers/manifest";
|
|
28
|
-
import { IPlayerError } from "../../../public_types";
|
|
29
|
-
import {
|
|
30
|
-
IChunkCompleteInformation,
|
|
31
|
-
ISegmentLoader,
|
|
32
|
-
ISegmentLoadingProgressInformation,
|
|
33
|
-
ISegmentParserParsedInitChunk,
|
|
34
|
-
ISegmentParserParsedMediaChunk,
|
|
35
|
-
ISegmentPipeline,
|
|
36
|
-
} from "../../../transports";
|
|
37
|
-
import arrayIncludes from "../../../utils/array_includes";
|
|
38
|
-
import idGenerator from "../../../utils/id_generator";
|
|
39
|
-
import InitializationSegmentCache from "../../../utils/initialization_segment_cache";
|
|
40
|
-
import isNullOrUndefined from "../../../utils/is_null_or_undefined";
|
|
41
|
-
import objectAssign from "../../../utils/object_assign";
|
|
42
|
-
import {
|
|
43
|
-
CancellationError,
|
|
44
|
-
CancellationSignal,
|
|
45
|
-
} from "../../../utils/task_canceller";
|
|
46
|
-
import {
|
|
47
|
-
IMetricsCallbackPayload,
|
|
48
|
-
IRequestBeginCallbackPayload,
|
|
49
|
-
IRequestEndCallbackPayload,
|
|
50
|
-
IRequestProgressCallbackPayload,
|
|
51
|
-
} from "../../adaptive";
|
|
52
|
-
import { IBufferType } from "../../segment_buffers";
|
|
53
|
-
import CdnPrioritizer from "../cdn_prioritizer";
|
|
54
|
-
import errorSelector from "../utils/error_selector";
|
|
55
|
-
import { scheduleRequestWithCdns } from "../utils/schedule_request";
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/** Allows to generate a unique identifies for each request. */
|
|
59
|
-
const generateRequestID = idGenerator();
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Create an `ISegmentFetcher` object which will allow to easily fetch and parse
|
|
63
|
-
* segments.
|
|
64
|
-
* An `ISegmentFetcher` also implements a retry mechanism, based on the given
|
|
65
|
-
* `options` argument, which may retry a segment request when it fails.
|
|
66
|
-
*
|
|
67
|
-
* @param {string} bufferType - Type of buffer concerned (e.g. `"audio"`,
|
|
68
|
-
* `"video"`, `"text" etc.)
|
|
69
|
-
* @param {Object} pipeline - The transport-specific logic allowing to load
|
|
70
|
-
* segments of the given buffer type and transport protocol (e.g. DASH).
|
|
71
|
-
* @param {Object|null} cdnPrioritizer - Abstraction allowing to synchronize,
|
|
72
|
-
* update and keep track of the priorization of the CDN to use to load any given
|
|
73
|
-
* segment, in cases where multiple ones are available.
|
|
74
|
-
*
|
|
75
|
-
* Can be set to `null` in which case a minimal priorization logic will be used
|
|
76
|
-
* instead.
|
|
77
|
-
* @param {Object} lifecycleCallbacks - Callbacks that can be registered to be
|
|
78
|
-
* informed when new requests are made, ended, new metrics are available etc.
|
|
79
|
-
* This should be mainly useful to implement an adaptive logic relying on those
|
|
80
|
-
* metrics and events.
|
|
81
|
-
* @param {Object} options - Various tweaking options allowing to configure the
|
|
82
|
-
* behavior of the returned `ISegmentFetcher`.
|
|
83
|
-
* @returns {Function}
|
|
84
|
-
*/
|
|
85
|
-
export default function createSegmentFetcher<TLoadedFormat, TSegmentDataType>(
|
|
86
|
-
bufferType : IBufferType,
|
|
87
|
-
pipeline : ISegmentPipeline<TLoadedFormat, TSegmentDataType>,
|
|
88
|
-
cdnPrioritizer : CdnPrioritizer | null,
|
|
89
|
-
lifecycleCallbacks : ISegmentFetcherLifecycleCallbacks,
|
|
90
|
-
options : ISegmentFetcherOptions
|
|
91
|
-
) : ISegmentFetcher<TSegmentDataType> {
|
|
92
|
-
const requestOptions = {
|
|
93
|
-
timeout: options.requestTimeout < 0 ? undefined :
|
|
94
|
-
options.requestTimeout,
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Cache audio and video initialization segments.
|
|
99
|
-
* This allows to avoid doing too many requests for what are usually very
|
|
100
|
-
* small files.
|
|
101
|
-
*/
|
|
102
|
-
const cache = arrayIncludes(["audio", "video"], bufferType) ?
|
|
103
|
-
new InitializationSegmentCache<TLoadedFormat>() :
|
|
104
|
-
undefined;
|
|
105
|
-
|
|
106
|
-
const { loadSegment, parseSegment } = pipeline;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Fetch a specific segment.
|
|
110
|
-
* @param {Object} content
|
|
111
|
-
* @param {Object} fetcherCallbacks
|
|
112
|
-
* @param {Object} cancellationSignal
|
|
113
|
-
* @returns {Promise}
|
|
114
|
-
*/
|
|
115
|
-
return async function fetchSegment(
|
|
116
|
-
content : ISegmentLoaderContent,
|
|
117
|
-
fetcherCallbacks : ISegmentFetcherCallbacks<TSegmentDataType>,
|
|
118
|
-
cancellationSignal : CancellationSignal
|
|
119
|
-
) : Promise<void> {
|
|
120
|
-
// used by logs
|
|
121
|
-
const segmentIdString = getLoggableSegmentId(content);
|
|
122
|
-
const requestId = generateRequestID();
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* If the request succeeded, set to the corresponding
|
|
126
|
-
* `IChunkCompleteInformation` object.
|
|
127
|
-
* For any other completion cases: if the request either failed, was
|
|
128
|
-
* cancelled or just if no request was needed, set to `null`.
|
|
129
|
-
*
|
|
130
|
-
* Stays to `undefined` when the request is still pending.
|
|
131
|
-
*/
|
|
132
|
-
let requestInfo : IChunkCompleteInformation | null | undefined;
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Array containing one entry per loaded chunk, in chronological order.
|
|
136
|
-
* The boolean indicates if the chunk has been parsed at least once.
|
|
137
|
-
*
|
|
138
|
-
* This is used to know when all loaded chunks have been parsed, which
|
|
139
|
-
* can be useful to e.g. construct metrics about the loaded segment.
|
|
140
|
-
*/
|
|
141
|
-
const parsedChunks : boolean[] = [];
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Addition of the duration of each encountered and parsed chunks.
|
|
145
|
-
* Allows to have an idea of the real duration of the full segment once
|
|
146
|
-
* all chunks have been parsed.
|
|
147
|
-
*
|
|
148
|
-
* `undefined` if at least one of the parsed chunks has unknown duration.
|
|
149
|
-
*/
|
|
150
|
-
let segmentDurationAcc : number | undefined = 0;
|
|
151
|
-
|
|
152
|
-
/** Set to `true` once network metrics have been sent. */
|
|
153
|
-
let metricsSent = false;
|
|
154
|
-
|
|
155
|
-
const loaderCallbacks = {
|
|
156
|
-
/**
|
|
157
|
-
* Callback called when the segment loader has progress information on
|
|
158
|
-
* the request.
|
|
159
|
-
* @param {Object} info
|
|
160
|
-
*/
|
|
161
|
-
onProgress(info : ISegmentLoadingProgressInformation) : void {
|
|
162
|
-
if (requestInfo !== undefined) {
|
|
163
|
-
return; // request already termminated
|
|
164
|
-
}
|
|
165
|
-
if (info.totalSize !== undefined && info.size < info.totalSize) {
|
|
166
|
-
lifecycleCallbacks.onProgress?.({ duration: info.duration,
|
|
167
|
-
size: info.size,
|
|
168
|
-
totalSize: info.totalSize,
|
|
169
|
-
timestamp: performance.now(),
|
|
170
|
-
id: requestId });
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Callback called when the segment is communicated by the loader
|
|
176
|
-
* through decodable sub-segment(s) called chunk(s), with a chunk in
|
|
177
|
-
* argument.
|
|
178
|
-
* @param {*} chunkData
|
|
179
|
-
*/
|
|
180
|
-
onNewChunk(chunkData : TLoadedFormat) : void {
|
|
181
|
-
fetcherCallbacks.onChunk(generateParserFunction(chunkData, true));
|
|
182
|
-
},
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
// Retrieve from cache if it exists
|
|
186
|
-
const cached = cache !== undefined ? cache.get(content) :
|
|
187
|
-
null;
|
|
188
|
-
if (cached !== null) {
|
|
189
|
-
log.debug("SF: Found wanted segment in cache", segmentIdString);
|
|
190
|
-
fetcherCallbacks.onChunk(generateParserFunction(cached, false));
|
|
191
|
-
return Promise.resolve();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
log.debug("SF: Beginning request", segmentIdString);
|
|
195
|
-
lifecycleCallbacks.onRequestBegin?.({ requestTimestamp: performance.now(),
|
|
196
|
-
id: requestId,
|
|
197
|
-
content });
|
|
198
|
-
|
|
199
|
-
cancellationSignal.register(onCancellation);
|
|
200
|
-
|
|
201
|
-
try {
|
|
202
|
-
const res = await scheduleRequestWithCdns(content.representation.cdnMetadata,
|
|
203
|
-
cdnPrioritizer,
|
|
204
|
-
callLoaderWithUrl,
|
|
205
|
-
objectAssign({ onRetry }, options),
|
|
206
|
-
cancellationSignal);
|
|
207
|
-
|
|
208
|
-
if (res.resultType === "segment-loaded") {
|
|
209
|
-
const loadedData = res.resultData.responseData;
|
|
210
|
-
if (cache !== undefined) {
|
|
211
|
-
cache.add(content, res.resultData.responseData);
|
|
212
|
-
}
|
|
213
|
-
fetcherCallbacks.onChunk(generateParserFunction(loadedData, false));
|
|
214
|
-
} else if (res.resultType === "segment-created") {
|
|
215
|
-
fetcherCallbacks.onChunk(generateParserFunction(res.resultData, false));
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
log.debug("SF: Segment request ended with success", segmentIdString);
|
|
219
|
-
fetcherCallbacks.onAllChunksReceived();
|
|
220
|
-
|
|
221
|
-
if (res.resultType !== "segment-created") {
|
|
222
|
-
requestInfo = res.resultData;
|
|
223
|
-
sendNetworkMetricsIfAvailable();
|
|
224
|
-
} else {
|
|
225
|
-
requestInfo = null;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
if (!cancellationSignal.isCancelled()) {
|
|
229
|
-
// The current task could have been canceled as a result of one
|
|
230
|
-
// of the previous callbacks call. In that case, we don't want to send
|
|
231
|
-
// a "requestEnd" again as it has already been sent on cancellation.
|
|
232
|
-
lifecycleCallbacks.onRequestEnd?.({ id: requestId });
|
|
233
|
-
}
|
|
234
|
-
cancellationSignal.deregister(onCancellation);
|
|
235
|
-
} catch (err) {
|
|
236
|
-
cancellationSignal.deregister(onCancellation);
|
|
237
|
-
requestInfo = null;
|
|
238
|
-
if (err instanceof CancellationError) {
|
|
239
|
-
log.debug("SF: Segment request aborted", segmentIdString);
|
|
240
|
-
throw err;
|
|
241
|
-
}
|
|
242
|
-
log.debug("SF: Segment request failed", segmentIdString);
|
|
243
|
-
lifecycleCallbacks.onRequestEnd?.({ id: requestId });
|
|
244
|
-
throw errorSelector(err);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
function onCancellation() {
|
|
248
|
-
if (requestInfo !== undefined) {
|
|
249
|
-
return; // Request already terminated
|
|
250
|
-
}
|
|
251
|
-
log.debug("SF: Segment request cancelled", segmentIdString);
|
|
252
|
-
requestInfo = null;
|
|
253
|
-
lifecycleCallbacks.onRequestEnd?.({ id: requestId });
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Call a segment loader for the given URL with the right arguments.
|
|
258
|
-
* @param {Object|null} cdnMetadata
|
|
259
|
-
* @returns {Promise}
|
|
260
|
-
*/
|
|
261
|
-
function callLoaderWithUrl(
|
|
262
|
-
cdnMetadata : ICdnMetadata | null
|
|
263
|
-
) : ReturnType<ISegmentLoader<TLoadedFormat>> {
|
|
264
|
-
return loadSegment(cdnMetadata,
|
|
265
|
-
content,
|
|
266
|
-
requestOptions,
|
|
267
|
-
cancellationSignal,
|
|
268
|
-
loaderCallbacks);
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/**
|
|
272
|
-
* Generate function allowing to parse a loaded segment.
|
|
273
|
-
* @param {*} data
|
|
274
|
-
* @param {Boolean} isChunked
|
|
275
|
-
* @returns {Function}
|
|
276
|
-
*/
|
|
277
|
-
function generateParserFunction(
|
|
278
|
-
data : TLoadedFormat,
|
|
279
|
-
isChunked : boolean
|
|
280
|
-
) : (initTimescale? : number) => ISegmentParserParsedInitChunk<TSegmentDataType> |
|
|
281
|
-
ISegmentParserParsedMediaChunk<TSegmentDataType>
|
|
282
|
-
{
|
|
283
|
-
parsedChunks.push(false);
|
|
284
|
-
const parsedChunkId = parsedChunks.length - 1;
|
|
285
|
-
return function parse(initTimescale? : number) :
|
|
286
|
-
ISegmentParserParsedInitChunk<TSegmentDataType> |
|
|
287
|
-
ISegmentParserParsedMediaChunk<TSegmentDataType>
|
|
288
|
-
{
|
|
289
|
-
const loaded = { data, isChunked };
|
|
290
|
-
|
|
291
|
-
try {
|
|
292
|
-
const parsed = parseSegment(loaded, content, initTimescale);
|
|
293
|
-
|
|
294
|
-
if (!parsedChunks[parsedChunkId]) {
|
|
295
|
-
segmentDurationAcc = segmentDurationAcc !== undefined &&
|
|
296
|
-
parsed.segmentType === "media" &&
|
|
297
|
-
parsed.chunkInfos !== null &&
|
|
298
|
-
parsed.chunkInfos.duration !== undefined ?
|
|
299
|
-
segmentDurationAcc + parsed.chunkInfos.duration :
|
|
300
|
-
undefined;
|
|
301
|
-
parsedChunks[parsedChunkId] = true;
|
|
302
|
-
|
|
303
|
-
sendNetworkMetricsIfAvailable();
|
|
304
|
-
}
|
|
305
|
-
return parsed;
|
|
306
|
-
} catch (error) {
|
|
307
|
-
throw formatError(error, { defaultCode: "PIPELINE_PARSE_ERROR",
|
|
308
|
-
defaultReason: "Unknown parsing error" });
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Function called when the function request is retried.
|
|
315
|
-
* @param {*} err
|
|
316
|
-
*/
|
|
317
|
-
function onRetry(err: unknown) : void {
|
|
318
|
-
fetcherCallbacks.onRetry(errorSelector(err));
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Send netork metrics if they haven't yet been sent and if all data to
|
|
323
|
-
* define them is available.
|
|
324
|
-
*/
|
|
325
|
-
function sendNetworkMetricsIfAvailable() : void {
|
|
326
|
-
if (metricsSent) {
|
|
327
|
-
return;
|
|
328
|
-
}
|
|
329
|
-
if (!isNullOrUndefined(requestInfo) &&
|
|
330
|
-
requestInfo.size !== undefined &&
|
|
331
|
-
requestInfo.requestDuration !== undefined &&
|
|
332
|
-
parsedChunks.length > 0 &&
|
|
333
|
-
parsedChunks.every(isParsed => isParsed))
|
|
334
|
-
{
|
|
335
|
-
metricsSent = true;
|
|
336
|
-
lifecycleCallbacks.onMetrics?.({
|
|
337
|
-
size: requestInfo.size,
|
|
338
|
-
requestDuration: requestInfo.requestDuration,
|
|
339
|
-
content,
|
|
340
|
-
segmentDuration: segmentDurationAcc,
|
|
341
|
-
});
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* Defines the `ISegmentFetcher` function which allows to load a single segment.
|
|
349
|
-
*
|
|
350
|
-
* Loaded data is entirely communicated through callbacks present in the
|
|
351
|
-
* `callbacks` arguments.
|
|
352
|
-
*
|
|
353
|
-
* The returned Promise only gives an indication of if the request ended with
|
|
354
|
-
* success or on error.
|
|
355
|
-
*/
|
|
356
|
-
export type ISegmentFetcher<TSegmentDataType> = (
|
|
357
|
-
/** Information on the segment wanted. */
|
|
358
|
-
content : ISegmentLoaderContent,
|
|
359
|
-
/** Callbacks the `ISegmentFetcher` will call as it loads the data. */
|
|
360
|
-
callbacks : ISegmentFetcherCallbacks<TSegmentDataType>,
|
|
361
|
-
/** CancellationSignal allowing to cancel the request. */
|
|
362
|
-
cancellationSignal : CancellationSignal
|
|
363
|
-
) => Promise<void>;
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* Callbacks given to an `ISegmentFetcher` allowing to be notified on its
|
|
367
|
-
* inner request's various events.
|
|
368
|
-
*/
|
|
369
|
-
export interface ISegmentFetcherCallbacks<TSegmentDataType> {
|
|
370
|
-
/** Called when a decodable chunk of the whole segment is available. */
|
|
371
|
-
onChunk(
|
|
372
|
-
parse : (initTimescale : number | undefined) =>
|
|
373
|
-
ISegmentParserParsedInitChunk<TSegmentDataType> |
|
|
374
|
-
ISegmentParserParsedMediaChunk<TSegmentDataType>
|
|
375
|
-
) : void;
|
|
376
|
-
|
|
377
|
-
/**
|
|
378
|
-
* Callback called when all decodable chunks of the loaded segment have been
|
|
379
|
-
* communicated through the `onChunk` callback.
|
|
380
|
-
*
|
|
381
|
-
* This callback is called before the corresponding `ISegmentFetcher`'s
|
|
382
|
-
* returned Promise is resolved.
|
|
383
|
-
*/
|
|
384
|
-
onAllChunksReceived() : void;
|
|
385
|
-
|
|
386
|
-
/**
|
|
387
|
-
* Callback called when the segment request has to restart from scratch, e.g.
|
|
388
|
-
* due to a request error.
|
|
389
|
-
*/
|
|
390
|
-
onRetry(error : IPlayerError) : void;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/** Content used by the segment loader as a context to load a new segment. */
|
|
394
|
-
export interface ISegmentLoaderContent { manifest : Manifest;
|
|
395
|
-
period : Period;
|
|
396
|
-
adaptation : Adaptation;
|
|
397
|
-
representation : Representation;
|
|
398
|
-
segment : ISegment; }
|
|
399
|
-
|
|
400
|
-
/**
|
|
401
|
-
* Callbacks given when creating an `ISegmentFetcher`, allowing to be notified
|
|
402
|
-
* on high-level metadata about performed requests.
|
|
403
|
-
*/
|
|
404
|
-
export interface ISegmentFetcherLifecycleCallbacks {
|
|
405
|
-
/** Called when a segment request begins. */
|
|
406
|
-
onRequestBegin? : (arg : IRequestBeginCallbackPayload) => void;
|
|
407
|
-
/** Called when progress information is available on a pending segment request. */
|
|
408
|
-
onProgress? : (arg : IRequestProgressCallbackPayload) => void;
|
|
409
|
-
/**
|
|
410
|
-
* Called when a segment request ends (either because it completed, it failed
|
|
411
|
-
* or was canceled).
|
|
412
|
-
*/
|
|
413
|
-
onRequestEnd? : (arg : IRequestEndCallbackPayload) => void;
|
|
414
|
-
/**
|
|
415
|
-
* Called when network metrics linked to a segment request are available,
|
|
416
|
-
* once the request has terminated.
|
|
417
|
-
* This callback may be called before or after the corresponding
|
|
418
|
-
* `onRequestEnd` callback, you should not rely on the order between the two.
|
|
419
|
-
*/
|
|
420
|
-
onMetrics? : (arg : IMetricsCallbackPayload) => void;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
/** Options allowing to configure an `ISegmentFetcher`'s behavior. */
|
|
424
|
-
export interface ISegmentFetcherOptions {
|
|
425
|
-
/**
|
|
426
|
-
* Initial delay to wait if a request fails before making a new request, in
|
|
427
|
-
* milliseconds.
|
|
428
|
-
*/
|
|
429
|
-
baseDelay : number;
|
|
430
|
-
/**
|
|
431
|
-
* Maximum delay to wait if a request fails before making a new request, in
|
|
432
|
-
* milliseconds.
|
|
433
|
-
*/
|
|
434
|
-
maxDelay : number;
|
|
435
|
-
/**
|
|
436
|
-
* Maximum number of retries to perform on "regular" errors (e.g. due to HTTP
|
|
437
|
-
* status, integrity errors, timeouts...).
|
|
438
|
-
*/
|
|
439
|
-
maxRetryRegular : number;
|
|
440
|
-
/**
|
|
441
|
-
* Maximum number of retries to perform when it appears that the user is
|
|
442
|
-
* currently offline.
|
|
443
|
-
*/
|
|
444
|
-
maxRetryOffline : number;
|
|
445
|
-
/**
|
|
446
|
-
* Timeout after which request are aborted and, depending on other options,
|
|
447
|
-
* retried.
|
|
448
|
-
* To set to `-1` for no timeout.
|
|
449
|
-
*/
|
|
450
|
-
requestTimeout : number;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
/**
|
|
454
|
-
* @param {string} bufferType
|
|
455
|
-
* @param {Object}
|
|
456
|
-
* @returns {Object}
|
|
457
|
-
*/
|
|
458
|
-
export function getSegmentFetcherOptions(
|
|
459
|
-
bufferType : string,
|
|
460
|
-
{ maxRetryRegular,
|
|
461
|
-
maxRetryOffline,
|
|
462
|
-
lowLatencyMode,
|
|
463
|
-
requestTimeout } : { maxRetryRegular? : number | undefined;
|
|
464
|
-
maxRetryOffline? : number | undefined;
|
|
465
|
-
requestTimeout? : number | undefined;
|
|
466
|
-
lowLatencyMode : boolean; }
|
|
467
|
-
) : ISegmentFetcherOptions {
|
|
468
|
-
const { DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR,
|
|
469
|
-
DEFAULT_REQUEST_TIMEOUT,
|
|
470
|
-
DEFAULT_MAX_REQUESTS_RETRY_ON_OFFLINE,
|
|
471
|
-
INITIAL_BACKOFF_DELAY_BASE,
|
|
472
|
-
MAX_BACKOFF_DELAY_BASE } = config.getCurrent();
|
|
473
|
-
return { maxRetryRegular: bufferType === "image" ? 0 :
|
|
474
|
-
maxRetryRegular ?? DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR,
|
|
475
|
-
maxRetryOffline: maxRetryOffline ?? DEFAULT_MAX_REQUESTS_RETRY_ON_OFFLINE,
|
|
476
|
-
baseDelay: lowLatencyMode ? INITIAL_BACKOFF_DELAY_BASE.LOW_LATENCY :
|
|
477
|
-
INITIAL_BACKOFF_DELAY_BASE.REGULAR,
|
|
478
|
-
maxDelay: lowLatencyMode ? MAX_BACKOFF_DELAY_BASE.LOW_LATENCY :
|
|
479
|
-
MAX_BACKOFF_DELAY_BASE.REGULAR,
|
|
480
|
-
requestTimeout: isNullOrUndefined(requestTimeout) ? DEFAULT_REQUEST_TIMEOUT :
|
|
481
|
-
requestTimeout };
|
|
482
|
-
}
|