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,650 +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
|
-
ICompatSourceBuffer,
|
|
19
|
-
tryToChangeSourceBufferType,
|
|
20
|
-
} from "../../../../compat";
|
|
21
|
-
import config from "../../../../config";
|
|
22
|
-
import log from "../../../../log";
|
|
23
|
-
import { getLoggableSegmentId } from "../../../../manifest";
|
|
24
|
-
import assertUnreachable from "../../../../utils/assert_unreachable";
|
|
25
|
-
import createCancellablePromise from "../../../../utils/create_cancellable_promise";
|
|
26
|
-
import noop from "../../../../utils/noop";
|
|
27
|
-
import objectAssign from "../../../../utils/object_assign";
|
|
28
|
-
import TaskCanceller, {
|
|
29
|
-
CancellationError,
|
|
30
|
-
CancellationSignal,
|
|
31
|
-
} from "../../../../utils/task_canceller";
|
|
32
|
-
import { IInsertedChunkInfos } from "../../inventory";
|
|
33
|
-
import {
|
|
34
|
-
IEndOfSegmentInfos,
|
|
35
|
-
IEndOfSegmentOperation,
|
|
36
|
-
IPushChunkInfos,
|
|
37
|
-
IPushedChunkData,
|
|
38
|
-
IPushOperation,
|
|
39
|
-
IRemoveOperation,
|
|
40
|
-
ISBOperation,
|
|
41
|
-
SegmentBuffer,
|
|
42
|
-
SegmentBufferOperation,
|
|
43
|
-
} from "../types";
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Item added to the AudioVideoSegmentBuffer's queue before being processed into
|
|
48
|
-
* a task (see `IAVSBPendingTask`).
|
|
49
|
-
*
|
|
50
|
-
* Here we add `resolve` and `reject` callbacks to anounce when the task is
|
|
51
|
-
* finished.
|
|
52
|
-
*/
|
|
53
|
-
type IAVSBQueueItem = ISBOperation<BufferSource> & {
|
|
54
|
-
resolve : () => void;
|
|
55
|
-
reject : (err : Error) => void;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Task currently processed by the AudioVideoSegmentBuffer.
|
|
60
|
-
*
|
|
61
|
-
* A task is first pushed to the AudioVideoSegmentBuffer's queue as a
|
|
62
|
-
* `IAVSBQueueItem` object before being transformed into a `IAVSBPendingTask`
|
|
63
|
-
* when it is started.
|
|
64
|
-
* This new object only make changes for the `IPushOperation`, as it can be
|
|
65
|
-
* split up into multiple tasks depending on the need to push an initialization
|
|
66
|
-
* segment before the wanted media segment.
|
|
67
|
-
*/
|
|
68
|
-
type IAVSBPendingTask = IPushTask |
|
|
69
|
-
IRemoveOperation & {
|
|
70
|
-
resolve : () => void;
|
|
71
|
-
reject : (err : Error) => void;
|
|
72
|
-
} |
|
|
73
|
-
IEndOfSegmentOperation & {
|
|
74
|
-
resolve : () => void;
|
|
75
|
-
reject : (err : Error) => void;
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
/** Structure of a `IAVSBPendingTask` item corresponding to a "Push" operation. */
|
|
79
|
-
type IPushTask = IPushOperation<BufferSource> & {
|
|
80
|
-
/**
|
|
81
|
-
* Data that needs to be actually pushed.
|
|
82
|
-
* Here it is an array because we might need either to push only the
|
|
83
|
-
* given chunk or both its initialization segment then the chunk (depending on
|
|
84
|
-
* the last pushed initialization segment).
|
|
85
|
-
*/
|
|
86
|
-
data : BufferSource[];
|
|
87
|
-
/**
|
|
88
|
-
* The data that will be inserted to the inventory after that chunk is pushed.
|
|
89
|
-
* If `null`, no data will be pushed.
|
|
90
|
-
*/
|
|
91
|
-
inventoryData : IInsertedChunkInfos |
|
|
92
|
-
null;
|
|
93
|
-
/** Callback to call when the push operation succeed. */
|
|
94
|
-
resolve : () => void;
|
|
95
|
-
/** Callback to call when the push operation fails. */
|
|
96
|
-
reject : (err : Error) => void;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Allows to push and remove new segments to a SourceBuffer in a FIFO queue (not
|
|
101
|
-
* doing so can lead to browser Errors) while keeping an inventory of what has
|
|
102
|
-
* been pushed and what is being pushed.
|
|
103
|
-
*
|
|
104
|
-
* To work correctly, only a single AudioVideoSegmentBuffer per SourceBuffer
|
|
105
|
-
* should be created.
|
|
106
|
-
*
|
|
107
|
-
* @class AudioVideoSegmentBuffer
|
|
108
|
-
*/
|
|
109
|
-
export default class AudioVideoSegmentBuffer extends SegmentBuffer {
|
|
110
|
-
/** "Type" of the buffer concerned. */
|
|
111
|
-
public readonly bufferType : "audio" | "video";
|
|
112
|
-
|
|
113
|
-
/** SourceBuffer implementation. */
|
|
114
|
-
private readonly _sourceBuffer : ICompatSourceBuffer;
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Helps to clean-up resource taken at the AudioVideoSegmentBuffer creation.
|
|
118
|
-
*/
|
|
119
|
-
private _canceller : TaskCanceller;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Queue of awaited buffer "operations".
|
|
123
|
-
* The first element in this array will be the first performed.
|
|
124
|
-
*/
|
|
125
|
-
private _queue : IAVSBQueueItem[];
|
|
126
|
-
|
|
127
|
-
/** MediaSource on which the SourceBuffer object is attached. */
|
|
128
|
-
private readonly _mediaSource : MediaSource;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Information about the current operation processed by the
|
|
132
|
-
* AudioVideoSegmentBuffer.
|
|
133
|
-
* If equal to null, it means that no operation from the queue is currently
|
|
134
|
-
* being processed.
|
|
135
|
-
*/
|
|
136
|
-
private _pendingTask : IAVSBPendingTask | null;
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Keep track of the unique identifier of the of the latest init segment
|
|
140
|
-
* pushed to the linked SourceBuffer.
|
|
141
|
-
*
|
|
142
|
-
* Such identifiers are first declared through the `declareInitSegment`
|
|
143
|
-
* method and the corresponding initialization segment is then pushed through
|
|
144
|
-
* the `pushChunk` method.
|
|
145
|
-
*
|
|
146
|
-
* Keeping track of this allows to be sure the right initialization segment is
|
|
147
|
-
* pushed before any chunk is.
|
|
148
|
-
*
|
|
149
|
-
* `null` if no initialization segment have been pushed to the
|
|
150
|
-
* `AudioVideoSegmentBuffer` yet.
|
|
151
|
-
*/
|
|
152
|
-
private _lastInitSegmentUniqueId : string | null;
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Link unique identifiers for initialization segments (as communicated by
|
|
156
|
-
* `declareInitSegment`) to the corresponding initialization data.
|
|
157
|
-
*/
|
|
158
|
-
private _initSegmentsMap : Map<string, BufferSource>;
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* @constructor
|
|
162
|
-
* @param {string} bufferType
|
|
163
|
-
* @param {string} codec
|
|
164
|
-
* @param {MediaSource} mediaSource
|
|
165
|
-
*/
|
|
166
|
-
constructor(
|
|
167
|
-
bufferType : "audio" | "video",
|
|
168
|
-
codec : string,
|
|
169
|
-
mediaSource : MediaSource
|
|
170
|
-
) {
|
|
171
|
-
super();
|
|
172
|
-
log.info("AVSB: calling `mediaSource.addSourceBuffer`", codec);
|
|
173
|
-
const sourceBuffer = mediaSource.addSourceBuffer(codec);
|
|
174
|
-
|
|
175
|
-
this._canceller = new TaskCanceller();
|
|
176
|
-
this.bufferType = bufferType;
|
|
177
|
-
this._mediaSource = mediaSource;
|
|
178
|
-
this._sourceBuffer = sourceBuffer;
|
|
179
|
-
this._queue = [];
|
|
180
|
-
this._pendingTask = null;
|
|
181
|
-
this._lastInitSegmentUniqueId = null;
|
|
182
|
-
this.codec = codec;
|
|
183
|
-
this._initSegmentsMap = new Map();
|
|
184
|
-
|
|
185
|
-
const onError = this._onPendingTaskError.bind(this);
|
|
186
|
-
const reCheck = this._flush.bind(this);
|
|
187
|
-
|
|
188
|
-
// Some browsers (happened with firefox 66) sometimes "forget" to send us
|
|
189
|
-
// `update` or `updateend` events.
|
|
190
|
-
// In that case, we're completely unable to continue the queue here and
|
|
191
|
-
// stay locked in a waiting state.
|
|
192
|
-
// This interval is here to check at regular intervals if the underlying
|
|
193
|
-
// SourceBuffer is currently updating.
|
|
194
|
-
const { SOURCE_BUFFER_FLUSHING_INTERVAL } = config.getCurrent();
|
|
195
|
-
const intervalId = setInterval(reCheck, SOURCE_BUFFER_FLUSHING_INTERVAL);
|
|
196
|
-
this._sourceBuffer.addEventListener("error", onError);
|
|
197
|
-
this._sourceBuffer.addEventListener("updateend", reCheck);
|
|
198
|
-
|
|
199
|
-
this._canceller.signal.register(() => {
|
|
200
|
-
clearInterval(intervalId);
|
|
201
|
-
this._sourceBuffer.removeEventListener("error", onError);
|
|
202
|
-
this._sourceBuffer.removeEventListener("updateend", reCheck);
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
public declareInitSegment(
|
|
207
|
-
uniqueId : string,
|
|
208
|
-
initSegmentData : unknown
|
|
209
|
-
) : void {
|
|
210
|
-
assertDataIsBufferSource(initSegmentData);
|
|
211
|
-
this._initSegmentsMap.set(uniqueId, initSegmentData);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
public freeInitSegment(
|
|
215
|
-
uniqueId : string
|
|
216
|
-
) : void {
|
|
217
|
-
this._initSegmentsMap.delete(uniqueId);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Push a chunk of the media segment given to the attached SourceBuffer, in a
|
|
222
|
-
* FIFO queue.
|
|
223
|
-
*
|
|
224
|
-
* Once all chunks of a single Segment have been given to `pushChunk`, you
|
|
225
|
-
* should call `endOfSegment` to indicate that the whole Segment has been
|
|
226
|
-
* pushed.
|
|
227
|
-
*
|
|
228
|
-
* Depending on the type of data appended, the pushed chunk might rely on an
|
|
229
|
-
* initialization segment, given through the `data.initSegment` property.
|
|
230
|
-
*
|
|
231
|
-
* Such initialization segment will be first pushed to the SourceBuffer if the
|
|
232
|
-
* last pushed segment was associated to another initialization segment.
|
|
233
|
-
* This detection rely on the initialization segment's reference so you need
|
|
234
|
-
* to avoid mutating in-place a initialization segment given to that function
|
|
235
|
-
* (to avoid having two different values which have the same reference).
|
|
236
|
-
*
|
|
237
|
-
* If you don't need any initialization segment to push the wanted chunk, you
|
|
238
|
-
* can just set `data.initSegment` to `null`.
|
|
239
|
-
*
|
|
240
|
-
* You can also only push an initialization segment by setting the
|
|
241
|
-
* `data.chunk` argument to null.
|
|
242
|
-
*
|
|
243
|
-
* @param {Object} infos
|
|
244
|
-
* @param {Object} cancellationSignal
|
|
245
|
-
* @returns {Promise}
|
|
246
|
-
*/
|
|
247
|
-
public pushChunk(
|
|
248
|
-
infos : IPushChunkInfos<unknown>,
|
|
249
|
-
cancellationSignal : CancellationSignal
|
|
250
|
-
) : Promise<void> {
|
|
251
|
-
assertDataIsBufferSource(infos.data.chunk);
|
|
252
|
-
log.debug("AVSB: receiving order to push data to the SourceBuffer",
|
|
253
|
-
this.bufferType,
|
|
254
|
-
getLoggableSegmentId(infos.inventoryInfos));
|
|
255
|
-
return this._addToQueue({ type: SegmentBufferOperation.Push,
|
|
256
|
-
value: infos as IPushChunkInfos<BufferSource> },
|
|
257
|
-
cancellationSignal);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* Remove buffered data (added to the same FIFO queue than `pushChunk`).
|
|
262
|
-
* @param {number} start - start position, in seconds
|
|
263
|
-
* @param {number} end - end position, in seconds
|
|
264
|
-
* @param {Object} cancellationSignal
|
|
265
|
-
* @returns {Promise}
|
|
266
|
-
*/
|
|
267
|
-
public removeBuffer(
|
|
268
|
-
start : number,
|
|
269
|
-
end : number,
|
|
270
|
-
cancellationSignal : CancellationSignal
|
|
271
|
-
) : Promise<void> {
|
|
272
|
-
log.debug("AVSB: receiving order to remove data from the SourceBuffer",
|
|
273
|
-
this.bufferType,
|
|
274
|
-
start,
|
|
275
|
-
end);
|
|
276
|
-
return this._addToQueue({ type: SegmentBufferOperation.Remove,
|
|
277
|
-
value: { start, end } },
|
|
278
|
-
cancellationSignal);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Indicate that every chunks from a Segment has been given to pushChunk so
|
|
283
|
-
* far.
|
|
284
|
-
* This will update our internal Segment inventory accordingly.
|
|
285
|
-
* The returned Promise will resolve once the whole segment has been pushed
|
|
286
|
-
* and this indication is acknowledged.
|
|
287
|
-
* @param {Object} infos
|
|
288
|
-
* @returns {Promise}
|
|
289
|
-
*/
|
|
290
|
-
public endOfSegment(
|
|
291
|
-
infos : IEndOfSegmentInfos,
|
|
292
|
-
cancellationSignal : CancellationSignal
|
|
293
|
-
) : Promise<void> {
|
|
294
|
-
log.debug("AVSB: receiving order for validating end of segment",
|
|
295
|
-
this.bufferType,
|
|
296
|
-
getLoggableSegmentId(infos));
|
|
297
|
-
return this._addToQueue({ type: SegmentBufferOperation.EndOfSegment,
|
|
298
|
-
value: infos },
|
|
299
|
-
cancellationSignal);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
/**
|
|
303
|
-
* Returns the currently buffered data, in a TimeRanges object.
|
|
304
|
-
* @returns {TimeRanges}
|
|
305
|
-
*/
|
|
306
|
-
public getBufferedRanges() : TimeRanges {
|
|
307
|
-
return this._sourceBuffer.buffered;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Returns the list of every operations that the `AudioVideoSegmentBuffer` is
|
|
312
|
-
* still processing. From the one with the highest priority (like the one
|
|
313
|
-
* being processed)
|
|
314
|
-
* @returns {Array.<Object>}
|
|
315
|
-
*/
|
|
316
|
-
public getPendingOperations() : Array<ISBOperation<BufferSource>> {
|
|
317
|
-
const parseQueuedOperation =
|
|
318
|
-
(op : IAVSBQueueItem | IAVSBPendingTask) : ISBOperation<BufferSource> => {
|
|
319
|
-
// Had to be written that way for TypeScript
|
|
320
|
-
switch (op.type) {
|
|
321
|
-
case SegmentBufferOperation.Push:
|
|
322
|
-
return { type: op.type, value: op.value };
|
|
323
|
-
case SegmentBufferOperation.Remove:
|
|
324
|
-
return { type: op.type, value: op.value };
|
|
325
|
-
case SegmentBufferOperation.EndOfSegment:
|
|
326
|
-
return { type: op.type, value: op.value };
|
|
327
|
-
}
|
|
328
|
-
};
|
|
329
|
-
const queued = this._queue.map(parseQueuedOperation);
|
|
330
|
-
return this._pendingTask === null ?
|
|
331
|
-
queued :
|
|
332
|
-
[parseQueuedOperation(this._pendingTask)].concat(queued);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
/**
|
|
336
|
-
* Dispose of the resources used by this AudioVideoSegmentBuffer.
|
|
337
|
-
*
|
|
338
|
-
* /!\ You won't be able to use the AudioVideoSegmentBuffer after calling this
|
|
339
|
-
* function.
|
|
340
|
-
* @private
|
|
341
|
-
*/
|
|
342
|
-
public dispose() : void {
|
|
343
|
-
this._canceller.cancel();
|
|
344
|
-
|
|
345
|
-
if (this._pendingTask !== null) {
|
|
346
|
-
this._pendingTask.reject(new CancellationError());
|
|
347
|
-
this._pendingTask = null;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
while (this._queue.length > 0) {
|
|
351
|
-
const nextElement = this._queue.shift();
|
|
352
|
-
if (nextElement !== undefined) {
|
|
353
|
-
nextElement.reject(new CancellationError());
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
if (this._mediaSource.readyState === "open") {
|
|
358
|
-
try {
|
|
359
|
-
log.debug("AVSB: Calling `abort` on the SourceBuffer");
|
|
360
|
-
this._sourceBuffer.abort();
|
|
361
|
-
} catch (e) {
|
|
362
|
-
log.warn(`AVSB: Failed to abort a ${this.bufferType} SourceBuffer:`,
|
|
363
|
-
e instanceof Error ? e : "");
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* Called when an error arised that made the current task fail.
|
|
370
|
-
* @param {Event} err
|
|
371
|
-
*/
|
|
372
|
-
private _onPendingTaskError(err : unknown) : void {
|
|
373
|
-
this._lastInitSegmentUniqueId = null; // initialize init segment as a security
|
|
374
|
-
if (this._pendingTask !== null) {
|
|
375
|
-
const error = err instanceof Error ?
|
|
376
|
-
err :
|
|
377
|
-
new Error("An unknown error occured when doing operations " +
|
|
378
|
-
"on the SourceBuffer");
|
|
379
|
-
const task = this._pendingTask;
|
|
380
|
-
if (task.type === SegmentBufferOperation.Push &&
|
|
381
|
-
task.data.length === 0 &&
|
|
382
|
-
task.inventoryData !== null)
|
|
383
|
-
{
|
|
384
|
-
this._segmentInventory.insertChunk(task.inventoryData, false);
|
|
385
|
-
}
|
|
386
|
-
this._pendingTask = null;
|
|
387
|
-
task.reject(error);
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* @private
|
|
393
|
-
* @param {Object} operation
|
|
394
|
-
* @param {Object} cancellationSignal
|
|
395
|
-
* @returns {Promise}
|
|
396
|
-
*/
|
|
397
|
-
private _addToQueue(
|
|
398
|
-
operation : ISBOperation<BufferSource>,
|
|
399
|
-
cancellationSignal : CancellationSignal
|
|
400
|
-
) : Promise<void> {
|
|
401
|
-
return createCancellablePromise(cancellationSignal, (resolve, reject) => {
|
|
402
|
-
const shouldRestartQueue = this._queue.length === 0 &&
|
|
403
|
-
this._pendingTask === null;
|
|
404
|
-
const queueItem = objectAssign({ resolve, reject }, operation);
|
|
405
|
-
this._queue.push(queueItem);
|
|
406
|
-
if (shouldRestartQueue) {
|
|
407
|
-
this._flush();
|
|
408
|
-
}
|
|
409
|
-
return () => {
|
|
410
|
-
// Remove the corresponding element from the AudioVideoSegmentBuffer's
|
|
411
|
-
// queue.
|
|
412
|
-
// If the operation was a pending task, it should still continue to not
|
|
413
|
-
// let the AudioVideoSegmentBuffer in a weird state.
|
|
414
|
-
const index = this._queue.indexOf(queueItem);
|
|
415
|
-
if (index >= 0) {
|
|
416
|
-
this._queue.splice(index, 1);
|
|
417
|
-
}
|
|
418
|
-
queueItem.resolve = noop;
|
|
419
|
-
queueItem.reject = noop;
|
|
420
|
-
};
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* Perform next task if one.
|
|
426
|
-
* @private
|
|
427
|
-
*/
|
|
428
|
-
private _flush() : void {
|
|
429
|
-
if (this._sourceBuffer.updating) {
|
|
430
|
-
return; // still processing `this._pendingTask`
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
if (this._pendingTask !== null) {
|
|
434
|
-
const task = this._pendingTask;
|
|
435
|
-
if (task.type !== SegmentBufferOperation.Push || task.data.length === 0) {
|
|
436
|
-
// If we're here, we've finished processing the task
|
|
437
|
-
switch (task.type) {
|
|
438
|
-
case SegmentBufferOperation.Push:
|
|
439
|
-
if (task.inventoryData !== null) {
|
|
440
|
-
this._segmentInventory.insertChunk(task.inventoryData, true);
|
|
441
|
-
}
|
|
442
|
-
break;
|
|
443
|
-
case SegmentBufferOperation.EndOfSegment:
|
|
444
|
-
this._segmentInventory.completeSegment(task.value, this.getBufferedRanges());
|
|
445
|
-
break;
|
|
446
|
-
case SegmentBufferOperation.Remove:
|
|
447
|
-
this.synchronizeInventory();
|
|
448
|
-
break;
|
|
449
|
-
default:
|
|
450
|
-
assertUnreachable(task);
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
const { resolve } = task;
|
|
454
|
-
this._pendingTask = null;
|
|
455
|
-
resolve();
|
|
456
|
-
this._flush(); // Go to next item in queue
|
|
457
|
-
return;
|
|
458
|
-
}
|
|
459
|
-
} else { // if this._pendingTask is null, go to next item in queue
|
|
460
|
-
const nextItem = this._queue.shift();
|
|
461
|
-
if (nextItem === undefined) {
|
|
462
|
-
return; // we have nothing left to do
|
|
463
|
-
} else if (nextItem.type !== SegmentBufferOperation.Push) {
|
|
464
|
-
this._pendingTask = nextItem;
|
|
465
|
-
} else {
|
|
466
|
-
const itemValue = nextItem.value;
|
|
467
|
-
|
|
468
|
-
let dataToPush : BufferSource[];
|
|
469
|
-
try {
|
|
470
|
-
dataToPush = this._preparePushOperation(itemValue.data);
|
|
471
|
-
} catch (e) {
|
|
472
|
-
this._pendingTask = objectAssign({ data: [],
|
|
473
|
-
inventoryData: itemValue.inventoryInfos },
|
|
474
|
-
nextItem);
|
|
475
|
-
const error = e instanceof Error ?
|
|
476
|
-
e :
|
|
477
|
-
new Error("An unknown error occured when preparing a push operation");
|
|
478
|
-
this._lastInitSegmentUniqueId = null; // initialize init segment as a security
|
|
479
|
-
nextItem.reject(error);
|
|
480
|
-
return;
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
this._pendingTask = objectAssign({ data: dataToPush,
|
|
484
|
-
inventoryData: itemValue.inventoryInfos },
|
|
485
|
-
nextItem);
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
try {
|
|
490
|
-
switch (this._pendingTask.type) {
|
|
491
|
-
case SegmentBufferOperation.EndOfSegment:
|
|
492
|
-
// nothing to do, we will just acknowledge the segment.
|
|
493
|
-
log.debug("AVSB: Acknowledging complete segment",
|
|
494
|
-
getLoggableSegmentId(this._pendingTask.value));
|
|
495
|
-
this._flush();
|
|
496
|
-
return;
|
|
497
|
-
|
|
498
|
-
case SegmentBufferOperation.Push:
|
|
499
|
-
const segmentData = this._pendingTask.data.shift();
|
|
500
|
-
if (segmentData === undefined) {
|
|
501
|
-
this._flush();
|
|
502
|
-
return;
|
|
503
|
-
}
|
|
504
|
-
log.debug("AVSB: pushing segment",
|
|
505
|
-
this.bufferType,
|
|
506
|
-
getLoggableSegmentId(this._pendingTask.inventoryData));
|
|
507
|
-
this._sourceBuffer.appendBuffer(segmentData);
|
|
508
|
-
break;
|
|
509
|
-
|
|
510
|
-
case SegmentBufferOperation.Remove:
|
|
511
|
-
const { start, end } = this._pendingTask.value;
|
|
512
|
-
log.debug("AVSB: removing data from SourceBuffer",
|
|
513
|
-
this.bufferType,
|
|
514
|
-
start,
|
|
515
|
-
end);
|
|
516
|
-
this._sourceBuffer.remove(start, end);
|
|
517
|
-
break;
|
|
518
|
-
|
|
519
|
-
default:
|
|
520
|
-
assertUnreachable(this._pendingTask);
|
|
521
|
-
}
|
|
522
|
-
} catch (e) {
|
|
523
|
-
this._onPendingTaskError(e);
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
/**
|
|
528
|
-
* A push Operation might necessitate to mutate some `SourceBuffer` and/or
|
|
529
|
-
* `AudioVideoSegmentBuffer` properties and also might need to be divided into
|
|
530
|
-
* multiple segments to push (exemple: when first pushing the initialization
|
|
531
|
-
* data before the segment data).
|
|
532
|
-
*
|
|
533
|
-
* This method allows to "prepare" that push operation so that all is left is
|
|
534
|
-
* to push the returned segment data one after the other (from first to last).
|
|
535
|
-
* @param {Object} data
|
|
536
|
-
* @returns {Object}
|
|
537
|
-
*/
|
|
538
|
-
private _preparePushOperation(
|
|
539
|
-
data : IPushedChunkData<BufferSource>
|
|
540
|
-
) : BufferSource[] {
|
|
541
|
-
// Push operation with both an init segment and a regular segment might
|
|
542
|
-
// need to be separated into two steps
|
|
543
|
-
const dataToPush = [];
|
|
544
|
-
const { codec,
|
|
545
|
-
timestampOffset,
|
|
546
|
-
appendWindow } = data;
|
|
547
|
-
let hasUpdatedSourceBufferType : boolean = false;
|
|
548
|
-
|
|
549
|
-
if (codec !== undefined && codec !== this.codec) {
|
|
550
|
-
log.debug("AVSB: updating codec", codec);
|
|
551
|
-
hasUpdatedSourceBufferType = tryToChangeSourceBufferType(this._sourceBuffer,
|
|
552
|
-
codec);
|
|
553
|
-
if (hasUpdatedSourceBufferType) {
|
|
554
|
-
this.codec = codec;
|
|
555
|
-
} else {
|
|
556
|
-
log.debug("AVSB: could not update codec", codec, this.codec);
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
if (this._sourceBuffer.timestampOffset !== timestampOffset) {
|
|
561
|
-
const newTimestampOffset = timestampOffset;
|
|
562
|
-
log.debug("AVSB: updating timestampOffset",
|
|
563
|
-
this.bufferType,
|
|
564
|
-
this._sourceBuffer.timestampOffset,
|
|
565
|
-
newTimestampOffset);
|
|
566
|
-
this._sourceBuffer.timestampOffset = newTimestampOffset;
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
if (appendWindow[0] === undefined) {
|
|
570
|
-
if (this._sourceBuffer.appendWindowStart > 0) {
|
|
571
|
-
log.debug("AVSB: re-setting `appendWindowStart` to `0`");
|
|
572
|
-
this._sourceBuffer.appendWindowStart = 0;
|
|
573
|
-
}
|
|
574
|
-
} else if (appendWindow[0] !== this._sourceBuffer.appendWindowStart) {
|
|
575
|
-
if (appendWindow[0] >= this._sourceBuffer.appendWindowEnd) {
|
|
576
|
-
const newTmpEnd = appendWindow[0] + 1;
|
|
577
|
-
log.debug("AVSB: pre-updating `appendWindowEnd`", newTmpEnd);
|
|
578
|
-
this._sourceBuffer.appendWindowEnd = newTmpEnd;
|
|
579
|
-
}
|
|
580
|
-
log.debug("AVSB: setting `appendWindowStart`", appendWindow[0]);
|
|
581
|
-
this._sourceBuffer.appendWindowStart = appendWindow[0];
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
if (appendWindow[1] === undefined) {
|
|
585
|
-
if (this._sourceBuffer.appendWindowEnd !== Infinity) {
|
|
586
|
-
log.debug("AVSB: re-setting `appendWindowEnd` to `Infinity`");
|
|
587
|
-
this._sourceBuffer.appendWindowEnd = Infinity;
|
|
588
|
-
}
|
|
589
|
-
} else if (appendWindow[1] !== this._sourceBuffer.appendWindowEnd) {
|
|
590
|
-
log.debug("AVSB: setting `appendWindowEnd`", appendWindow[1]);
|
|
591
|
-
this._sourceBuffer.appendWindowEnd = appendWindow[1];
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
if (data.initSegmentUniqueId !== null &&
|
|
595
|
-
(hasUpdatedSourceBufferType ||
|
|
596
|
-
!this._isLastInitSegment(data.initSegmentUniqueId)))
|
|
597
|
-
{
|
|
598
|
-
// Push initialization segment before the media segment
|
|
599
|
-
const segmentData = this._initSegmentsMap.get(data.initSegmentUniqueId);
|
|
600
|
-
if (segmentData === undefined) {
|
|
601
|
-
throw new Error("Invalid initialization segment uniqueId");
|
|
602
|
-
}
|
|
603
|
-
dataToPush.push(segmentData);
|
|
604
|
-
this._lastInitSegmentUniqueId = data.initSegmentUniqueId;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
if (data.chunk !== null) {
|
|
608
|
-
dataToPush.push(data.chunk);
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
return dataToPush;
|
|
612
|
-
}
|
|
613
|
-
|
|
614
|
-
/**
|
|
615
|
-
* Return `true` if the given `uniqueId` is the identifier of the last
|
|
616
|
-
* initialization segment pushed to the `AudioVideoSegmentBuffer`.
|
|
617
|
-
* @param {string} uniqueId
|
|
618
|
-
* @returns {boolean}
|
|
619
|
-
*/
|
|
620
|
-
private _isLastInitSegment(uniqueId : string) : boolean {
|
|
621
|
-
if (this._lastInitSegmentUniqueId === null) {
|
|
622
|
-
return false;
|
|
623
|
-
}
|
|
624
|
-
return this._lastInitSegmentUniqueId === uniqueId;
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
/**
|
|
629
|
-
* Throw if the given input is not in the expected format.
|
|
630
|
-
* Allows to enforce runtime type-checking as compile-time type-checking here is
|
|
631
|
-
* difficult to enforce.
|
|
632
|
-
* @param {Object} data
|
|
633
|
-
*/
|
|
634
|
-
function assertDataIsBufferSource(
|
|
635
|
-
data : unknown
|
|
636
|
-
) : asserts data is BufferSource {
|
|
637
|
-
if (__ENVIRONMENT__.CURRENT_ENV as number === __ENVIRONMENT__.PRODUCTION as number) {
|
|
638
|
-
return;
|
|
639
|
-
}
|
|
640
|
-
if (
|
|
641
|
-
typeof data !== "object" ||
|
|
642
|
-
(
|
|
643
|
-
data !== null &&
|
|
644
|
-
!(data instanceof ArrayBuffer) &&
|
|
645
|
-
!((data as ArrayBufferView).buffer instanceof ArrayBuffer)
|
|
646
|
-
)
|
|
647
|
-
) {
|
|
648
|
-
throw new Error("Invalid data given to the AudioVideoSegmentBuffer");
|
|
649
|
-
}
|
|
650
|
-
}
|
|
@@ -1,18 +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 AudioVideoSegmentBuffer from "./audio_video_segment_buffer";
|
|
18
|
-
export default AudioVideoSegmentBuffer;
|