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,652 +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 {
|
|
19
|
-
IRepresentationIndex,
|
|
20
|
-
ISegment,
|
|
21
|
-
} from "../../../../../manifest";
|
|
22
|
-
import assert from "../../../../../utils/assert";
|
|
23
|
-
import isNullOrUndefined from "../../../../../utils/is_null_or_undefined";
|
|
24
|
-
import { IEMSG } from "../../../../containers/isobmff";
|
|
25
|
-
import ManifestBoundsCalculator from "../manifest_bounds_calculator";
|
|
26
|
-
import getInitSegment from "./get_init_segment";
|
|
27
|
-
import {
|
|
28
|
-
createDashUrlDetokenizer,
|
|
29
|
-
constructRepresentationUrl,
|
|
30
|
-
} from "./tokens";
|
|
31
|
-
import { getSegmentTimeRoundingError } from "./utils";
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Index property defined for a SegmentTemplate RepresentationIndex
|
|
36
|
-
* This object contains every property needed to generate an ISegment for a
|
|
37
|
-
* given media time.
|
|
38
|
-
*/
|
|
39
|
-
export interface ITemplateIndex {
|
|
40
|
-
/**
|
|
41
|
-
* Duration of each segment, in the timescale given (see timescale property).
|
|
42
|
-
* timescale and list properties.)
|
|
43
|
-
*/
|
|
44
|
-
duration : number;
|
|
45
|
-
/**
|
|
46
|
-
* Timescale to convert a time given here into seconds.
|
|
47
|
-
* This is done by this simple operation:
|
|
48
|
-
* ``timeInSeconds = timeInIndex * timescale``
|
|
49
|
-
*/
|
|
50
|
-
timescale : number;
|
|
51
|
-
/** Byte range for a possible index of segments in the server. */
|
|
52
|
-
indexRange?: [number, number] | undefined;
|
|
53
|
-
/** Information on the initialization segment. */
|
|
54
|
-
initialization? : {
|
|
55
|
-
/**
|
|
56
|
-
* URL path, to add to the wanted CDN, to access the initialization segment.
|
|
57
|
-
*/
|
|
58
|
-
url: string | null;
|
|
59
|
-
/** possible byte range to request it. */
|
|
60
|
-
range?: [number, number] | undefined;
|
|
61
|
-
} | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* URL base to access any segment.
|
|
64
|
-
* Can contain token to replace to convert it to real URLs.
|
|
65
|
-
* `null` if no URL exists.
|
|
66
|
-
*/
|
|
67
|
-
url : string | null;
|
|
68
|
-
/**
|
|
69
|
-
* Temporal offset, in the current timescale (see timescale), to add to the
|
|
70
|
-
* presentation time (time a segment has at decoding time) to obtain the
|
|
71
|
-
* corresponding media time (original time of the media segment in the index
|
|
72
|
-
* and on the media file).
|
|
73
|
-
* For example, to look for a segment beginning at a second `T` on a
|
|
74
|
-
* HTMLMediaElement, we actually will look for a segment in the index
|
|
75
|
-
* beginning at:
|
|
76
|
-
* ```
|
|
77
|
-
* T * timescale + indexTimeOffset
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
indexTimeOffset : number;
|
|
81
|
-
/**
|
|
82
|
-
* Offset present in the index to convert from the mediaTime (time declared in
|
|
83
|
-
* the media segments and in this index) to the presentationTime (time wanted
|
|
84
|
-
* when decoding the segment). Basically by doing something along the line
|
|
85
|
-
* of:
|
|
86
|
-
* ```
|
|
87
|
-
* presentationTimeInSeconds =
|
|
88
|
-
* mediaTimeInSeconds -
|
|
89
|
-
* presentationTimeOffsetInSeconds +
|
|
90
|
-
* periodStartInSeconds
|
|
91
|
-
* ```
|
|
92
|
-
* The time given here is in the current
|
|
93
|
-
* timescale (see timescale)
|
|
94
|
-
*/
|
|
95
|
-
presentationTimeOffset : number;
|
|
96
|
-
/** Number from which the first segments in this index starts with. */
|
|
97
|
-
startNumber? : number | undefined;
|
|
98
|
-
/** Number associated to the last segment in this index. */
|
|
99
|
-
endNumber? : number | undefined;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* `index` Argument for a SegmentTemplate RepresentationIndex.
|
|
104
|
-
* Most of the properties here are already defined in ITemplateIndex.
|
|
105
|
-
*/
|
|
106
|
-
export interface ITemplateIndexIndexArgument {
|
|
107
|
-
duration? : number | undefined;
|
|
108
|
-
indexRange?: [number, number] | undefined;
|
|
109
|
-
initialization?: { media? : string | undefined;
|
|
110
|
-
range? : [number, number] | undefined; } |
|
|
111
|
-
undefined;
|
|
112
|
-
media? : string | undefined;
|
|
113
|
-
presentationTimeOffset? : number | undefined;
|
|
114
|
-
startNumber? : number | undefined;
|
|
115
|
-
endNumber? : number | undefined;
|
|
116
|
-
timescale? : number | undefined;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/** Aditional context needed by a SegmentTemplate RepresentationIndex. */
|
|
120
|
-
export interface ITemplateIndexContextArgument {
|
|
121
|
-
/**
|
|
122
|
-
* availability time offset of the concerned Adaptation.
|
|
123
|
-
*
|
|
124
|
-
* If `undefined`, the corresponding property was not set in the MPD and it is
|
|
125
|
-
* thus assumed to be equal to `0`.
|
|
126
|
-
* It might however be semantically different than `0` in the RxPlayer as it
|
|
127
|
-
* means that the packager didn't include that information in the MPD.
|
|
128
|
-
*/
|
|
129
|
-
availabilityTimeOffset : number | undefined;
|
|
130
|
-
/** Allows to obtain the minimum and maximum positions of a content. */
|
|
131
|
-
manifestBoundsCalculator : ManifestBoundsCalculator;
|
|
132
|
-
/** Start of the period concerned by this RepresentationIndex, in seconds. */
|
|
133
|
-
periodStart : number;
|
|
134
|
-
/** End of the period concerned by this RepresentationIndex, in seconds. */
|
|
135
|
-
periodEnd : number|undefined;
|
|
136
|
-
/** Whether the corresponding Manifest can be updated and changed. */
|
|
137
|
-
isDynamic : boolean;
|
|
138
|
-
/** ID of the Representation concerned. */
|
|
139
|
-
representationId? : string | undefined;
|
|
140
|
-
/** Bitrate of the Representation concerned. */
|
|
141
|
-
representationBitrate? : number | undefined;
|
|
142
|
-
/* Function that tells if an EMSG is whitelisted by the manifest */
|
|
143
|
-
isEMSGWhitelisted: (inbandEvent: IEMSG) => boolean;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* IRepresentationIndex implementation for DASH' SegmentTemplate without a
|
|
148
|
-
* SegmentTimeline.
|
|
149
|
-
* @class TemplateRepresentationIndex
|
|
150
|
-
*/
|
|
151
|
-
export default class TemplateRepresentationIndex implements IRepresentationIndex {
|
|
152
|
-
/** Underlying structure to retrieve segment information. */
|
|
153
|
-
private _index : ITemplateIndex;
|
|
154
|
-
/** Retrieve the maximum and minimum position of the whole content. */
|
|
155
|
-
private _manifestBoundsCalculator : ManifestBoundsCalculator;
|
|
156
|
-
/** Absolute start of the Period, in seconds. */
|
|
157
|
-
private _periodStart : number;
|
|
158
|
-
/** Difference between the end time of the Period and its start time, in timescale. */
|
|
159
|
-
private _scaledRelativePeriodEnd : number | undefined;
|
|
160
|
-
/** Minimum availabilityTimeOffset concerning the segments of this Representation. */
|
|
161
|
-
private _availabilityTimeOffset : number | undefined;
|
|
162
|
-
/** Whether the corresponding Manifest can be updated and changed. */
|
|
163
|
-
private _isDynamic : boolean;
|
|
164
|
-
/* Function that tells if an EMSG is whitelisted by the manifest */
|
|
165
|
-
private _isEMSGWhitelisted : (inbandEvent: IEMSG) => boolean;
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* @param {Object} index
|
|
169
|
-
* @param {Object} context
|
|
170
|
-
*/
|
|
171
|
-
constructor(
|
|
172
|
-
index : ITemplateIndexIndexArgument,
|
|
173
|
-
context : ITemplateIndexContextArgument
|
|
174
|
-
) {
|
|
175
|
-
const { availabilityTimeOffset,
|
|
176
|
-
manifestBoundsCalculator,
|
|
177
|
-
isDynamic,
|
|
178
|
-
periodEnd,
|
|
179
|
-
periodStart,
|
|
180
|
-
representationId,
|
|
181
|
-
representationBitrate,
|
|
182
|
-
isEMSGWhitelisted } = context;
|
|
183
|
-
const timescale = index.timescale ?? 1;
|
|
184
|
-
|
|
185
|
-
this._availabilityTimeOffset = availabilityTimeOffset;
|
|
186
|
-
|
|
187
|
-
this._manifestBoundsCalculator = manifestBoundsCalculator;
|
|
188
|
-
const presentationTimeOffset = index.presentationTimeOffset != null ?
|
|
189
|
-
index.presentationTimeOffset :
|
|
190
|
-
0;
|
|
191
|
-
|
|
192
|
-
const scaledStart = periodStart * timescale;
|
|
193
|
-
const indexTimeOffset = presentationTimeOffset - scaledStart;
|
|
194
|
-
|
|
195
|
-
if (index.duration === undefined) {
|
|
196
|
-
throw new Error("Invalid SegmentTemplate: no duration");
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
const initializationUrl = index.initialization?.media === undefined ?
|
|
200
|
-
null :
|
|
201
|
-
constructRepresentationUrl(index.initialization.media,
|
|
202
|
-
representationId,
|
|
203
|
-
representationBitrate);
|
|
204
|
-
|
|
205
|
-
const segmentUrlTemplate = index.media === undefined ?
|
|
206
|
-
null :
|
|
207
|
-
constructRepresentationUrl(index.media, representationId, representationBitrate);
|
|
208
|
-
|
|
209
|
-
this._index = { duration: index.duration,
|
|
210
|
-
timescale,
|
|
211
|
-
indexRange: index.indexRange,
|
|
212
|
-
indexTimeOffset,
|
|
213
|
-
initialization: index.initialization == null ?
|
|
214
|
-
undefined :
|
|
215
|
-
{ url: initializationUrl,
|
|
216
|
-
range: index.initialization.range },
|
|
217
|
-
url: segmentUrlTemplate,
|
|
218
|
-
presentationTimeOffset,
|
|
219
|
-
startNumber: index.startNumber,
|
|
220
|
-
endNumber: index.endNumber };
|
|
221
|
-
this._isDynamic = isDynamic;
|
|
222
|
-
this._periodStart = periodStart;
|
|
223
|
-
this._scaledRelativePeriodEnd = periodEnd === undefined ?
|
|
224
|
-
undefined :
|
|
225
|
-
(periodEnd - periodStart) * timescale;
|
|
226
|
-
this._isEMSGWhitelisted = isEMSGWhitelisted;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Construct init Segment.
|
|
231
|
-
* @returns {Object}
|
|
232
|
-
*/
|
|
233
|
-
getInitSegment() : ISegment {
|
|
234
|
-
return getInitSegment(this._index, this._isEMSGWhitelisted);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* @param {Number} fromTime
|
|
239
|
-
* @param {Number} dur
|
|
240
|
-
* @returns {Array.<Object>}
|
|
241
|
-
*/
|
|
242
|
-
getSegments(fromTime : number, dur : number) : ISegment[] {
|
|
243
|
-
const index = this._index;
|
|
244
|
-
const { duration,
|
|
245
|
-
startNumber,
|
|
246
|
-
endNumber,
|
|
247
|
-
timescale,
|
|
248
|
-
url } = index;
|
|
249
|
-
|
|
250
|
-
const scaledStart = this._periodStart * timescale;
|
|
251
|
-
const scaledEnd = this._scaledRelativePeriodEnd;
|
|
252
|
-
|
|
253
|
-
// Convert the asked position to the right timescales, and consider them
|
|
254
|
-
// relatively to the Period's start.
|
|
255
|
-
const upFromPeriodStart = fromTime * timescale - scaledStart;
|
|
256
|
-
const toFromPeriodStart = (fromTime + dur) * timescale - scaledStart;
|
|
257
|
-
const firstSegmentStart = this._getFirstSegmentStart();
|
|
258
|
-
const lastSegmentStart = this._getLastSegmentStart();
|
|
259
|
-
if (firstSegmentStart == null || lastSegmentStart == null) {
|
|
260
|
-
return [];
|
|
261
|
-
}
|
|
262
|
-
const startPosition = Math.max(firstSegmentStart, upFromPeriodStart);
|
|
263
|
-
const lastWantedStartPosition = Math.min(lastSegmentStart, toFromPeriodStart);
|
|
264
|
-
if ((lastWantedStartPosition + duration) <= startPosition) {
|
|
265
|
-
return [];
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
const segments : ISegment[] = [];
|
|
269
|
-
|
|
270
|
-
// number corresponding to the Period's start
|
|
271
|
-
const numberOffset = startNumber ?? 1;
|
|
272
|
-
|
|
273
|
-
// calcul initial time from Period start, where the first segment would have
|
|
274
|
-
// the `0` number
|
|
275
|
-
let numberIndexedToZero = Math.floor(startPosition / duration);
|
|
276
|
-
|
|
277
|
-
for (
|
|
278
|
-
let timeFromPeriodStart = numberIndexedToZero * duration;
|
|
279
|
-
timeFromPeriodStart <= lastWantedStartPosition;
|
|
280
|
-
timeFromPeriodStart += duration
|
|
281
|
-
) {
|
|
282
|
-
// To obtain the real number, adds the real number from the Period's start
|
|
283
|
-
const realNumber = numberIndexedToZero + numberOffset;
|
|
284
|
-
if (endNumber !== undefined && realNumber > endNumber) {
|
|
285
|
-
return segments;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
const realDuration = scaledEnd != null &&
|
|
289
|
-
timeFromPeriodStart + duration > scaledEnd ?
|
|
290
|
-
scaledEnd - timeFromPeriodStart :
|
|
291
|
-
duration;
|
|
292
|
-
const realTime = timeFromPeriodStart + scaledStart;
|
|
293
|
-
const manifestTime = timeFromPeriodStart + this._index.presentationTimeOffset;
|
|
294
|
-
|
|
295
|
-
const detokenizedURL = url === null ?
|
|
296
|
-
null :
|
|
297
|
-
createDashUrlDetokenizer(manifestTime, realNumber)(url);
|
|
298
|
-
|
|
299
|
-
const args = { id: String(realNumber),
|
|
300
|
-
number: realNumber,
|
|
301
|
-
time: realTime / timescale,
|
|
302
|
-
end: (realTime + realDuration) / timescale,
|
|
303
|
-
duration: realDuration / timescale,
|
|
304
|
-
timescale: 1 as const,
|
|
305
|
-
isInit: false,
|
|
306
|
-
scaledDuration: realDuration / timescale,
|
|
307
|
-
url: detokenizedURL,
|
|
308
|
-
timestampOffset: -(index.indexTimeOffset / timescale),
|
|
309
|
-
complete: true,
|
|
310
|
-
privateInfos: {
|
|
311
|
-
isEMSGWhitelisted: this._isEMSGWhitelisted,
|
|
312
|
-
} };
|
|
313
|
-
segments.push(args);
|
|
314
|
-
numberIndexedToZero++;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
return segments;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
* Returns first possible position in the index, in seconds.
|
|
322
|
-
* @returns {number|null|undefined}
|
|
323
|
-
*/
|
|
324
|
-
getFirstAvailablePosition() : number | null | undefined {
|
|
325
|
-
const firstSegmentStart = this._getFirstSegmentStart();
|
|
326
|
-
if (firstSegmentStart == null) {
|
|
327
|
-
return firstSegmentStart; // return undefined or null
|
|
328
|
-
}
|
|
329
|
-
return (firstSegmentStart / this._index.timescale) + this._periodStart;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* Returns last possible position in the index, in seconds.
|
|
334
|
-
* @returns {number|null}
|
|
335
|
-
*/
|
|
336
|
-
getLastAvailablePosition() : number|null|undefined {
|
|
337
|
-
const lastSegmentStart = this._getLastSegmentStart();
|
|
338
|
-
if (isNullOrUndefined(lastSegmentStart)) {
|
|
339
|
-
// In that case (null or undefined), getLastAvailablePosition should reflect
|
|
340
|
-
// the result of getLastSegmentStart, as the meaning is the same for
|
|
341
|
-
// the two functions. So, we return the result of the latter.
|
|
342
|
-
return lastSegmentStart;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
const scaledRelativeIndexEnd = this._estimateRelativeScaledEnd();
|
|
346
|
-
const lastSegmentEnd = Math.min(lastSegmentStart + this._index.duration,
|
|
347
|
-
scaledRelativeIndexEnd ?? Infinity);
|
|
348
|
-
return (lastSegmentEnd / this._index.timescale) + this._periodStart;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/**
|
|
352
|
-
* Returns the absolute end in seconds this RepresentationIndex can reach once
|
|
353
|
-
* all segments are available.
|
|
354
|
-
* @returns {number|null|undefined}
|
|
355
|
-
*/
|
|
356
|
-
getEnd(): number | null | undefined {
|
|
357
|
-
if (!this._isDynamic) {
|
|
358
|
-
return this.getLastAvailablePosition();
|
|
359
|
-
}
|
|
360
|
-
const scaledRelativeIndexEnd = this._estimateRelativeScaledEnd();
|
|
361
|
-
if (scaledRelativeIndexEnd === undefined) {
|
|
362
|
-
return undefined;
|
|
363
|
-
}
|
|
364
|
-
const { timescale } = this._index;
|
|
365
|
-
const absoluteScaledIndexEnd = (scaledRelativeIndexEnd +
|
|
366
|
-
this._periodStart * timescale);
|
|
367
|
-
return absoluteScaledIndexEnd / timescale;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Returns:
|
|
372
|
-
* - `true` if in the given time interval, at least one new segment is
|
|
373
|
-
* expected to be available in the future.
|
|
374
|
-
* - `false` either if all segments in that time interval are already
|
|
375
|
-
* available for download or if none will ever be available for it.
|
|
376
|
-
* - `undefined` when it is not possible to tell.
|
|
377
|
-
*
|
|
378
|
-
* Always `false` in a `BaseRepresentationIndex` because all segments should
|
|
379
|
-
* be directly available.
|
|
380
|
-
* @returns {boolean}
|
|
381
|
-
*/
|
|
382
|
-
awaitSegmentBetween(start: number, end: number): boolean | undefined {
|
|
383
|
-
assert(start <= end);
|
|
384
|
-
if (!this._isDynamic) {
|
|
385
|
-
return false;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
const { timescale } = this._index;
|
|
389
|
-
const segmentTimeRounding = getSegmentTimeRoundingError(timescale);
|
|
390
|
-
const scaledPeriodStart = this._periodStart * timescale;
|
|
391
|
-
const scaledRelativeStart = (start * timescale) - scaledPeriodStart;
|
|
392
|
-
const scaledRelativeEnd = (end * timescale) - scaledPeriodStart;
|
|
393
|
-
const lastSegmentStart = this._getLastSegmentStart();
|
|
394
|
-
if (isNullOrUndefined(lastSegmentStart)) {
|
|
395
|
-
const relativeScaledIndexEnd = this._estimateRelativeScaledEnd();
|
|
396
|
-
if (relativeScaledIndexEnd === undefined) {
|
|
397
|
-
return scaledRelativeEnd + segmentTimeRounding >= 0;
|
|
398
|
-
}
|
|
399
|
-
return scaledRelativeEnd + segmentTimeRounding >= 0 &&
|
|
400
|
-
scaledRelativeStart < relativeScaledIndexEnd - segmentTimeRounding;
|
|
401
|
-
|
|
402
|
-
}
|
|
403
|
-
const lastSegmentEnd = lastSegmentStart + this._index.duration;
|
|
404
|
-
|
|
405
|
-
const relativeScaledIndexEnd = this._estimateRelativeScaledEnd();
|
|
406
|
-
if (relativeScaledIndexEnd === undefined) {
|
|
407
|
-
return scaledRelativeEnd > lastSegmentEnd - segmentTimeRounding;
|
|
408
|
-
}
|
|
409
|
-
return scaledRelativeEnd > lastSegmentEnd - segmentTimeRounding &&
|
|
410
|
-
scaledRelativeStart < relativeScaledIndexEnd - segmentTimeRounding;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
/**
|
|
414
|
-
* Returns true if, based on the arguments, the index should be refreshed.
|
|
415
|
-
* We never have to refresh a SegmentTemplate-based manifest.
|
|
416
|
-
* @returns {Boolean}
|
|
417
|
-
*/
|
|
418
|
-
shouldRefresh() : false {
|
|
419
|
-
return false;
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
/**
|
|
423
|
-
* We cannot check for discontinuity in SegmentTemplate-based indexes.
|
|
424
|
-
* @returns {null}
|
|
425
|
-
*/
|
|
426
|
-
checkDiscontinuity() : null {
|
|
427
|
-
return null;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
/**
|
|
431
|
-
* Returns `true` if the given segment should still be available as of now
|
|
432
|
-
* (not removed since and still request-able).
|
|
433
|
-
* Returns `false` if that's not the case.
|
|
434
|
-
* Returns `undefined` if we do not know whether that's the case or not.
|
|
435
|
-
* @param {Object} segment
|
|
436
|
-
* @returns {boolean|undefined}
|
|
437
|
-
*/
|
|
438
|
-
isSegmentStillAvailable(segment : ISegment) : boolean|undefined {
|
|
439
|
-
if (segment.isInit) {
|
|
440
|
-
return true;
|
|
441
|
-
}
|
|
442
|
-
const segmentsForTime = this.getSegments(segment.time, 0.1);
|
|
443
|
-
if (segmentsForTime.length === 0) {
|
|
444
|
-
return false;
|
|
445
|
-
}
|
|
446
|
-
return segmentsForTime[0].time === segment.time &&
|
|
447
|
-
segmentsForTime[0].end === segment.end &&
|
|
448
|
-
segmentsForTime[0].number === segment.number;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/**
|
|
452
|
-
* SegmentTemplate without a SegmentTimeline should not be updated.
|
|
453
|
-
* @returns {Boolean}
|
|
454
|
-
*/
|
|
455
|
-
canBeOutOfSyncError() : false {
|
|
456
|
-
return false;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
/**
|
|
460
|
-
* Returns `false` if the last segments in this index have already been
|
|
461
|
-
* generated so that we can freely go to the next period.
|
|
462
|
-
* Returns `true` if the index is still waiting on future segments to be
|
|
463
|
-
* generated.
|
|
464
|
-
* @returns {Boolean}
|
|
465
|
-
*/
|
|
466
|
-
isStillAwaitingFutureSegments() : boolean {
|
|
467
|
-
if (!this._isDynamic) {
|
|
468
|
-
return false;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
const scaledRelativeIndexEnd = this._estimateRelativeScaledEnd();
|
|
472
|
-
if (scaledRelativeIndexEnd === undefined) {
|
|
473
|
-
return true;
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
const { timescale } = this._index;
|
|
477
|
-
const lastSegmentStart = this._getLastSegmentStart();
|
|
478
|
-
|
|
479
|
-
// As last segment start is null if live time is before
|
|
480
|
-
// current period, consider the index not to be finished.
|
|
481
|
-
if (isNullOrUndefined(lastSegmentStart)) {
|
|
482
|
-
return true;
|
|
483
|
-
}
|
|
484
|
-
const lastSegmentEnd = lastSegmentStart + this._index.duration;
|
|
485
|
-
const segmentTimeRounding = getSegmentTimeRoundingError(timescale);
|
|
486
|
-
return (lastSegmentEnd + segmentTimeRounding) < scaledRelativeIndexEnd;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
/**
|
|
490
|
-
* @returns {Boolean}
|
|
491
|
-
*/
|
|
492
|
-
isInitialized() : true {
|
|
493
|
-
return true;
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* @param {Object} newIndex
|
|
498
|
-
*/
|
|
499
|
-
_replace(newIndex : TemplateRepresentationIndex) : void {
|
|
500
|
-
this._index = newIndex._index;
|
|
501
|
-
this._isDynamic = newIndex._isDynamic;
|
|
502
|
-
this._periodStart = newIndex._periodStart;
|
|
503
|
-
this._scaledRelativePeriodEnd = newIndex._scaledRelativePeriodEnd;
|
|
504
|
-
this._manifestBoundsCalculator = newIndex._manifestBoundsCalculator;
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
/**
|
|
508
|
-
* @param {Object} newIndex
|
|
509
|
-
*/
|
|
510
|
-
_update(newIndex : TemplateRepresentationIndex) : void {
|
|
511
|
-
// As segments are not declared individually, as long as this Representation
|
|
512
|
-
// is present, we have every information we need
|
|
513
|
-
this._replace(newIndex);
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
/**
|
|
517
|
-
* Returns the timescaled start of the first segment that should be available,
|
|
518
|
-
* relatively to the start of the Period.
|
|
519
|
-
* @returns {number | null | undefined}
|
|
520
|
-
*/
|
|
521
|
-
private _getFirstSegmentStart() : number | null | undefined {
|
|
522
|
-
if (!this._isDynamic) {
|
|
523
|
-
return 0; // it is the start of the Period
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
// 1 - check that this index is already available
|
|
527
|
-
if (this._scaledRelativePeriodEnd === 0 ||
|
|
528
|
-
this._scaledRelativePeriodEnd === undefined)
|
|
529
|
-
{
|
|
530
|
-
// /!\ The scaled max position augments continuously and might not
|
|
531
|
-
// reflect exactly the real server-side value. As segments are
|
|
532
|
-
// generated discretely.
|
|
533
|
-
const maximumSegmentTime =
|
|
534
|
-
this._manifestBoundsCalculator.getEstimatedMaximumPosition(
|
|
535
|
-
this._availabilityTimeOffset ?? 0
|
|
536
|
-
);
|
|
537
|
-
if (maximumSegmentTime !== undefined && maximumSegmentTime < this._periodStart) {
|
|
538
|
-
// Maximum position is before this period.
|
|
539
|
-
// No segment is yet available here
|
|
540
|
-
return null;
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
const { duration, timescale } = this._index;
|
|
545
|
-
const firstPosition = this._manifestBoundsCalculator.getEstimatedMinimumSegmentTime();
|
|
546
|
-
if (firstPosition === undefined) {
|
|
547
|
-
return undefined;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
const segmentTime = firstPosition > this._periodStart ?
|
|
551
|
-
(firstPosition - this._periodStart) * timescale :
|
|
552
|
-
0;
|
|
553
|
-
const numberIndexedToZero = Math.floor(segmentTime / duration);
|
|
554
|
-
return numberIndexedToZero * duration;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
/**
|
|
558
|
-
* Returns the timescaled start of the last segment that should be available,
|
|
559
|
-
* relatively to the start of the Period.
|
|
560
|
-
* Returns null if live time is before current period.
|
|
561
|
-
* @returns {number|null|undefined}
|
|
562
|
-
*/
|
|
563
|
-
private _getLastSegmentStart() : number | null | undefined {
|
|
564
|
-
const { duration, timescale, endNumber, startNumber = 1 } = this._index;
|
|
565
|
-
|
|
566
|
-
if (this._isDynamic) {
|
|
567
|
-
const liveEdge = this._manifestBoundsCalculator.getEstimatedLiveEdge();
|
|
568
|
-
if (liveEdge !== undefined &&
|
|
569
|
-
this._scaledRelativePeriodEnd !== undefined &&
|
|
570
|
-
this._scaledRelativePeriodEnd < liveEdge - (this._periodStart *
|
|
571
|
-
this._index.timescale))
|
|
572
|
-
{
|
|
573
|
-
|
|
574
|
-
let numberOfSegments = Math.ceil(this._scaledRelativePeriodEnd / duration);
|
|
575
|
-
if (endNumber !== undefined && (endNumber - startNumber + 1) < numberOfSegments) {
|
|
576
|
-
numberOfSegments = endNumber - startNumber + 1;
|
|
577
|
-
}
|
|
578
|
-
return (numberOfSegments - 1) * duration;
|
|
579
|
-
}
|
|
580
|
-
const lastPosition = this._manifestBoundsCalculator
|
|
581
|
-
.getEstimatedMaximumPosition(this._availabilityTimeOffset ?? 0);
|
|
582
|
-
if (lastPosition === undefined) {
|
|
583
|
-
return undefined;
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
// /!\ The scaled last position augments continuously and might not
|
|
587
|
-
// reflect exactly the real server-side value. As segments are
|
|
588
|
-
// generated discretely.
|
|
589
|
-
const scaledLastPosition = (lastPosition - this._periodStart) * timescale;
|
|
590
|
-
|
|
591
|
-
// Maximum position is before this period.
|
|
592
|
-
// No segment is yet available here
|
|
593
|
-
if (scaledLastPosition < 0) {
|
|
594
|
-
return null;
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
let numberOfSegmentsAvailable = Math.floor(scaledLastPosition / duration);
|
|
598
|
-
if (endNumber !== undefined &&
|
|
599
|
-
(endNumber - startNumber + 1) < numberOfSegmentsAvailable) {
|
|
600
|
-
numberOfSegmentsAvailable = endNumber - startNumber + 1;
|
|
601
|
-
}
|
|
602
|
-
return numberOfSegmentsAvailable <= 0 ?
|
|
603
|
-
null :
|
|
604
|
-
(numberOfSegmentsAvailable - 1) * duration;
|
|
605
|
-
} else {
|
|
606
|
-
const maximumTime = this._scaledRelativePeriodEnd ?? 0;
|
|
607
|
-
let numberOfSegments = Math.ceil(maximumTime / duration);
|
|
608
|
-
if (endNumber !== undefined && (endNumber - startNumber + 1) < numberOfSegments) {
|
|
609
|
-
numberOfSegments = endNumber - startNumber + 1;
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
const regularLastSegmentStart = (numberOfSegments - 1) * duration;
|
|
613
|
-
|
|
614
|
-
// In some SegmentTemplate, we could think that there is one more
|
|
615
|
-
// segment that there actually is due to a very little difference between
|
|
616
|
-
// the period's duration and a multiple of a segment's duration.
|
|
617
|
-
// Check that we're within a good margin
|
|
618
|
-
const minimumDuration = config.getCurrent().MINIMUM_SEGMENT_SIZE * timescale;
|
|
619
|
-
if (endNumber !== undefined ||
|
|
620
|
-
maximumTime - regularLastSegmentStart > minimumDuration ||
|
|
621
|
-
numberOfSegments < 2)
|
|
622
|
-
{
|
|
623
|
-
return regularLastSegmentStart;
|
|
624
|
-
}
|
|
625
|
-
return (numberOfSegments - 2) * duration;
|
|
626
|
-
}
|
|
627
|
-
}
|
|
628
|
-
|
|
629
|
-
/**
|
|
630
|
-
* Returns an estimate of the last available position in this
|
|
631
|
-
* `RepresentationIndex` based on attributes such as the Period's end and
|
|
632
|
-
* the `endNumber` attribute.
|
|
633
|
-
* If the estimate cannot be made (e.g. this Period's segments are still being
|
|
634
|
-
* generated and its end is yet unknown), returns `undefined`.
|
|
635
|
-
* @returns {number|undefined}
|
|
636
|
-
*/
|
|
637
|
-
private _estimateRelativeScaledEnd() : number | undefined {
|
|
638
|
-
if (this._index.endNumber !== undefined) {
|
|
639
|
-
const numberOfSegments =
|
|
640
|
-
this._index.endNumber - (this._index.startNumber ?? 1) + 1;
|
|
641
|
-
return Math.max(Math.min(numberOfSegments * this._index.duration,
|
|
642
|
-
this._scaledRelativePeriodEnd ?? Infinity),
|
|
643
|
-
0);
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
if (this._scaledRelativePeriodEnd === undefined) {
|
|
647
|
-
return undefined;
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
return Math.max(this._scaledRelativePeriodEnd, 0);
|
|
651
|
-
}
|
|
652
|
-
}
|