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,386 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
Adaptation,
|
|
19
|
-
ISegment,
|
|
20
|
-
Period,
|
|
21
|
-
Representation,
|
|
22
|
-
} from "../../../manifest";
|
|
23
|
-
import { CancellationSignal } from "../../../utils/task_canceller";
|
|
24
|
-
import SegmentInventory, {
|
|
25
|
-
IBufferedChunk,
|
|
26
|
-
IBufferedHistoryEntry,
|
|
27
|
-
IChunkContext,
|
|
28
|
-
IInsertedChunkInfos,
|
|
29
|
-
} from "../inventory";
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Class allowing to push segments and remove data to a buffer to be able
|
|
33
|
-
* to decode them in the future as well as retrieving information about which
|
|
34
|
-
* segments have already been pushed.
|
|
35
|
-
*
|
|
36
|
-
* A `SegmentBuffer` can rely on a browser's SourceBuffer as well as being
|
|
37
|
-
* entirely defined in the code.
|
|
38
|
-
*
|
|
39
|
-
* A SegmentBuffer is associated to a given "bufferType" (e.g. "audio",
|
|
40
|
-
* "video", "text") and allows to push segments as well as removing part of
|
|
41
|
-
* already-pushed segments for that type.
|
|
42
|
-
*
|
|
43
|
-
* Because a segment can be divided into multiple chunks, one should call the
|
|
44
|
-
* `endOfSegment` method once all chunks of a given segment have been pushed
|
|
45
|
-
* (through the `pushChunk` method) to validate that a segment has been
|
|
46
|
-
* completely pushed.
|
|
47
|
-
* It is expected to push chunks from only one segment at a time before calling
|
|
48
|
-
* the `endOfSegment` function for that segment. Pushing chunks from multiple
|
|
49
|
-
* segments in parallel could have unexpected result depending on the underlying
|
|
50
|
-
* implementation.
|
|
51
|
-
* TODO reflect that in the API?
|
|
52
|
-
*
|
|
53
|
-
* A SegmentBuffer also maintains an "inventory", which is the current
|
|
54
|
-
* list of segments contained in the underlying buffer.
|
|
55
|
-
* This inventory has to be manually "synchronized" (through the
|
|
56
|
-
* `synchronizeInventory` method) before being retrieved (through the
|
|
57
|
-
* `getInventory` method).
|
|
58
|
-
*
|
|
59
|
-
* Also depending on the underlying implementation, the various operations
|
|
60
|
-
* performed on a `SegmentBuffer` (push/remove/endOfSegment) can happen
|
|
61
|
-
* synchronously or asynchronously.
|
|
62
|
-
* In the latter case, such operations are put in a FIFO Queue.
|
|
63
|
-
* You can retrieve the current queue of operations by calling the
|
|
64
|
-
* `getPendingOperations` method.
|
|
65
|
-
* If operations happens synchronously, this method will just return an empty
|
|
66
|
-
* array.
|
|
67
|
-
*/
|
|
68
|
-
export abstract class SegmentBuffer {
|
|
69
|
-
/** "Type" of the buffer (e.g. "audio", "video", "text", "image"). */
|
|
70
|
-
public readonly abstract bufferType : IBufferType;
|
|
71
|
-
|
|
72
|
-
/** Default implementation of an inventory of segment metadata. */
|
|
73
|
-
protected _segmentInventory : SegmentInventory;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Mimetype+codec combination the SegmentBuffer is currently working with.
|
|
77
|
-
* Depending on the implementation, segments with a different codecs could be
|
|
78
|
-
* incompatible.
|
|
79
|
-
*
|
|
80
|
-
* `undefined` if unknown and if this property does not matter for this
|
|
81
|
-
* SegmentBuffer implementation.
|
|
82
|
-
*/
|
|
83
|
-
public codec : string | undefined;
|
|
84
|
-
|
|
85
|
-
constructor() {
|
|
86
|
-
// Use SegmentInventory by default for inventory purposes
|
|
87
|
-
this._segmentInventory = new SegmentInventory();
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
public abstract declareInitSegment(
|
|
91
|
-
uniqueId : string,
|
|
92
|
-
initSegmentData : unknown
|
|
93
|
-
) : void;
|
|
94
|
-
|
|
95
|
-
public abstract freeInitSegment(uniqueId : string) : void;
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Push a chunk of the media segment given to the attached buffer, in a
|
|
99
|
-
* FIFO queue.
|
|
100
|
-
*
|
|
101
|
-
* Once all chunks of a single Segment have been given to `pushChunk`, you
|
|
102
|
-
* should call `endOfSegment` to indicate that the whole Segment has been
|
|
103
|
-
* pushed.
|
|
104
|
-
*
|
|
105
|
-
* Depending on the type of data appended, the pushed chunk might rely on an
|
|
106
|
-
* initialization segment, which had to be previously declared through the
|
|
107
|
-
* `declareInitSegment` method.
|
|
108
|
-
*
|
|
109
|
-
* Such initialization segment will be first pushed to the buffer if the
|
|
110
|
-
* last pushed segment was associated to another initialization segment.
|
|
111
|
-
* This detection might rely on the initialization segment's reference so you
|
|
112
|
-
* might want to avoid mutating in-place a initialization segment given to
|
|
113
|
-
* that function (to avoid having two different values which have the same
|
|
114
|
-
* reference).
|
|
115
|
-
*
|
|
116
|
-
* If you don't need any initialization segment to push the wanted chunk, you
|
|
117
|
-
* can just set the corresponding property to `null`.
|
|
118
|
-
*
|
|
119
|
-
* You can also only push an initialization segment by setting the
|
|
120
|
-
* `data.chunk` argument to null.
|
|
121
|
-
*
|
|
122
|
-
* @param {Object} infos
|
|
123
|
-
* @param {Object} cancellationSignal
|
|
124
|
-
* @returns {Promise}
|
|
125
|
-
*/
|
|
126
|
-
public abstract pushChunk(
|
|
127
|
-
infos : IPushChunkInfos<unknown>,
|
|
128
|
-
cancellationSignal : CancellationSignal
|
|
129
|
-
) : Promise<void>;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Remove buffered data (added to the same FIFO queue than `pushChunk`).
|
|
133
|
-
* @param {number} start - start position, in seconds
|
|
134
|
-
* @param {number} end - end position, in seconds
|
|
135
|
-
* @param {Object} cancellationSignal
|
|
136
|
-
* @returns {Promise}
|
|
137
|
-
*/
|
|
138
|
-
public abstract removeBuffer(
|
|
139
|
-
start : number,
|
|
140
|
-
end : number,
|
|
141
|
-
cancellationSignal : CancellationSignal
|
|
142
|
-
) : Promise<void>;
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Indicate that every chunks from a Segment has been given to pushChunk so
|
|
146
|
-
* far.
|
|
147
|
-
* This will update our internal Segment inventory accordingly.
|
|
148
|
-
* The returned Promise will resolve once the whole segment has been pushed
|
|
149
|
-
* and this indication is acknowledged.
|
|
150
|
-
* @param {Object} infos
|
|
151
|
-
* @param {Object} cancellationSignal
|
|
152
|
-
* @returns {Promise}
|
|
153
|
-
*/
|
|
154
|
-
public abstract endOfSegment(
|
|
155
|
-
infos : IEndOfSegmentInfos,
|
|
156
|
-
cancellationSignal : CancellationSignal
|
|
157
|
-
) : Promise<void>;
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Returns the currently buffered data, in a TimeRanges object.
|
|
161
|
-
* @returns {TimeRanges}
|
|
162
|
-
*/
|
|
163
|
-
public abstract getBufferedRanges() : TimeRanges;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* The maintained inventory can fall out of sync from garbage collection or
|
|
167
|
-
* other events.
|
|
168
|
-
*
|
|
169
|
-
* This methods allow to manually trigger a synchronization. It should be
|
|
170
|
-
* called before retrieving Segment information from it (e.g. with
|
|
171
|
-
* `getInventory`).
|
|
172
|
-
* @param {boolean} [skipLog] - This method may trigger a voluminous debug
|
|
173
|
-
* log once synchronization is finished if debug logs are enabled.
|
|
174
|
-
* As this method might be called very often in some specific debugging
|
|
175
|
-
* situations, setting this value to `true` allows to prevent the call from
|
|
176
|
-
* triggering a log.
|
|
177
|
-
*/
|
|
178
|
-
public synchronizeInventory(skipLog? : boolean) : void {
|
|
179
|
-
// The default implementation just use the SegmentInventory
|
|
180
|
-
this._segmentInventory.synchronizeBuffered(this.getBufferedRanges(), skipLog);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Returns the currently buffered data for which the content is known with
|
|
185
|
-
* the corresponding content information.
|
|
186
|
-
* /!\ This data can fall out of sync with the real buffered ranges. Please
|
|
187
|
-
* call `synchronizeInventory` before to make sure it is correctly
|
|
188
|
-
* synchronized.
|
|
189
|
-
* @returns {Array.<Object>}
|
|
190
|
-
*/
|
|
191
|
-
public getInventory() : IBufferedChunk[] {
|
|
192
|
-
// The default implementation just use the SegmentInventory
|
|
193
|
-
return this._segmentInventory.getInventory();
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Returns the list of every operations that the `SegmentBuffer` is still
|
|
198
|
-
* processing. From the one with the highest priority (like the one being
|
|
199
|
-
* processed)
|
|
200
|
-
* @returns {Array.<Object>}
|
|
201
|
-
*/
|
|
202
|
-
public getPendingOperations() : Array<ISBOperation<unknown>> {
|
|
203
|
-
// Return no pending operation by default (for synchronous SegmentBuffers)
|
|
204
|
-
return [];
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Returns a recent history of registered operations performed and event
|
|
209
|
-
* received linked to the segment given in argument.
|
|
210
|
-
*
|
|
211
|
-
* Not all operations and events are registered in the returned history.
|
|
212
|
-
* Please check the return type for more information on what is available.
|
|
213
|
-
*
|
|
214
|
-
* Note that history is short-lived for memory usage and performance reasons.
|
|
215
|
-
* You may not receive any information on operations that happened too long
|
|
216
|
-
* ago.
|
|
217
|
-
* @param {Object} context
|
|
218
|
-
* @returns {Array.<Object>}
|
|
219
|
-
*/
|
|
220
|
-
public getSegmentHistory(context : IChunkContext) : IBufferedHistoryEntry[] {
|
|
221
|
-
return this._segmentInventory.getHistoryFor(context);
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
* Dispose of the resources used by this AudioVideoSegmentBuffer.
|
|
226
|
-
* /!\ You won't be able to use the SegmentBuffer after calling this
|
|
227
|
-
* function.
|
|
228
|
-
*/
|
|
229
|
-
public abstract dispose() : void;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/** Every SegmentBuffer types. */
|
|
233
|
-
export type IBufferType = "audio" |
|
|
234
|
-
"video" |
|
|
235
|
-
"text" |
|
|
236
|
-
"image";
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Content of the `data` property when pushing a new chunk.
|
|
240
|
-
*
|
|
241
|
-
* This will contain all necessary information to decode the media data.
|
|
242
|
-
* Type parameter `T` is the format of the chunk's data.
|
|
243
|
-
*/
|
|
244
|
-
export interface IPushedChunkData<T> {
|
|
245
|
-
/**
|
|
246
|
-
* The `uniqueId` of the initialization segment linked to the data you want to
|
|
247
|
-
* push.
|
|
248
|
-
*
|
|
249
|
-
* That identifier should previously have been declared through the
|
|
250
|
-
* `declareInitSegment` method and not freed.
|
|
251
|
-
*
|
|
252
|
-
* To set to `null` either if no initialization data is needed, or if you are
|
|
253
|
-
* confident that the last pushed one is compatible.
|
|
254
|
-
*/
|
|
255
|
-
initSegmentUniqueId : string | null;
|
|
256
|
-
/**
|
|
257
|
-
* Chunk you want to push.
|
|
258
|
-
* This can be the whole decodable segment's data or just a decodable sub-part
|
|
259
|
-
* of it.
|
|
260
|
-
* `null` if you just want to push the initialization segment.
|
|
261
|
-
*/
|
|
262
|
-
chunk : T | null;
|
|
263
|
-
/**
|
|
264
|
-
* String corresponding to the mime-type + codec of the last segment pushed.
|
|
265
|
-
* This might then be used by a SourceBuffer to infer the right codec to use.
|
|
266
|
-
*
|
|
267
|
-
* If set to `undefined`, the SegmentBuffer implementation will just rely on
|
|
268
|
-
* a default codec it is linked to, if one.
|
|
269
|
-
*/
|
|
270
|
-
codec : string | undefined;
|
|
271
|
-
/**
|
|
272
|
-
* Time offset in seconds to apply to this segment.
|
|
273
|
-
* A `timestampOffset` set to `5` will mean that the segment will be decoded
|
|
274
|
-
* 5 seconds after its decode time which was found from the segment data
|
|
275
|
-
* itself.
|
|
276
|
-
*/
|
|
277
|
-
timestampOffset : number;
|
|
278
|
-
/**
|
|
279
|
-
* Append windows for the segment. This is a tuple of two elements.
|
|
280
|
-
*
|
|
281
|
-
* The first indicates the "start append window". The media data of that
|
|
282
|
-
* segment that should have been decoded BEFORE that time (after taking the
|
|
283
|
-
* `timestampOffset` property in consideration) will be ignored.
|
|
284
|
-
* This can be set to `0` or `undefined` to not apply any start append window
|
|
285
|
-
* to that chunk.
|
|
286
|
-
*
|
|
287
|
-
* The second indicates the "end append window". The media data of that
|
|
288
|
-
* segment that should have been decoded AFTER that time (after taking the
|
|
289
|
-
* `timestampOffset` property in consideration) will be ignored.
|
|
290
|
-
* This can be set to `0` or `undefined` to not apply any end append window
|
|
291
|
-
* to that chunk.
|
|
292
|
-
*/
|
|
293
|
-
appendWindow: [ number | undefined,
|
|
294
|
-
number | undefined ];
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/**
|
|
298
|
-
* Information to give when indicating a whole segment has been pushed via the
|
|
299
|
-
* `endOfSegment` method.
|
|
300
|
-
*/
|
|
301
|
-
export interface IEndOfSegmentInfos {
|
|
302
|
-
/** Adaptation object linked to the chunk. */
|
|
303
|
-
adaptation : Adaptation;
|
|
304
|
-
/** Period object linked to the chunk. */
|
|
305
|
-
period : Period;
|
|
306
|
-
/** Representation object linked to the chunk. */
|
|
307
|
-
representation : Representation;
|
|
308
|
-
/** The segment object linked to the pushed chunk. */
|
|
309
|
-
segment : ISegment;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
/**
|
|
313
|
-
* Information to give when pushing a new chunk via the `pushChunk` method.
|
|
314
|
-
* Type parameter `T` is the format of the chunk's data.
|
|
315
|
-
*/
|
|
316
|
-
export interface IPushChunkInfos<T> {
|
|
317
|
-
/** Chunk that should be pushed with the associated metadata */
|
|
318
|
-
data : IPushedChunkData<T>;
|
|
319
|
-
/**
|
|
320
|
-
* Context about the chunk that will be added to the inventory once it is
|
|
321
|
-
* pushed.
|
|
322
|
-
*
|
|
323
|
-
* Can be set to `null` if you don't want to add an entry to the inventory
|
|
324
|
-
* after that segment is pushed (e.g. can be useful for initialization
|
|
325
|
-
* segments, as they take no place in a buffer).
|
|
326
|
-
* Please note that an inventory might become completely un-synchronized
|
|
327
|
-
* with the real media buffer if some buffered segments are not added to
|
|
328
|
-
* the inventory afterwise.
|
|
329
|
-
*/
|
|
330
|
-
inventoryInfos : IInsertedChunkInfos |
|
|
331
|
-
null;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
/** "Operations" scheduled by a SegmentBuffer. */
|
|
335
|
-
export type ISBOperation<T> = IPushOperation<T> |
|
|
336
|
-
IRemoveOperation |
|
|
337
|
-
IEndOfSegmentOperation;
|
|
338
|
-
|
|
339
|
-
/**
|
|
340
|
-
* Enum used by a SegmentBuffer as a discriminant in its queue of
|
|
341
|
-
* "operations".
|
|
342
|
-
*/
|
|
343
|
-
export enum SegmentBufferOperation { Push,
|
|
344
|
-
Remove,
|
|
345
|
-
EndOfSegment }
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* "Operation" created by a `SegmentBuffer` when asked to push a chunk.
|
|
349
|
-
*
|
|
350
|
-
* It represents a queued "Push" operation (created due to a `pushChunk` method
|
|
351
|
-
* call) that is not yet fully processed by a `SegmentBuffer`.
|
|
352
|
-
*/
|
|
353
|
-
export interface IPushOperation<T> {
|
|
354
|
-
/** Discriminant (allows to tell its a "Push operation"). */
|
|
355
|
-
type : SegmentBufferOperation.Push;
|
|
356
|
-
/** Arguments for that push. */
|
|
357
|
-
value : IPushChunkInfos<T>;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* "Operation" created by a SegmentBuffer when asked to remove buffer.
|
|
362
|
-
*
|
|
363
|
-
* It represents a queued "Remove" operation (created due to a `removeBuffer`
|
|
364
|
-
* method call) that is not yet fully processed by a SegmentBuffer.
|
|
365
|
-
*/
|
|
366
|
-
export interface IRemoveOperation {
|
|
367
|
-
/** Discriminant (allows to tell its a "Remove operation"). */
|
|
368
|
-
type : SegmentBufferOperation.Remove;
|
|
369
|
-
/** Arguments for that remove (absolute start and end time, in seconds). */
|
|
370
|
-
value : { start : number;
|
|
371
|
-
end : number; }; }
|
|
372
|
-
|
|
373
|
-
/**
|
|
374
|
-
* "Operation" created by a `SegmentBuffer` when asked to validate that a full
|
|
375
|
-
* segment has been pushed through earlier `Push` operations.
|
|
376
|
-
*
|
|
377
|
-
* It represents a queued "EndOfSegment" operation (created due to a
|
|
378
|
-
* `endOfSegment` method call) that is not yet fully processed by a
|
|
379
|
-
* `SegmentBuffer.`
|
|
380
|
-
*/
|
|
381
|
-
export interface IEndOfSegmentOperation {
|
|
382
|
-
/** Discriminant (allows to tell its an "EndOfSegment operation"). */
|
|
383
|
-
type : SegmentBufferOperation.EndOfSegment;
|
|
384
|
-
/** Arguments for that operation. */
|
|
385
|
-
value : IEndOfSegmentInfos;
|
|
386
|
-
}
|
|
@@ -1,80 +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 assert from "../../../../utils/assert";
|
|
18
|
-
import {
|
|
19
|
-
insertInto,
|
|
20
|
-
keepRangeIntersection,
|
|
21
|
-
} from "../../../../utils/ranges";
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Simulate TimeRanges as returned by SourceBuffer.prototype.buffered.
|
|
25
|
-
* Add an "insert" and "remove" methods to manually update it.
|
|
26
|
-
* @class ManualTimeRanges
|
|
27
|
-
*/
|
|
28
|
-
export default class ManualTimeRanges implements TimeRanges {
|
|
29
|
-
public length : number;
|
|
30
|
-
|
|
31
|
-
private _ranges : Array<{
|
|
32
|
-
start : number;
|
|
33
|
-
end : number;
|
|
34
|
-
}>;
|
|
35
|
-
|
|
36
|
-
constructor() {
|
|
37
|
-
this._ranges = [];
|
|
38
|
-
this.length = 0;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
insert(start : number, end : number) : void {
|
|
42
|
-
if (__ENVIRONMENT__.CURRENT_ENV as number === __ENVIRONMENT__.DEV as number) {
|
|
43
|
-
assert(start >= 0, "invalid start time");
|
|
44
|
-
assert(end - start > 0, "invalid end time");
|
|
45
|
-
}
|
|
46
|
-
insertInto(this._ranges, { start, end });
|
|
47
|
-
this.length = this._ranges.length;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
remove(start : number, end : number) : void {
|
|
51
|
-
if (__ENVIRONMENT__.CURRENT_ENV as number === __ENVIRONMENT__.DEV as number) {
|
|
52
|
-
assert(start >= 0, "invalid start time");
|
|
53
|
-
assert(end - start > 0, "invalid end time");
|
|
54
|
-
}
|
|
55
|
-
const rangesToIntersect : Array<{ start : number;
|
|
56
|
-
end: number; }> = [];
|
|
57
|
-
if (start > 0) {
|
|
58
|
-
rangesToIntersect.push({ start: 0, end: start });
|
|
59
|
-
}
|
|
60
|
-
if (end < Infinity) {
|
|
61
|
-
rangesToIntersect.push({ start: end, end: Infinity });
|
|
62
|
-
}
|
|
63
|
-
this._ranges = keepRangeIntersection(this._ranges, rangesToIntersect);
|
|
64
|
-
this.length = this._ranges.length;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
start(index : number) : number {
|
|
68
|
-
if (index >= this._ranges.length) {
|
|
69
|
-
throw new Error("INDEX_SIZE_ERROR");
|
|
70
|
-
}
|
|
71
|
-
return this._ranges[index].start;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
end(index : number) : number {
|
|
75
|
-
if (index >= this._ranges.length) {
|
|
76
|
-
throw new Error("INDEX_SIZE_ERROR");
|
|
77
|
-
}
|
|
78
|
-
return this._ranges[index].end;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
@@ -1,67 +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 BufferGarbageCollector from "./garbage_collector";
|
|
18
|
-
import {
|
|
19
|
-
IBufferType,
|
|
20
|
-
IEndOfSegmentInfos,
|
|
21
|
-
IEndOfSegmentOperation,
|
|
22
|
-
IPushChunkInfos,
|
|
23
|
-
IPushedChunkData,
|
|
24
|
-
IPushOperation,
|
|
25
|
-
IRemoveOperation,
|
|
26
|
-
ISBOperation,
|
|
27
|
-
SegmentBuffer,
|
|
28
|
-
SegmentBufferOperation,
|
|
29
|
-
} from "./implementations";
|
|
30
|
-
import {
|
|
31
|
-
ChunkStatus,
|
|
32
|
-
IBufferedChunk,
|
|
33
|
-
IChunkContext,
|
|
34
|
-
IInsertedChunkInfos,
|
|
35
|
-
} from "./inventory";
|
|
36
|
-
import SegmentBuffersStore, {
|
|
37
|
-
ISegmentBufferOptions,
|
|
38
|
-
ITextTrackSegmentBufferOptions,
|
|
39
|
-
} from "./segment_buffers_store";
|
|
40
|
-
|
|
41
|
-
export default SegmentBuffersStore;
|
|
42
|
-
export {
|
|
43
|
-
BufferGarbageCollector,
|
|
44
|
-
ChunkStatus,
|
|
45
|
-
|
|
46
|
-
ISegmentBufferOptions,
|
|
47
|
-
ITextTrackSegmentBufferOptions,
|
|
48
|
-
|
|
49
|
-
SegmentBuffer,
|
|
50
|
-
|
|
51
|
-
IBufferType,
|
|
52
|
-
|
|
53
|
-
IBufferedChunk,
|
|
54
|
-
IChunkContext,
|
|
55
|
-
IInsertedChunkInfos,
|
|
56
|
-
|
|
57
|
-
IPushChunkInfos,
|
|
58
|
-
IPushedChunkData,
|
|
59
|
-
|
|
60
|
-
IEndOfSegmentInfos,
|
|
61
|
-
|
|
62
|
-
SegmentBufferOperation,
|
|
63
|
-
ISBOperation,
|
|
64
|
-
IEndOfSegmentOperation,
|
|
65
|
-
IPushOperation,
|
|
66
|
-
IRemoveOperation,
|
|
67
|
-
};
|
|
@@ -1,131 +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 { areSameContent } from "../../../manifest";
|
|
18
|
-
import { IChunkContext } from "./types";
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Entry of a `BufferedHistory`, added when the initial buffered range of a
|
|
22
|
-
* **full segment** (and not just of a sub-chunk of a segment like in some
|
|
23
|
-
* low-latency streaming usages) in the buffer becomes known.
|
|
24
|
-
*/
|
|
25
|
-
export interface IBufferedHistoryEntry {
|
|
26
|
-
/** `performance.now()` when the event happened. */
|
|
27
|
-
date : number;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Timestamps of what has been buffered with that segment.
|
|
31
|
-
* `null` if it has been immediately garbage collected.
|
|
32
|
-
*/
|
|
33
|
-
buffered : null | {
|
|
34
|
-
/** Start time at which we observed that segment/chunk starts at, in seconds. */
|
|
35
|
-
start: number;
|
|
36
|
-
/** *End time at which we observed that segment/chunk ends at, in seconds. */
|
|
37
|
-
end: number;
|
|
38
|
-
};
|
|
39
|
-
/** Content metadata linked to the segment, allowing to recognize it. */
|
|
40
|
-
context : IChunkContext;
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Register a short-lived history of buffer information.
|
|
46
|
-
*
|
|
47
|
-
* This class can be useful to develop heuristics based on short-term buffer
|
|
48
|
-
* history, such as knowing the real start and end of a buffered segment once
|
|
49
|
-
* it has been pushed in a buffer.
|
|
50
|
-
*
|
|
51
|
-
* By storing in a history important recent actions and events, the
|
|
52
|
-
* `BufferedHistory` can help other RxPlayer modules detect and work-around
|
|
53
|
-
* unusual behavior.
|
|
54
|
-
*
|
|
55
|
-
* @class BufferedHistory
|
|
56
|
-
*/
|
|
57
|
-
export default class BufferedHistory {
|
|
58
|
-
/** Complete recent history in chronological order (from oldest to newest) */
|
|
59
|
-
private _history : IBufferedHistoryEntry[];
|
|
60
|
-
/** Maximum time a history entry should be retained. */
|
|
61
|
-
private _lifetime : number;
|
|
62
|
-
/** Maximum number of entries the `BufferedHistory`'s history should have. */
|
|
63
|
-
private _maxHistoryLength : number;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @param {number} lifetime - Maximum time a history entry should be retained.
|
|
67
|
-
* @param {number} maxHistoryLength - Maximum number of entries the history
|
|
68
|
-
* should have.
|
|
69
|
-
*/
|
|
70
|
-
constructor(lifetime : number, maxHistoryLength : number) {
|
|
71
|
-
this._history = [];
|
|
72
|
-
this._lifetime = lifetime;
|
|
73
|
-
this._maxHistoryLength = maxHistoryLength;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Add an entry to the `BufferedHistory`'s history indicating the buffered
|
|
78
|
-
* range of a pushed segment.
|
|
79
|
-
*
|
|
80
|
-
* To call when the full range of a given segment becomes known.
|
|
81
|
-
*
|
|
82
|
-
* @param {Object} context
|
|
83
|
-
* @param {Array.<number>|null} buffered
|
|
84
|
-
*/
|
|
85
|
-
public addBufferedSegment(
|
|
86
|
-
context : IChunkContext,
|
|
87
|
-
buffered : { start: number; end: number } | null
|
|
88
|
-
) : void {
|
|
89
|
-
const now = performance.now();
|
|
90
|
-
this._history.push({ date: now,
|
|
91
|
-
buffered,
|
|
92
|
-
context });
|
|
93
|
-
this._cleanHistory(now);
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Returns all entries linked to the given segment.
|
|
98
|
-
* @param {Object} context
|
|
99
|
-
* @returns {Array.<Object>}
|
|
100
|
-
*/
|
|
101
|
-
public getHistoryFor(
|
|
102
|
-
context : IChunkContext
|
|
103
|
-
) : IBufferedHistoryEntry[] {
|
|
104
|
-
return this._history.filter(el => areSameContent(el.context, context));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* If the current history does not satisfy `_lifetime` or `_maxHistoryLength`,
|
|
109
|
-
* clear older entries until it does.
|
|
110
|
-
* @param {number} now - Current `performance.now()` result.
|
|
111
|
-
*/
|
|
112
|
-
private _cleanHistory(now : number) {
|
|
113
|
-
const historyEarliestLimit = now - this._lifetime;
|
|
114
|
-
let firstKeptIndex = 0;
|
|
115
|
-
for (const event of this._history) {
|
|
116
|
-
if (event.date < historyEarliestLimit) {
|
|
117
|
-
firstKeptIndex++;
|
|
118
|
-
} else {
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (firstKeptIndex > 0) {
|
|
123
|
-
this._history = this._history.splice(firstKeptIndex);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (this._history.length > this._maxHistoryLength) {
|
|
127
|
-
const toRemove = this._history.length - this._maxHistoryLength;
|
|
128
|
-
this._history = this._history.splice(toRemove);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
@@ -1,30 +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 SegmentInventory, {
|
|
18
|
-
ChunkStatus,
|
|
19
|
-
IBufferedChunk,
|
|
20
|
-
IInsertedChunkInfos,
|
|
21
|
-
} from "./segment_inventory";
|
|
22
|
-
|
|
23
|
-
export default SegmentInventory;
|
|
24
|
-
export {
|
|
25
|
-
ChunkStatus,
|
|
26
|
-
IBufferedChunk,
|
|
27
|
-
IInsertedChunkInfos,
|
|
28
|
-
};
|
|
29
|
-
export { IBufferedHistoryEntry } from "./buffered_history";
|
|
30
|
-
export { IChunkContext } from "./types";
|