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,74 +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 areSameStreamEvents from "./are_same_stream_events";
|
|
19
|
-
import {
|
|
20
|
-
INonFiniteStreamEventPayload,
|
|
21
|
-
IStreamEventPayload,
|
|
22
|
-
} from "./types";
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Refresh local scheduled events list
|
|
26
|
-
* @param {Array.<Object>} oldScheduledEvents
|
|
27
|
-
* @param {Object} manifest
|
|
28
|
-
* @returns {Array.<Object>}
|
|
29
|
-
*/
|
|
30
|
-
function refreshScheduledEventsList(
|
|
31
|
-
oldScheduledEvents: Array<IStreamEventPayload|INonFiniteStreamEventPayload>,
|
|
32
|
-
manifest: Manifest
|
|
33
|
-
): Array<IStreamEventPayload|INonFiniteStreamEventPayload> {
|
|
34
|
-
const scheduledEvents: Array<IStreamEventPayload|INonFiniteStreamEventPayload> = [];
|
|
35
|
-
const { periods } = manifest;
|
|
36
|
-
for (let i = 0; i < periods.length; i++) {
|
|
37
|
-
const period = periods[i];
|
|
38
|
-
const { streamEvents } = period;
|
|
39
|
-
streamEvents.forEach(({ start, end, id, data }) => {
|
|
40
|
-
for (let j = 0; j < oldScheduledEvents.length; j++) {
|
|
41
|
-
const currentScheduledEvent = oldScheduledEvents[j];
|
|
42
|
-
if (areSameStreamEvents(currentScheduledEvent, { id, start, end })) {
|
|
43
|
-
scheduledEvents.push(currentScheduledEvent);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const element = data.value.element;
|
|
49
|
-
const actualData = { type: data.type,
|
|
50
|
-
value: { ...data.value, element } };
|
|
51
|
-
if (end === undefined) {
|
|
52
|
-
const newScheduledEvent = { start,
|
|
53
|
-
id,
|
|
54
|
-
data: actualData,
|
|
55
|
-
publicEvent: { start,
|
|
56
|
-
data: actualData } };
|
|
57
|
-
scheduledEvents.push(newScheduledEvent);
|
|
58
|
-
} else {
|
|
59
|
-
const newScheduledEvent = { start,
|
|
60
|
-
end,
|
|
61
|
-
id,
|
|
62
|
-
data: actualData,
|
|
63
|
-
publicEvent: { start,
|
|
64
|
-
end,
|
|
65
|
-
data: actualData } };
|
|
66
|
-
scheduledEvents.push(newScheduledEvent);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
return scheduledEvents;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export default refreshScheduledEventsList;
|
|
@@ -1,252 +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 Manifest from "../../../../manifest";
|
|
19
|
-
import EventEmitter from "../../../../utils/event_emitter";
|
|
20
|
-
import SharedReference from "../../../../utils/reference";
|
|
21
|
-
import TaskCanceller, { CancellationSignal } from "../../../../utils/task_canceller";
|
|
22
|
-
import { IPlaybackObservation, IReadOnlyPlaybackObserver } from "../../../api";
|
|
23
|
-
import refreshScheduledEventsList from "./refresh_scheduled_events_list";
|
|
24
|
-
import {
|
|
25
|
-
INonFiniteStreamEventPayload,
|
|
26
|
-
IPublicNonFiniteStreamEvent,
|
|
27
|
-
IPublicStreamEvent,
|
|
28
|
-
IStreamEventPayload,
|
|
29
|
-
} from "./types";
|
|
30
|
-
|
|
31
|
-
interface IStreamEventsEmitterEvent {
|
|
32
|
-
event: IPublicStreamEvent | IPublicNonFiniteStreamEvent;
|
|
33
|
-
eventSkip: IPublicStreamEvent | IPublicNonFiniteStreamEvent;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Get events from manifest and emit each time an event has to be emitted
|
|
38
|
-
*/
|
|
39
|
-
export default class StreamEventsEmitter extends EventEmitter<IStreamEventsEmitterEvent> {
|
|
40
|
-
private _manifest : Manifest;
|
|
41
|
-
private _mediaElement : HTMLMediaElement;
|
|
42
|
-
private _playbackObserver : IReadOnlyPlaybackObserver<IPlaybackObservation>;
|
|
43
|
-
private _scheduledEventsRef : SharedReference<
|
|
44
|
-
Array<IStreamEventPayload | INonFiniteStreamEventPayload>
|
|
45
|
-
>;
|
|
46
|
-
private _eventsBeingPlayed: WeakMap<
|
|
47
|
-
IStreamEventPayload|INonFiniteStreamEventPayload,
|
|
48
|
-
true
|
|
49
|
-
>;
|
|
50
|
-
private _canceller : TaskCanceller | null;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* @param {Object} manifest
|
|
54
|
-
* @param {HTMLMediaElement} mediaElement
|
|
55
|
-
* @param {Object} playbackObserver
|
|
56
|
-
*/
|
|
57
|
-
constructor(
|
|
58
|
-
manifest : Manifest,
|
|
59
|
-
mediaElement : HTMLMediaElement,
|
|
60
|
-
playbackObserver : IReadOnlyPlaybackObserver<IPlaybackObservation>
|
|
61
|
-
) {
|
|
62
|
-
super();
|
|
63
|
-
this._manifest = manifest;
|
|
64
|
-
this._mediaElement = mediaElement;
|
|
65
|
-
this._playbackObserver = playbackObserver;
|
|
66
|
-
this._canceller = null;
|
|
67
|
-
this._scheduledEventsRef = new SharedReference<
|
|
68
|
-
Array<IStreamEventPayload|INonFiniteStreamEventPayload>
|
|
69
|
-
>([]);
|
|
70
|
-
this._eventsBeingPlayed =
|
|
71
|
-
new WeakMap<IStreamEventPayload|INonFiniteStreamEventPayload, true>();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
public start(): void {
|
|
75
|
-
if (this._canceller !== null) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
this._canceller = new TaskCanceller();
|
|
79
|
-
|
|
80
|
-
const cancelSignal = this._canceller.signal;
|
|
81
|
-
const playbackObserver = this._playbackObserver;
|
|
82
|
-
const mediaElement = this._mediaElement;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
let isPollingEvents = false;
|
|
86
|
-
let cancelCurrentPolling = new TaskCanceller();
|
|
87
|
-
cancelCurrentPolling.linkToSignal(cancelSignal);
|
|
88
|
-
|
|
89
|
-
this._manifest.addEventListener("manifestUpdate", () => {
|
|
90
|
-
const prev = this._scheduledEventsRef.getValue();
|
|
91
|
-
this._scheduledEventsRef.setValue(refreshScheduledEventsList(prev, this._manifest));
|
|
92
|
-
}, this._canceller.signal);
|
|
93
|
-
this._scheduledEventsRef.setValue(refreshScheduledEventsList([], this._manifest));
|
|
94
|
-
|
|
95
|
-
this._scheduledEventsRef.onUpdate(({ length: scheduledEventsLength }) => {
|
|
96
|
-
if (scheduledEventsLength === 0) {
|
|
97
|
-
if (isPollingEvents) {
|
|
98
|
-
cancelCurrentPolling.cancel();
|
|
99
|
-
cancelCurrentPolling = new TaskCanceller();
|
|
100
|
-
cancelCurrentPolling.linkToSignal(cancelSignal);
|
|
101
|
-
isPollingEvents = false;
|
|
102
|
-
}
|
|
103
|
-
return;
|
|
104
|
-
} else if (isPollingEvents) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
isPollingEvents = true;
|
|
108
|
-
let oldObservation = constructObservation();
|
|
109
|
-
const checkStreamEvents = () => {
|
|
110
|
-
const newObservation = constructObservation();
|
|
111
|
-
this._emitStreamEvents(this._scheduledEventsRef.getValue(),
|
|
112
|
-
oldObservation,
|
|
113
|
-
newObservation,
|
|
114
|
-
cancelCurrentPolling.signal);
|
|
115
|
-
oldObservation = newObservation;
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
const { STREAM_EVENT_EMITTER_POLL_INTERVAL } = config.getCurrent();
|
|
119
|
-
const intervalId = setInterval(checkStreamEvents,
|
|
120
|
-
STREAM_EVENT_EMITTER_POLL_INTERVAL);
|
|
121
|
-
playbackObserver.listen(checkStreamEvents,
|
|
122
|
-
{ includeLastObservation: false,
|
|
123
|
-
clearSignal: cancelCurrentPolling.signal });
|
|
124
|
-
|
|
125
|
-
cancelCurrentPolling.signal.register(() => {
|
|
126
|
-
clearInterval(intervalId);
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
function constructObservation() {
|
|
130
|
-
const isSeeking = playbackObserver.getReference().getValue().seeking;
|
|
131
|
-
return { currentTime: mediaElement.currentTime,
|
|
132
|
-
isSeeking };
|
|
133
|
-
}
|
|
134
|
-
}, { emitCurrentValue: true, clearSignal: cancelSignal });
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
public stop(): void {
|
|
138
|
-
if (this._canceller !== null) {
|
|
139
|
-
this._canceller.cancel();
|
|
140
|
-
this._canceller = null;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Examine playback situation from playback observations to emit stream events and
|
|
146
|
-
* prepare set onExit callbacks if needed.
|
|
147
|
-
* @param {Array.<Object>} scheduledEvents
|
|
148
|
-
* @param {Object} oldObservation
|
|
149
|
-
* @param {Object} newObservation
|
|
150
|
-
* @param {Object} stopSignal
|
|
151
|
-
*/
|
|
152
|
-
private _emitStreamEvents(
|
|
153
|
-
scheduledEvents : Array<IStreamEventPayload|INonFiniteStreamEventPayload>,
|
|
154
|
-
oldObservation : { currentTime: number; isSeeking: boolean },
|
|
155
|
-
newObservation : { currentTime: number; isSeeking: boolean },
|
|
156
|
-
stopSignal : CancellationSignal
|
|
157
|
-
) : void {
|
|
158
|
-
const { currentTime: previousTime } = oldObservation;
|
|
159
|
-
const { isSeeking, currentTime } = newObservation;
|
|
160
|
-
const eventsToSend: IStreamEvent[] = [];
|
|
161
|
-
const eventsToExit: IPublicStreamEvent[] = [];
|
|
162
|
-
|
|
163
|
-
for (let i = 0; i < scheduledEvents.length; i++) {
|
|
164
|
-
const event = scheduledEvents[i];
|
|
165
|
-
const start = event.start;
|
|
166
|
-
const end = isFiniteStreamEvent(event) ? event.end :
|
|
167
|
-
undefined;
|
|
168
|
-
const isBeingPlayed = this._eventsBeingPlayed.has(event);
|
|
169
|
-
if (isBeingPlayed) {
|
|
170
|
-
if (start > currentTime ||
|
|
171
|
-
(end !== undefined && currentTime >= end)
|
|
172
|
-
) {
|
|
173
|
-
if (isFiniteStreamEvent(event)) {
|
|
174
|
-
eventsToExit.push(event.publicEvent);
|
|
175
|
-
}
|
|
176
|
-
this._eventsBeingPlayed.delete(event);
|
|
177
|
-
}
|
|
178
|
-
} else if (start <= currentTime &&
|
|
179
|
-
end !== undefined &&
|
|
180
|
-
currentTime < end) {
|
|
181
|
-
eventsToSend.push({ type: "stream-event",
|
|
182
|
-
value: event.publicEvent });
|
|
183
|
-
this._eventsBeingPlayed.set(event, true);
|
|
184
|
-
} else if (previousTime < start &&
|
|
185
|
-
currentTime >= (end ?? start)) {
|
|
186
|
-
if (isSeeking) {
|
|
187
|
-
eventsToSend.push({ type: "stream-event-skip",
|
|
188
|
-
value: event.publicEvent });
|
|
189
|
-
} else {
|
|
190
|
-
eventsToSend.push({ type: "stream-event",
|
|
191
|
-
value: event.publicEvent });
|
|
192
|
-
if (isFiniteStreamEvent(event)) {
|
|
193
|
-
eventsToExit.push(event.publicEvent);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
if (eventsToSend.length > 0) {
|
|
200
|
-
for (const event of eventsToSend) {
|
|
201
|
-
if (event.type === "stream-event") {
|
|
202
|
-
this.trigger("event", event.value);
|
|
203
|
-
} else {
|
|
204
|
-
this.trigger("eventSkip", event.value);
|
|
205
|
-
}
|
|
206
|
-
if (stopSignal.isCancelled()) {
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
if (eventsToExit.length > 0) {
|
|
213
|
-
for (const event of eventsToExit) {
|
|
214
|
-
if (typeof event.onExit === "function") {
|
|
215
|
-
event.onExit();
|
|
216
|
-
}
|
|
217
|
-
if (stopSignal.isCancelled()) {
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Tells if a stream event has a duration
|
|
227
|
-
* @param {Object} evt
|
|
228
|
-
* @returns {Boolean}
|
|
229
|
-
*/
|
|
230
|
-
function isFiniteStreamEvent(
|
|
231
|
-
evt: IStreamEventPayload|INonFiniteStreamEventPayload
|
|
232
|
-
): evt is IStreamEventPayload {
|
|
233
|
-
return (evt as IStreamEventPayload).end !== undefined;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/** Event emitted when a stream event is encountered. */
|
|
237
|
-
interface IStreamEventEvent {
|
|
238
|
-
type: "stream-event";
|
|
239
|
-
value: IPublicStreamEvent |
|
|
240
|
-
IPublicNonFiniteStreamEvent;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/** Event emitted when a stream event has just been skipped. */
|
|
244
|
-
interface IStreamEventSkipEvent {
|
|
245
|
-
type: "stream-event-skip";
|
|
246
|
-
value: IPublicStreamEvent |
|
|
247
|
-
IPublicNonFiniteStreamEvent;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/** Events sent by the `streamEventsEmitter`. */
|
|
251
|
-
type IStreamEvent = IStreamEventEvent |
|
|
252
|
-
IStreamEventSkipEvent;
|
|
@@ -1,46 +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 { IStreamEventData } from "../../../../public_types";
|
|
18
|
-
|
|
19
|
-
export interface IStreamEventPayload {
|
|
20
|
-
id?: string | undefined;
|
|
21
|
-
start: number;
|
|
22
|
-
end: number;
|
|
23
|
-
data: IStreamEventData;
|
|
24
|
-
publicEvent: IPublicStreamEvent;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface INonFiniteStreamEventPayload {
|
|
28
|
-
id?: string | undefined;
|
|
29
|
-
start: number;
|
|
30
|
-
data: IStreamEventData;
|
|
31
|
-
publicEvent: IPublicNonFiniteStreamEvent;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** The `value` of the event actually sent for an event with no associated end. */
|
|
35
|
-
export interface IPublicNonFiniteStreamEvent {
|
|
36
|
-
data: IStreamEventData;
|
|
37
|
-
start: number;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** The `value` of the event actually sent for an event with an associated end. */
|
|
41
|
-
export interface IPublicStreamEvent {
|
|
42
|
-
data: IStreamEventData;
|
|
43
|
-
start: number;
|
|
44
|
-
end: number;
|
|
45
|
-
onExit?: () => void;
|
|
46
|
-
}
|
|
@@ -1,74 +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 { MediaError } from "../../../errors";
|
|
18
|
-
import isNullOrUndefined from "../../../utils/is_null_or_undefined";
|
|
19
|
-
import { CancellationSignal } from "../../../utils/task_canceller";
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @param {HTMLMediaElement} mediaElement
|
|
23
|
-
* @param {Function} onError
|
|
24
|
-
* @param {Object} cancelSignal
|
|
25
|
-
*/
|
|
26
|
-
export default function listenToMediaError(
|
|
27
|
-
mediaElement : HTMLMediaElement,
|
|
28
|
-
onError : (error : MediaError) => void,
|
|
29
|
-
cancelSignal : CancellationSignal
|
|
30
|
-
) : void {
|
|
31
|
-
if (cancelSignal.isCancelled()) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
mediaElement.addEventListener("error", onMediaError);
|
|
36
|
-
|
|
37
|
-
cancelSignal.register(() => {
|
|
38
|
-
mediaElement.removeEventListener("error", onMediaError);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
function onMediaError() : void {
|
|
42
|
-
const mediaError = mediaElement.error;
|
|
43
|
-
let errorCode : number | undefined;
|
|
44
|
-
let errorMessage : string | undefined;
|
|
45
|
-
if (!isNullOrUndefined(mediaError)) {
|
|
46
|
-
errorCode = mediaError.code;
|
|
47
|
-
errorMessage = mediaError.message;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
switch (errorCode) {
|
|
51
|
-
case 1:
|
|
52
|
-
errorMessage = errorMessage ??
|
|
53
|
-
"The fetching of the associated resource was aborted by the user's request.";
|
|
54
|
-
return onError(new MediaError("MEDIA_ERR_ABORTED", errorMessage));
|
|
55
|
-
case 2:
|
|
56
|
-
errorMessage = errorMessage ??
|
|
57
|
-
"A network error occurred which prevented the media from being " +
|
|
58
|
-
"successfully fetched";
|
|
59
|
-
return onError(new MediaError("MEDIA_ERR_NETWORK", errorMessage));
|
|
60
|
-
case 3:
|
|
61
|
-
errorMessage = errorMessage ??
|
|
62
|
-
"An error occurred while trying to decode the media resource";
|
|
63
|
-
return onError(new MediaError("MEDIA_ERR_DECODE", errorMessage));
|
|
64
|
-
case 4:
|
|
65
|
-
errorMessage = errorMessage ??
|
|
66
|
-
"The media resource has been found to be unsuitable.";
|
|
67
|
-
return onError(new MediaError("MEDIA_ERR_SRC_NOT_SUPPORTED", errorMessage));
|
|
68
|
-
default:
|
|
69
|
-
errorMessage = errorMessage ??
|
|
70
|
-
"The HTMLMediaElement errored due to an unknown reason.";
|
|
71
|
-
return onError(new MediaError("MEDIA_ERR_UNKNOWN", errorMessage));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
# The SegmentBuffers ###########################################################
|
|
2
|
-
|
|
3
|
-
The ``core/segment_buffers`` directory contains the part of the code directly
|
|
4
|
-
related to the insertion and removal of media segments to a buffer for later
|
|
5
|
-
decoding.
|
|
6
|
-
|
|
7
|
-
This is either done through native `SourceBuffers`, which are JavaScript objects
|
|
8
|
-
implemented by the browser or a custom buffer implementation entirely defined
|
|
9
|
-
in the code of the RxPlayer.
|
|
10
|
-
|
|
11
|
-
The interface through which the RxPlayer's code push segment is called the
|
|
12
|
-
`SegmentBuffer`, it comes on top of the buffer implementation (regardless if it
|
|
13
|
-
comes from native `SourceBuffer` objects or if it is a custom one).
|
|
14
|
-
|
|
15
|
-
A `SegmentBuffer` is defined for a type of media (e.g. "video", "audio",
|
|
16
|
-
"text"...) they are defined in the `src/core/segment_buffers/implementations`
|
|
17
|
-
directory.
|
|
18
|
-
|
|
19
|
-
Here's a simplified architecture schema of the code in that directory:
|
|
20
|
-
```
|
|
21
|
-
+--------------------------------------------------------------------------+
|
|
22
|
-
| Rest of the RxPlayer's code |
|
|
23
|
-
+--------------------------------------------------------------------------+
|
|
24
|
-
| ^
|
|
25
|
-
Ask to get / create / remove | | Returns created SegmentBuffer or
|
|
26
|
-
SegmentBuffer for a given type | | wanted information
|
|
27
|
-
or get information about the | |
|
|
28
|
-
available types | |
|
|
29
|
-
| |
|
|
30
|
-
V |
|
|
31
|
-
+--------------------------------------------------------------------------+
|
|
32
|
-
| SegmentBuffersStore |
|
|
33
|
-
+--------------------------------------------------------------------------+
|
|
34
|
-
| | | |
|
|
35
|
-
| creates | creates | creates | creates
|
|
36
|
-
| (if needed) | (if needed) | (if needed) | (if needed)
|
|
37
|
-
| | | |
|
|
38
|
-
V V V V
|
|
39
|
-
+-------------+ +-------------+ +-------------+ +-------------+
|
|
40
|
-
| AudioVideo | | AudioVideo | | | | |
|
|
41
|
-
|SegmentBuffer| |SegmentBuffer| | Text | | Image |
|
|
42
|
-
| (video) | | (audio) | |SegmentBuffer| |SegmentBuffer|
|
|
43
|
-
| | | | | | | |
|
|
44
|
-
+-------------+ +-------------+ +-------------+ +-------------+
|
|
45
|
-
Uses both Uses both Uses Uses
|
|
46
|
-
| | | | | |
|
|
47
|
-
| | | | | |
|
|
48
|
-
V V V V V V
|
|
49
|
-
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+
|
|
50
|
-
| SI* | | SB* | | SI* | | SB* | | SI* | | SI* |
|
|
51
|
-
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+
|
|
52
|
-
|
|
53
|
-
SI*: SegmentInventory. Store the metadata on every segments currently
|
|
54
|
-
available in the associated media buffer.
|
|
55
|
-
|
|
56
|
-
SB*: SourceBuffer (browser implementation of a media buffer).
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
## SegmentBuffersStore #########################################################
|
|
62
|
-
|
|
63
|
-
The ``SegmentBuffersStore`` is the main export from there.
|
|
64
|
-
It facilitates the creation and destruction of these `SegmentBuffers`.
|
|
65
|
-
|
|
66
|
-
Its roles are to:
|
|
67
|
-
|
|
68
|
-
- announce which types of `SegmentBuffer` can be currently created on the
|
|
69
|
-
HTMLMediaElement (example of a type of buffer would be "audio", "video" or
|
|
70
|
-
"text").
|
|
71
|
-
|
|
72
|
-
For example, no "video" `SegmentBuffer` should be created on an `<audio>`
|
|
73
|
-
element (though it wouldn't cause any problem, it would be useless
|
|
74
|
-
as video cannot be rendered here). To give another example, you should not
|
|
75
|
-
create a "text" `SegmentBuffer` if no text track parser has been added to
|
|
76
|
-
the RxPlayer.
|
|
77
|
-
|
|
78
|
-
- Create only one `SegmentBuffer` instance per type of buffer.
|
|
79
|
-
|
|
80
|
-
Multiple `SegmentBuffer` for a single type could lead to browser issues
|
|
81
|
-
and to conflicts in the RxPlayer code.
|
|
82
|
-
|
|
83
|
-
- Provide a synchronization mechanism to announce when all `SourceBuffers` are
|
|
84
|
-
ready to receive segments.
|
|
85
|
-
|
|
86
|
-
I'll explain:
|
|
87
|
-
|
|
88
|
-
`SourceBuffers` are browser implementations for media data buffers.
|
|
89
|
-
They typically are used by the "video" and "audio" `SegmentBuffer`.
|
|
90
|
-
|
|
91
|
-
Among several other constraints, all `SourceBuffers` needed to play a
|
|
92
|
-
given content should be created before we can start pushing segments to any
|
|
93
|
-
of them. This is a browser limitation.
|
|
94
|
-
|
|
95
|
-
This is where this synchronization mechanism can become useful. The
|
|
96
|
-
`SegmentBuffersStore` will signal when all of the `SourceBuffers`
|
|
97
|
-
needed for the given contents are created, so that the rest of the RxPlayer
|
|
98
|
-
knows when it can begin to push segments to those.
|
|
99
|
-
|
|
100
|
-
Note that this means that `SourceBuffers` for an un-needed type (e.g. an
|
|
101
|
-
audio content won't need a video `SourceBuffer`) have to be explicitely
|
|
102
|
-
"disabled" here, as the `SegmentBuffersStore` cannot know whether it should
|
|
103
|
-
wait until those `SourceBuffers` are created of if you just don't need it.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
## SegmentBuffers implementations ##############################################
|
|
108
|
-
|
|
109
|
-
A `SegmentBuffer` is an Object maintaining a media buffer for a given type (e.g.
|
|
110
|
-
"audio", "video", "text" etc.) used for later decoding.
|
|
111
|
-
|
|
112
|
-
There exists several `SegmentBuffer` implementations in the RxPlayer's code
|
|
113
|
-
depending on the type concerned.
|
|
114
|
-
An implementation takes the form of a class with a well-defined API shared with
|
|
115
|
-
every other implementations. It allows to push segments, remove data and
|
|
116
|
-
retrieve information about the data that is contained within it.
|
|
117
|
-
|
|
118
|
-
At its core, it can either rely on a browser-defined `SourceBuffer` Object or
|
|
119
|
-
can be entirely defined in the code of the RxPlayer.
|
|
120
|
-
|
|
121
|
-
A `SegmentBuffer` also keeps an inventory containing the metadata of all
|
|
122
|
-
segments currently contained in it, with the help of a `SegmentInventory`
|
|
123
|
-
Object (see corresponding chapter).
|
|
124
|
-
|
|
125
|
-
It is the main interface the rest of the RxPlayer code has with media buffers.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
## BufferGarbageCollector ######################################################
|
|
130
|
-
|
|
131
|
-
The `BufferGarbageCollector` is a function used by the RxPlayer to
|
|
132
|
-
periodically perform "garbage collection" manually on a given
|
|
133
|
-
`SegmentBuffer`.
|
|
134
|
-
|
|
135
|
-
It is based on the following building bricks:
|
|
136
|
-
|
|
137
|
-
- A playback observer emitting the current time (in seconds) when the garbage
|
|
138
|
-
collection task should be performed
|
|
139
|
-
|
|
140
|
-
- The `SegmentBuffer` on which the garbage collection task should run
|
|
141
|
-
|
|
142
|
-
- The maximum time margin authorized for the buffer behind the current
|
|
143
|
-
position
|
|
144
|
-
|
|
145
|
-
- The maximum time margin authorized for the buffer ahead of the current
|
|
146
|
-
position
|
|
147
|
-
|
|
148
|
-
Basically, each times the given playback observer emits, the
|
|
149
|
-
BufferGarbageCollector will ensure that the volume of data before and ahead
|
|
150
|
-
of the current position does not grow into a larger value than what is
|
|
151
|
-
configured.
|
|
152
|
-
|
|
153
|
-
For now, its code is completely decoupled for the rest of the code in that
|
|
154
|
-
directory. This is why it is not included in the schema included on the top of
|
|
155
|
-
this page.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
## The SegmentInventory ########################################################
|
|
160
|
-
|
|
161
|
-
The SegmentInventory is a class which registers some information about every
|
|
162
|
-
segments currently present in a `SegmentBuffer`.
|
|
163
|
-
|
|
164
|
-
One of them is created for every new `SegmentBuffer`.
|
|
165
|
-
|
|
166
|
-
This helps the RxPlayer to avoid re-downloading segments unnecessarily and know
|
|
167
|
-
when old one have been garbage collected.
|
|
168
|
-
For example, we could decide not to re-download a segment in any of the
|
|
169
|
-
following cases:
|
|
170
|
-
|
|
171
|
-
- The same segment is already completely present in the `SegmentBuffer`
|
|
172
|
-
|
|
173
|
-
- The same segment is partially present in the `SegmentBuffer` (read: a part
|
|
174
|
-
has been removed or garbage collected), but enough is still there for what
|
|
175
|
-
we want to play
|
|
176
|
-
|
|
177
|
-
- Another segment is in the `SegmentBuffer` at the wanted time, but it is the
|
|
178
|
-
same content in a better or samey quality
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
On the contrary, we need to download the segment in the following cases:
|
|
182
|
-
|
|
183
|
-
- No segment has been pushed at the given time
|
|
184
|
-
|
|
185
|
-
- A segment has been pushed, but at a lower quality than what we currently
|
|
186
|
-
want
|
|
187
|
-
|
|
188
|
-
- A segment has been pushed at a sufficient quality, but we miss to much of it
|
|
189
|
-
for our needs (too much has been garbage collected, removed or the segment
|
|
190
|
-
is just too short).
|
|
191
|
-
|
|
192
|
-
- A segment has been pushed but is not exactly the content we want
|
|
193
|
-
(example: it is in another language)
|
|
194
|
-
|
|
195
|
-
Thanks to the SegmentInventory, we can infer on which situation we are at any time.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
### Implementation #############################################################
|
|
200
|
-
|
|
201
|
-
The SegmentInventory is merely a "Store", meaning it will just store and
|
|
202
|
-
process the data you give to it, without searching for the information itself.
|
|
203
|
-
|
|
204
|
-
It contains in its state an array, the _inventory_, which stores every segments
|
|
205
|
-
which should be present in the `SegmentBuffer` in a chronological order.
|
|
206
|
-
|
|
207
|
-
To construct this inventory, three methods can be used:
|
|
208
|
-
|
|
209
|
-
- one to add information about a new chunk (part of a segment or the whole
|
|
210
|
-
segment), which should have been pushed to the `SegmentBuffer`.
|
|
211
|
-
|
|
212
|
-
- one to indicate that every chunks from a given segment have been pushed.
|
|
213
|
-
|
|
214
|
-
- one to synchronize the currently pushed segments with what the
|
|
215
|
-
`SegmentBuffer` says it has buffered (which can be different for example
|
|
216
|
-
after an automatic garbage collection).
|
|
217
|
-
|
|
218
|
-
After calling the synchronization one, you should be able to tell which parts of
|
|
219
|
-
which segments are currently _living_ in your `SegmentBuffer`.
|