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,292 +0,0 @@
|
|
|
1
|
-
import Manifest, {
|
|
2
|
-
Adaptation,
|
|
3
|
-
ISegment,
|
|
4
|
-
Period,
|
|
5
|
-
Representation,
|
|
6
|
-
} from "../../../manifest";
|
|
7
|
-
import { IEMSG } from "../../../parsers/containers/isobmff";
|
|
8
|
-
import { IPlayerError } from "../../../public_types";
|
|
9
|
-
import { IReadOnlySharedReference } from "../../../utils/reference";
|
|
10
|
-
import { IReadOnlyPlaybackObserver } from "../../api";
|
|
11
|
-
import { IContentProtection } from "../../decrypt";
|
|
12
|
-
import { IPrioritizedSegmentFetcher } from "../../fetchers";
|
|
13
|
-
import {
|
|
14
|
-
IBufferType,
|
|
15
|
-
SegmentBuffer,
|
|
16
|
-
} from "../../segment_buffers";
|
|
17
|
-
|
|
18
|
-
/** Callbacks called by the `RepresentationStream` on various events. */
|
|
19
|
-
export interface IRepresentationStreamCallbacks<TSegmentDataType> {
|
|
20
|
-
/**
|
|
21
|
-
* Called to announce the current status regarding the buffer for its
|
|
22
|
-
* associated Period and type (e.g. "audio", "video", "text" etc.).
|
|
23
|
-
*
|
|
24
|
-
* Each new `IStreamStatusPayload` event replace the precedent one for the
|
|
25
|
-
* same Period and type.
|
|
26
|
-
*/
|
|
27
|
-
streamStatusUpdate(payload : IStreamStatusPayload) : void;
|
|
28
|
-
/** Called after a new segment has been succesfully added to the SegmentBuffer */
|
|
29
|
-
addedSegment(payload : IStreamEventAddedSegmentPayload<TSegmentDataType>) : void;
|
|
30
|
-
/** Called when a segment with protection information has been encountered. */
|
|
31
|
-
encryptionDataEncountered(payload : IContentProtection[]) : void;
|
|
32
|
-
/**
|
|
33
|
-
* Called when the Manifest is possibly out-of-sync and needs to be refreshed
|
|
34
|
-
* completely.
|
|
35
|
-
*
|
|
36
|
-
* The Stream made that guess because a segment that should have been available
|
|
37
|
-
* is not and because it suspects this is due to a synchronization problem.
|
|
38
|
-
*/
|
|
39
|
-
manifestMightBeOufOfSync() : void;
|
|
40
|
-
/**
|
|
41
|
-
* Callback called when a `RepresentationStream` is being terminated:
|
|
42
|
-
*
|
|
43
|
-
* - it has finished all its segment requests and won't do new ones.
|
|
44
|
-
*
|
|
45
|
-
* - it has stopped regularly checking for its current status.
|
|
46
|
-
*
|
|
47
|
-
* - it only waits until all the segments it has loaded have been pushed to the
|
|
48
|
-
* SegmentBuffer before actually stopping everything it does.
|
|
49
|
-
*
|
|
50
|
-
* You can use this call as a hint that a new `RepresentationStream` can be
|
|
51
|
-
* created for the same `Period` and type (e.g. to switch quality).
|
|
52
|
-
*/
|
|
53
|
-
terminating() : void;
|
|
54
|
-
/**
|
|
55
|
-
* Called when the Manifest needs to be refreshed.
|
|
56
|
-
* Note that segment might still be loaded and pushed even after calling
|
|
57
|
-
* this callback.
|
|
58
|
-
*/
|
|
59
|
-
needsManifestRefresh() : void;
|
|
60
|
-
/**
|
|
61
|
-
* Called when an "inband" event, as found in a media segment, has been
|
|
62
|
-
* encountered.
|
|
63
|
-
*/
|
|
64
|
-
inbandEvent(payload : IInbandEvent[]) : void;
|
|
65
|
-
/**
|
|
66
|
-
* Called when a minor error has been encountered, that does not interrupt
|
|
67
|
-
* the segment loading and pushing operations.
|
|
68
|
-
*/
|
|
69
|
-
warning(payload : IPlayerError) : void;
|
|
70
|
-
/**
|
|
71
|
-
* Called when a fatal error has been encountered.
|
|
72
|
-
* Such errors have led to all the Stream's operations to be stopped.
|
|
73
|
-
*/
|
|
74
|
-
error(payload : unknown) : void;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** Payload for the `streamStatusUpdate` callback. */
|
|
78
|
-
export interface IStreamStatusPayload {
|
|
79
|
-
/** Period concerned. */
|
|
80
|
-
period : Period;
|
|
81
|
-
/** Buffer type concerned. */
|
|
82
|
-
bufferType : IBufferType;
|
|
83
|
-
/**
|
|
84
|
-
* Present or future "hole" in the SegmentBuffer's buffer that will not be
|
|
85
|
-
* filled by a segment, despite being part of the time period indicated by
|
|
86
|
-
* the associated Period.
|
|
87
|
-
*
|
|
88
|
-
* This value is set to the most imminent of such "discontinuity", which
|
|
89
|
-
* can be either:
|
|
90
|
-
*
|
|
91
|
-
* - current (no segment available at `position` but future segments are
|
|
92
|
-
* available), in which case this discontinuity's true beginning might
|
|
93
|
-
* be unknown.
|
|
94
|
-
*
|
|
95
|
-
* - a future hole between two segments in that Period.
|
|
96
|
-
*
|
|
97
|
-
* - missing media data at the end of the time period associated to that
|
|
98
|
-
* Period.
|
|
99
|
-
*
|
|
100
|
-
* The presence or absence of a discontinuity can evolve during playback
|
|
101
|
-
* (because new tracks or qualities might not have the same ones).
|
|
102
|
-
* As such, it is advised to only consider the last discontinuity sent
|
|
103
|
-
* through a `"stream-status"` event.
|
|
104
|
-
*/
|
|
105
|
-
imminentDiscontinuity : IBufferDiscontinuity | null;
|
|
106
|
-
/**
|
|
107
|
-
* If `true`, no segment are left to be loaded to be able to play until the
|
|
108
|
-
* end of the Period.
|
|
109
|
-
*/
|
|
110
|
-
hasFinishedLoading : boolean;
|
|
111
|
-
/**
|
|
112
|
-
* If `true`, this stream is a placeholder stream which will never load any
|
|
113
|
-
* segment.
|
|
114
|
-
*/
|
|
115
|
-
isEmptyStream : boolean;
|
|
116
|
-
/**
|
|
117
|
-
* Segments that will be scheduled for download to fill the buffer until
|
|
118
|
-
* the buffer goal (first element of that list might already be loading).
|
|
119
|
-
*/
|
|
120
|
-
neededSegments : IQueuedSegment[];
|
|
121
|
-
/** Position in the content in seconds from which this status was done. */
|
|
122
|
-
position : number;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/** Payload for the `addedSegment` callback. */
|
|
126
|
-
export interface IStreamEventAddedSegmentPayload<T> {
|
|
127
|
-
/** Context about the content that has been added. */
|
|
128
|
-
content: { period : Period;
|
|
129
|
-
adaptation : Adaptation;
|
|
130
|
-
representation : Representation; };
|
|
131
|
-
/** The concerned Segment. */
|
|
132
|
-
segment : ISegment;
|
|
133
|
-
/** TimeRanges of the concerned SegmentBuffer after the segment was pushed. */
|
|
134
|
-
buffered : TimeRanges;
|
|
135
|
-
/* The data pushed */
|
|
136
|
-
segmentData : T;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/** Structure describing an "inband" event, as found in a media segment. */
|
|
140
|
-
export interface IInbandEvent {
|
|
141
|
-
/** Type when the event was foud inside a "emsg` ISOBMFF box */
|
|
142
|
-
type: "emsg";
|
|
143
|
-
/** Value when the event was foud inside a "emsg` ISOBMFF box */
|
|
144
|
-
value: IEMSG;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/** Information about a Segment waiting to be loaded by the Stream. */
|
|
148
|
-
export interface IQueuedSegment {
|
|
149
|
-
/** Priority of the segment request (lower number = higher priority). */
|
|
150
|
-
priority : number;
|
|
151
|
-
/** Segment wanted. */
|
|
152
|
-
segment : ISegment;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/** Describe an encountered hole in the buffer, called a "discontinuity". */
|
|
156
|
-
export interface IBufferDiscontinuity {
|
|
157
|
-
/**
|
|
158
|
-
* Start time, in seconds, at which the discontinuity starts.
|
|
159
|
-
*
|
|
160
|
-
* if set to `undefined`, its true start time is unknown but the current
|
|
161
|
-
* position is part of it. It is thus a discontinuity that is currently
|
|
162
|
-
* encountered.
|
|
163
|
-
*/
|
|
164
|
-
start : number | undefined;
|
|
165
|
-
/**
|
|
166
|
-
* End time, in seconds at which the discontinuity ends (and thus where
|
|
167
|
-
* new segments are encountered).
|
|
168
|
-
*
|
|
169
|
-
* If `null`, no new media segment is available for that Period and
|
|
170
|
-
* buffer type until the end of the Period.
|
|
171
|
-
*/
|
|
172
|
-
end : number | null;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/** Object that should be emitted by the given `IReadOnlyPlaybackObserver`. */
|
|
176
|
-
export interface IRepresentationStreamPlaybackObservation {
|
|
177
|
-
/**
|
|
178
|
-
* Information on the current media position in seconds at the time of a
|
|
179
|
-
* Playback Observation.
|
|
180
|
-
*/
|
|
181
|
-
position : IPositionPlaybackObservation;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/** Position-related information linked to an emitted Playback observation. */
|
|
185
|
-
export interface IPositionPlaybackObservation {
|
|
186
|
-
/**
|
|
187
|
-
* Known position at the time the Observation was emitted, in seconds.
|
|
188
|
-
*
|
|
189
|
-
* Note that it might have changed since. If you want truly precize
|
|
190
|
-
* information, you should recuperate it from the HTMLMediaElement directly
|
|
191
|
-
* through another mean.
|
|
192
|
-
*/
|
|
193
|
-
last : number;
|
|
194
|
-
/**
|
|
195
|
-
* Actually wanted position in seconds that is not yet reached.
|
|
196
|
-
*
|
|
197
|
-
* This might for example be set to the initial position when the content is
|
|
198
|
-
* loading (and thus potentially at a `0` position) but which will be seeked
|
|
199
|
-
* to a given position once possible.
|
|
200
|
-
*/
|
|
201
|
-
pending : number | undefined;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/** Item emitted by the `terminate` reference given to a RepresentationStream. */
|
|
205
|
-
export interface ITerminationOrder {
|
|
206
|
-
/*
|
|
207
|
-
* If `true`, the RepresentationStream should interrupt immediately every long
|
|
208
|
-
* pending operations such as segment downloads.
|
|
209
|
-
* If it is set to `false`, it can continue until those operations are
|
|
210
|
-
* finished.
|
|
211
|
-
*/
|
|
212
|
-
urgent : boolean;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/** Arguments to give to the RepresentationStream. */
|
|
216
|
-
export interface IRepresentationStreamArguments<TSegmentDataType> {
|
|
217
|
-
/** The context of the Representation you want to load. */
|
|
218
|
-
content: { adaptation : Adaptation;
|
|
219
|
-
manifest : Manifest;
|
|
220
|
-
period : Period;
|
|
221
|
-
representation : Representation; };
|
|
222
|
-
/** The `SegmentBuffer` on which segments will be pushed. */
|
|
223
|
-
segmentBuffer : SegmentBuffer;
|
|
224
|
-
/** Interface used to load new segments. */
|
|
225
|
-
segmentFetcher : IPrioritizedSegmentFetcher<TSegmentDataType>;
|
|
226
|
-
/**
|
|
227
|
-
* Reference emitting when the RepresentationStream should "terminate".
|
|
228
|
-
*
|
|
229
|
-
* When this Reference emits an object, the RepresentationStream will begin a
|
|
230
|
-
* "termination process": it will, depending on the type of termination
|
|
231
|
-
* wanted, either stop immediately pending segment requests or wait until they
|
|
232
|
-
* are finished before fully terminating (calling the `terminating` callback
|
|
233
|
-
* and stopping all `RepresentationStream` current tasks).
|
|
234
|
-
*/
|
|
235
|
-
terminate : IReadOnlySharedReference<null | ITerminationOrder>;
|
|
236
|
-
/** Periodically emits the current playback conditions. */
|
|
237
|
-
playbackObserver : IReadOnlyPlaybackObserver<IRepresentationStreamPlaybackObservation>;
|
|
238
|
-
/** Supplementary arguments which configure the RepresentationStream's behavior. */
|
|
239
|
-
options: IRepresentationStreamOptions;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Various specific stream "options" which tweak the behavior of the
|
|
245
|
-
* RepresentationStream.
|
|
246
|
-
*/
|
|
247
|
-
export interface IRepresentationStreamOptions {
|
|
248
|
-
/**
|
|
249
|
-
* The buffer size we have to reach in seconds (compared to the current
|
|
250
|
-
* position. When that size is reached, no segments will be loaded until it
|
|
251
|
-
* goes below that size again.
|
|
252
|
-
*/
|
|
253
|
-
bufferGoal : IReadOnlySharedReference<number>;
|
|
254
|
-
|
|
255
|
-
/**
|
|
256
|
-
* The buffer size limit in memory that we can reach.
|
|
257
|
-
* Once reached, no segments will be loaded until it
|
|
258
|
-
* goes below that size again
|
|
259
|
-
*/
|
|
260
|
-
maxBufferSize : IReadOnlySharedReference<number>;
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Hex-encoded DRM "system ID" as found in:
|
|
264
|
-
* https://dashif.org/identifiers/content_protection/
|
|
265
|
-
*
|
|
266
|
-
* Allows to identify which DRM system is currently used, to allow potential
|
|
267
|
-
* optimizations.
|
|
268
|
-
*
|
|
269
|
-
* Set to `undefined` in two cases:
|
|
270
|
-
* - no DRM system is used (e.g. the content is unencrypted).
|
|
271
|
-
* - We don't know which DRM system is currently used.
|
|
272
|
-
*/
|
|
273
|
-
drmSystemId : string | undefined;
|
|
274
|
-
/**
|
|
275
|
-
* Bitrate threshold from which no "fast-switching" should occur on a segment.
|
|
276
|
-
*
|
|
277
|
-
* Fast-switching is an optimization allowing to replace segments from a
|
|
278
|
-
* low-bitrate Representation by segments from a higher-bitrate
|
|
279
|
-
* Representation. This allows the user to see/hear an improvement in quality
|
|
280
|
-
* faster, hence "fast-switching".
|
|
281
|
-
*
|
|
282
|
-
* This Reference allows to limit this behavior to only allow the replacement
|
|
283
|
-
* of segments with a bitrate lower than a specific value - the number emitted
|
|
284
|
-
* by that Reference.
|
|
285
|
-
*
|
|
286
|
-
* If set to `undefined`, no threshold is active and any segment can be
|
|
287
|
-
* replaced by higher quality segment(s).
|
|
288
|
-
*
|
|
289
|
-
* `0` can be emitted to disable any kind of fast-switching.
|
|
290
|
-
*/
|
|
291
|
-
fastSwitchThreshold: IReadOnlySharedReference< undefined | number>;
|
|
292
|
-
}
|
|
@@ -1,77 +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
|
-
/**
|
|
18
|
-
* This file allows any Stream to push data to a SegmentBuffer.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import { MediaError } from "../../../../errors";
|
|
22
|
-
import { CancellationError, CancellationSignal } from "../../../../utils/task_canceller";
|
|
23
|
-
import { IReadOnlyPlaybackObserver } from "../../../api";
|
|
24
|
-
import {
|
|
25
|
-
IInsertedChunkInfos,
|
|
26
|
-
IPushChunkInfos,
|
|
27
|
-
SegmentBuffer,
|
|
28
|
-
} from "../../../segment_buffers";
|
|
29
|
-
import { IRepresentationStreamPlaybackObservation } from "../types";
|
|
30
|
-
import forceGarbageCollection from "./force_garbage_collection";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Append a segment to the given segmentBuffer.
|
|
34
|
-
* If it leads to a QuotaExceededError, try to run our custom range
|
|
35
|
-
* _garbage collector_ then retry.
|
|
36
|
-
* @param {Object} playbackObserver
|
|
37
|
-
* @param {Object} segmentBuffer
|
|
38
|
-
* @param {Object} dataInfos
|
|
39
|
-
* @param {Object} cancellationSignal
|
|
40
|
-
* @returns {Promise}
|
|
41
|
-
*/
|
|
42
|
-
export default async function appendSegmentToBuffer<T>(
|
|
43
|
-
playbackObserver : IReadOnlyPlaybackObserver<IRepresentationStreamPlaybackObservation>,
|
|
44
|
-
segmentBuffer : SegmentBuffer,
|
|
45
|
-
dataInfos : IPushChunkInfos<T> & { inventoryInfos: IInsertedChunkInfos },
|
|
46
|
-
cancellationSignal : CancellationSignal
|
|
47
|
-
) : Promise<void> {
|
|
48
|
-
try {
|
|
49
|
-
await segmentBuffer.pushChunk(dataInfos, cancellationSignal);
|
|
50
|
-
} catch (appendError : unknown) {
|
|
51
|
-
if (cancellationSignal.isCancelled() && appendError instanceof CancellationError) {
|
|
52
|
-
throw appendError;
|
|
53
|
-
} else if (!(appendError instanceof Error) ||
|
|
54
|
-
appendError.name !== "QuotaExceededError")
|
|
55
|
-
{
|
|
56
|
-
const reason = appendError instanceof Error ?
|
|
57
|
-
appendError.toString() :
|
|
58
|
-
"An unknown error happened when pushing content";
|
|
59
|
-
throw new MediaError("BUFFER_APPEND_ERROR",
|
|
60
|
-
reason,
|
|
61
|
-
{ adaptation: dataInfos.inventoryInfos.adaptation });
|
|
62
|
-
}
|
|
63
|
-
const { position } = playbackObserver.getReference().getValue();
|
|
64
|
-
const currentPos = position.pending ?? position.last;
|
|
65
|
-
try {
|
|
66
|
-
await forceGarbageCollection(currentPos, segmentBuffer, cancellationSignal);
|
|
67
|
-
await segmentBuffer.pushChunk(dataInfos, cancellationSignal);
|
|
68
|
-
} catch (err2) {
|
|
69
|
-
const reason = err2 instanceof Error ? err2.toString() :
|
|
70
|
-
"Could not clean the buffer";
|
|
71
|
-
|
|
72
|
-
throw new MediaError("BUFFER_FULL_ERROR",
|
|
73
|
-
reason,
|
|
74
|
-
{ adaptation: dataInfos.inventoryInfos.adaptation });
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
@@ -1,305 +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 Manifest, {
|
|
19
|
-
Adaptation,
|
|
20
|
-
Period,
|
|
21
|
-
Representation,
|
|
22
|
-
} from "../../../../manifest";
|
|
23
|
-
import { IBufferedChunk } from "../../../segment_buffers";
|
|
24
|
-
import { IBufferDiscontinuity } from "../types";
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Check if there is a soon-to-be-encountered discontinuity in the buffer that
|
|
28
|
-
* won't be filled by any future segment.
|
|
29
|
-
* This function will only check discontinuities for the given `checkedRange`.
|
|
30
|
-
*
|
|
31
|
-
* @param {Object} content - The content we are currently loading.
|
|
32
|
-
* @param {Object} checkedRange - The time range that will be checked for
|
|
33
|
-
* discontinuities.
|
|
34
|
-
* Both `nextSegmentStart` and `bufferedSegments` arguments can only refer to
|
|
35
|
-
* that range.
|
|
36
|
-
* @param {number|null} nextSegmentStart - The start time in seconds of the next
|
|
37
|
-
* not-yet-pushed segment that can be pushed, in the limits of `checkedRange`.
|
|
38
|
-
* This includes segments which have not been loaded or pushed yet, but also
|
|
39
|
-
* segments which might be re-downloaded because currently incomplete in the
|
|
40
|
-
* buffer, the point being to know what is the earliest time in the buffer where
|
|
41
|
-
* a segment might be pushed in the future.
|
|
42
|
-
* `null` if no segment in `checkedRange` will be pushed under current buffer's
|
|
43
|
-
* conditions.
|
|
44
|
-
* @param {boolean} hasFinishedLoading - if `true`, all segments for the current
|
|
45
|
-
* Period have been loaded and none will be loaded in the future under the
|
|
46
|
-
* current buffer's state.
|
|
47
|
-
* @param {Array.<Object>} bufferedSegments - Information about every segments
|
|
48
|
-
* currently in the buffer, in chronological order.
|
|
49
|
-
* Only segments overlapping with the given `checkedRange` will be looked at,
|
|
50
|
-
* though the array given can be larger.
|
|
51
|
-
*/
|
|
52
|
-
export default function checkForDiscontinuity(
|
|
53
|
-
content : { adaptation : Adaptation;
|
|
54
|
-
manifest : Manifest;
|
|
55
|
-
period : Period;
|
|
56
|
-
representation : Representation; },
|
|
57
|
-
checkedRange : { start : number; end : number },
|
|
58
|
-
nextSegmentStart : number | null,
|
|
59
|
-
hasFinishedLoading : boolean,
|
|
60
|
-
bufferedSegments : IBufferedChunk[]
|
|
61
|
-
) : IBufferDiscontinuity | null {
|
|
62
|
-
const { period, adaptation, representation } = content;
|
|
63
|
-
|
|
64
|
-
// `bufferedSegments` might also contains segments which are before
|
|
65
|
-
// `checkedRange`.
|
|
66
|
-
// Here we want the first one that goes over `checkedRange.start`, to see
|
|
67
|
-
// if there's a discontinuity at the beginning in the buffer
|
|
68
|
-
const nextBufferedInRangeIdx = getIndexOfFirstChunkInRange(bufferedSegments,
|
|
69
|
-
checkedRange);
|
|
70
|
-
if (nextBufferedInRangeIdx === null) {
|
|
71
|
-
// There's no segment currently buffered for the current range.
|
|
72
|
-
|
|
73
|
-
if (nextSegmentStart === null) { // No segment to load in that range
|
|
74
|
-
// Check if we are in a discontinuity at the end of the current Period
|
|
75
|
-
if (hasFinishedLoading &&
|
|
76
|
-
period.end !== undefined &&
|
|
77
|
-
checkedRange.end >= period.end)
|
|
78
|
-
{
|
|
79
|
-
return { start: undefined, end: null }; // discontinuity to Period's end
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Check that there is a discontinuity announced in the Manifest there
|
|
83
|
-
const discontinuityEnd = representation.index
|
|
84
|
-
.checkDiscontinuity(checkedRange.start);
|
|
85
|
-
if (discontinuityEnd !== null) {
|
|
86
|
-
return { start: undefined,
|
|
87
|
-
end: discontinuityEnd };
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const nextBufferedSegment = bufferedSegments[nextBufferedInRangeIdx];
|
|
94
|
-
|
|
95
|
-
// Check if there is a hole that won't be filled before `nextSegmentStart`
|
|
96
|
-
if (
|
|
97
|
-
// Next buffered segment starts after the start of the current range
|
|
98
|
-
nextBufferedSegment.bufferedStart !== undefined &&
|
|
99
|
-
nextBufferedSegment.bufferedStart > checkedRange.start &&
|
|
100
|
-
|
|
101
|
-
// and no segment will fill in that hole
|
|
102
|
-
(nextSegmentStart === null ||
|
|
103
|
-
nextBufferedSegment.infos.segment.end <= nextSegmentStart)
|
|
104
|
-
) {
|
|
105
|
-
const discontinuityEnd = nextBufferedSegment.bufferedStart;
|
|
106
|
-
if (!hasFinishedLoading &&
|
|
107
|
-
representation.index.awaitSegmentBetween(checkedRange.start,
|
|
108
|
-
discontinuityEnd) !== false)
|
|
109
|
-
{
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
log.debug("RS: current discontinuity encountered",
|
|
113
|
-
adaptation.type, nextBufferedSegment.bufferedStart);
|
|
114
|
-
return { start: undefined,
|
|
115
|
-
end: discontinuityEnd };
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
// Check if there's a discontinuity BETWEEN segments of the current range
|
|
119
|
-
const nextHoleIdx =
|
|
120
|
-
getIndexOfFirstDiscontinuityBetweenChunks(bufferedSegments,
|
|
121
|
-
checkedRange,
|
|
122
|
-
nextBufferedInRangeIdx + 1);
|
|
123
|
-
|
|
124
|
-
// If there was a hole between two consecutives segments, and if this hole
|
|
125
|
-
// comes before the next segment to load, there is a discontinuity (that hole!)
|
|
126
|
-
if (nextHoleIdx !== null) {
|
|
127
|
-
const segmentInfoBeforeHole = bufferedSegments[nextHoleIdx - 1];
|
|
128
|
-
const segmentInfoAfterHole = bufferedSegments[nextHoleIdx];
|
|
129
|
-
|
|
130
|
-
if (nextSegmentStart === null ||
|
|
131
|
-
segmentInfoAfterHole.infos.segment.end <= nextSegmentStart)
|
|
132
|
-
{
|
|
133
|
-
if (!hasFinishedLoading && representation.index
|
|
134
|
-
.awaitSegmentBetween(segmentInfoBeforeHole.infos.segment.end,
|
|
135
|
-
segmentInfoAfterHole.infos.segment.time) !== false)
|
|
136
|
-
{
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
|
-
const start = segmentInfoBeforeHole.bufferedEnd as number;
|
|
140
|
-
const end = segmentInfoAfterHole.bufferedStart as number;
|
|
141
|
-
log.debug("RS: future discontinuity encountered", adaptation.type, start, end);
|
|
142
|
-
return { start, end };
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (nextSegmentStart === null) {
|
|
147
|
-
// If no hole between segments and no segment to load, check for a
|
|
148
|
-
// discontinuity at the end of the Period
|
|
149
|
-
|
|
150
|
-
if (hasFinishedLoading && period.end !== undefined) { // Period is finished
|
|
151
|
-
if (checkedRange.end < period.end) { // We've not reached the Period's end yet
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Check if the last buffered segment ends before this Period's end
|
|
156
|
-
// In which case there is a discontinuity between those
|
|
157
|
-
const lastBufferedInPeriodIdx = getIndexOfLastChunkInPeriod(bufferedSegments,
|
|
158
|
-
period.end);
|
|
159
|
-
if (lastBufferedInPeriodIdx !== null) {
|
|
160
|
-
const lastSegment = bufferedSegments[lastBufferedInPeriodIdx];
|
|
161
|
-
if (lastSegment.bufferedEnd !== undefined &&
|
|
162
|
-
lastSegment.bufferedEnd < period.end)
|
|
163
|
-
{
|
|
164
|
-
log.debug("RS: discontinuity encountered at the end of the current period",
|
|
165
|
-
adaptation.type, lastSegment.bufferedEnd, period.end);
|
|
166
|
-
return { start: lastSegment.bufferedEnd,
|
|
167
|
-
end: null };
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// At last, check if we don't have a discontinuity at the end of the current
|
|
173
|
-
// range, announced in the Manifest, that is too big to be detected through
|
|
174
|
-
// the previous checks.
|
|
175
|
-
|
|
176
|
-
if (period.end !== undefined && checkedRange.end >= period.end) {
|
|
177
|
-
return null; // The previous checks should have taken care of those
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
for (let bufIdx = bufferedSegments.length - 1; bufIdx >= 0; bufIdx--) {
|
|
181
|
-
const bufSeg = bufferedSegments[bufIdx];
|
|
182
|
-
if (bufSeg.bufferedStart === undefined) {
|
|
183
|
-
break;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
if (bufSeg.bufferedStart < checkedRange.end) {
|
|
187
|
-
if (bufSeg.bufferedEnd !== undefined && bufSeg.bufferedEnd < checkedRange.end) {
|
|
188
|
-
const discontinuityEnd = representation.index
|
|
189
|
-
.checkDiscontinuity(checkedRange.end);
|
|
190
|
-
if (discontinuityEnd !== null) {
|
|
191
|
-
return { start: bufSeg.bufferedEnd,
|
|
192
|
-
end: discontinuityEnd };
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Returns the index of the first element in `bufferedChunks` that is part of
|
|
204
|
-
* `range` (starts before it ends and ends after it starts).
|
|
205
|
-
*
|
|
206
|
-
* Returns `null` if no element is found in that range or if we cannot know the
|
|
207
|
-
* index of the first element in it.
|
|
208
|
-
* @param {Array.<Object>} bufferedChunks
|
|
209
|
-
* @param {Object} range
|
|
210
|
-
* @returns {number|null}
|
|
211
|
-
*/
|
|
212
|
-
function getIndexOfFirstChunkInRange(
|
|
213
|
-
bufferedChunks : IBufferedChunk[],
|
|
214
|
-
range : { start : number; end : number }
|
|
215
|
-
) : number | null {
|
|
216
|
-
for (let bufIdx = 0; bufIdx < bufferedChunks.length; bufIdx++) {
|
|
217
|
-
const bufSeg = bufferedChunks[bufIdx];
|
|
218
|
-
if (bufSeg.bufferedStart === undefined ||
|
|
219
|
-
bufSeg.bufferedEnd === undefined ||
|
|
220
|
-
bufSeg.bufferedStart >= range.end)
|
|
221
|
-
{
|
|
222
|
-
return null;
|
|
223
|
-
}
|
|
224
|
-
if (bufSeg.bufferedEnd > range.start) {
|
|
225
|
-
return bufIdx;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return null;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Returns the index of the first element in `bufferedChunks` which is not
|
|
233
|
-
* immediately consecutive to the one before it.
|
|
234
|
-
*
|
|
235
|
-
* `startFromIndex` is the index of the first segment that will be checked with
|
|
236
|
-
* the element coming before it. As such, it has to be superior to 0.
|
|
237
|
-
*
|
|
238
|
-
* If the element at `startFromIndex` comes immediately after the one before it,
|
|
239
|
-
* the element at `startFromIndex + 1` will be checked instead and so on until a
|
|
240
|
-
* segment completely out of `checkedRange` (which starts after it) is detected.
|
|
241
|
-
*
|
|
242
|
-
* If no hole between elements is found, `null` is returned.
|
|
243
|
-
* @param {Array.<Object>} bufferedChunks
|
|
244
|
-
* @param {Object} range
|
|
245
|
-
* @param {number} startFromIndex
|
|
246
|
-
* @returns {number|null}
|
|
247
|
-
*/
|
|
248
|
-
function getIndexOfFirstDiscontinuityBetweenChunks(
|
|
249
|
-
bufferedChunks : IBufferedChunk[],
|
|
250
|
-
range : { start : number; end : number },
|
|
251
|
-
startFromIndex : number
|
|
252
|
-
) : number | null {
|
|
253
|
-
if (startFromIndex <= 0) {
|
|
254
|
-
log.error("RS: Asked to check a discontinuity before the first chunk.");
|
|
255
|
-
return null;
|
|
256
|
-
}
|
|
257
|
-
for (
|
|
258
|
-
let bufIdx = startFromIndex;
|
|
259
|
-
bufIdx < bufferedChunks.length;
|
|
260
|
-
bufIdx++
|
|
261
|
-
) {
|
|
262
|
-
const currSegment = bufferedChunks[bufIdx];
|
|
263
|
-
const prevSegment = bufferedChunks[bufIdx - 1];
|
|
264
|
-
|
|
265
|
-
// Exit as soon we miss information or when we go further than `checkedRange`
|
|
266
|
-
if (currSegment.bufferedStart === undefined ||
|
|
267
|
-
prevSegment.bufferedEnd === undefined ||
|
|
268
|
-
currSegment.bufferedStart >= range.end)
|
|
269
|
-
{
|
|
270
|
-
return null;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// If there is a hole between two consecutive buffered segment
|
|
274
|
-
if (currSegment.bufferedStart - prevSegment.bufferedEnd > 0) {
|
|
275
|
-
return bufIdx;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
return null;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Returns the index of the last element in `bufferedChunks` that is part of
|
|
283
|
-
* `range` (starts before it ends and ends after it starts).
|
|
284
|
-
*
|
|
285
|
-
* Returns `null` if no element is found in that range or if we cannot know the
|
|
286
|
-
* index of the last element in it.
|
|
287
|
-
* @param {Array.<Object>} bufferedChunks
|
|
288
|
-
* @param {number} periodEnd
|
|
289
|
-
* @returns {number|null}
|
|
290
|
-
*/
|
|
291
|
-
function getIndexOfLastChunkInPeriod(
|
|
292
|
-
bufferedChunks : IBufferedChunk[],
|
|
293
|
-
periodEnd : number
|
|
294
|
-
) : number | null {
|
|
295
|
-
for (let bufIdx = bufferedChunks.length - 1; bufIdx >= 0; bufIdx--) {
|
|
296
|
-
const bufSeg = bufferedChunks[bufIdx];
|
|
297
|
-
if (bufSeg.bufferedStart === undefined) {
|
|
298
|
-
return null;
|
|
299
|
-
}
|
|
300
|
-
if (bufSeg.bufferedStart < periodEnd) {
|
|
301
|
-
return bufIdx;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
return null;
|
|
305
|
-
}
|