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
package/CONTRIBUTING.md
DELETED
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
# Contributing to the RxPlayer
|
|
2
|
-
|
|
3
|
-
## Issues and new features
|
|
4
|
-
|
|
5
|
-
If you detect a problem with the RxPlayer, or if you desire a new feature,
|
|
6
|
-
please first [open an issue on the github's
|
|
7
|
-
repository](https://github.com/canalplus/rx-player/issues).
|
|
8
|
-
We'll try to acknowledge it as soon as possible.
|
|
9
|
-
|
|
10
|
-
If that issue is not already worked on, we will usually accept pull requests.
|
|
11
|
-
Those have to follow the conventions defined below.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
## Important code concepts
|
|
16
|
-
|
|
17
|
-
### Code documentation
|
|
18
|
-
|
|
19
|
-
We try to put `README.md` files inside every significant directories inside
|
|
20
|
-
`/src` to provide a global architecture documentation of that directory
|
|
21
|
-
specifically.
|
|
22
|
-
|
|
23
|
-
You can try to start understanding a piece of RxPlayer code by navigating
|
|
24
|
-
to that file. Understand that the documented behavior may be out of date
|
|
25
|
-
(in which case you're welcome to update it or open an issue) though even in
|
|
26
|
-
that case, it is a good starting point to understand the directory's role.
|
|
27
|
-
Likewise, don't forget to update it if a change you made to the code
|
|
28
|
-
necessitates a documentation change.
|
|
29
|
-
|
|
30
|
-
Also, for a more exhaustive approach to the documentation of the project's file
|
|
31
|
-
organization, you can look at [`FILES.md`](./FILES.md).
|
|
32
|
-
|
|
33
|
-
### When renaming or deleting functions, classes or variables
|
|
34
|
-
|
|
35
|
-
When Refactoring/Renaming, make sure to grep any of the renamed class / function
|
|
36
|
-
/ variable's name as they may also be referenced in documentation and code
|
|
37
|
-
comments. Same thing for a directory or file name.
|
|
38
|
-
|
|
39
|
-
If the name is hard to grep (e.g. the name is too generic and thus has too many
|
|
40
|
-
false positives), you can generally reduce the area to comments in the same file
|
|
41
|
-
and documentation files in the same directory.
|
|
42
|
-
|
|
43
|
-
### `features` object
|
|
44
|
-
|
|
45
|
-
Some files should not be imported directly but only be accessed by going through
|
|
46
|
-
the `features` object exported at `/src/features`. This is to reduce bundle size
|
|
47
|
-
when an application doesn't need all of the RxPlayer's features.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
## Code style
|
|
52
|
-
|
|
53
|
-
### Linting
|
|
54
|
-
|
|
55
|
-
The code style in `src` is automatically checked by a "linter", `eslint`.
|
|
56
|
-
|
|
57
|
-
It basically follows those principles:
|
|
58
|
-
- 2 spaces indentation
|
|
59
|
-
- 90 columns maximum
|
|
60
|
-
- readability and being explicit is generally better than performance and
|
|
61
|
-
being smart
|
|
62
|
-
|
|
63
|
-
You can easily check if you followed our style rules by calling `npm run lint`.
|
|
64
|
-
|
|
65
|
-
You can also check the style of the demo page (in the `demo` directory) by
|
|
66
|
-
calling `npm run lint:demo`, or the style of the test files (in the `tests`
|
|
67
|
-
directory) by calling `npm run lint:tests`.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
### Types
|
|
71
|
-
|
|
72
|
-
We try to be as strict as possible with types:
|
|
73
|
-
|
|
74
|
-
- the `any` type should be avoided
|
|
75
|
-
|
|
76
|
-
- the `as` TypeScript keyword, used for type casting, should also be avoided
|
|
77
|
-
as much as possible.
|
|
78
|
-
|
|
79
|
-
This is to be sure we can detect as much as possible type errors automatically
|
|
80
|
-
with TypeScript.
|
|
81
|
-
|
|
82
|
-
### `type` and `interface` typing
|
|
83
|
-
|
|
84
|
-
TypeScript's `type` and `interface` should all be named beginning with the
|
|
85
|
-
letter `I`, for easier identification purposes\*:
|
|
86
|
-
```ts
|
|
87
|
-
interface IMyObject {
|
|
88
|
-
someKey: string;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
type IStringOrNumber = string |
|
|
92
|
-
number;
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
`enum`s and `const enum`s, which have the particularity in TypeScript of
|
|
96
|
-
actually having an influence on the outputed code, do not follow this rule
|
|
97
|
-
however (because those are not just types erased during transpilation):
|
|
98
|
-
```ts
|
|
99
|
-
enum MyEnum {
|
|
100
|
-
ValueA = 1,
|
|
101
|
-
ValueB = 2,
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
const enum MyConstEnum {
|
|
105
|
-
Value1 = 1,
|
|
106
|
-
Value2 = 2,
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
\*We know that this rule is a controversial subject amongst TypeScript
|
|
111
|
-
developpers, yet we still decide to enforce it for now.
|
|
112
|
-
|
|
113
|
-
### Forbidden functions and classes
|
|
114
|
-
|
|
115
|
-
Some native functions, methods or classes should never be used to ensure
|
|
116
|
-
compatibility with most browsers. To work around those, we usually rely on
|
|
117
|
-
"ponyfills" which are JavaScript re-implementations.
|
|
118
|
-
|
|
119
|
-
This concerns the following static methods:
|
|
120
|
-
- `Object.assign`: use `src/utils/object_assign.ts` instead
|
|
121
|
-
- `Object.values`: use `src/utils/object_values.ts` instead
|
|
122
|
-
|
|
123
|
-
And the following methods:
|
|
124
|
-
- `Array.prototype.includes`: use `src/utils/array_includes.ts` instead
|
|
125
|
-
- `Array.prototype.find`: use `src/utils/array_find.ts` instead
|
|
126
|
-
- `Array.prototype.findIndex`: use `src/utils/array_find_index.ts` instead
|
|
127
|
-
- `String.prototype.startsWith`: use `src/utils/starts_with.ts` instead
|
|
128
|
-
- `String.prototype.substr`: use `String.prototype.substring` instead
|
|
129
|
-
- `NodeList.prototype.forEach`: use a regular for loop instead
|
|
130
|
-
- `Promise.prototype.finally`: Use `then` or both `then` and `catch` of that
|
|
131
|
-
Promise's methods instead.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
## The demo page
|
|
135
|
-
|
|
136
|
-
### Building the demo and serving it
|
|
137
|
-
|
|
138
|
-
You might want to quickly test your code modification(s) on a real use case.
|
|
139
|
-
|
|
140
|
-
For those types of need, we developped two demo pages:
|
|
141
|
-
|
|
142
|
-
- the _full demo_ page, which is also the one used to showcase the player.
|
|
143
|
-
|
|
144
|
-
This demo has a user-friendly interface and allow the most frequent API
|
|
145
|
-
interactions.
|
|
146
|
-
|
|
147
|
-
It also exposes both the RxPlayer class through `window.RxPlayer` and the
|
|
148
|
-
rxPlayer instance through `window.rxPlayer` - both in the global scope. You
|
|
149
|
-
can thus open a debugger/inspector in your favorite browser to exploit
|
|
150
|
-
directly the player's API.
|
|
151
|
-
|
|
152
|
-
- the _standalone demo_ page, which is just a `<video />` tag linked to a
|
|
153
|
-
RxPlayer instance.
|
|
154
|
-
|
|
155
|
-
In this demo too, `window.RxPlayer` and `window.rxPlayer` link to the
|
|
156
|
-
RxPlayer class and the rxPlayer instance respectively.
|
|
157
|
-
|
|
158
|
-
To use the full demo page, you can build it and run a local HTTP server on the
|
|
159
|
-
port 8000 by running the following npm script.
|
|
160
|
-
```sh
|
|
161
|
-
npm run start
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
To use the standalone demo page, you can build it and run a local HTTP server on
|
|
165
|
-
the port 8001 by running the following npm script.
|
|
166
|
-
```sh
|
|
167
|
-
npm run standalone
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Both will detect when the RxPlayer's files (or even the demo files) are updated
|
|
171
|
-
and perform a new build when that's the case. In that way, the server will
|
|
172
|
-
always serve the last local version of the code. Note however that hot-reload is
|
|
173
|
-
not enabled currently, you'll have to refresh the page yourself.
|
|
174
|
-
|
|
175
|
-
### Serving the demo page through HTTPS
|
|
176
|
-
|
|
177
|
-
You might want to serve the demo via HTTPS. This is for example needed to be
|
|
178
|
-
able to play encrypted contents in Chrome.
|
|
179
|
-
|
|
180
|
-
Thankfully, we have an npm script which generates a local self-signed
|
|
181
|
-
certificate with the help of `openssl`:
|
|
182
|
-
```sh
|
|
183
|
-
npm run certificate
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
You can then run the same demo script defined previously.
|
|
187
|
-
The _full demo_ will now serve HTTPS through the port 8443 and the _standalone
|
|
188
|
-
demo_ through the port 8444. Both still serve HTTP on the same ports than
|
|
189
|
-
before.
|
|
190
|
-
|
|
191
|
-
Note that such self-signed certificates are usually (rightfully) considered
|
|
192
|
-
suspicious by web browsers. As such, you might first encounter a warning screen
|
|
193
|
-
when going to one of the demo pages in HTTPS. In most browsers, you can however
|
|
194
|
-
safely ignore that warning.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
## Creating a commit
|
|
198
|
-
|
|
199
|
-
### Checks
|
|
200
|
-
|
|
201
|
-
Every commits in a PR should pass our quick checks (linter and TypeScript
|
|
202
|
-
check). To check if that's the case, you can run locally the `check`
|
|
203
|
-
script by calling `npm run check`.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
## The test suite
|
|
207
|
-
|
|
208
|
-
### Unit tests
|
|
209
|
-
|
|
210
|
-
Unit tests test function implementations. Mostly to check if they give a sane
|
|
211
|
-
output for every input given.
|
|
212
|
-
|
|
213
|
-
Writing unit tests for new code is encouraged.
|
|
214
|
-
|
|
215
|
-
Unit tests are written in a \_\_tests\_\_ directory, itself created in the same
|
|
216
|
-
directory that the code it tests.
|
|
217
|
-
|
|
218
|
-
They are written and run with the help of the Jest library and are named the
|
|
219
|
-
following way: `filename_containing_the_function_tested.test.ts`.
|
|
220
|
-
|
|
221
|
-
To understand how to create a new test file, you can take inspiration from
|
|
222
|
-
the current unit tests.
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
### Integration tests
|
|
226
|
-
|
|
227
|
-
What we call integration tests are tests testing the entire API of the RxPlayer.
|
|
228
|
-
|
|
229
|
-
New integration tests are not required when a new code is added. Just make sure
|
|
230
|
-
that all those tests pass before doing a pull request by running:
|
|
231
|
-
`npm run test:integration`.
|
|
232
|
-
|
|
233
|
-
It you want to improve our integration tests, you are welcome to do so.
|
|
234
|
-
Those are wrote in `tests/integration` with the help of the Mocha, Chai and
|
|
235
|
-
Sinon libraries.
|
|
236
|
-
|
|
237
|
-
We also use a homemade library and server to serve media contents to our tests.
|
|
238
|
-
If you want to know how it works, we invite you to rely on the already created
|
|
239
|
-
tests and to read the corresponding files.
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
### Memory tests
|
|
243
|
-
|
|
244
|
-
Memory tests replicate simple scenarios and try to detect memory leaks.
|
|
245
|
-
|
|
246
|
-
You can also help us improving our memory tests. Those are written in
|
|
247
|
-
`test/memory`. The testing stack used is Mocha, Chai and Sinon.
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
## Documentation
|
|
252
|
-
|
|
253
|
-
The documentation is written in the `doc` directory, at the root of the project.
|
|
254
|
-
|
|
255
|
-
The content of `doc/generated` contains an HTML version of the Markdown files
|
|
256
|
-
written in the other directories. It is automatically generated from those by
|
|
257
|
-
calling the `doc` script through `npm run doc`.
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
## Opening a pull request
|
|
262
|
-
|
|
263
|
-
### Which branch to merge to
|
|
264
|
-
|
|
265
|
-
Pull requests for bug fixes, new tests or documentation should be done on the
|
|
266
|
-
`master` branch.
|
|
267
|
-
|
|
268
|
-
Pull requests for new features and breaking changes will have to be performed
|
|
269
|
-
on the `next` branch.
|
|
270
|
-
|
|
271
|
-
If you don't know on which branch to do a pull request, please open it on
|
|
272
|
-
`master`, we will know how to redirect it to the right one.
|
package/FILES.md
DELETED
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
# File architecture
|
|
2
|
-
|
|
3
|
-
This page describes how the player files are organized. Each chapter go through
|
|
4
|
-
a single directory or subdirectory, in alphabetical order.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## `demo/`: Demo applications
|
|
8
|
-
|
|
9
|
-
The `demo/` directory contains demos of application using the RxPlayer.
|
|
10
|
-
|
|
11
|
-
At the time of writing, there are two distinct demos:
|
|
12
|
-
|
|
13
|
-
- _full_: Demo with a graphic interface, written with the React library, to
|
|
14
|
-
showcase what the player can do
|
|
15
|
-
|
|
16
|
-
- _standalone_: Just expose the rx-player in ``window``, to allow scripted
|
|
17
|
-
interactions with it in the console. The player is linked to a video tag in
|
|
18
|
-
the displayed page.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## `dist/`: Builds
|
|
22
|
-
|
|
23
|
-
The `dist/` directory stores the player builds of the last version released.
|
|
24
|
-
|
|
25
|
-
Contains the minified (``rx-player.min.js``) and the non-minified files
|
|
26
|
-
(``rx-player.js``). Both are automatically generated with scripts at every new
|
|
27
|
-
release.
|
|
28
|
-
|
|
29
|
-
Two directories, namely ``_esm5.raw`` and ``_esm5.processed`` can also be
|
|
30
|
-
generated in here if the right scripts are called.
|
|
31
|
-
These allow to publish more modular codebases to npm.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## `doc/`: Documentation
|
|
35
|
-
|
|
36
|
-
The `doc/` directory contains the RxPlayer's documentation, mostly written in
|
|
37
|
-
markdown, on various subjects related to the rx-player:
|
|
38
|
-
- API documentation
|
|
39
|
-
- tutorials
|
|
40
|
-
- list of deprecated APIs...
|
|
41
|
-
- how to transition between RxPlayer versions
|
|
42
|
-
- how to contribute
|
|
43
|
-
- etc.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
## `scripts/`: Project-managing scripts
|
|
47
|
-
|
|
48
|
-
The `scripts/` directory contains various scripts used to help the test and the
|
|
49
|
-
management of the player code.
|
|
50
|
-
|
|
51
|
-
For example:
|
|
52
|
-
- generating one of the demo and starting the server to run it
|
|
53
|
-
- deploying the demo or doc to github pages
|
|
54
|
-
- updating the player version
|
|
55
|
-
- generating the rx-player build before publishing on npm
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
## `src/`: The source code
|
|
59
|
-
|
|
60
|
-
The `src` directory contains the entire source code of the rx-player.
|
|
61
|
-
|
|
62
|
-
It is subdivized into subdirectories which are defined here.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
### `src/compat/`: Compatibility files
|
|
66
|
-
|
|
67
|
-
``src/compat`` contains functions allowing to use browser APIs in a
|
|
68
|
-
cross-browser manner.
|
|
69
|
-
|
|
70
|
-
For example, if an event does not have the same name depending on the browser,
|
|
71
|
-
the compat files will expose a simple function allowing to make sure the event
|
|
72
|
-
is catched, taking the task of registering the right event on the callback
|
|
73
|
-
given.
|
|
74
|
-
|
|
75
|
-
Every functions needed in the rest of the code are exported in
|
|
76
|
-
``compat/index.js``, making it easier to import (e.g. by just doing
|
|
77
|
-
``import { whatINeed } from "../compat";``)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
### `src/core/`: Core logic
|
|
81
|
-
|
|
82
|
-
Defines the logic and behavior of the player, regardless of the browser and of
|
|
83
|
-
the streaming technology used.
|
|
84
|
-
|
|
85
|
-
That's where:
|
|
86
|
-
- the api is defined
|
|
87
|
-
- the MSE and EME APIs are called and managed
|
|
88
|
-
- the segments are downloaded and pushed to then be decoded by the browser
|
|
89
|
-
- adaptive bitrate strategies are set
|
|
90
|
-
|
|
91
|
-
This directory contains other subdirectories which are listed in the next
|
|
92
|
-
chapter.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
### `src/errors/`: Error definitions
|
|
96
|
-
|
|
97
|
-
Contains the definition of the error classes used in the rx-player and
|
|
98
|
-
accessible through the API.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
### `src/experimental/`: Experimental features
|
|
102
|
-
|
|
103
|
-
You will find here experimental features. Those are tested features who might
|
|
104
|
-
completely change their API in new player versions.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
### `src/features/`: Feature switching
|
|
108
|
-
|
|
109
|
-
This manage activated or deactivated features (e.g. DASH, TTML subtitles
|
|
110
|
-
parsing).
|
|
111
|
-
|
|
112
|
-
It exports an object defining the different activated features and provide utils
|
|
113
|
-
to initialize and update them.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
### `src/manifest/`: Manifest Object definition
|
|
117
|
-
|
|
118
|
-
Defines a common `Manifest` class, regardless of the streaming technology (DASH,
|
|
119
|
-
HSS...). This class is then used by the rest of the RxPlayer, to allow
|
|
120
|
-
interaction with it without considering the underlying technology used.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
### `src/transports/`: Streaming protocols implementation
|
|
124
|
-
|
|
125
|
-
Defines a common interface for multiple streaming technologies (DASH, HSS).
|
|
126
|
-
|
|
127
|
-
What is exported there are functions to load:
|
|
128
|
-
- Manifests/MPDs
|
|
129
|
-
- video/audio segments
|
|
130
|
-
- subtitles tracks
|
|
131
|
-
- image tracks
|
|
132
|
-
|
|
133
|
-
For different streaming technologies.
|
|
134
|
-
|
|
135
|
-
As in most of the code of the rx-player, everything used in the other parts of
|
|
136
|
-
the code is exported in the index.js file at the root of this directory.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
### `src/parsers/`: The parsers
|
|
140
|
-
|
|
141
|
-
Functions to parse various formats into the same interface.
|
|
142
|
-
|
|
143
|
-
The parsed data being either:
|
|
144
|
-
- Manifest documents: DASH's MPD, HSS's Manifest...
|
|
145
|
-
- containers: ISOBMFF (CMAF, fMP4, MP4), Matroska (MKV, WEBM)
|
|
146
|
-
- text tracks: TTML, SAMI, SRT, WebVTT
|
|
147
|
-
- image containers: BIF
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
### `src/typings/`: Typescript typings
|
|
151
|
-
|
|
152
|
-
This directory contains only declaration files for TypeScript. It is
|
|
153
|
-
automatically added as a `typeRoots` when the TypeScript code is transpiled.
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
### `src/utils/`: Util functions
|
|
157
|
-
|
|
158
|
-
This directory contains general helpers which are used in different parts of the
|
|
159
|
-
rx-player code.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
## Inside `src/core/`
|
|
163
|
-
|
|
164
|
-
As written in the previous chapter, this is the "core" of the player, where the
|
|
165
|
-
logic is defined.
|
|
166
|
-
|
|
167
|
-
As this directory is versatile and complicated, it also deserves its own chapter.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
### `src/core/adaptive/`: Adaptive BitRate logic
|
|
171
|
-
|
|
172
|
-
Defines functions which manages the adaptive streaming part of the player.
|
|
173
|
-
|
|
174
|
-
This manager takes various observables/options as inputs to record the current
|
|
175
|
-
situation of the player, give an opinion about the best media tracks to choose,
|
|
176
|
-
and provide methods allowing to get/set various adaptive-related options.
|
|
177
|
-
|
|
178
|
-
Despite containing several files and using several classes, only the
|
|
179
|
-
`AdaptiveRepresentationSelector` exported in `adaptive/index.js` should be
|
|
180
|
-
needed by the rest of the core.
|
|
181
|
-
This allows to isolate this complex part and facilitate future refactoring and
|
|
182
|
-
improvements.
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
### `src/core/api/`: API definition
|
|
186
|
-
|
|
187
|
-
Defines the rx-player API. This is the part the library user will directly
|
|
188
|
-
interact with.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
### `src/core/stream/`: Segment-picking logic
|
|
192
|
-
|
|
193
|
-
The code there calculate which segments should be downloaded, ask for their
|
|
194
|
-
download and push the segments into the `SegmentBuffers`.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
### `src/core/decrypt/`: Decryption handling
|
|
198
|
-
|
|
199
|
-
Defines functions allowing to handle encrypted contents through the EME browser
|
|
200
|
-
APIs.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
### `src/core/fetchers/`: Load resources
|
|
204
|
-
|
|
205
|
-
Handle the segments and Manifest downloading pipelines (load and parse) as
|
|
206
|
-
defined in the ``src/transports/`` directory.
|
|
207
|
-
|
|
208
|
-
This is the layer directly interacting with the transport part (HSS, DASH).
|
|
209
|
-
It facilitates the role of loading the Manifest and new segments for the rest of
|
|
210
|
-
the core.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
### `src/core/segment_buffers/`: Media buffers
|
|
214
|
-
|
|
215
|
-
Code allowing to interact with the media buffers called `SegmentBuffers`.
|
|
216
|
-
|
|
217
|
-
Those are the Objects to which segments are pushed so they can be decoded at the
|
|
218
|
-
right time.
|
|
219
|
-
|
|
220
|
-
For Audio and Video, `SegmentBuffers` rely on a native `SourceBuffer` object,
|
|
221
|
-
already provided by the browser,
|
|
222
|
-
for other type of contents (like subtitles), we rely on completely custom media
|
|
223
|
-
buffers implementations.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
### `src/core/init/`: Content initialization and orchestration
|
|
227
|
-
|
|
228
|
-
This is the central part which download manifests, initialize MSE and EME APIs,
|
|
229
|
-
instanciate the central `StreamOrchestrator` (which will allow to download and
|
|
230
|
-
push segments so the content can play) and link together many subparts of the
|
|
231
|
-
player.
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
## `src/**/__tests__`: Unit tests
|
|
235
|
-
|
|
236
|
-
You will find multiple directories named `__tests__` in the RxPlayer.
|
|
237
|
-
Those contain unit tests and are put in the same directory than the code it
|
|
238
|
-
tests.
|
|
239
|
-
|
|
240
|
-
Most unit tests files contain only tests for a single source file. Those will
|
|
241
|
-
be put directly at the root of `__tests__` under the name
|
|
242
|
-
`<ORIGINAL_SRC_FILE>.test.ts` (where `<ORIGINAL_SRC_FILE>` is the filename of
|
|
243
|
-
the tested file).
|
|
244
|
-
|
|
245
|
-
`__tests__` directories can also contain files defining tests for multiple files
|
|
246
|
-
contained in the tested directory.
|
|
247
|
-
Those can be quicker to write and easier to maintain at the expense of being
|
|
248
|
-
less thorough.
|
|
249
|
-
|
|
250
|
-
Those type of "global" unit tests are put in a special `__global__` directory,
|
|
251
|
-
itself directly at the root of the corresponding `__tests__` directory.
|
|
252
|
-
Their filename don't follow the same convention than single-source unit tests
|
|
253
|
-
but should still be suffixed by `.test.ts`.
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
## `tests/`: The RxPlayer's general tests
|
|
257
|
-
|
|
258
|
-
This directory contains most testing code for the RxPlayer.
|
|
259
|
-
|
|
260
|
-
The rx-player contains multiple type of tests:
|
|
261
|
-
|
|
262
|
-
- integration tests: test the whole player API and its behavior when playing
|
|
263
|
-
different contents. The main goal of those tests is to quickly detect
|
|
264
|
-
regressions.
|
|
265
|
-
|
|
266
|
-
Those are entirely written in the ``tests/integration`` sub-directory.
|
|
267
|
-
|
|
268
|
-
- conformance tests: Provide standalone page which allows to quickly test the
|
|
269
|
-
support of various media-related API on a given device and/or browser.
|
|
270
|
-
|
|
271
|
-
The html documents you will find here are basic templates that can be easily
|
|
272
|
-
modified and deployed for quick testing.
|
|
273
|
-
|
|
274
|
-
- unit tests: test specific parts of the code. The main goal here is to check
|
|
275
|
-
the implementation of smaller units of code.
|
|
276
|
-
|
|
277
|
-
They are written alongside the code, in ``__tests__``
|
|
278
|
-
directories. All its configuration can be found at the root of the project,
|
|
279
|
-
in `jest.config.js` (we use the jest library for unit tests).
|
|
280
|
-
|
|
281
|
-
- memory tests: test the memory usage of the player.
|
|
282
|
-
|
|
283
|
-
They are entirely written in the ``tests/memory`` subdirectory.
|
package/jest.config.js
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/* eslint-env node */
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
// to uncomment to display logs.
|
|
5
|
-
// verbose: false,
|
|
6
|
-
roots: ["<rootDir>/src"],
|
|
7
|
-
preset: "ts-jest",
|
|
8
|
-
testEnvironment: "jsdom",
|
|
9
|
-
testMatch: ["**/?(*.)+(spec|test).[jt]s?(x)"],
|
|
10
|
-
collectCoverageFrom: [
|
|
11
|
-
"src/**/*.ts",
|
|
12
|
-
"!src/**/index.ts",
|
|
13
|
-
"!**/__tests__/**",
|
|
14
|
-
],
|
|
15
|
-
transform: {
|
|
16
|
-
"^.+\\.tsx?$": [
|
|
17
|
-
"ts-jest",
|
|
18
|
-
{
|
|
19
|
-
tsconfig: {
|
|
20
|
-
target: "es2017",
|
|
21
|
-
lib: ["es2017", "dom"],
|
|
22
|
-
forceConsistentCasingInFileNames: true,
|
|
23
|
-
skipLibCheck: false,
|
|
24
|
-
noImplicitAny: true,
|
|
25
|
-
strict: true,
|
|
26
|
-
strictNullChecks: true,
|
|
27
|
-
strictPropertyInitialization: true,
|
|
28
|
-
noUnusedParameters: true,
|
|
29
|
-
noUnusedLocals: true,
|
|
30
|
-
types: ["jest"],
|
|
31
|
-
module: "es2015",
|
|
32
|
-
moduleResolution: "node",
|
|
33
|
-
esModuleInterop: true,
|
|
34
|
-
typeRoots: [
|
|
35
|
-
"./src/typings",
|
|
36
|
-
"./node_modules/@types",
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
},
|
|
42
|
-
globals: {
|
|
43
|
-
__FEATURES__: {
|
|
44
|
-
IS_DISABLED: 0,
|
|
45
|
-
IS_ENABLED: 1,
|
|
46
|
-
|
|
47
|
-
BIF_PARSER: 1,
|
|
48
|
-
DASH: 1,
|
|
49
|
-
DIRECTFILE: 1,
|
|
50
|
-
EME: 1,
|
|
51
|
-
HTML_SAMI: 1,
|
|
52
|
-
HTML_SRT: 1,
|
|
53
|
-
HTML_TTML: 1,
|
|
54
|
-
HTML_VTT: 1,
|
|
55
|
-
LOCAL_MANIFEST: 1,
|
|
56
|
-
METAPLAYLIST: 1,
|
|
57
|
-
DEBUG_ELEMENT: 1,
|
|
58
|
-
NATIVE_SAMI: 1,
|
|
59
|
-
NATIVE_SRT: 1,
|
|
60
|
-
NATIVE_TTML: 1,
|
|
61
|
-
NATIVE_VTT: 1,
|
|
62
|
-
SMOOTH: 1,
|
|
63
|
-
},
|
|
64
|
-
__ENVIRONMENT__: {
|
|
65
|
-
PRODUCTION: 0,
|
|
66
|
-
DEV: 1,
|
|
67
|
-
CURRENT_ENV: 1,
|
|
68
|
-
},
|
|
69
|
-
__LOGGER_LEVEL__: {
|
|
70
|
-
CURRENT_LEVEL: "\"NONE\"",
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
};
|