rx-player 3.33.0 → 3.33.2
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,444 +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 {
|
|
19
|
-
IRepresentationIndex,
|
|
20
|
-
ISegment,
|
|
21
|
-
} from "../../../../../manifest";
|
|
22
|
-
import { IEMSG } from "../../../../containers/isobmff";
|
|
23
|
-
import {
|
|
24
|
-
fromIndexTime,
|
|
25
|
-
getIndexSegmentEnd,
|
|
26
|
-
IIndexSegment,
|
|
27
|
-
toIndexTime,
|
|
28
|
-
} from "../../../utils/index_helpers";
|
|
29
|
-
import ManifestBoundsCalculator from "../manifest_bounds_calculator";
|
|
30
|
-
import getInitSegment from "./get_init_segment";
|
|
31
|
-
import getSegmentsFromTimeline from "./get_segments_from_timeline";
|
|
32
|
-
import { constructRepresentationUrl } from "./tokens";
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Index property defined for a SegmentBase RepresentationIndex
|
|
36
|
-
* This object contains every property needed to generate an ISegment for a
|
|
37
|
-
* given media time.
|
|
38
|
-
*/
|
|
39
|
-
export interface IBaseIndex {
|
|
40
|
-
/** Byte range for a possible index of segments in the server. */
|
|
41
|
-
indexRange?: [number, number] | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* Temporal offset, in the current timescale (see timescale), to add to the
|
|
44
|
-
* presentation time (time a segment has at decoding time) to obtain the
|
|
45
|
-
* corresponding media time (original time of the media segment in the index
|
|
46
|
-
* and on the media file).
|
|
47
|
-
* For example, to look for a segment beginning at a second `T` on a
|
|
48
|
-
* HTMLMediaElement, we actually will look for a segment in the index
|
|
49
|
-
* beginning at:
|
|
50
|
-
* ```
|
|
51
|
-
* T * timescale + indexTimeOffset
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
indexTimeOffset : number;
|
|
55
|
-
/** Information on the initialization segment. */
|
|
56
|
-
initialization : {
|
|
57
|
-
/**
|
|
58
|
-
* URL path, to add to the wanted CDN, to access the initialization segment.
|
|
59
|
-
* `null` if no URL exists.
|
|
60
|
-
*/
|
|
61
|
-
url: string | null;
|
|
62
|
-
/** possible byte range to request it. */
|
|
63
|
-
range?: [number, number] | undefined;
|
|
64
|
-
} | undefined;
|
|
65
|
-
/**
|
|
66
|
-
* URL base to access any segment.
|
|
67
|
-
* Can contain token to replace to convert it to real URLs.
|
|
68
|
-
* `null` if no URL exists.
|
|
69
|
-
*/
|
|
70
|
-
segmentUrlTemplate : string | null;
|
|
71
|
-
/** Number from which the first segments in this index starts with. */
|
|
72
|
-
startNumber? : number | undefined;
|
|
73
|
-
/** Number associated to the last segment in this index. */
|
|
74
|
-
endNumber? : number | undefined;
|
|
75
|
-
/** Every segments defined in this index. */
|
|
76
|
-
timeline : IIndexSegment[];
|
|
77
|
-
/**
|
|
78
|
-
* Timescale to convert a time given here into seconds.
|
|
79
|
-
* This is done by this simple operation:
|
|
80
|
-
* ``timeInSeconds = timeInIndex * timescale``
|
|
81
|
-
*/
|
|
82
|
-
timescale : number;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* `index` Argument for a SegmentBase RepresentationIndex.
|
|
87
|
-
* Most of the properties here are already defined in IBaseIndex.
|
|
88
|
-
*/
|
|
89
|
-
export interface IBaseIndexIndexArgument {
|
|
90
|
-
timeline? : IIndexSegment[];
|
|
91
|
-
timescale? : number;
|
|
92
|
-
media? : string;
|
|
93
|
-
indexRange?: [number, number];
|
|
94
|
-
initialization?: { media?: string; range?: [number, number] };
|
|
95
|
-
startNumber? : number;
|
|
96
|
-
endNumber? : number;
|
|
97
|
-
/**
|
|
98
|
-
* Offset present in the index to convert from the mediaTime (time declared in
|
|
99
|
-
* the media segments and in this index) to the presentationTime (time wanted
|
|
100
|
-
* when decoding the segment). Basically by doing something along the line
|
|
101
|
-
* of:
|
|
102
|
-
* ```
|
|
103
|
-
* presentationTimeInSeconds =
|
|
104
|
-
* mediaTimeInSeconds -
|
|
105
|
-
* presentationTimeOffsetInSeconds +
|
|
106
|
-
* periodStartInSeconds
|
|
107
|
-
* ```
|
|
108
|
-
* The time given here is in the current
|
|
109
|
-
* timescale (see timescale)
|
|
110
|
-
*/
|
|
111
|
-
presentationTimeOffset? : number;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/** Aditional context needed by a SegmentBase RepresentationIndex. */
|
|
115
|
-
export interface IBaseIndexContextArgument {
|
|
116
|
-
/** Start of the period concerned by this RepresentationIndex, in seconds. */
|
|
117
|
-
periodStart : number;
|
|
118
|
-
/** End of the period concerned by this RepresentationIndex, in seconds. */
|
|
119
|
-
periodEnd : number|undefined;
|
|
120
|
-
/** ID of the Representation concerned. */
|
|
121
|
-
representationId? : string | undefined;
|
|
122
|
-
/** Bitrate of the Representation concerned. */
|
|
123
|
-
representationBitrate? : number | undefined;
|
|
124
|
-
/** Allows to obtain the minimum and maximum positions of a content. */
|
|
125
|
-
manifestBoundsCalculator : ManifestBoundsCalculator;
|
|
126
|
-
/* Function that tells if an EMSG is whitelisted by the manifest */
|
|
127
|
-
isEMSGWhitelisted: (inbandEvent: IEMSG) => boolean;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Add a new segment to the index.
|
|
132
|
-
*
|
|
133
|
-
* /!\ Mutate the given index
|
|
134
|
-
* @param {Object} index
|
|
135
|
-
* @param {Object} segmentInfos
|
|
136
|
-
* @returns {Boolean} - true if the segment has been added
|
|
137
|
-
*/
|
|
138
|
-
function _addSegmentInfos(
|
|
139
|
-
index : IBaseIndex,
|
|
140
|
-
segmentInfos : { time : number;
|
|
141
|
-
duration : number;
|
|
142
|
-
timescale : number;
|
|
143
|
-
count?: number;
|
|
144
|
-
range?: [number, number]; }
|
|
145
|
-
) : boolean {
|
|
146
|
-
if (segmentInfos.timescale !== index.timescale) {
|
|
147
|
-
const { timescale } = index;
|
|
148
|
-
index.timeline.push({ start: (segmentInfos.time / segmentInfos.timescale)
|
|
149
|
-
* timescale,
|
|
150
|
-
duration: (segmentInfos.duration / segmentInfos.timescale)
|
|
151
|
-
* timescale,
|
|
152
|
-
repeatCount: segmentInfos.count === undefined ?
|
|
153
|
-
0 :
|
|
154
|
-
segmentInfos.count,
|
|
155
|
-
range: segmentInfos.range });
|
|
156
|
-
} else {
|
|
157
|
-
index.timeline.push({ start: segmentInfos.time,
|
|
158
|
-
duration: segmentInfos.duration,
|
|
159
|
-
repeatCount: segmentInfos.count === undefined ?
|
|
160
|
-
0 :
|
|
161
|
-
segmentInfos.count,
|
|
162
|
-
range: segmentInfos.range });
|
|
163
|
-
}
|
|
164
|
-
return true;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export default class BaseRepresentationIndex implements IRepresentationIndex {
|
|
168
|
-
/**
|
|
169
|
-
* `true` if the list of segments is already known.
|
|
170
|
-
* `false` if the initialization segment should be loaded (and the segments
|
|
171
|
-
* added) first.
|
|
172
|
-
* @see isInitialized method
|
|
173
|
-
*/
|
|
174
|
-
private _isInitialized : boolean;
|
|
175
|
-
|
|
176
|
-
/** Underlying structure to retrieve segment information. */
|
|
177
|
-
private _index : IBaseIndex;
|
|
178
|
-
|
|
179
|
-
/** Absolute start of the period, timescaled and converted to index time. */
|
|
180
|
-
private _scaledPeriodStart : number;
|
|
181
|
-
|
|
182
|
-
/** Absolute end of the period, timescaled and converted to index time. */
|
|
183
|
-
private _scaledPeriodEnd : number | undefined;
|
|
184
|
-
|
|
185
|
-
/** Allows to obtain the minimum and maximum positions of a content. */
|
|
186
|
-
private _manifestBoundsCalculator : ManifestBoundsCalculator;
|
|
187
|
-
|
|
188
|
-
/* Function that tells if an EMSG is whitelisted by the manifest */
|
|
189
|
-
private _isEMSGWhitelisted: (inbandEvent: IEMSG) => boolean;
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* @param {Object} index
|
|
193
|
-
* @param {Object} context
|
|
194
|
-
*/
|
|
195
|
-
constructor(index : IBaseIndexIndexArgument, context : IBaseIndexContextArgument) {
|
|
196
|
-
const { periodStart,
|
|
197
|
-
periodEnd,
|
|
198
|
-
representationId,
|
|
199
|
-
representationBitrate,
|
|
200
|
-
isEMSGWhitelisted } = context;
|
|
201
|
-
const timescale = index.timescale ?? 1;
|
|
202
|
-
|
|
203
|
-
const presentationTimeOffset = index.presentationTimeOffset != null ?
|
|
204
|
-
index.presentationTimeOffset : 0;
|
|
205
|
-
|
|
206
|
-
const indexTimeOffset = presentationTimeOffset - periodStart * timescale;
|
|
207
|
-
|
|
208
|
-
const initializationUrl = index.initialization?.media === undefined ?
|
|
209
|
-
null :
|
|
210
|
-
constructRepresentationUrl(index.initialization.media,
|
|
211
|
-
representationId,
|
|
212
|
-
representationBitrate);
|
|
213
|
-
|
|
214
|
-
const segmentUrlTemplate = index.media === undefined ?
|
|
215
|
-
null :
|
|
216
|
-
constructRepresentationUrl(index.media, representationId, representationBitrate);
|
|
217
|
-
|
|
218
|
-
// TODO If indexRange is either undefined or behind the initialization segment
|
|
219
|
-
// the following logic will not work.
|
|
220
|
-
// However taking the nth first bytes like `dash.js` does (where n = 1500) is
|
|
221
|
-
// not straightforward as we would need to clean-up the segment after that.
|
|
222
|
-
// The following logic corresponds to 100% of tested cases, so good enough for
|
|
223
|
-
// now.
|
|
224
|
-
const range : [number, number] | undefined =
|
|
225
|
-
index.initialization !== undefined ? index.initialization.range :
|
|
226
|
-
index.indexRange !== undefined ? [0, index.indexRange[0] - 1] :
|
|
227
|
-
undefined;
|
|
228
|
-
|
|
229
|
-
this._index = { indexRange: index.indexRange,
|
|
230
|
-
indexTimeOffset,
|
|
231
|
-
initialization: { url: initializationUrl, range },
|
|
232
|
-
segmentUrlTemplate,
|
|
233
|
-
startNumber: index.startNumber,
|
|
234
|
-
endNumber: index.endNumber,
|
|
235
|
-
timeline: index.timeline ?? [],
|
|
236
|
-
timescale };
|
|
237
|
-
this._manifestBoundsCalculator = context.manifestBoundsCalculator;
|
|
238
|
-
this._scaledPeriodStart = toIndexTime(periodStart, this._index);
|
|
239
|
-
this._scaledPeriodEnd = periodEnd == null ? undefined :
|
|
240
|
-
toIndexTime(periodEnd, this._index);
|
|
241
|
-
this._isInitialized = this._index.timeline.length > 0;
|
|
242
|
-
this._isEMSGWhitelisted = isEMSGWhitelisted;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Construct init Segment.
|
|
247
|
-
* @returns {Object}
|
|
248
|
-
*/
|
|
249
|
-
getInitSegment() : ISegment {
|
|
250
|
-
return getInitSegment(this._index, this._isEMSGWhitelisted);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* Get the list of segments that are currently available from the `from`
|
|
255
|
-
* position, in seconds, ending `dur` seconds after that position.
|
|
256
|
-
*
|
|
257
|
-
* Note that if not already done, you might need to "initialize" the
|
|
258
|
-
* `BaseRepresentationIndex` first so that the list of available segments
|
|
259
|
-
* is known.
|
|
260
|
-
*
|
|
261
|
-
* @see isInitialized for more information on `BaseRepresentationIndex`
|
|
262
|
-
* initialization.
|
|
263
|
-
* @param {Number} from
|
|
264
|
-
* @param {Number} dur
|
|
265
|
-
* @returns {Array.<Object>}
|
|
266
|
-
*/
|
|
267
|
-
getSegments(from : number, dur : number) : ISegment[] {
|
|
268
|
-
return getSegmentsFromTimeline(this._index,
|
|
269
|
-
from,
|
|
270
|
-
dur,
|
|
271
|
-
this._manifestBoundsCalculator,
|
|
272
|
-
this._scaledPeriodEnd,
|
|
273
|
-
this._isEMSGWhitelisted);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Returns false as no Segment-Base based index should need to be refreshed.
|
|
278
|
-
* @returns {Boolean}
|
|
279
|
-
*/
|
|
280
|
-
shouldRefresh() : false {
|
|
281
|
-
return false;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Returns first position in index.
|
|
286
|
-
* @returns {Number|null}
|
|
287
|
-
*/
|
|
288
|
-
getFirstAvailablePosition() : number|null {
|
|
289
|
-
const index = this._index;
|
|
290
|
-
if (index.timeline.length === 0) {
|
|
291
|
-
return null;
|
|
292
|
-
}
|
|
293
|
-
return fromIndexTime(Math.max(this._scaledPeriodStart,
|
|
294
|
-
index.timeline[0].start),
|
|
295
|
-
index);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Returns last position in index.
|
|
300
|
-
* @returns {Number|null}
|
|
301
|
-
*/
|
|
302
|
-
getLastAvailablePosition() : number|null {
|
|
303
|
-
const { timeline } = this._index;
|
|
304
|
-
if (timeline.length === 0) {
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
const lastTimelineElement = timeline[timeline.length - 1];
|
|
308
|
-
const lastTime = Math.min(getIndexSegmentEnd(lastTimelineElement,
|
|
309
|
-
null,
|
|
310
|
-
this._scaledPeriodEnd),
|
|
311
|
-
this._scaledPeriodEnd ?? Infinity);
|
|
312
|
-
return fromIndexTime(lastTime, this._index);
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Returns the absolute end in seconds this RepresentationIndex can reach once
|
|
317
|
-
* all segments are available.
|
|
318
|
-
* @returns {number|null|undefined}
|
|
319
|
-
*/
|
|
320
|
-
getEnd(): number | null {
|
|
321
|
-
return this.getLastAvailablePosition();
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Returns:
|
|
326
|
-
* - `true` if in the given time interval, at least one new segment is
|
|
327
|
-
* expected to be available in the future.
|
|
328
|
-
* - `false` either if all segments in that time interval are already
|
|
329
|
-
* available for download or if none will ever be available for it.
|
|
330
|
-
* - `undefined` when it is not possible to tell.
|
|
331
|
-
*
|
|
332
|
-
* Always `false` in a `BaseRepresentationIndex` because all segments should
|
|
333
|
-
* be directly available.
|
|
334
|
-
* @returns {boolean}
|
|
335
|
-
*/
|
|
336
|
-
awaitSegmentBetween(): false {
|
|
337
|
-
return false;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* Segments in a segmentBase scheme should stay available.
|
|
342
|
-
* @returns {Boolean|undefined}
|
|
343
|
-
*/
|
|
344
|
-
isSegmentStillAvailable() : true {
|
|
345
|
-
return true;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* We do not check for discontinuity in SegmentBase-based indexes.
|
|
350
|
-
* @returns {null}
|
|
351
|
-
*/
|
|
352
|
-
checkDiscontinuity() : null {
|
|
353
|
-
return null;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* No segment in a `BaseRepresentationIndex` are known initially.
|
|
358
|
-
* It is only defined generally in an "index segment" that will thus need to
|
|
359
|
-
* be first loaded and parsed.
|
|
360
|
-
* Until then, this `BaseRepresentationIndex` is considered as `uninitialized`
|
|
361
|
-
* (@see isInitialized).
|
|
362
|
-
*
|
|
363
|
-
* Once that those information are available, the present
|
|
364
|
-
* `BaseRepresentationIndex` can be "initialized" by adding that parsed
|
|
365
|
-
* segment information through this method.
|
|
366
|
-
* @param {Array.<Object>} indexSegments
|
|
367
|
-
* @returns {Array.<Object>}
|
|
368
|
-
*/
|
|
369
|
-
initializeIndex(indexSegments : IAddedIndexSegment[]) : void {
|
|
370
|
-
for (let i = 0; i < indexSegments.length; i++) {
|
|
371
|
-
_addSegmentInfos(this._index, indexSegments[i]);
|
|
372
|
-
}
|
|
373
|
-
this._isInitialized = true;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
/**
|
|
377
|
-
* Returns `false` as a `BaseRepresentationIndex` should not be dynamic and as
|
|
378
|
-
* such segments should never fall out-of-sync.
|
|
379
|
-
* @returns {Boolean}
|
|
380
|
-
*/
|
|
381
|
-
canBeOutOfSyncError() : false {
|
|
382
|
-
return false;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
/**
|
|
386
|
-
* Returns `true` as SegmentBase are not dynamic and as such no new segment
|
|
387
|
-
* should become available in the future.
|
|
388
|
-
* @returns {Boolean}
|
|
389
|
-
*/
|
|
390
|
-
isStillAwaitingFutureSegments() : false {
|
|
391
|
-
return false;
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
/**
|
|
395
|
-
* No segment in a `BaseRepresentationIndex` are known initially.
|
|
396
|
-
* It is only defined generally in an "index segment" that will thus need to
|
|
397
|
-
* be first loaded and parsed.
|
|
398
|
-
*
|
|
399
|
-
* Once the index segment or equivalent has been parsed, the `initializeIndex`
|
|
400
|
-
* method have to be called with the corresponding segment information so the
|
|
401
|
-
* `BaseRepresentationIndex` can be considered as "initialized" (and so this
|
|
402
|
-
* method can return `true`).
|
|
403
|
-
* Until then this method will return `false` and segments linked to that
|
|
404
|
-
* Representation may be missing.
|
|
405
|
-
* @returns {Boolean}
|
|
406
|
-
*/
|
|
407
|
-
isInitialized() : boolean {
|
|
408
|
-
return this._isInitialized;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Replace in-place this `BaseRepresentationIndex` information by the
|
|
413
|
-
* information from another one.
|
|
414
|
-
* @param {Object} newIndex
|
|
415
|
-
*/
|
|
416
|
-
_replace(newIndex : BaseRepresentationIndex) : void {
|
|
417
|
-
this._index = newIndex._index;
|
|
418
|
-
this._isInitialized = newIndex._isInitialized;
|
|
419
|
-
this._scaledPeriodEnd = newIndex._scaledPeriodEnd;
|
|
420
|
-
this._isEMSGWhitelisted = newIndex._isEMSGWhitelisted;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
_update() : void {
|
|
424
|
-
log.error("Base RepresentationIndex: Cannot update a SegmentList");
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
/**
|
|
429
|
-
* Format of a segment received through the `initialize` method, allowing to
|
|
430
|
-
* add segments to a BaseRepresentationIndex.
|
|
431
|
-
*/
|
|
432
|
-
export interface IAddedIndexSegment {
|
|
433
|
-
/** This segment start time, timescaled. */
|
|
434
|
-
time : number;
|
|
435
|
-
/** This segment difference between its end and start time, timescaled. */
|
|
436
|
-
duration : number;
|
|
437
|
-
/** Dividing `time` or `duration` with this value allows to obtain seconds. */
|
|
438
|
-
timescale : number;
|
|
439
|
-
/**
|
|
440
|
-
* Start and ending bytes (included) for the segment in the whole ISOBMFF
|
|
441
|
-
* buffer.
|
|
442
|
-
*/
|
|
443
|
-
range : [number, number];
|
|
444
|
-
}
|
|
@@ -1,55 +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 { ISegment } from "../../../../../manifest";
|
|
18
|
-
import { IPrivateInfos } from "../../../../../manifest/representation_index/types";
|
|
19
|
-
import { IEMSG } from "../../../../containers/isobmff";
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Construct init segment for the given index.
|
|
23
|
-
* @param {Object} index
|
|
24
|
-
* @param {function} isEMSGWhitelisted
|
|
25
|
-
* @returns {Object}
|
|
26
|
-
*/
|
|
27
|
-
export default function getInitSegment(
|
|
28
|
-
index: { timescale: number;
|
|
29
|
-
initialization?: { url: string | null;
|
|
30
|
-
range?: [number, number] | undefined; } |
|
|
31
|
-
undefined;
|
|
32
|
-
indexRange?: [number, number] | undefined;
|
|
33
|
-
indexTimeOffset : number; },
|
|
34
|
-
isEMSGWhitelisted?: (inbandEvent: IEMSG) => boolean
|
|
35
|
-
) : ISegment {
|
|
36
|
-
const { initialization } = index;
|
|
37
|
-
const privateInfos : IPrivateInfos = {};
|
|
38
|
-
if (isEMSGWhitelisted !== undefined) {
|
|
39
|
-
privateInfos.isEMSGWhitelisted = isEMSGWhitelisted;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return { id: "init",
|
|
43
|
-
isInit: true,
|
|
44
|
-
time: 0,
|
|
45
|
-
end: 0,
|
|
46
|
-
duration: 0,
|
|
47
|
-
timescale: 1,
|
|
48
|
-
range: initialization != null ? initialization.range :
|
|
49
|
-
undefined,
|
|
50
|
-
indexRange: index.indexRange,
|
|
51
|
-
url: initialization?.url ?? null,
|
|
52
|
-
complete: true,
|
|
53
|
-
privateInfos,
|
|
54
|
-
timestampOffset: -(index.indexTimeOffset / index.timescale) };
|
|
55
|
-
}
|
|
@@ -1,148 +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 { ISegment } from "../../../../../manifest";
|
|
18
|
-
import { IEMSG } from "../../../../containers/isobmff";
|
|
19
|
-
import {
|
|
20
|
-
calculateRepeat,
|
|
21
|
-
IIndexSegment,
|
|
22
|
-
toIndexTime,
|
|
23
|
-
} from "../../../utils/index_helpers";
|
|
24
|
-
import ManifestBoundsCalculator from "../manifest_bounds_calculator";
|
|
25
|
-
import { createDashUrlDetokenizer } from "./tokens";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* For the given start time and duration of a timeline element, calculate how
|
|
29
|
-
* much this element should be repeated to contain the time given.
|
|
30
|
-
* 0 being the same element, 1 being the next one etc.
|
|
31
|
-
* @param {Number} segmentStartTime
|
|
32
|
-
* @param {Number} segmentDuration
|
|
33
|
-
* @param {Number} wantedTime
|
|
34
|
-
* @returns {Number}
|
|
35
|
-
*/
|
|
36
|
-
function getWantedRepeatIndex(
|
|
37
|
-
segmentStartTime : number,
|
|
38
|
-
segmentDuration : number,
|
|
39
|
-
wantedTime : number
|
|
40
|
-
) : number {
|
|
41
|
-
const diff = wantedTime - segmentStartTime;
|
|
42
|
-
return diff > 0 ? Math.floor(diff / segmentDuration) :
|
|
43
|
-
0;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Get a list of Segments for the time range wanted.
|
|
48
|
-
* @param {Object} index - index object, constructed by parsing the manifest.
|
|
49
|
-
* @param {number} from - starting timestamp wanted, in seconds
|
|
50
|
-
* @param {number} durationWanted - duration wanted, in seconds
|
|
51
|
-
* @param {Object} manifestBoundsCalculator
|
|
52
|
-
* @param {number|undefined} scaledPeriodEnd
|
|
53
|
-
* @param {function} isEMSGWhitelisted
|
|
54
|
-
* @returns {Array.<Object>}
|
|
55
|
-
*/
|
|
56
|
-
export default function getSegmentsFromTimeline(
|
|
57
|
-
index : { availabilityTimeComplete? : boolean | undefined;
|
|
58
|
-
availabilityTimeOffset? : number | undefined;
|
|
59
|
-
segmentUrlTemplate : string | null;
|
|
60
|
-
startNumber? : number | undefined;
|
|
61
|
-
endNumber? : number | undefined;
|
|
62
|
-
timeline : IIndexSegment[];
|
|
63
|
-
timescale : number;
|
|
64
|
-
indexTimeOffset : number; },
|
|
65
|
-
from : number,
|
|
66
|
-
durationWanted : number,
|
|
67
|
-
manifestBoundsCalculator : ManifestBoundsCalculator,
|
|
68
|
-
scaledPeriodEnd : number | undefined,
|
|
69
|
-
isEMSGWhitelisted: (inbandEvent: IEMSG) => boolean
|
|
70
|
-
) : ISegment[] {
|
|
71
|
-
const maximumTime = manifestBoundsCalculator.getEstimatedMaximumPosition(
|
|
72
|
-
index.availabilityTimeOffset ?? 0
|
|
73
|
-
);
|
|
74
|
-
const wantedMaximum = Math.min(from + durationWanted, maximumTime ?? Infinity);
|
|
75
|
-
const scaledUp = toIndexTime(from, index);
|
|
76
|
-
const scaledTo = toIndexTime(wantedMaximum, index);
|
|
77
|
-
const { timeline, timescale, segmentUrlTemplate, startNumber, endNumber } = index;
|
|
78
|
-
|
|
79
|
-
let currentNumber = startNumber ?? 1;
|
|
80
|
-
const segments : ISegment[] = [];
|
|
81
|
-
|
|
82
|
-
const timelineLength = timeline.length;
|
|
83
|
-
|
|
84
|
-
for (let i = 0; i < timelineLength; i++) {
|
|
85
|
-
const timelineItem = timeline[i];
|
|
86
|
-
const { duration, start, range } = timelineItem;
|
|
87
|
-
|
|
88
|
-
let maxRepeatTime;
|
|
89
|
-
if (maximumTime === undefined) {
|
|
90
|
-
maxRepeatTime = scaledPeriodEnd;
|
|
91
|
-
} else {
|
|
92
|
-
maxRepeatTime = Math.min(maximumTime * timescale, scaledPeriodEnd ?? Infinity);
|
|
93
|
-
}
|
|
94
|
-
const repeat = calculateRepeat(timelineItem, timeline[i + 1], maxRepeatTime);
|
|
95
|
-
const complete = index.availabilityTimeComplete !== false ||
|
|
96
|
-
i !== timelineLength - 1 &&
|
|
97
|
-
repeat !== 0;
|
|
98
|
-
let segmentNumberInCurrentRange = getWantedRepeatIndex(start, duration, scaledUp);
|
|
99
|
-
let segmentTime = start + segmentNumberInCurrentRange * duration;
|
|
100
|
-
while (segmentTime < scaledTo && segmentNumberInCurrentRange <= repeat) {
|
|
101
|
-
const segmentNumber = currentNumber + segmentNumberInCurrentRange;
|
|
102
|
-
if (endNumber !== undefined && segmentNumber > endNumber) {
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const detokenizedURL = segmentUrlTemplate === null ?
|
|
107
|
-
null :
|
|
108
|
-
createDashUrlDetokenizer(segmentTime, segmentNumber)(segmentUrlTemplate);
|
|
109
|
-
|
|
110
|
-
let time = segmentTime - index.indexTimeOffset;
|
|
111
|
-
let realDuration = duration;
|
|
112
|
-
if (time < 0) {
|
|
113
|
-
realDuration = duration + time; // Remove from duration the part before `0`
|
|
114
|
-
time = 0;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const segment = { id: String(segmentTime),
|
|
118
|
-
time: time / timescale,
|
|
119
|
-
end: (time + realDuration) / timescale,
|
|
120
|
-
duration: realDuration / timescale,
|
|
121
|
-
isInit: false,
|
|
122
|
-
range,
|
|
123
|
-
timescale: 1 as const,
|
|
124
|
-
url: detokenizedURL,
|
|
125
|
-
number: segmentNumber,
|
|
126
|
-
timestampOffset: -(index.indexTimeOffset / timescale),
|
|
127
|
-
complete,
|
|
128
|
-
privateInfos: { isEMSGWhitelisted } };
|
|
129
|
-
segments.push(segment);
|
|
130
|
-
|
|
131
|
-
// update segment number and segment time for the next segment
|
|
132
|
-
segmentNumberInCurrentRange++;
|
|
133
|
-
segmentTime = start + segmentNumberInCurrentRange * duration;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (segmentTime >= scaledTo) {
|
|
137
|
-
// we reached ``scaledTo``, we're done
|
|
138
|
-
return segments;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
currentNumber += repeat + 1;
|
|
142
|
-
if (endNumber !== undefined && currentNumber > endNumber) {
|
|
143
|
-
return segments;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return segments;
|
|
148
|
-
}
|
|
@@ -1,39 +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 BaseRepresentationIndex, {
|
|
18
|
-
IBaseIndexContextArgument,
|
|
19
|
-
} from "./base";
|
|
20
|
-
import ListRepresentationIndex, {
|
|
21
|
-
IListIndexContextArgument,
|
|
22
|
-
} from "./list";
|
|
23
|
-
import TemplateRepresentationIndex, {
|
|
24
|
-
ITemplateIndexContextArgument,
|
|
25
|
-
} from "./template";
|
|
26
|
-
import TimelineRepresentationIndex, {
|
|
27
|
-
ITimelineIndexContextArgument,
|
|
28
|
-
} from "./timeline";
|
|
29
|
-
|
|
30
|
-
export {
|
|
31
|
-
BaseRepresentationIndex,
|
|
32
|
-
ListRepresentationIndex,
|
|
33
|
-
TemplateRepresentationIndex,
|
|
34
|
-
TimelineRepresentationIndex,
|
|
35
|
-
IBaseIndexContextArgument,
|
|
36
|
-
IListIndexContextArgument,
|
|
37
|
-
ITemplateIndexContextArgument,
|
|
38
|
-
ITimelineIndexContextArgument,
|
|
39
|
-
};
|