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,198 +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 { CustomLoaderError } from "../../errors";
|
|
18
|
-
import { ICdnMetadata } from "../../parsers/manifest";
|
|
19
|
-
import {
|
|
20
|
-
ILocalManifestInitSegmentLoader,
|
|
21
|
-
ILocalManifestSegmentLoader,
|
|
22
|
-
} from "../../parsers/manifest/local";
|
|
23
|
-
import createCancellablePromise from "../../utils/create_cancellable_promise";
|
|
24
|
-
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
25
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
26
|
-
import {
|
|
27
|
-
ISegmentContext,
|
|
28
|
-
ISegmentLoaderCallbacks,
|
|
29
|
-
ISegmentLoaderOptions,
|
|
30
|
-
ISegmentLoaderResultSegmentLoaded,
|
|
31
|
-
} from "../types";
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @param {Function} customSegmentLoader
|
|
35
|
-
* @param {Object} cancelSignal
|
|
36
|
-
* @returns {Promise}
|
|
37
|
-
*/
|
|
38
|
-
function loadInitSegment(
|
|
39
|
-
customSegmentLoader : ILocalManifestInitSegmentLoader,
|
|
40
|
-
cancelSignal : CancellationSignal
|
|
41
|
-
) : Promise<ISegmentLoaderResultSegmentLoaded<ArrayBuffer | null>> {
|
|
42
|
-
return createCancellablePromise(cancelSignal, (res, rej) => {
|
|
43
|
-
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
44
|
-
let hasFinished = false;
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Callback triggered when the custom segment loader has a response.
|
|
48
|
-
* @param {Object} _args
|
|
49
|
-
*/
|
|
50
|
-
const resolve = (_args : {
|
|
51
|
-
data : ArrayBuffer | null;
|
|
52
|
-
size? : number;
|
|
53
|
-
duration? : number;
|
|
54
|
-
}) => {
|
|
55
|
-
if (hasFinished || cancelSignal.isCancelled()) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
hasFinished = true;
|
|
59
|
-
res({ resultType: "segment-loaded",
|
|
60
|
-
resultData: { responseData: _args.data,
|
|
61
|
-
size: _args.size,
|
|
62
|
-
requestDuration: _args.duration } });
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Callback triggered when the custom segment loader fails
|
|
67
|
-
* @param {*} err - The corresponding error encountered
|
|
68
|
-
*/
|
|
69
|
-
const reject = (err? : Error) => {
|
|
70
|
-
if (hasFinished || cancelSignal.isCancelled()) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
hasFinished = true;
|
|
74
|
-
rej(err);
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
const abort = customSegmentLoader({ resolve, reject });
|
|
78
|
-
|
|
79
|
-
/** The logic to run when this loader is cancelled while pending. */
|
|
80
|
-
return () => {
|
|
81
|
-
if (hasFinished) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
hasFinished = true;
|
|
85
|
-
if (typeof abort === "function") {
|
|
86
|
-
abort();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* @param {Object} segment
|
|
94
|
-
* @param {Function} customSegmentLoader
|
|
95
|
-
* @param {Object} cancelSignal
|
|
96
|
-
* @returns {Promise.<Object>}
|
|
97
|
-
*/
|
|
98
|
-
function loadSegment(
|
|
99
|
-
segment : { time : number; duration : number; timestampOffset? : number },
|
|
100
|
-
customSegmentLoader : ILocalManifestSegmentLoader,
|
|
101
|
-
cancelSignal : CancellationSignal
|
|
102
|
-
) : Promise< ISegmentLoaderResultSegmentLoaded<ArrayBuffer | null>> {
|
|
103
|
-
return createCancellablePromise(cancelSignal, (res, rej) => {
|
|
104
|
-
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
105
|
-
let hasFinished = false;
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Callback triggered when the custom segment loader has a response.
|
|
109
|
-
* @param {Object} _args
|
|
110
|
-
*/
|
|
111
|
-
const resolve = (_args : {
|
|
112
|
-
data : ArrayBuffer | null;
|
|
113
|
-
size? : number;
|
|
114
|
-
duration? : number;
|
|
115
|
-
}) => {
|
|
116
|
-
if (hasFinished || cancelSignal.isCancelled()) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
hasFinished = true;
|
|
120
|
-
res({ resultType: "segment-loaded",
|
|
121
|
-
resultData: { responseData: _args.data,
|
|
122
|
-
size: _args.size,
|
|
123
|
-
requestDuration: _args.duration } });
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Callback triggered when the custom segment loader fails
|
|
128
|
-
* @param {*} err - The corresponding error encountered
|
|
129
|
-
*/
|
|
130
|
-
const reject = (err? : Error) => {
|
|
131
|
-
if (hasFinished || cancelSignal.isCancelled()) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
hasFinished = true;
|
|
135
|
-
|
|
136
|
-
// Format error and send it
|
|
137
|
-
const castedErr = err as (null | undefined | { message? : string;
|
|
138
|
-
canRetry? : boolean;
|
|
139
|
-
isOfflineError? : boolean;
|
|
140
|
-
xhr? : XMLHttpRequest; });
|
|
141
|
-
const message = castedErr?.message ??
|
|
142
|
-
"Unknown error when fetching a local segment through a " +
|
|
143
|
-
"custom segmentLoader.";
|
|
144
|
-
const emittedErr = new CustomLoaderError(message,
|
|
145
|
-
castedErr?.canRetry ?? false,
|
|
146
|
-
castedErr?.isOfflineError ?? false,
|
|
147
|
-
castedErr?.xhr);
|
|
148
|
-
rej(emittedErr);
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
const abort = customSegmentLoader(segment, { resolve, reject });
|
|
152
|
-
|
|
153
|
-
/** The logic to run when this loader is cancelled while pending. */
|
|
154
|
-
return () => {
|
|
155
|
-
if (hasFinished) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
hasFinished = true;
|
|
159
|
-
if (typeof abort === "function") {
|
|
160
|
-
abort();
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Generic segment loader for the local Manifest.
|
|
168
|
-
* @param {string | null} _wantedCdn
|
|
169
|
-
* @param {Object} content
|
|
170
|
-
* @param {Object} cancelSignal
|
|
171
|
-
* @param {Object} _callbacks
|
|
172
|
-
* @returns {Promise}
|
|
173
|
-
*/
|
|
174
|
-
export default function segmentLoader(
|
|
175
|
-
_wantedCdn : ICdnMetadata | null,
|
|
176
|
-
content : ISegmentContext,
|
|
177
|
-
_loaderOptions : ISegmentLoaderOptions, // TODO use timeout?
|
|
178
|
-
cancelSignal : CancellationSignal,
|
|
179
|
-
_callbacks : ISegmentLoaderCallbacks<ArrayBuffer | null>
|
|
180
|
-
) : Promise<ISegmentLoaderResultSegmentLoaded<ArrayBuffer | null>> {
|
|
181
|
-
const { segment } = content;
|
|
182
|
-
const privateInfos = segment.privateInfos;
|
|
183
|
-
if (segment.isInit) {
|
|
184
|
-
if (privateInfos === undefined ||
|
|
185
|
-
isNullOrUndefined(privateInfos.localManifestInitSegment)) {
|
|
186
|
-
throw new Error("Segment is not a local Manifest segment");
|
|
187
|
-
}
|
|
188
|
-
return loadInitSegment(privateInfos.localManifestInitSegment.load,
|
|
189
|
-
cancelSignal);
|
|
190
|
-
}
|
|
191
|
-
if (privateInfos === undefined ||
|
|
192
|
-
isNullOrUndefined(privateInfos.localManifestSegment)) {
|
|
193
|
-
throw new Error("Segment is not an local Manifest segment");
|
|
194
|
-
}
|
|
195
|
-
return loadSegment(privateInfos.localManifestSegment.segment,
|
|
196
|
-
privateInfos.localManifestSegment.load,
|
|
197
|
-
cancelSignal);
|
|
198
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
getMDHDTimescale,
|
|
19
|
-
takePSSHOut,
|
|
20
|
-
} from "../../parsers/containers/isobmff";
|
|
21
|
-
import { getKeyIdFromInitSegment } from "../../parsers/containers/isobmff/utils";
|
|
22
|
-
import { getTimeCodeScale } from "../../parsers/containers/matroska";
|
|
23
|
-
import {
|
|
24
|
-
ISegmentContext,
|
|
25
|
-
ISegmentParserParsedInitChunk,
|
|
26
|
-
ISegmentParserParsedMediaChunk,
|
|
27
|
-
} from "../types";
|
|
28
|
-
import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
|
|
29
|
-
import inferSegmentContainer from "../utils/infer_segment_container";
|
|
30
|
-
|
|
31
|
-
export default function segmentParser(
|
|
32
|
-
loadedSegment : { data : ArrayBuffer | Uint8Array | null;
|
|
33
|
-
isChunked : boolean; },
|
|
34
|
-
content : ISegmentContext,
|
|
35
|
-
initTimescale : number | undefined
|
|
36
|
-
) : ISegmentParserParsedInitChunk<ArrayBuffer | Uint8Array | null> |
|
|
37
|
-
ISegmentParserParsedMediaChunk<ArrayBuffer | Uint8Array | null>
|
|
38
|
-
{
|
|
39
|
-
const { period, adaptation, representation, segment } = content;
|
|
40
|
-
const { data } = loadedSegment;
|
|
41
|
-
const appendWindow : [ number, number | undefined ] = [ period.start, period.end ];
|
|
42
|
-
|
|
43
|
-
if (data === null) {
|
|
44
|
-
if (segment.isInit) {
|
|
45
|
-
return { segmentType: "init",
|
|
46
|
-
initializationData: null,
|
|
47
|
-
initializationDataSize: 0,
|
|
48
|
-
protectionDataUpdate: false,
|
|
49
|
-
initTimescale: undefined };
|
|
50
|
-
}
|
|
51
|
-
return { segmentType: "media",
|
|
52
|
-
chunkData: null,
|
|
53
|
-
chunkSize: 0,
|
|
54
|
-
chunkInfos: null,
|
|
55
|
-
chunkOffset: 0,
|
|
56
|
-
protectionDataUpdate: false,
|
|
57
|
-
appendWindow };
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const chunkData = new Uint8Array(data);
|
|
61
|
-
const containerType = inferSegmentContainer(adaptation.type, representation);
|
|
62
|
-
|
|
63
|
-
// TODO take a look to check if this is an ISOBMFF/webm?
|
|
64
|
-
const seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
|
|
65
|
-
let protectionDataUpdate = false;
|
|
66
|
-
if (seemsToBeMP4) {
|
|
67
|
-
const psshInfo = takePSSHOut(chunkData);
|
|
68
|
-
let keyId;
|
|
69
|
-
if (segment.isInit) {
|
|
70
|
-
keyId = getKeyIdFromInitSegment(chunkData) ?? undefined;
|
|
71
|
-
}
|
|
72
|
-
if (psshInfo.length > 0 || keyId !== undefined) {
|
|
73
|
-
protectionDataUpdate = representation._addProtectionData("cenc", keyId, psshInfo);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (segment.isInit) {
|
|
78
|
-
const timescale = containerType === "webm" ? getTimeCodeScale(chunkData, 0) :
|
|
79
|
-
// assume ISOBMFF-compliance
|
|
80
|
-
getMDHDTimescale(chunkData);
|
|
81
|
-
return { segmentType: "init",
|
|
82
|
-
initializationData: chunkData,
|
|
83
|
-
initializationDataSize: 0,
|
|
84
|
-
initTimescale: timescale ?? undefined,
|
|
85
|
-
protectionDataUpdate };
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const chunkInfos = seemsToBeMP4 ? getISOBMFFTimingInfos(chunkData,
|
|
89
|
-
false,
|
|
90
|
-
segment,
|
|
91
|
-
initTimescale) :
|
|
92
|
-
null; // TODO extract time info from webm
|
|
93
|
-
const chunkOffset = segment.timestampOffset ?? 0;
|
|
94
|
-
return { segmentType: "media",
|
|
95
|
-
chunkData,
|
|
96
|
-
chunkSize: chunkData.length,
|
|
97
|
-
chunkInfos,
|
|
98
|
-
chunkOffset,
|
|
99
|
-
protectionDataUpdate: false,
|
|
100
|
-
appendWindow };
|
|
101
|
-
}
|
|
@@ -1,185 +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 { getMDHDTimescale } from "../../parsers/containers/isobmff";
|
|
18
|
-
import {
|
|
19
|
-
strToUtf8,
|
|
20
|
-
utf8ToStr,
|
|
21
|
-
} from "../../utils/string_parsing";
|
|
22
|
-
import {
|
|
23
|
-
ILoadedTextSegmentFormat,
|
|
24
|
-
ISegmentContext,
|
|
25
|
-
ISegmentParserParsedInitChunk,
|
|
26
|
-
ISegmentParserParsedMediaChunk,
|
|
27
|
-
ITextTrackSegmentData,
|
|
28
|
-
} from "../types";
|
|
29
|
-
import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
|
|
30
|
-
import inferSegmentContainer from "../utils/infer_segment_container";
|
|
31
|
-
import {
|
|
32
|
-
getISOBMFFEmbeddedTextTrackData,
|
|
33
|
-
getPlainTextTrackData,
|
|
34
|
-
} from "../utils/parse_text_track";
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Parse TextTrack data when it is embedded in an ISOBMFF file.
|
|
38
|
-
* @param {ArrayBuffer|Uint8Array|string} data - The segment data.
|
|
39
|
-
* @param {boolean} isChunked - If `true`, the `data` may contain only a
|
|
40
|
-
* decodable subpart of the full data in the linked segment.
|
|
41
|
-
* @param {Object} content - Object describing the context of the given
|
|
42
|
-
* segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
|
|
43
|
-
* `Manifest` it is a part of etc.
|
|
44
|
-
* @param {number|undefined} initTimescale - `timescale` value - encountered
|
|
45
|
-
* in this linked initialization segment (if it exists) - that may also apply
|
|
46
|
-
* to that segment if no new timescale is defined in it.
|
|
47
|
-
* Can be `undefined` if no timescale was defined, if it is not known, or if
|
|
48
|
-
* no linked initialization segment was yet parsed.
|
|
49
|
-
* @returns {Object}
|
|
50
|
-
*/
|
|
51
|
-
function parseISOBMFFEmbeddedTextTrack(
|
|
52
|
-
data : string | Uint8Array | ArrayBuffer,
|
|
53
|
-
isChunked : boolean,
|
|
54
|
-
content : ISegmentContext,
|
|
55
|
-
initTimescale : number | undefined
|
|
56
|
-
) : ISegmentParserParsedInitChunk<null> |
|
|
57
|
-
ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>
|
|
58
|
-
{
|
|
59
|
-
const { period, segment } = content;
|
|
60
|
-
|
|
61
|
-
const chunkBytes = typeof data === "string" ? strToUtf8(data) :
|
|
62
|
-
data instanceof Uint8Array ? data :
|
|
63
|
-
new Uint8Array(data);
|
|
64
|
-
if (segment.isInit) {
|
|
65
|
-
const mdhdTimescale = getMDHDTimescale(chunkBytes);
|
|
66
|
-
return { segmentType: "init",
|
|
67
|
-
initializationData: null,
|
|
68
|
-
initializationDataSize: 0,
|
|
69
|
-
initTimescale: mdhdTimescale,
|
|
70
|
-
protectionDataUpdate: false };
|
|
71
|
-
}
|
|
72
|
-
const chunkInfos = getISOBMFFTimingInfos(chunkBytes,
|
|
73
|
-
isChunked,
|
|
74
|
-
segment,
|
|
75
|
-
initTimescale);
|
|
76
|
-
const chunkData = getISOBMFFEmbeddedTextTrackData(content,
|
|
77
|
-
chunkBytes,
|
|
78
|
-
chunkInfos,
|
|
79
|
-
isChunked);
|
|
80
|
-
const chunkOffset = segment.timestampOffset ?? 0;
|
|
81
|
-
return { segmentType: "media",
|
|
82
|
-
chunkData,
|
|
83
|
-
chunkSize: chunkBytes.length,
|
|
84
|
-
chunkInfos,
|
|
85
|
-
chunkOffset,
|
|
86
|
-
protectionDataUpdate: false,
|
|
87
|
-
appendWindow: [period.start, period.end] };
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Parse TextTrack data when it is in plain text form.
|
|
92
|
-
* @param {ArrayBuffer|Uint8Array|string} data - The segment data.
|
|
93
|
-
* @param {boolean} isChunked - If `true`, the `data` may contain only a
|
|
94
|
-
* decodable subpart of the full data in the linked segment.
|
|
95
|
-
* @param {Object} content - Object describing the context of the given
|
|
96
|
-
* segment's data: of which segment, `Representation`, `Adaptation`, `Period`,
|
|
97
|
-
* `Manifest` it is a part of etc.
|
|
98
|
-
* @returns {Object}
|
|
99
|
-
*/
|
|
100
|
-
function parsePlainTextTrack(
|
|
101
|
-
data : string | Uint8Array | ArrayBuffer,
|
|
102
|
-
isChunked : boolean,
|
|
103
|
-
content : ISegmentContext
|
|
104
|
-
) : ISegmentParserParsedInitChunk<null> |
|
|
105
|
-
ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>
|
|
106
|
-
{
|
|
107
|
-
const { period, segment } = content;
|
|
108
|
-
if (segment.isInit) {
|
|
109
|
-
return { segmentType: "init",
|
|
110
|
-
initializationData: null,
|
|
111
|
-
initializationDataSize: 0,
|
|
112
|
-
initTimescale: undefined,
|
|
113
|
-
protectionDataUpdate: false };
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
let textTrackData : string;
|
|
117
|
-
let chunkSize : number | undefined;
|
|
118
|
-
if (typeof data !== "string") {
|
|
119
|
-
const bytesData = data instanceof Uint8Array ? data :
|
|
120
|
-
new Uint8Array(data);
|
|
121
|
-
textTrackData = utf8ToStr(bytesData);
|
|
122
|
-
chunkSize = bytesData.length;
|
|
123
|
-
} else {
|
|
124
|
-
textTrackData = data;
|
|
125
|
-
}
|
|
126
|
-
const chunkData = getPlainTextTrackData(content, textTrackData, isChunked);
|
|
127
|
-
const chunkOffset = segment.timestampOffset ?? 0;
|
|
128
|
-
return { segmentType: "media",
|
|
129
|
-
chunkData,
|
|
130
|
-
chunkSize,
|
|
131
|
-
chunkInfos: null,
|
|
132
|
-
chunkOffset,
|
|
133
|
-
protectionDataUpdate: false,
|
|
134
|
-
appendWindow: [period.start, period.end] };
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Parse TextTrack data.
|
|
139
|
-
* @param {Object} loadedSegment
|
|
140
|
-
* @param {Object} content
|
|
141
|
-
* @param {number | undefined} initTimescale
|
|
142
|
-
* @returns {Object}
|
|
143
|
-
*/
|
|
144
|
-
export default function textTrackParser(
|
|
145
|
-
loadedSegment : { data : ILoadedTextSegmentFormat;
|
|
146
|
-
isChunked : boolean; },
|
|
147
|
-
content : ISegmentContext,
|
|
148
|
-
initTimescale : number | undefined
|
|
149
|
-
) : ISegmentParserParsedInitChunk<null> |
|
|
150
|
-
ISegmentParserParsedMediaChunk<ITextTrackSegmentData | null>
|
|
151
|
-
{
|
|
152
|
-
const { period, adaptation, representation, segment } = content;
|
|
153
|
-
const { data, isChunked } = loadedSegment;
|
|
154
|
-
|
|
155
|
-
if (data === null) {
|
|
156
|
-
// No data, just return an empty placeholder object
|
|
157
|
-
if (segment.isInit) {
|
|
158
|
-
return { segmentType: "init",
|
|
159
|
-
initializationData: null,
|
|
160
|
-
initializationDataSize: 0,
|
|
161
|
-
protectionDataUpdate: false,
|
|
162
|
-
initTimescale: undefined };
|
|
163
|
-
}
|
|
164
|
-
const chunkOffset = segment.timestampOffset ?? 0;
|
|
165
|
-
return { segmentType: "media",
|
|
166
|
-
chunkData: null,
|
|
167
|
-
chunkSize: 0,
|
|
168
|
-
chunkInfos: null,
|
|
169
|
-
chunkOffset,
|
|
170
|
-
protectionDataUpdate: false,
|
|
171
|
-
appendWindow: [period.start, period.end] };
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const containerType = inferSegmentContainer(adaptation.type, representation);
|
|
175
|
-
|
|
176
|
-
// TODO take a look to check if this is an ISOBMFF/webm when undefined?
|
|
177
|
-
if (containerType === "webm") {
|
|
178
|
-
// TODO Handle webm containers
|
|
179
|
-
throw new Error("Text tracks with a WEBM container are not yet handled.");
|
|
180
|
-
} else if (containerType === "mp4") {
|
|
181
|
-
return parseISOBMFFEmbeddedTextTrack(data, isChunked, content, initTimescale);
|
|
182
|
-
} else {
|
|
183
|
-
return parsePlainTextTrack(data, isChunked, content);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# MetaPlaylist #################################################################
|
|
2
|
-
|
|
3
|
-
The MetaPlaylist is a specific kind of transport: a playlist of multiple
|
|
4
|
-
Manifests.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## How the original Manifest files are considered ##############################
|
|
8
|
-
|
|
9
|
-
To play a MetaPlaylist content, each manifest it depends on has to be
|
|
10
|
-
downloaded and parsed through their original logic (a `MPD` through DASH's
|
|
11
|
-
logic and a Smooth Manifest through Smooth's logic).
|
|
12
|
-
|
|
13
|
-
We then merge each of these Manifest, to construct a `Manifest` object with the
|
|
14
|
-
same structure and properties than we would have with a DASH or Smooth manifest.
|
|
15
|
-
|
|
16
|
-
The trick is to consider each of those original Manifest as different Periods
|
|
17
|
-
(like DASH Periods). The trick works here because the RxPlayer's definition of a
|
|
18
|
-
transport (and of the underlying properties) is much more flexible than in DASH.
|
|
19
|
-
If an original MPD already has multiple Periods, each of them are also
|
|
20
|
-
converted as different RxPlayer's Period so that no feature from the original
|
|
21
|
-
content is lost.
|
|
22
|
-
|
|
23
|
-
Each of those Period is then concatenated one after the other thanks to the time
|
|
24
|
-
information announced in the MetaPlaylist file.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## How about the segments ######################################################
|
|
29
|
-
|
|
30
|
-
The exploitation of segment metadata is even trickier.
|
|
31
|
-
|
|
32
|
-
In `DASH` or `Smooth`, the URL of each segment could be constructed from the
|
|
33
|
-
starting time of each of those segments.
|
|
34
|
-
|
|
35
|
-
The problem here is that a `MetaPlaylist` player has to mutate those to place
|
|
36
|
-
them at the position indicated in the MetaPlaylist's JSON instead.
|
|
37
|
-
|
|
38
|
-
To simplify everything, we choose to rely on a simple but effective wrapper on
|
|
39
|
-
top of the original transport protocol.
|
|
40
|
-
|
|
41
|
-
When the core logic of the player wants to load a segment from the network, that
|
|
42
|
-
wrapper translate back the data as if we're just playing the original content at
|
|
43
|
-
its original position.
|
|
44
|
-
How it works: the wrapper removes a specific time offset from the wanted
|
|
45
|
-
segment's metadata, before contacting the transport's logic.
|
|
46
|
-
|
|
47
|
-
When giving back the segment to the core logic of the player, the wrapper first
|
|
48
|
-
update those loaded segment with the wanted position data.
|
|
49
|
-
How it works: the wrapper adds back the time offset it previously substracted
|
|
50
|
-
from the wanted segment's metadata before giving it back to the core logic.
|
|
51
|
-
|
|
52
|
-
To illustrate, it kind of goes like this:
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
+----------------+ 1. Ask for segments infos from t to t+n +--------------+
|
|
56
|
-
| | ---------------------------------------> | |
|
|
57
|
-
| | | |
|
|
58
|
-
| | <--------------------------------------- | |
|
|
59
|
-
| | 4. Gives segment infos asked (offseted) | |
|
|
60
|
-
| | | |
|
|
61
|
-
| CORE | | METAPLAYLIST |
|
|
62
|
-
| | | WRAPPER |
|
|
63
|
-
| | 5. Ask to download segment (offseted) | |
|
|
64
|
-
| | ---------------------------------------> | |
|
|
65
|
-
| | | |
|
|
66
|
-
| | <--------------------------------------- | |
|
|
67
|
-
+----------------+ 8. Gives segment (offseted) +--------------+
|
|
68
|
-
| ^ | ^
|
|
69
|
-
| | | |
|
|
70
|
-
| | | |
|
|
71
|
-
+------------+ 2. get segment infos from t-offset to t+n-offset | |
|
|
72
|
-
| +--------+ | <------------------------------------------+ | | |
|
|
73
|
-
| | | | | | |
|
|
74
|
-
| | DASH | | | | |
|
|
75
|
-
| | | | 3. Gives segment infos asked | | |
|
|
76
|
-
| +--------+ | ---------------------------------------------+ | |
|
|
77
|
-
| +-------+ | | |
|
|
78
|
-
| | | | | |
|
|
79
|
-
| | HSS | | | |
|
|
80
|
-
| | | | | |
|
|
81
|
-
| +-------+ | | |
|
|
82
|
-
| +-------+ | 6. Ask to download non-offseted (normal) segments | |
|
|
83
|
-
| | | | <--------------------------------------------------+ |
|
|
84
|
-
| | ... | | |
|
|
85
|
-
| | | | 7. Gives normal segment |
|
|
86
|
-
| +-------+ | ------------------------------------------------------+
|
|
87
|
-
+------------+
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
To make sure the segment is pushed at the right moment and doesn't overlap other
|
|
91
|
-
contents, we make heavy use of some specific `SourceBuffer` properties:
|
|
92
|
-
- the `timestampOffset` property allows to set a specific offset
|
|
93
|
-
- `appendWindowStart` allows to limit the starting time of the pushed segment
|
|
94
|
-
- `appendWindowEnd` allows to limit the ending time of the pushed segment
|
|
@@ -1,23 +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
|
-
/**
|
|
18
|
-
* /!\ This file is feature-switchable.
|
|
19
|
-
* It always should be imported through the `features` object.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
import MetaPlaylistPipelines from "./pipelines";
|
|
23
|
-
export default MetaPlaylistPipelines;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
IManifestLoader,
|
|
19
|
-
ILoadedManifestFormat,
|
|
20
|
-
} from "../../public_types";
|
|
21
|
-
import request from "../../utils/request";
|
|
22
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
23
|
-
import { IManifestLoaderOptions, IRequestedData } from "../types";
|
|
24
|
-
import callCustomManifestLoader from "../utils/call_custom_manifest_loader";
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Manifest loader triggered if there was no custom-defined one in the API.
|
|
28
|
-
* @param {string} url
|
|
29
|
-
* @param {Object} loaderOptions
|
|
30
|
-
* @param {Object} cancelSignal
|
|
31
|
-
*/
|
|
32
|
-
function regularManifestLoader(
|
|
33
|
-
url : string | undefined,
|
|
34
|
-
loaderOptions : IManifestLoaderOptions,
|
|
35
|
-
cancelSignal : CancellationSignal
|
|
36
|
-
) : Promise< IRequestedData<ILoadedManifestFormat> > {
|
|
37
|
-
if (url === undefined) {
|
|
38
|
-
throw new Error("Cannot perform HTTP(s) request. URL not known");
|
|
39
|
-
}
|
|
40
|
-
return request({ url,
|
|
41
|
-
responseType: "text",
|
|
42
|
-
timeout: loaderOptions.timeout,
|
|
43
|
-
cancelSignal });
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Generate a manifest loader for the application
|
|
48
|
-
* @param {Function} [customManifestLoader]
|
|
49
|
-
* @returns {Function}
|
|
50
|
-
*/
|
|
51
|
-
export default function generateManifestLoader(
|
|
52
|
-
{ customManifestLoader } : { customManifestLoader?: IManifestLoader | undefined }
|
|
53
|
-
) : (
|
|
54
|
-
url : string | undefined,
|
|
55
|
-
loaderOptions : IManifestLoaderOptions,
|
|
56
|
-
cancelSignal : CancellationSignal
|
|
57
|
-
) => Promise<IRequestedData<ILoadedManifestFormat>>
|
|
58
|
-
{
|
|
59
|
-
return typeof customManifestLoader !== "function" ?
|
|
60
|
-
regularManifestLoader :
|
|
61
|
-
callCustomManifestLoader(customManifestLoader, regularManifestLoader);
|
|
62
|
-
}
|