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,139 +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
|
-
clearElementSrc,
|
|
19
|
-
events,
|
|
20
|
-
MediaSource_,
|
|
21
|
-
} from "../../../compat";
|
|
22
|
-
import { MediaError } from "../../../errors";
|
|
23
|
-
import log from "../../../log";
|
|
24
|
-
import createCancellablePromise from "../../../utils/create_cancellable_promise";
|
|
25
|
-
import isNonEmptyString from "../../../utils/is_non_empty_string";
|
|
26
|
-
import { CancellationSignal } from "../../../utils/task_canceller";
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Dispose of ressources taken by the MediaSource:
|
|
30
|
-
* - Clear the MediaSource' SourceBuffers
|
|
31
|
-
* - Clear the mediaElement's src (stop the mediaElement)
|
|
32
|
-
* - Revoke MediaSource' URL
|
|
33
|
-
* @param {HTMLMediaElement} mediaElement
|
|
34
|
-
* @param {MediaSource|null} mediaSource
|
|
35
|
-
* @param {string|null} mediaSourceURL
|
|
36
|
-
*/
|
|
37
|
-
export function resetMediaSource(
|
|
38
|
-
mediaElement : HTMLMediaElement,
|
|
39
|
-
mediaSource : MediaSource | null,
|
|
40
|
-
mediaSourceURL : string | null
|
|
41
|
-
) : void {
|
|
42
|
-
if (mediaSource !== null && mediaSource.readyState !== "closed") {
|
|
43
|
-
const { readyState, sourceBuffers } = mediaSource;
|
|
44
|
-
for (let i = sourceBuffers.length - 1; i >= 0; i--) {
|
|
45
|
-
const sourceBuffer = sourceBuffers[i];
|
|
46
|
-
try {
|
|
47
|
-
if (readyState === "open") {
|
|
48
|
-
log.info("Init: Aborting SourceBuffer before removing");
|
|
49
|
-
sourceBuffer.abort();
|
|
50
|
-
}
|
|
51
|
-
log.info("Init: Removing SourceBuffer from mediaSource");
|
|
52
|
-
mediaSource.removeSourceBuffer(sourceBuffer);
|
|
53
|
-
}
|
|
54
|
-
catch (e) {
|
|
55
|
-
log.warn("Init: Error while disposing SourceBuffer",
|
|
56
|
-
e instanceof Error ? e : "");
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (sourceBuffers.length > 0) {
|
|
60
|
-
log.warn("Init: Not all SourceBuffers could have been removed.");
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
log.info("Init: Clearing HTMLMediaElement's src");
|
|
65
|
-
clearElementSrc(mediaElement);
|
|
66
|
-
|
|
67
|
-
if (mediaSourceURL !== null) {
|
|
68
|
-
try {
|
|
69
|
-
log.debug("Init: Revoking previous URL");
|
|
70
|
-
URL.revokeObjectURL(mediaSourceURL);
|
|
71
|
-
} catch (e) {
|
|
72
|
-
log.warn("Init: Error while revoking the media source URL",
|
|
73
|
-
e instanceof Error ? e : "");
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Create a MediaSource instance and attach it to the given mediaElement element's
|
|
80
|
-
* src attribute.
|
|
81
|
-
*
|
|
82
|
-
* Returns a Promise which resolves with the MediaSource when created and attached
|
|
83
|
-
* to the `mediaElement` element.
|
|
84
|
-
*
|
|
85
|
-
* When the given `unlinkSignal` emits, mediaElement.src is cleaned, MediaSource
|
|
86
|
-
* SourceBuffers are aborted and some minor cleaning is done.
|
|
87
|
-
* @param {HTMLMediaElement} mediaElement
|
|
88
|
-
* @param {Object} unlinkSignal
|
|
89
|
-
* @returns {MediaSource}
|
|
90
|
-
*/
|
|
91
|
-
function createMediaSource(
|
|
92
|
-
mediaElement : HTMLMediaElement,
|
|
93
|
-
unlinkSignal : CancellationSignal
|
|
94
|
-
) : MediaSource {
|
|
95
|
-
if (MediaSource_ == null) {
|
|
96
|
-
throw new MediaError("MEDIA_SOURCE_NOT_SUPPORTED",
|
|
97
|
-
"No MediaSource Object was found in the current browser.");
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// make sure the media has been correctly reset
|
|
101
|
-
const oldSrc = isNonEmptyString(mediaElement.src) ? mediaElement.src :
|
|
102
|
-
null;
|
|
103
|
-
resetMediaSource(mediaElement, null, oldSrc);
|
|
104
|
-
|
|
105
|
-
log.info("Init: Creating MediaSource");
|
|
106
|
-
const mediaSource = new MediaSource_();
|
|
107
|
-
const objectURL = URL.createObjectURL(mediaSource);
|
|
108
|
-
|
|
109
|
-
log.info("Init: Attaching MediaSource URL to the media element", objectURL);
|
|
110
|
-
mediaElement.src = objectURL;
|
|
111
|
-
|
|
112
|
-
unlinkSignal.register(() => {
|
|
113
|
-
resetMediaSource(mediaElement, mediaSource, objectURL);
|
|
114
|
-
});
|
|
115
|
-
return mediaSource;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Create and open a new MediaSource object on the given media element.
|
|
120
|
-
* Resolves with the MediaSource when done.
|
|
121
|
-
*
|
|
122
|
-
* When the given `unlinkSignal` emits, mediaElement.src is cleaned, MediaSource
|
|
123
|
-
* SourceBuffers are aborted and some minor cleaning is done.
|
|
124
|
-
* @param {HTMLMediaElement} mediaElement
|
|
125
|
-
* @param {Object} unlinkSignal
|
|
126
|
-
* @returns {Promise}
|
|
127
|
-
*/
|
|
128
|
-
export default function openMediaSource(
|
|
129
|
-
mediaElement : HTMLMediaElement,
|
|
130
|
-
unlinkSignal : CancellationSignal
|
|
131
|
-
) : Promise<MediaSource> {
|
|
132
|
-
return createCancellablePromise(unlinkSignal, (resolve) => {
|
|
133
|
-
const mediaSource = createMediaSource(mediaElement, unlinkSignal);
|
|
134
|
-
events.onSourceOpen(mediaSource, () => {
|
|
135
|
-
log.info("Init: MediaSource opened");
|
|
136
|
-
resolve(mediaSource);
|
|
137
|
-
}, unlinkSignal);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
@@ -1,132 +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 Manifest from "../../../manifest";
|
|
18
|
-
import SharedReference, {
|
|
19
|
-
IReadOnlySharedReference,
|
|
20
|
-
} from "../../../utils/reference";
|
|
21
|
-
import TaskCanceller, {
|
|
22
|
-
CancellationSignal,
|
|
23
|
-
} from "../../../utils/task_canceller";
|
|
24
|
-
import {
|
|
25
|
-
IPlaybackObservation,
|
|
26
|
-
IReadOnlyPlaybackObserver,
|
|
27
|
-
PlaybackObserver,
|
|
28
|
-
} from "../../api";
|
|
29
|
-
import { IStreamOrchestratorPlaybackObservation } from "../../stream";
|
|
30
|
-
|
|
31
|
-
/** Arguments needed to create the Stream's version of the PlaybackObserver. */
|
|
32
|
-
export interface IStreamPlaybackObserverArguments {
|
|
33
|
-
/** If true, the player will auto-play when `initialPlayPerformed` becomes `true`. */
|
|
34
|
-
autoPlay : boolean;
|
|
35
|
-
/** Manifest of the content being played */
|
|
36
|
-
manifest : Manifest;
|
|
37
|
-
/** Becomes `true` after the initial play has been taken care of. */
|
|
38
|
-
initialPlayPerformed : IReadOnlySharedReference<boolean>;
|
|
39
|
-
/** Becomes `true` after the initial seek has been taken care of. */
|
|
40
|
-
initialSeekPerformed : IReadOnlySharedReference<boolean>;
|
|
41
|
-
/** The last speed requested by the user. */
|
|
42
|
-
speed : IReadOnlySharedReference<number>;
|
|
43
|
-
/** The time the player will seek when `initialSeekPerformed` becomes `true`. */
|
|
44
|
-
startTime : number;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Create PlaybackObserver for the `Stream` part of the code.
|
|
49
|
-
* @param {Object} srcPlaybackObserver - Base `PlaybackObserver` from which we
|
|
50
|
-
* will derive information.
|
|
51
|
-
* @param {Object} context - Various information linked to the current content
|
|
52
|
-
* being played.
|
|
53
|
-
* @param {Object} fnCancelSignal - Abort the created PlaybackObserver.
|
|
54
|
-
* @returns {Object}
|
|
55
|
-
*/
|
|
56
|
-
export default function createStreamPlaybackObserver(
|
|
57
|
-
srcPlaybackObserver : PlaybackObserver,
|
|
58
|
-
{ autoPlay,
|
|
59
|
-
initialPlayPerformed,
|
|
60
|
-
initialSeekPerformed,
|
|
61
|
-
manifest,
|
|
62
|
-
speed,
|
|
63
|
-
startTime } : IStreamPlaybackObserverArguments,
|
|
64
|
-
fnCancelSignal : CancellationSignal
|
|
65
|
-
) : IReadOnlyPlaybackObserver<IStreamOrchestratorPlaybackObservation> {
|
|
66
|
-
return srcPlaybackObserver.deriveReadOnlyObserver(function transform(
|
|
67
|
-
observationRef : IReadOnlySharedReference<IPlaybackObservation>,
|
|
68
|
-
parentObserverCancelSignal : CancellationSignal
|
|
69
|
-
) : IReadOnlySharedReference<IStreamOrchestratorPlaybackObservation> {
|
|
70
|
-
const canceller = new TaskCanceller();
|
|
71
|
-
canceller.linkToSignal(parentObserverCancelSignal);
|
|
72
|
-
canceller.linkToSignal(fnCancelSignal);
|
|
73
|
-
const newRef = new SharedReference(constructStreamPlaybackObservation(),
|
|
74
|
-
canceller.signal);
|
|
75
|
-
|
|
76
|
-
speed.onUpdate(emitStreamPlaybackObservation, {
|
|
77
|
-
clearSignal: canceller.signal,
|
|
78
|
-
emitCurrentValue: false,
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
observationRef.onUpdate(emitStreamPlaybackObservation, {
|
|
82
|
-
clearSignal: canceller.signal,
|
|
83
|
-
emitCurrentValue: false,
|
|
84
|
-
});
|
|
85
|
-
return newRef;
|
|
86
|
-
|
|
87
|
-
function constructStreamPlaybackObservation() {
|
|
88
|
-
const observation = observationRef.getValue();
|
|
89
|
-
const lastSpeed = speed.getValue();
|
|
90
|
-
let pendingPosition : number | undefined;
|
|
91
|
-
if (!initialSeekPerformed.getValue()) {
|
|
92
|
-
pendingPosition = startTime;
|
|
93
|
-
} else if (!manifest.isDynamic || manifest.isLastPeriodKnown) {
|
|
94
|
-
// HACK: When the position is actually further than the maximum
|
|
95
|
-
// position for a finished content, we actually want to be loading
|
|
96
|
-
// the last segment before ending.
|
|
97
|
-
// For now, this behavior is implicitely forced by making as if we
|
|
98
|
-
// want to seek one second before the period's end (despite never
|
|
99
|
-
// doing it).
|
|
100
|
-
const lastPeriod = manifest.periods[manifest.periods.length - 1];
|
|
101
|
-
if (lastPeriod !== undefined &&
|
|
102
|
-
lastPeriod.end !== undefined &&
|
|
103
|
-
observation.position > lastPeriod.end)
|
|
104
|
-
{
|
|
105
|
-
pendingPosition = lastPeriod.end - 1;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return {
|
|
110
|
-
// TODO more exact according to the current Adaptation chosen?
|
|
111
|
-
maximumPosition: manifest.getMaximumSafePosition(),
|
|
112
|
-
position: {
|
|
113
|
-
last: observation.position,
|
|
114
|
-
pending: pendingPosition,
|
|
115
|
-
},
|
|
116
|
-
duration: observation.duration,
|
|
117
|
-
paused: {
|
|
118
|
-
last: observation.paused,
|
|
119
|
-
pending: initialPlayPerformed.getValue() ? undefined :
|
|
120
|
-
!autoPlay === observation.paused ? undefined :
|
|
121
|
-
!autoPlay,
|
|
122
|
-
},
|
|
123
|
-
readyState: observation.readyState,
|
|
124
|
-
speed: lastSpeed,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function emitStreamPlaybackObservation() {
|
|
129
|
-
newRef.setValue(constructStreamPlaybackObservation());
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
@@ -1,108 +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 { events } from "../../../compat";
|
|
18
|
-
import log from "../../../log";
|
|
19
|
-
import TaskCanceller, {
|
|
20
|
-
CancellationSignal,
|
|
21
|
-
} from "../../../utils/task_canceller";
|
|
22
|
-
|
|
23
|
-
const { onRemoveSourceBuffers,
|
|
24
|
-
onSourceOpen,
|
|
25
|
-
onSourceBufferUpdate } = events;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Get "updating" SourceBuffers from a SourceBufferList.
|
|
29
|
-
* @param {SourceBufferList} sourceBuffers
|
|
30
|
-
* @returns {Array.<SourceBuffer>}
|
|
31
|
-
*/
|
|
32
|
-
function getUpdatingSourceBuffers(sourceBuffers : SourceBufferList) : SourceBuffer[] {
|
|
33
|
-
const updatingSourceBuffers : SourceBuffer[] = [];
|
|
34
|
-
for (let i = 0; i < sourceBuffers.length; i++) {
|
|
35
|
-
const SourceBuffer = sourceBuffers[i];
|
|
36
|
-
if (SourceBuffer.updating) {
|
|
37
|
-
updatingSourceBuffers.push(SourceBuffer);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return updatingSourceBuffers;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Trigger the `endOfStream` method of a MediaSource.
|
|
45
|
-
*
|
|
46
|
-
* If the MediaSource is ended/closed, do not call this method.
|
|
47
|
-
* If SourceBuffers are updating, wait for them to be updated before closing
|
|
48
|
-
* it.
|
|
49
|
-
* @param {MediaSource} mediaSource
|
|
50
|
-
* @param {Object} cancelSignal
|
|
51
|
-
*/
|
|
52
|
-
export default function triggerEndOfStream(
|
|
53
|
-
mediaSource : MediaSource,
|
|
54
|
-
cancelSignal : CancellationSignal
|
|
55
|
-
) : void {
|
|
56
|
-
log.debug("Init: Trying to call endOfStream");
|
|
57
|
-
if (mediaSource.readyState !== "open") {
|
|
58
|
-
log.debug("Init: MediaSource not open, cancel endOfStream");
|
|
59
|
-
return ;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const { sourceBuffers } = mediaSource;
|
|
63
|
-
const updatingSourceBuffers = getUpdatingSourceBuffers(sourceBuffers);
|
|
64
|
-
|
|
65
|
-
if (updatingSourceBuffers.length === 0) {
|
|
66
|
-
log.info("Init: Triggering end of stream");
|
|
67
|
-
mediaSource.endOfStream();
|
|
68
|
-
return ;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
log.debug("Init: Waiting SourceBuffers to be updated before calling endOfStream.");
|
|
72
|
-
|
|
73
|
-
const innerCanceller = new TaskCanceller();
|
|
74
|
-
innerCanceller.linkToSignal(cancelSignal);
|
|
75
|
-
for (const sourceBuffer of updatingSourceBuffers) {
|
|
76
|
-
onSourceBufferUpdate(sourceBuffer, () => {
|
|
77
|
-
innerCanceller.cancel();
|
|
78
|
-
triggerEndOfStream(mediaSource, cancelSignal);
|
|
79
|
-
}, innerCanceller.signal);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
onRemoveSourceBuffers(sourceBuffers, () => {
|
|
83
|
-
innerCanceller.cancel();
|
|
84
|
-
triggerEndOfStream(mediaSource, cancelSignal);
|
|
85
|
-
}, innerCanceller.signal);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Trigger the `endOfStream` method of a MediaSource each times it opens.
|
|
90
|
-
* @see triggerEndOfStream
|
|
91
|
-
* @param {MediaSource} mediaSource
|
|
92
|
-
* @param {Object} cancelSignal
|
|
93
|
-
*/
|
|
94
|
-
export function maintainEndOfStream(
|
|
95
|
-
mediaSource : MediaSource,
|
|
96
|
-
cancelSignal : CancellationSignal
|
|
97
|
-
) : void {
|
|
98
|
-
let endOfStreamCanceller = new TaskCanceller();
|
|
99
|
-
endOfStreamCanceller.linkToSignal(cancelSignal);
|
|
100
|
-
onSourceOpen(mediaSource, () => {
|
|
101
|
-
log.debug("Init: MediaSource re-opened while end-of-stream is active");
|
|
102
|
-
endOfStreamCanceller.cancel();
|
|
103
|
-
endOfStreamCanceller = new TaskCanceller();
|
|
104
|
-
endOfStreamCanceller.linkToSignal(cancelSignal);
|
|
105
|
-
triggerEndOfStream(mediaSource, endOfStreamCanceller.signal);
|
|
106
|
-
}, cancelSignal);
|
|
107
|
-
triggerEndOfStream(mediaSource, endOfStreamCanceller.signal);
|
|
108
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import config from "../../../config";
|
|
18
|
-
import log from "../../../log";
|
|
19
|
-
import Manifest from "../../../manifest";
|
|
20
|
-
import isNullOrUndefined from "../../../utils/is_null_or_undefined";
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* All possible initial time options that can be set.
|
|
24
|
-
*
|
|
25
|
-
* Written this way (with many type possibilities) on purpose to avoid issues
|
|
26
|
-
* if the application using the RxPlayer gives undocumented values such as
|
|
27
|
-
* `null`.
|
|
28
|
-
*
|
|
29
|
-
* TODO we shouldn't be that robust, at least not outside the API code, because
|
|
30
|
-
* if we begin to be that liberal here, where should we end?
|
|
31
|
-
* We may instead either want to progressively remove tolerance on the wrong
|
|
32
|
-
* type being given or be better to enforce type-compliancy in the API code.
|
|
33
|
-
*/
|
|
34
|
-
export interface IInitialTimeOptions {
|
|
35
|
-
/** If set, we should begin at this position, in seconds. */
|
|
36
|
-
position? : number | null | undefined;
|
|
37
|
-
/** If set, we should begin at this unix timestamp, in seconds. */
|
|
38
|
-
wallClockTime? : number | null | undefined;
|
|
39
|
-
/**
|
|
40
|
-
* If set, we should begin at this position relative to the content's start,
|
|
41
|
-
* in seconds.
|
|
42
|
-
*/
|
|
43
|
-
fromFirstPosition? : number | null | undefined;
|
|
44
|
-
/**
|
|
45
|
-
* If set, we should begin at this position relative to the content's maximum
|
|
46
|
-
* seekable position, in seconds.
|
|
47
|
-
*
|
|
48
|
-
* It should consequently in most cases be a negative value.
|
|
49
|
-
*/
|
|
50
|
-
fromLastPosition? : number | null | undefined;
|
|
51
|
-
/**
|
|
52
|
-
* If set, we should begin at this position relative to the content's live
|
|
53
|
-
* edge if it makes sense, in seconds.
|
|
54
|
-
*
|
|
55
|
-
* It should consequently in most cases be a negative value.
|
|
56
|
-
*
|
|
57
|
-
* If the live edge is unknown or if it does not make sense for the current
|
|
58
|
-
* content, that position is relative to the content's maximum position
|
|
59
|
-
* instead.
|
|
60
|
-
*/
|
|
61
|
-
fromLivePosition? : number | null | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* If set, we should begin at this position relative to the whole duration of
|
|
64
|
-
* the content, in percentage.
|
|
65
|
-
*/
|
|
66
|
-
percentage? : number | null | undefined;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Returns the calculated initial time for the content described by the given
|
|
71
|
-
* Manifest:
|
|
72
|
-
* 1. if a start time is defined by user, calculate starting time from the
|
|
73
|
-
* manifest information
|
|
74
|
-
* 2. else if the media is live, use the live edge and suggested delays from
|
|
75
|
-
* it
|
|
76
|
-
* 3. else returns the minimum time announced in the manifest
|
|
77
|
-
* @param {Manifest} manifest
|
|
78
|
-
* @param {boolean} lowLatencyMode
|
|
79
|
-
* @param {Object} startAt
|
|
80
|
-
* @returns {Number}
|
|
81
|
-
*/
|
|
82
|
-
export default function getInitialTime(
|
|
83
|
-
manifest : Manifest,
|
|
84
|
-
lowLatencyMode : boolean,
|
|
85
|
-
startAt? : IInitialTimeOptions
|
|
86
|
-
) : number {
|
|
87
|
-
if (!isNullOrUndefined(startAt)) {
|
|
88
|
-
const min = manifest.getMinimumSafePosition();
|
|
89
|
-
const max = manifest.getMaximumSafePosition();
|
|
90
|
-
if (!isNullOrUndefined(startAt.position)) {
|
|
91
|
-
log.debug("Init: using startAt.minimumPosition");
|
|
92
|
-
return Math.max(Math.min(startAt.position, max), min);
|
|
93
|
-
}
|
|
94
|
-
else if (!isNullOrUndefined(startAt.wallClockTime)) {
|
|
95
|
-
log.debug("Init: using startAt.wallClockTime");
|
|
96
|
-
const ast = manifest.availabilityStartTime === undefined ?
|
|
97
|
-
0 :
|
|
98
|
-
manifest.availabilityStartTime;
|
|
99
|
-
const position = startAt.wallClockTime - ast;
|
|
100
|
-
return Math.max(Math.min(position, max), min);
|
|
101
|
-
}
|
|
102
|
-
else if (!isNullOrUndefined(startAt.fromFirstPosition)) {
|
|
103
|
-
log.debug("Init: using startAt.fromFirstPosition");
|
|
104
|
-
const { fromFirstPosition } = startAt;
|
|
105
|
-
return fromFirstPosition <= 0 ? min :
|
|
106
|
-
Math.min(max, min + fromFirstPosition);
|
|
107
|
-
} else if (!isNullOrUndefined(startAt.fromLastPosition)) {
|
|
108
|
-
log.debug("Init: using startAt.fromLastPosition");
|
|
109
|
-
const { fromLastPosition } = startAt;
|
|
110
|
-
return fromLastPosition >= 0 ? max :
|
|
111
|
-
Math.max(min, max + fromLastPosition);
|
|
112
|
-
} else if (!isNullOrUndefined(startAt.fromLivePosition)) {
|
|
113
|
-
log.debug("Init: using startAt.fromLivePosition");
|
|
114
|
-
const livePosition = manifest.getLivePosition() ?? max;
|
|
115
|
-
const { fromLivePosition } = startAt;
|
|
116
|
-
return fromLivePosition >= 0 ? livePosition :
|
|
117
|
-
Math.max(min, livePosition + fromLivePosition);
|
|
118
|
-
} else if (!isNullOrUndefined(startAt.percentage)) {
|
|
119
|
-
log.debug("Init: using startAt.percentage");
|
|
120
|
-
const { percentage } = startAt;
|
|
121
|
-
if (percentage > 100) {
|
|
122
|
-
return max;
|
|
123
|
-
} else if (percentage < 0) {
|
|
124
|
-
return min;
|
|
125
|
-
}
|
|
126
|
-
const ratio = +percentage / 100;
|
|
127
|
-
const extent = max - min;
|
|
128
|
-
return min + extent * ratio;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const minimumPosition = manifest.getMinimumSafePosition();
|
|
133
|
-
if (manifest.isLive) {
|
|
134
|
-
const { suggestedPresentationDelay,
|
|
135
|
-
clockOffset } = manifest;
|
|
136
|
-
const maximumPosition = manifest.getMaximumSafePosition();
|
|
137
|
-
let liveTime : number;
|
|
138
|
-
const { DEFAULT_LIVE_GAP } = config.getCurrent();
|
|
139
|
-
|
|
140
|
-
if (clockOffset === undefined) {
|
|
141
|
-
log.info("Init: no clock offset found for a live content, " +
|
|
142
|
-
"starting close to maximum available position");
|
|
143
|
-
liveTime = maximumPosition;
|
|
144
|
-
} else {
|
|
145
|
-
log.info("Init: clock offset found for a live content, " +
|
|
146
|
-
"checking if we can start close to it");
|
|
147
|
-
const ast = manifest.availabilityStartTime === undefined ?
|
|
148
|
-
0 :
|
|
149
|
-
manifest.availabilityStartTime;
|
|
150
|
-
const clockRelativeLiveTime = (performance.now() + clockOffset) / 1000 - ast;
|
|
151
|
-
liveTime = Math.min(maximumPosition,
|
|
152
|
-
clockRelativeLiveTime);
|
|
153
|
-
}
|
|
154
|
-
const diffFromLiveTime =
|
|
155
|
-
suggestedPresentationDelay !== undefined ? suggestedPresentationDelay :
|
|
156
|
-
lowLatencyMode ? DEFAULT_LIVE_GAP.LOW_LATENCY :
|
|
157
|
-
DEFAULT_LIVE_GAP.DEFAULT;
|
|
158
|
-
log.debug(`Init: ${liveTime} defined as the live time, applying a live gap` +
|
|
159
|
-
` of ${diffFromLiveTime}`);
|
|
160
|
-
return Math.max(liveTime - diffFromLiveTime, minimumPosition);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
log.info("Init: starting at the minimum available position:", minimumPosition);
|
|
164
|
-
return minimumPosition;
|
|
165
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Copyright 2015 CANAL+ Group
|
|
4
|
-
*
|
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
-
* you may not use this file except in compliance with the License.
|
|
7
|
-
* You may obtain a copy of the License at
|
|
8
|
-
*
|
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
-
*
|
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
-
* See the License for the specific language governing permissions and
|
|
15
|
-
* limitations under the License.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
import {
|
|
19
|
-
shouldValidateMetadata,
|
|
20
|
-
shouldWaitForDataBeforeLoaded,
|
|
21
|
-
shouldWaitForHaveEnoughData,
|
|
22
|
-
} from "../../../compat";
|
|
23
|
-
import SharedReference, {
|
|
24
|
-
IReadOnlySharedReference,
|
|
25
|
-
} from "../../../utils/reference";
|
|
26
|
-
import TaskCanceller, { CancellationSignal } from "../../../utils/task_canceller";
|
|
27
|
-
import {
|
|
28
|
-
IPlaybackObservation,
|
|
29
|
-
IReadOnlyPlaybackObserver,
|
|
30
|
-
} from "../../api";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Returns an `IReadOnlySharedReference` that switches to `true` once the
|
|
34
|
-
* content is considered loaded (i.e. once it can begin to be played).
|
|
35
|
-
* @param {Object} playbackObserver
|
|
36
|
-
* @param {HTMLMediaElement} mediaElement
|
|
37
|
-
* @param {boolean} isDirectfile - `true` if this is a directfile content
|
|
38
|
-
* @param {Object} cancelSignal
|
|
39
|
-
* @returns {Object}
|
|
40
|
-
*/
|
|
41
|
-
export default function getLoadedReference(
|
|
42
|
-
playbackObserver : IReadOnlyPlaybackObserver<IPlaybackObservation>,
|
|
43
|
-
mediaElement : HTMLMediaElement,
|
|
44
|
-
isDirectfile : boolean,
|
|
45
|
-
cancelSignal : CancellationSignal
|
|
46
|
-
) : IReadOnlySharedReference<boolean> {
|
|
47
|
-
const listenCanceller = new TaskCanceller();
|
|
48
|
-
listenCanceller.linkToSignal(cancelSignal);
|
|
49
|
-
const isLoaded = new SharedReference(false, listenCanceller.signal);
|
|
50
|
-
playbackObserver.listen((observation) => {
|
|
51
|
-
if (observation.rebuffering !== null ||
|
|
52
|
-
observation.freezing !== null ||
|
|
53
|
-
observation.readyState === 0)
|
|
54
|
-
{
|
|
55
|
-
return ;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (!shouldWaitForDataBeforeLoaded(isDirectfile,
|
|
59
|
-
mediaElement.hasAttribute("playsinline")))
|
|
60
|
-
{
|
|
61
|
-
if (mediaElement.duration > 0) {
|
|
62
|
-
isLoaded.setValue(true);
|
|
63
|
-
listenCanceller.cancel();
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
const minReadyState = shouldWaitForHaveEnoughData() ? 4 :
|
|
69
|
-
3;
|
|
70
|
-
if (observation.readyState >= minReadyState) {
|
|
71
|
-
if (observation.currentRange !== null || observation.ended) {
|
|
72
|
-
if (!shouldValidateMetadata() || mediaElement.duration > 0) {
|
|
73
|
-
isLoaded.setValue(true);
|
|
74
|
-
listenCanceller.cancel();
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}, { includeLastObservation: true, clearSignal: listenCanceller.signal });
|
|
80
|
-
|
|
81
|
-
return isLoaded;
|
|
82
|
-
}
|