rx-player 3.33.0 → 3.33.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/VERSION +1 -1
- package/dist/_esm5.processed/core/api/public_api.js +2 -2
- package/dist/_esm5.processed/manifest/manifest.js +1 -0
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +11 -0
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +18 -4
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.d.ts +1 -1
- package/dist/rx-player.js +24 -9
- package/dist/rx-player.min.d.ts +1 -1
- package/dist/rx-player.min.js +1 -1
- package/package.json +6 -6
- package/.editorconfig +0 -22
- package/.eslintrc.js +0 -406
- package/.github/workflows/checks.yml +0 -101
- package/.github/workflows/perfs.yml +0 -22
- package/.github/workflows/sonarcloud_analysis.yml +0 -20
- package/CONTRIBUTING.md +0 -272
- package/FILES.md +0 -283
- package/jest.config.js +0 -73
- package/manifest.mpd +0 -149
- package/scripts/README.md +0 -11
- package/scripts/build/constants.d.ts +0 -53
- package/scripts/build/generate_build.js +0 -190
- package/scripts/build/templates/experimental/features/index.d.ts +0 -16
- package/scripts/build/templates/experimental/features/index.js +0 -16
- package/scripts/build/templates/experimental/index.d.ts +0 -16
- package/scripts/build/templates/experimental/index.js +0 -16
- package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.d.ts +0 -18
- package/scripts/build/templates/experimental/tools/VideoThumbnailLoader/index.js +0 -18
- package/scripts/build/templates/experimental/tools/index.d.ts +0 -16
- package/scripts/build/templates/experimental/tools/index.js +0 -16
- package/scripts/build/templates/features/index.d.ts +0 -16
- package/scripts/build/templates/features/index.js +0 -16
- package/scripts/build/templates/logger/index.d.ts +0 -17
- package/scripts/build/templates/logger/index.js +0 -17
- package/scripts/build/templates/minimal/index.d.ts +0 -17
- package/scripts/build/templates/minimal/index.js +0 -17
- package/scripts/build/templates/tools/TextTrackRenderer.d.ts +0 -18
- package/scripts/build/templates/tools/TextTrackRenderer.js +0 -18
- package/scripts/build/templates/tools/index.d.ts +0 -16
- package/scripts/build/templates/tools/index.js +0 -16
- package/scripts/build/templates/tools/string-utils.d.ts +0 -18
- package/scripts/build/templates/tools/string-utils.js +0 -18
- package/scripts/build/templates/types/index.d.ts +0 -16
- package/scripts/build/templates/types/index.js +0 -15
- package/scripts/canal-release.patch +0 -316
- package/scripts/check_nodejs_import_compatibility.js +0 -60
- package/scripts/deploy_new_demo +0 -123
- package/scripts/fast_demo_build.js +0 -129
- package/scripts/generate_certificate +0 -19
- package/scripts/generate_demo_list.js +0 -105
- package/scripts/generate_documentation_list.js +0 -109
- package/scripts/generate_full_demo.js +0 -201
- package/scripts/generate_standalone_demo.js +0 -82
- package/scripts/launch_static_server.js +0 -163
- package/scripts/list-npm-scripts.js +0 -207
- package/scripts/make-dev-releases +0 -90
- package/scripts/report_build_sizes +0 -96
- package/scripts/run_standalone_demo.js +0 -27
- package/scripts/start_demo_web_server.js +0 -44
- package/scripts/update-version +0 -48
- package/scripts/update_gh-pages_demo +0 -132
- package/scripts/update_gh-pages_doc +0 -106
- package/scripts/utils/display_webpack_errors.js +0 -33
- package/scripts/utils/get_human_readable_hours.js +0 -14
- package/scripts/wasm-strip.js +0 -359
- package/sonar-project.properties +0 -7
- package/src/README.md +0 -136
- package/src/compat/README.md +0 -29
- package/src/compat/__tests__/add_text_track.test.ts +0 -176
- package/src/compat/__tests__/browser_compatibility_types.test.ts +0 -152
- package/src/compat/__tests__/browser_version.test.ts +0 -84
- package/src/compat/__tests__/can_patch_isobmff.test.ts +0 -50
- package/src/compat/__tests__/can_rely_on_video_visibility_and_size.test.ts +0 -78
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +0 -31
- package/src/compat/__tests__/change_source_buffer_type.test.ts +0 -60
- package/src/compat/__tests__/clear_element_src.test.ts +0 -252
- package/src/compat/__tests__/enable_audio_track.test.ts +0 -341
- package/src/compat/__tests__/fullscreen.test.ts +0 -286
- package/src/compat/__tests__/is_codec_supported.test.ts +0 -78
- package/src/compat/__tests__/is_offline.test.ts +0 -65
- package/src/compat/__tests__/is_seeking_approximate.test.ts +0 -48
- package/src/compat/__tests__/is_vtt_cue.test.ts +0 -71
- package/src/compat/__tests__/make_vtt_cue.test.ts +0 -97
- package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +0 -144
- package/src/compat/__tests__/remove_cue.test.ts +0 -229
- package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +0 -128
- package/src/compat/__tests__/should_reload_media_source_on_decipherability_update.test.ts +0 -50
- package/src/compat/__tests__/should_renew_media_key_system_access.test.ts +0 -55
- package/src/compat/__tests__/should_unset_media_keys.test.ts +0 -53
- package/src/compat/__tests__/should_validate_metadata.test.ts +0 -53
- package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +0 -121
- package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +0 -36
- package/src/compat/add_class_name.ts +0 -41
- package/src/compat/add_text_track.ts +0 -58
- package/src/compat/browser_compatibility_types.ts +0 -222
- package/src/compat/browser_detection.ts +0 -172
- package/src/compat/browser_version.ts +0 -44
- package/src/compat/can_patch_isobmff.ts +0 -30
- package/src/compat/can_rely_on_video_visibility_and_size.ts +0 -52
- package/src/compat/can_reuse_media_keys.ts +0 -20
- package/src/compat/change_source_buffer_type.ts +0 -66
- package/src/compat/clear_element_src.ts +0 -55
- package/src/compat/eme/close_session.ts +0 -111
- package/src/compat/eme/constants.ts +0 -21
- package/src/compat/eme/custom_key_system_access.ts +0 -67
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +0 -186
- package/src/compat/eme/custom_media_keys/index.ts +0 -28
- package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +0 -88
- package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +0 -69
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +0 -235
- package/src/compat/eme/custom_media_keys/types.ts +0 -67
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +0 -308
- package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +0 -50
- package/src/compat/eme/eme-api-implementation.ts +0 -318
- package/src/compat/eme/generate_key_request.ts +0 -162
- package/src/compat/eme/get_init_data.ts +0 -159
- package/src/compat/eme/get_uuid_kid_from_keystatus_kid.ts +0 -37
- package/src/compat/eme/get_webkit_fairplay_initdata.ts +0 -75
- package/src/compat/eme/index.ts +0 -47
- package/src/compat/eme/load_session.ts +0 -67
- package/src/compat/enable_audio_track.ts +0 -33
- package/src/compat/event_listeners.ts +0 -566
- package/src/compat/fullscreen.ts +0 -87
- package/src/compat/get_start_date.ts +0 -48
- package/src/compat/has_issues_with_high_media_source_duration.ts +0 -27
- package/src/compat/index.ts +0 -87
- package/src/compat/is_codec_supported.ts +0 -40
- package/src/compat/is_debug_mode_enabled.ts +0 -12
- package/src/compat/is_node.ts +0 -18
- package/src/compat/is_offline.ts +0 -44
- package/src/compat/is_seeking_approximate.ts +0 -32
- package/src/compat/is_vtt_cue.ts +0 -30
- package/src/compat/make_vtt_cue.ts +0 -51
- package/src/compat/on_height_width_change.ts +0 -119
- package/src/compat/patch_webkit_source_buffer.ts +0 -89
- package/src/compat/remove_cue.ts +0 -64
- package/src/compat/should_favour_custom_safari_EME.ts +0 -34
- package/src/compat/should_prevent_seeking_at_0_initially.ts +0 -19
- package/src/compat/should_reload_media_source_on_decipherability_update.ts +0 -32
- package/src/compat/should_renew_media_key_system_access.ts +0 -26
- package/src/compat/should_unset_media_keys.ts +0 -27
- package/src/compat/should_validate_metadata.ts +0 -27
- package/src/compat/should_wait_for_data_before_loaded.ts +0 -35
- package/src/compat/should_wait_for_have_enough_data.ts +0 -17
- package/src/config.ts +0 -32
- package/src/core/README.md +0 -56
- package/src/core/adaptive/README.md +0 -147
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +0 -548
- package/src/core/adaptive/adaptive_representation_selector.ts +0 -916
- package/src/core/adaptive/buffer_based_chooser.ts +0 -264
- package/src/core/adaptive/guess_based_chooser.ts +0 -309
- package/src/core/adaptive/index.ts +0 -45
- package/src/core/adaptive/network_analyzer.ts +0 -419
- package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -134
- package/src/core/adaptive/utils/__tests__/ewma.test.ts +0 -79
- package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +0 -56
- package/src/core/adaptive/utils/__tests__/filter_by_width.test.ts +0 -60
- package/src/core/adaptive/utils/__tests__/get_buffer_levels.test.ts +0 -48
- package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +0 -243
- package/src/core/adaptive/utils/bandwidth_estimator.ts +0 -88
- package/src/core/adaptive/utils/ewma.ts +0 -59
- package/src/core/adaptive/utils/filter_by_bitrate.ts +0 -46
- package/src/core/adaptive/utils/filter_by_width.ts +0 -49
- package/src/core/adaptive/utils/get_buffer_levels.ts +0 -50
- package/src/core/adaptive/utils/last_estimate_storage.ts +0 -79
- package/src/core/adaptive/utils/pending_requests_store.ts +0 -147
- package/src/core/adaptive/utils/representation_score_calculator.ts +0 -168
- package/src/core/adaptive/utils/select_optimal_representation.ts +0 -54
- package/src/core/api/README.md +0 -36
- package/src/core/api/__tests__/option_utils.test.ts +0 -1668
- package/src/core/api/__tests__/public_api.test.ts +0 -857
- package/src/core/api/__tests__/utils.test.ts +0 -195
- package/src/core/api/debug/buffer_graph.ts +0 -244
- package/src/core/api/debug/buffer_size_graph.ts +0 -130
- package/src/core/api/debug/constants.ts +0 -2
- package/src/core/api/debug/index.ts +0 -3
- package/src/core/api/debug/modules/general_info.ts +0 -213
- package/src/core/api/debug/modules/segment_buffer_content.ts +0 -155
- package/src/core/api/debug/modules/segment_buffer_size.ts +0 -48
- package/src/core/api/debug/render.ts +0 -40
- package/src/core/api/debug/utils.ts +0 -103
- package/src/core/api/index.ts +0 -27
- package/src/core/api/option_utils.ts +0 -700
- package/src/core/api/playback_observer.ts +0 -994
- package/src/core/api/public_api.ts +0 -3247
- package/src/core/api/tracks_management/__tests__/media_element_track_choice_manager.test.ts +0 -184
- package/src/core/api/tracks_management/media_element_track_choice_manager.ts +0 -975
- package/src/core/api/tracks_management/track_choice_manager.ts +0 -1280
- package/src/core/api/utils.ts +0 -216
- package/src/core/decrypt/README.md +0 -22
- package/src/core/decrypt/__tests__/__global__/get_license.test.ts +0 -422
- package/src/core/decrypt/__tests__/__global__/init_data.test.ts +0 -677
- package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +0 -528
- package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +0 -343
- package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +0 -264
- package/src/core/decrypt/__tests__/__global__/utils.ts +0 -491
- package/src/core/decrypt/attach_media_keys.ts +0 -121
- package/src/core/decrypt/clear_on_stop.ts +0 -47
- package/src/core/decrypt/content_decryptor.ts +0 -1246
- package/src/core/decrypt/create_or_load_session.ts +0 -133
- package/src/core/decrypt/create_session.ts +0 -214
- package/src/core/decrypt/dispose_decryption_resources.ts +0 -54
- package/src/core/decrypt/find_key_system.ts +0 -376
- package/src/core/decrypt/get_key_system_configuration.ts +0 -51
- package/src/core/decrypt/get_media_keys.ts +0 -147
- package/src/core/decrypt/index.ts +0 -36
- package/src/core/decrypt/init_media_keys.ts +0 -60
- package/src/core/decrypt/session_events_listener.ts +0 -386
- package/src/core/decrypt/set_server_certificate.ts +0 -105
- package/src/core/decrypt/types.ts +0 -404
- package/src/core/decrypt/utils/__tests__/are_init_values_compatible.test.ts +0 -261
- package/src/core/decrypt/utils/__tests__/clean_old_loaded_sessions.test.ts +0 -158
- package/src/core/decrypt/utils/__tests__/clean_old_stored_persistent_info.test.ts +0 -133
- package/src/core/decrypt/utils/are_init_values_compatible.ts +0 -140
- package/src/core/decrypt/utils/check_key_statuses.ts +0 -193
- package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +0 -45
- package/src/core/decrypt/utils/clean_old_stored_persistent_info.ts +0 -48
- package/src/core/decrypt/utils/get_drm_system_id.ts +0 -42
- package/src/core/decrypt/utils/init_data_values_container.ts +0 -119
- package/src/core/decrypt/utils/is_session_usable.ts +0 -62
- package/src/core/decrypt/utils/key_id_comparison.ts +0 -57
- package/src/core/decrypt/utils/key_session_record.ts +0 -174
- package/src/core/decrypt/utils/loaded_sessions_store.ts +0 -505
- package/src/core/decrypt/utils/media_keys_infos_store.ts +0 -85
- package/src/core/decrypt/utils/persistent_sessions_store.ts +0 -358
- package/src/core/decrypt/utils/serializable_bytes.ts +0 -59
- package/src/core/decrypt/utils/server_certificate_store.ts +0 -133
- package/src/core/fetchers/README.md +0 -84
- package/src/core/fetchers/cdn_prioritizer.ts +0 -207
- package/src/core/fetchers/index.ts +0 -38
- package/src/core/fetchers/manifest/index.ts +0 -28
- package/src/core/fetchers/manifest/manifest_fetcher.ts +0 -798
- package/src/core/fetchers/segment/__tests__/task_prioritizer.test.ts +0 -763
- package/src/core/fetchers/segment/index.ts +0 -28
- package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +0 -113
- package/src/core/fetchers/segment/segment_fetcher.ts +0 -482
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +0 -129
- package/src/core/fetchers/segment/task_prioritizer.ts +0 -455
- package/src/core/fetchers/utils/error_selector.ts +0 -38
- package/src/core/fetchers/utils/schedule_request.ts +0 -493
- package/src/core/init/README.md +0 -81
- package/src/core/init/directfile_content_initializer.ts +0 -310
- package/src/core/init/index.ts +0 -22
- package/src/core/init/media_source_content_initializer.ts +0 -878
- package/src/core/init/types.ts +0 -266
- package/src/core/init/utils/__tests__/are_same_stream_events.test.ts +0 -84
- package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +0 -94
- package/src/core/init/utils/content_time_boundaries_observer.ts +0 -646
- package/src/core/init/utils/create_media_source.ts +0 -139
- package/src/core/init/utils/create_stream_playback_observer.ts +0 -132
- package/src/core/init/utils/end_of_stream.ts +0 -108
- package/src/core/init/utils/get_initial_time.ts +0 -165
- package/src/core/init/utils/get_loaded_reference.ts +0 -82
- package/src/core/init/utils/initial_seek_and_play.ts +0 -237
- package/src/core/init/utils/initialize_content_decryption.ts +0 -172
- package/src/core/init/utils/media_source_duration_updater.ts +0 -349
- package/src/core/init/utils/rebuffering_controller.ts +0 -642
- package/src/core/init/utils/stream_events_emitter/are_same_stream_events.ts +0 -42
- package/src/core/init/utils/stream_events_emitter/index.ts +0 -22
- package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +0 -74
- package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +0 -252
- package/src/core/init/utils/stream_events_emitter/types.ts +0 -46
- package/src/core/init/utils/throw_on_media_error.ts +0 -74
- package/src/core/segment_buffers/README.md +0 -219
- package/src/core/segment_buffers/garbage_collector.ts +0 -177
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +0 -650
- package/src/core/segment_buffers/implementations/audio_video/index.ts +0 -18
- package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +0 -152
- package/src/core/segment_buffers/implementations/image/index.ts +0 -18
- package/src/core/segment_buffers/implementations/index.ts +0 -20
- package/src/core/segment_buffers/implementations/text/html/__tests__/utils.test.ts +0 -343
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +0 -527
- package/src/core/segment_buffers/implementations/text/html/index.ts +0 -24
- package/src/core/segment_buffers/implementations/text/html/parsers.ts +0 -49
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +0 -391
- package/src/core/segment_buffers/implementations/text/html/types.ts +0 -23
- package/src/core/segment_buffers/implementations/text/html/update_proportional_elements.ts +0 -93
- package/src/core/segment_buffers/implementations/text/html/utils.ts +0 -139
- package/src/core/segment_buffers/implementations/text/native/index.ts +0 -19
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +0 -340
- package/src/core/segment_buffers/implementations/text/native/parsers.ts +0 -47
- package/src/core/segment_buffers/implementations/types.ts +0 -386
- package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +0 -80
- package/src/core/segment_buffers/index.ts +0 -67
- package/src/core/segment_buffers/inventory/buffered_history.ts +0 -131
- package/src/core/segment_buffers/inventory/index.ts +0 -30
- package/src/core/segment_buffers/inventory/segment_inventory.ts +0 -1111
- package/src/core/segment_buffers/inventory/types.ts +0 -35
- package/src/core/segment_buffers/segment_buffers_store.ts +0 -383
- package/src/core/stream/README.md +0 -59
- package/src/core/stream/adaptation/adaptation_stream.ts +0 -378
- package/src/core/stream/adaptation/index.ts +0 -20
- package/src/core/stream/adaptation/types.ts +0 -199
- package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
- package/src/core/stream/index.ts +0 -38
- package/src/core/stream/orchestrator/README.md +0 -349
- package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +0 -70
- package/src/core/stream/orchestrator/index.ts +0 -30
- package/src/core/stream/orchestrator/stream_orchestrator.ts +0 -664
- package/src/core/stream/period/index.ts +0 -20
- package/src/core/stream/period/period_stream.ts +0 -469
- package/src/core/stream/period/types.ts +0 -132
- package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +0 -287
- package/src/core/stream/representation/README.md +0 -16
- package/src/core/stream/representation/index.ts +0 -20
- package/src/core/stream/representation/representation_stream.ts +0 -474
- package/src/core/stream/representation/types.ts +0 -292
- package/src/core/stream/representation/utils/append_segment_to_buffer.ts +0 -77
- package/src/core/stream/representation/utils/check_for_discontinuity.ts +0 -305
- package/src/core/stream/representation/utils/downloading_queue.ts +0 -603
- package/src/core/stream/representation/utils/force_garbage_collection.ts +0 -113
- package/src/core/stream/representation/utils/get_buffer_status.ts +0 -322
- package/src/core/stream/representation/utils/get_needed_segments.ts +0 -617
- package/src/core/stream/representation/utils/get_segment_priority.ts +0 -43
- package/src/core/stream/representation/utils/push_init_segment.ts +0 -85
- package/src/core/stream/representation/utils/push_media_segment.ts +0 -113
- package/src/default_config.ts +0 -1293
- package/src/errors/README.md +0 -6
- package/src/errors/__tests__/assertion_error.test.ts +0 -26
- package/src/errors/__tests__/encrypted_media_error.test.ts +0 -45
- package/src/errors/__tests__/error_message.test.ts +0 -23
- package/src/errors/__tests__/format_error.test.ts +0 -62
- package/src/errors/__tests__/is_known_error.test.ts +0 -65
- package/src/errors/__tests__/media_error.test.ts +0 -55
- package/src/errors/__tests__/network_error.test.ts +0 -84
- package/src/errors/__tests__/other_error.test.ts +0 -53
- package/src/errors/__tests__/request_error.test.ts +0 -45
- package/src/errors/assertion_error.ts +0 -40
- package/src/errors/custom_loader_error.ts +0 -57
- package/src/errors/encrypted_media_error.ts +0 -71
- package/src/errors/error_codes.ts +0 -149
- package/src/errors/error_message.ts +0 -30
- package/src/errors/format_error.ts +0 -39
- package/src/errors/index.ts +0 -52
- package/src/errors/is_known_error.ts +0 -35
- package/src/errors/media_error.ts +0 -118
- package/src/errors/network_error.ts +0 -74
- package/src/errors/other_error.ts +0 -50
- package/src/errors/request_error.ts +0 -76
- package/src/experimental/README.md +0 -16
- package/src/experimental/features/__tests__/dash_wasm.test.ts +0 -44
- package/src/experimental/features/__tests__/debug_element.test.ts +0 -12
- package/src/experimental/features/__tests__/index.test.ts +0 -19
- package/src/experimental/features/__tests__/local.test.ts +0 -35
- package/src/experimental/features/__tests__/metaplaylist.test.ts +0 -35
- package/src/experimental/features/dash_wasm.ts +0 -41
- package/src/experimental/features/debug_element.ts +0 -13
- package/src/experimental/features/index.ts +0 -20
- package/src/experimental/features/local.ts +0 -28
- package/src/experimental/features/metaplaylist.ts +0 -28
- package/src/experimental/index.ts +0 -5
- package/src/experimental/tools/VideoThumbnailLoader/features/dash.ts +0 -23
- package/src/experimental/tools/VideoThumbnailLoader/features/metaplaylist.ts +0 -23
- package/src/experimental/tools/VideoThumbnailLoader/index.ts +0 -25
- package/src/experimental/tools/VideoThumbnailLoader/load_and_push_segment.ts +0 -77
- package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +0 -75
- package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +0 -54
- package/src/experimental/tools/VideoThumbnailLoader/types.ts +0 -39
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +0 -423
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.ts +0 -34
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +0 -141
- package/src/experimental/tools/createMetaplaylist/index.ts +0 -72
- package/src/experimental/tools/index.ts +0 -27
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/capabilities.test.ts +0 -37
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +0 -140
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +0 -153
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +0 -405
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/defaultCodecFinder.test.ts +0 -136
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +0 -294
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +0 -189
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/utils.test.ts +0 -361
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +0 -184
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +0 -136
- package/src/experimental/tools/mediaCapabilitiesProber/capabilities.ts +0 -169
- package/src/experimental/tools/mediaCapabilitiesProber/index.ts +0 -18
- package/src/experimental/tools/mediaCapabilitiesProber/log.ts +0 -21
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +0 -67
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +0 -89
- package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +0 -100
- package/src/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.ts +0 -66
- package/src/experimental/tools/mediaCapabilitiesProber/probers/index.ts +0 -44
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +0 -66
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.ts +0 -100
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +0 -105
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +0 -54
- package/src/experimental/tools/mediaCapabilitiesProber/types.ts +0 -75
- package/src/experimental/tools/mediaCapabilitiesProber/utils.ts +0 -107
- package/src/experimental/tools/parseBIFThumbnails.ts +0 -39
- package/src/features/README.md +0 -11
- package/src/features/__tests__/add_features.test.ts +0 -69
- package/src/features/__tests__/initialize_features.test.ts +0 -674
- package/src/features/add_features.ts +0 -37
- package/src/features/features_object.ts +0 -37
- package/src/features/index.ts +0 -40
- package/src/features/initialize_features.ts +0 -136
- package/src/features/list/__tests__/bif_parser.test.ts +0 -30
- package/src/features/list/__tests__/dash.test.ts +0 -41
- package/src/features/list/__tests__/directfile.test.ts +0 -35
- package/src/features/list/__tests__/eme.test.ts +0 -28
- package/src/features/list/__tests__/html_sami_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_srt_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_text_buffer.test.ts +0 -29
- package/src/features/list/__tests__/html_ttml_parser.test.ts +0 -33
- package/src/features/list/__tests__/html_vtt_parser.test.ts +0 -33
- package/src/features/list/__tests__/image_buffer.test.ts +0 -28
- package/src/features/list/__tests__/index.test.ts +0 -55
- package/src/features/list/__tests__/native_sami_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_srt_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_text_buffer.test.ts +0 -29
- package/src/features/list/__tests__/native_ttml_parser.test.ts +0 -33
- package/src/features/list/__tests__/native_vtt_parser.test.ts +0 -33
- package/src/features/list/__tests__/smooth.test.ts +0 -36
- package/src/features/list/bif_parser.ts +0 -31
- package/src/features/list/dash.ts +0 -36
- package/src/features/list/directfile.ts +0 -35
- package/src/features/list/eme.ts +0 -29
- package/src/features/list/html_sami_parser.ts +0 -31
- package/src/features/list/html_srt_parser.ts +0 -31
- package/src/features/list/html_text_buffer.ts +0 -29
- package/src/features/list/html_ttml_parser.ts +0 -31
- package/src/features/list/html_vtt_parser.ts +0 -31
- package/src/features/list/image_buffer.ts +0 -29
- package/src/features/list/index.ts +0 -32
- package/src/features/list/native_sami_parser.ts +0 -32
- package/src/features/list/native_srt_parser.ts +0 -32
- package/src/features/list/native_text_buffer.ts +0 -30
- package/src/features/list/native_ttml_parser.ts +0 -32
- package/src/features/list/native_vtt_parser.ts +0 -32
- package/src/features/list/smooth.ts +0 -32
- package/src/features/types.ts +0 -183
- package/src/index.ts +0 -38
- package/src/log.ts +0 -22
- package/src/manifest/README.md +0 -55
- package/src/manifest/__tests__/adaptation.test.ts +0 -485
- package/src/manifest/__tests__/manifest.test.ts +0 -428
- package/src/manifest/__tests__/period.test.ts +0 -769
- package/src/manifest/__tests__/representation.test.ts +0 -297
- package/src/manifest/__tests__/update_period_in_place.test.ts +0 -1074
- package/src/manifest/__tests__/update_periods.test.ts +0 -845
- package/src/manifest/adaptation.ts +0 -294
- package/src/manifest/index.ts +0 -67
- package/src/manifest/manifest.ts +0 -811
- package/src/manifest/period.ts +0 -211
- package/src/manifest/representation.ts +0 -451
- package/src/manifest/representation_index/__tests__/static.test.ts +0 -74
- package/src/manifest/representation_index/index.ts +0 -31
- package/src/manifest/representation_index/static.ts +0 -158
- package/src/manifest/representation_index/types.ts +0 -433
- package/src/manifest/types.ts +0 -33
- package/src/manifest/update_period_in_place.ts +0 -142
- package/src/manifest/update_periods.ts +0 -201
- package/src/manifest/utils.ts +0 -60
- package/src/minimal.ts +0 -34
- package/src/parsers/README.md +0 -12
- package/src/parsers/containers/isobmff/constants.ts +0 -24
- package/src/parsers/containers/isobmff/create_box.ts +0 -81
- package/src/parsers/containers/isobmff/drm/index.ts +0 -17
- package/src/parsers/containers/isobmff/drm/playready.ts +0 -45
- package/src/parsers/containers/isobmff/get_box.ts +0 -278
- package/src/parsers/containers/isobmff/index.ts +0 -51
- package/src/parsers/containers/isobmff/read.ts +0 -105
- package/src/parsers/containers/isobmff/take_pssh_out.ts +0 -101
- package/src/parsers/containers/isobmff/utils.ts +0 -555
- package/src/parsers/containers/matroska/index.ts +0 -21
- package/src/parsers/containers/matroska/utils.ts +0 -313
- package/src/parsers/images/bif.ts +0 -128
- package/src/parsers/manifest/dash/common/__tests__/attach_trickmode_track.test.ts +0 -65
- package/src/parsers/manifest/dash/common/__tests__/convert_supplemental_codecs.test.ts +0 -37
- package/src/parsers/manifest/dash/common/__tests__/flatten_overlapping_period.test.ts +0 -162
- package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +0 -65
- package/src/parsers/manifest/dash/common/__tests__/get_http_utc-timing_url.test.ts +0 -165
- package/src/parsers/manifest/dash/common/__tests__/get_periods_time_infos.test.ts +0 -118
- package/src/parsers/manifest/dash/common/__tests__/manifest_bounds_calculator.test.ts +0 -290
- package/src/parsers/manifest/dash/common/__tests__/parse_availability_start_time.test.ts +0 -63
- package/src/parsers/manifest/dash/common/attach_trickmode_track.ts +0 -55
- package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +0 -32
- package/src/parsers/manifest/dash/common/flatten_overlapping_periods.ts +0 -87
- package/src/parsers/manifest/dash/common/get_clock_offset.ts +0 -41
- package/src/parsers/manifest/dash/common/get_hdr_information.ts +0 -94
- package/src/parsers/manifest/dash/common/get_http_utc-timing_url.ts +0 -46
- package/src/parsers/manifest/dash/common/get_minimum_and_maximum_positions.ts +0 -39
- package/src/parsers/manifest/dash/common/get_periods_time_infos.ts +0 -91
- package/src/parsers/manifest/dash/common/index.ts +0 -40
- package/src/parsers/manifest/dash/common/indexes/__tests__/tokens.test.ts +0 -60
- package/src/parsers/manifest/dash/common/indexes/base.ts +0 -444
- package/src/parsers/manifest/dash/common/indexes/get_init_segment.ts +0 -55
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +0 -148
- package/src/parsers/manifest/dash/common/indexes/index.ts +0 -39
- package/src/parsers/manifest/dash/common/indexes/list.ts +0 -338
- package/src/parsers/manifest/dash/common/indexes/template.ts +0 -652
- package/src/parsers/manifest/dash/common/indexes/timeline/__tests__/parse_s_element.test.ts +0 -115
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.ts +0 -54
- package/src/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.ts +0 -102
- package/src/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.ts +0 -66
- package/src/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.ts +0 -153
- package/src/parsers/manifest/dash/common/indexes/timeline/index.ts +0 -21
- package/src/parsers/manifest/dash/common/indexes/timeline/parse_s_element.ts +0 -72
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +0 -1049
- package/src/parsers/manifest/dash/common/indexes/tokens.ts +0 -127
- package/src/parsers/manifest/dash/common/indexes/utils.ts +0 -32
- package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +0 -142
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +0 -165
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +0 -569
- package/src/parsers/manifest/dash/common/parse_availability_start_time.ts +0 -35
- package/src/parsers/manifest/dash/common/parse_mpd.ts +0 -399
- package/src/parsers/manifest/dash/common/parse_periods.ts +0 -363
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +0 -199
- package/src/parsers/manifest/dash/common/parse_representations.ts +0 -352
- package/src/parsers/manifest/dash/common/resolve_base_urls.ts +0 -58
- package/src/parsers/manifest/dash/index.ts +0 -22
- package/src/parsers/manifest/dash/js-parser/__tests__/parse_from_document.test.ts +0 -45
- package/src/parsers/manifest/dash/js-parser/index.ts +0 -18
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +0 -381
- package/src/parsers/manifest/dash/js-parser/node_parsers/BaseURL.ts +0 -35
- package/src/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.ts +0 -49
- package/src/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.ts +0 -94
- package/src/parsers/manifest/dash/js-parser/node_parsers/EventStream.ts +0 -117
- package/src/parsers/manifest/dash/js-parser/node_parsers/Initialization.ts +0 -48
- package/src/parsers/manifest/dash/js-parser/node_parsers/MPD.ts +0 -180
- package/src/parsers/manifest/dash/js-parser/node_parsers/Period.ts +0 -152
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +0 -234
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +0 -112
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentList.ts +0 -50
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.ts +0 -98
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.ts +0 -35
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.ts +0 -63
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +0 -407
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentComponent.test.ts +0 -67
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/ContentProtection.test.ts +0 -223
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/Initialization.test.ts +0 -139
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentTimeline.test.ts +0 -119
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/SegmentURL.test.ts +0 -205
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/utils.test.ts +0 -218
- package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +0 -384
- package/src/parsers/manifest/dash/js-parser/parse_from_document.ts +0 -129
- package/src/parsers/manifest/dash/node_parser_types.ts +0 -431
- package/src/parsers/manifest/dash/parsers_types.ts +0 -91
- package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +0 -25
- package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +0 -16
- package/src/parsers/manifest/dash/wasm-parser/README.md +0 -267
- package/src/parsers/manifest/dash/wasm-parser/index.ts +0 -21
- package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +0 -28
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +0 -373
- package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +0 -85
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +0 -414
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +0 -472
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +0 -72
- package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +0 -17
- package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +0 -147
- package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +0 -217
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +0 -477
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +0 -343
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +0 -38
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.ts +0 -53
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.ts +0 -62
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.ts +0 -144
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/MPD.ts +0 -183
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Period.ts +0 -180
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +0 -215
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.ts +0 -44
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +0 -115
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.ts +0 -61
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +0 -133
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.ts +0 -70
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/XLink.ts +0 -66
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/index.ts +0 -17
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/root.ts +0 -66
- package/src/parsers/manifest/dash/wasm-parser/ts/parsers_stack.ts +0 -80
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +0 -298
- package/src/parsers/manifest/dash/wasm-parser/ts/utils.ts +0 -47
- package/src/parsers/manifest/index.ts +0 -17
- package/src/parsers/manifest/local/index.ts +0 -25
- package/src/parsers/manifest/local/parse_local_manifest.ts +0 -164
- package/src/parsers/manifest/local/representation_index.ts +0 -246
- package/src/parsers/manifest/local/types.ts +0 -291
- package/src/parsers/manifest/metaplaylist/index.ts +0 -28
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +0 -335
- package/src/parsers/manifest/metaplaylist/representation_index.ts +0 -251
- package/src/parsers/manifest/smooth/create_parser.ts +0 -699
- package/src/parsers/manifest/smooth/get_codecs.ts +0 -55
- package/src/parsers/manifest/smooth/index.ts +0 -26
- package/src/parsers/manifest/smooth/parse_C_nodes.ts +0 -69
- package/src/parsers/manifest/smooth/parse_protection_node.ts +0 -72
- package/src/parsers/manifest/smooth/representation_index.ts +0 -704
- package/src/parsers/manifest/smooth/utils/add_segment_infos.ts +0 -77
- package/src/parsers/manifest/smooth/utils/parseBoolean.ts +0 -31
- package/src/parsers/manifest/smooth/utils/reduceChildren.ts +0 -36
- package/src/parsers/manifest/smooth/utils/tokens.ts +0 -46
- package/src/parsers/manifest/types.ts +0 -395
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +0 -161
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +0 -161
- package/src/parsers/manifest/utils/__tests__/index_helpers.test.ts +0 -55
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +0 -546
- package/src/parsers/manifest/utils/check_manifest_ids.ts +0 -83
- package/src/parsers/manifest/utils/clear_timeline_from_position.ts +0 -74
- package/src/parsers/manifest/utils/get_first_time_from_adaptation.ts +0 -48
- package/src/parsers/manifest/utils/get_last_time_from_adaptation.ts +0 -50
- package/src/parsers/manifest/utils/get_maximum_positions.ts +0 -87
- package/src/parsers/manifest/utils/get_minimum_position.ts +0 -80
- package/src/parsers/manifest/utils/index_helpers.ts +0 -204
- package/src/parsers/manifest/utils/update_segment_timeline.ts +0 -141
- package/src/parsers/texttracks/index.ts +0 -21
- package/src/parsers/texttracks/sami/html.ts +0 -219
- package/src/parsers/texttracks/sami/native.ts +0 -192
- package/src/parsers/texttracks/srt/__tests__/find_end_of_cue_block.test.ts +0 -99
- package/src/parsers/texttracks/srt/__tests__/get_cue_blocks.test.ts +0 -119
- package/src/parsers/texttracks/srt/__tests__/parse_cue.test.ts +0 -123
- package/src/parsers/texttracks/srt/__tests__/parse_timestamp.test.ts +0 -36
- package/src/parsers/texttracks/srt/find_end_of_cue_block.ts +0 -46
- package/src/parsers/texttracks/srt/get_cue_blocks.ts +0 -49
- package/src/parsers/texttracks/srt/html.ts +0 -182
- package/src/parsers/texttracks/srt/native.ts +0 -74
- package/src/parsers/texttracks/srt/parse_cue.ts +0 -76
- package/src/parsers/texttracks/srt/parse_timestamp.ts +0 -37
- package/src/parsers/texttracks/ttml/__tests__/resolve_styles_inheritance.test.ts +0 -248
- package/src/parsers/texttracks/ttml/get_parameters.ts +0 -106
- package/src/parsers/texttracks/ttml/get_styling.ts +0 -146
- package/src/parsers/texttracks/ttml/get_time_delimiters.ts +0 -49
- package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +0 -190
- package/src/parsers/texttracks/ttml/html/__tests__/generate_css_test_outline.test.ts +0 -32
- package/src/parsers/texttracks/ttml/html/__tests__/ttml_color_to_css_color.test.ts +0 -62
- package/src/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.ts +0 -67
- package/src/parsers/texttracks/ttml/html/apply_extent.ts +0 -65
- package/src/parsers/texttracks/ttml/html/apply_font_size.ts +0 -62
- package/src/parsers/texttracks/ttml/html/apply_line_height.ts +0 -50
- package/src/parsers/texttracks/ttml/html/apply_origin.ts +0 -64
- package/src/parsers/texttracks/ttml/html/apply_padding.ts +0 -141
- package/src/parsers/texttracks/ttml/html/create_element.ts +0 -549
- package/src/parsers/texttracks/ttml/html/generate_css_test_outline.ts +0 -46
- package/src/parsers/texttracks/ttml/html/index.ts +0 -23
- package/src/parsers/texttracks/ttml/html/parse_cue.ts +0 -65
- package/src/parsers/texttracks/ttml/html/parse_ttml_to_div.ts +0 -58
- package/src/parsers/texttracks/ttml/html/ttml_color_to_css_color.ts +0 -68
- package/src/parsers/texttracks/ttml/native/index.ts +0 -23
- package/src/parsers/texttracks/ttml/native/parse_cue.ts +0 -245
- package/src/parsers/texttracks/ttml/native/parse_ttml_to_vtt.ts +0 -39
- package/src/parsers/texttracks/ttml/parse_ttml.ts +0 -206
- package/src/parsers/texttracks/ttml/regexps.ts +0 -65
- package/src/parsers/texttracks/ttml/resolve_styles_inheritance.ts +0 -84
- package/src/parsers/texttracks/ttml/time_parsing.ts +0 -156
- package/src/parsers/texttracks/ttml/xml_utils.ts +0 -166
- package/src/parsers/texttracks/types.ts +0 -34
- package/src/parsers/texttracks/webvtt/__tests__/get_cue_blocks.test.ts +0 -218
- package/src/parsers/texttracks/webvtt/__tests__/get_style_blocks.test.ts +0 -65
- package/src/parsers/texttracks/webvtt/__tests__/parse_cue_block.test.ts +0 -249
- package/src/parsers/texttracks/webvtt/__tests__/parse_timestamp.test.ts +0 -39
- package/src/parsers/texttracks/webvtt/__tests__/utils.test.ts +0 -401
- package/src/parsers/texttracks/webvtt/get_cue_blocks.ts +0 -51
- package/src/parsers/texttracks/webvtt/get_style_blocks.ts +0 -56
- package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +0 -106
- package/src/parsers/texttracks/webvtt/html/__tests__/create_default_style_elements.test.ts +0 -44
- package/src/parsers/texttracks/webvtt/html/__tests__/create_style_attribute.test.ts +0 -139
- package/src/parsers/texttracks/webvtt/html/__tests__/create_styled_element.test.ts +0 -140
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_style_block.test.ts +0 -345
- package/src/parsers/texttracks/webvtt/html/__tests__/parse_webvtt_to_div.test.ts +0 -181
- package/src/parsers/texttracks/webvtt/html/__tests__/to_html.test.ts +0 -234
- package/src/parsers/texttracks/webvtt/html/convert_payload_to_html.ts +0 -46
- package/src/parsers/texttracks/webvtt/html/create_default_style_elements.ts +0 -26
- package/src/parsers/texttracks/webvtt/html/create_style_attribute.ts +0 -222
- package/src/parsers/texttracks/webvtt/html/create_styled_element.ts +0 -95
- package/src/parsers/texttracks/webvtt/html/index.ts +0 -25
- package/src/parsers/texttracks/webvtt/html/parse_style_block.ts +0 -76
- package/src/parsers/texttracks/webvtt/html/parse_webvtt_to_div.ts +0 -67
- package/src/parsers/texttracks/webvtt/html/to_html.ts +0 -96
- package/src/parsers/texttracks/webvtt/native/index.ts +0 -23
- package/src/parsers/texttracks/webvtt/native/parse_vtt_to_cues.ts +0 -70
- package/src/parsers/texttracks/webvtt/native/set_settings_on_cue.ts +0 -95
- package/src/parsers/texttracks/webvtt/native/to_native_cue.ts +0 -34
- package/src/parsers/texttracks/webvtt/parse_cue_block.ts +0 -128
- package/src/parsers/texttracks/webvtt/parse_timestamp.ts +0 -40
- package/src/parsers/texttracks/webvtt/utils.ts +0 -135
- package/src/public_types.ts +0 -846
- package/src/tools/README.md +0 -4
- package/src/tools/TextTrackRenderer/index.ts +0 -28
- package/src/tools/TextTrackRenderer/text_track_renderer.ts +0 -107
- package/src/tools/index.ts +0 -20
- package/src/tools/string_utils.ts +0 -24
- package/src/transports/README.md +0 -276
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +0 -98
- package/src/transports/dash/construct_segment_url.ts +0 -28
- package/src/transports/dash/extract_complete_chunks.ts +0 -66
- package/src/transports/dash/get_events_out_of_emsgs.ts +0 -105
- package/src/transports/dash/image_pipelines.ts +0 -122
- package/src/transports/dash/index.ts +0 -23
- package/src/transports/dash/init_segment_loader.ts +0 -114
- package/src/transports/dash/low_latency_segment_loader.ts +0 -87
- package/src/transports/dash/manifest_parser.ts +0 -325
- package/src/transports/dash/pipelines.ts +0 -72
- package/src/transports/dash/segment_loader.ts +0 -249
- package/src/transports/dash/segment_parser.ts +0 -194
- package/src/transports/dash/text_loader.ts +0 -120
- package/src/transports/dash/text_parser.ts +0 -234
- package/src/transports/index.ts +0 -17
- package/src/transports/local/index.ts +0 -18
- package/src/transports/local/pipelines.ts +0 -100
- package/src/transports/local/segment_loader.ts +0 -198
- package/src/transports/local/segment_parser.ts +0 -101
- package/src/transports/local/text_parser.ts +0 -185
- package/src/transports/metaplaylist/README.md +0 -94
- package/src/transports/metaplaylist/index.ts +0 -23
- package/src/transports/metaplaylist/manifest_loader.ts +0 -62
- package/src/transports/metaplaylist/pipelines.ts +0 -425
- package/src/transports/smooth/extract_timings_infos.ts +0 -142
- package/src/transports/smooth/index.ts +0 -23
- package/src/transports/smooth/isobmff/__tests__/create_boxes.test.ts +0 -231
- package/src/transports/smooth/isobmff/create_audio_init_segment.ts +0 -84
- package/src/transports/smooth/isobmff/create_boxes.ts +0 -481
- package/src/transports/smooth/isobmff/create_init_segment.ts +0 -100
- package/src/transports/smooth/isobmff/create_traf_box.ts +0 -40
- package/src/transports/smooth/isobmff/create_video_init_segment.ts +0 -78
- package/src/transports/smooth/isobmff/get_aaces_header.ts +0 -62
- package/src/transports/smooth/isobmff/index.ts +0 -32
- package/src/transports/smooth/isobmff/parse_tfrf.ts +0 -57
- package/src/transports/smooth/isobmff/parse_tfxd.ts +0 -38
- package/src/transports/smooth/isobmff/patch_segment.ts +0 -171
- package/src/transports/smooth/pipelines.ts +0 -533
- package/src/transports/smooth/segment_loader.ts +0 -288
- package/src/transports/smooth/utils.ts +0 -106
- package/src/transports/types.ts +0 -809
- package/src/transports/utils/__tests__/byte_range.test.ts +0 -35
- package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +0 -148
- package/src/transports/utils/__tests__/find_complete_box.test.ts +0 -138
- package/src/transports/utils/__tests__/infer_segment_container.test.ts +0 -227
- package/src/transports/utils/byte_range.ts +0 -25
- package/src/transports/utils/call_custom_manifest_loader.ts +0 -147
- package/src/transports/utils/check_isobmff_integrity.ts +0 -50
- package/src/transports/utils/find_complete_box.ts +0 -63
- package/src/transports/utils/generate_manifest_loader.ts +0 -97
- package/src/transports/utils/get_isobmff_timing_infos.ts +0 -86
- package/src/transports/utils/infer_segment_container.ts +0 -56
- package/src/transports/utils/parse_text_track.ts +0 -176
- package/src/typings/README.md +0 -7
- package/src/typings/globals.d.ts +0 -83
- package/src/typings/next-tick.d.ts +0 -23
- package/src/utils/README.md +0 -5
- package/src/utils/__tests__/are_arrays_of_numbers_equal.test.ts +0 -86
- package/src/utils/__tests__/are_codecs_compatible.test.ts +0 -88
- package/src/utils/__tests__/array_find.test.ts +0 -113
- package/src/utils/__tests__/array_find_index.test.ts +0 -113
- package/src/utils/__tests__/array_includes.test.ts +0 -151
- package/src/utils/__tests__/assert.test.ts +0 -237
- package/src/utils/__tests__/assert_unreachable.test.ts +0 -40
- package/src/utils/__tests__/base64.test.ts +0 -147
- package/src/utils/__tests__/byte_parsing.test.ts +0 -267
- package/src/utils/__tests__/deep_merge.test.ts +0 -48
- package/src/utils/__tests__/event_emitter.test.ts +0 -579
- package/src/utils/__tests__/flat_map.test.ts +0 -71
- package/src/utils/__tests__/get_fuzzed_delay.test.ts +0 -32
- package/src/utils/__tests__/hash_buffer.test.ts +0 -105
- package/src/utils/__tests__/id_generator.test.ts +0 -80
- package/src/utils/__tests__/initialization_segment_cache.test.ts +0 -245
- package/src/utils/__tests__/is_non_empty_string.test.ts +0 -41
- package/src/utils/__tests__/is_null_or_undefined.test.ts +0 -33
- package/src/utils/__tests__/list_to_map.test.ts +0 -46
- package/src/utils/__tests__/logger.test.ts +0 -214
- package/src/utils/__tests__/noop.test.ts +0 -23
- package/src/utils/__tests__/object_assign.test.ts +0 -56
- package/src/utils/__tests__/object_values.test.ts +0 -26
- package/src/utils/__tests__/ranges.test.ts +0 -907
- package/src/utils/__tests__/resolve_url.test.ts +0 -100
- package/src/utils/__tests__/simple_set.test.ts +0 -57
- package/src/utils/__tests__/sorted_list.test.ts +0 -335
- package/src/utils/__tests__/starts_with.test.ts +0 -65
- package/src/utils/__tests__/string_parsing.test.ts +0 -267
- package/src/utils/__tests__/uniq.test.ts +0 -134
- package/src/utils/__tests__/warn_once.test.ts +0 -38
- package/src/utils/__tests__/weak_map_memory.test.ts +0 -188
- package/src/utils/are_arrays_of_numbers_equal.ts +0 -39
- package/src/utils/are_codecs_compatible.ts +0 -51
- package/src/utils/array_find.ts +0 -55
- package/src/utils/array_find_index.ts +0 -54
- package/src/utils/array_includes.ts +0 -93
- package/src/utils/assert.ts +0 -65
- package/src/utils/assert_unreachable.ts +0 -45
- package/src/utils/base64.ts +0 -153
- package/src/utils/byte_parsing.ts +0 -256
- package/src/utils/cancellable_sleep.ts +0 -41
- package/src/utils/create_cancellable_promise.ts +0 -69
- package/src/utils/deep_merge.ts +0 -49
- package/src/utils/event_emitter.ts +0 -147
- package/src/utils/flat_map.ts +0 -50
- package/src/utils/get_fuzzed_delay.ts +0 -27
- package/src/utils/hash_buffer.ts +0 -42
- package/src/utils/id_generator.ts +0 -35
- package/src/utils/initialization_segment_cache.ts +0 -68
- package/src/utils/is_non_empty_string.ts +0 -23
- package/src/utils/is_null_or_undefined.ts +0 -27
- package/src/utils/languages/ISO_639-1_to_ISO_639-3.ts +0 -207
- package/src/utils/languages/ISO_639-2_to_ISO_639-3.ts +0 -43
- package/src/utils/languages/__tests__/normalize.test.ts +0 -290
- package/src/utils/languages/index.ts +0 -29
- package/src/utils/languages/normalize.ts +0 -152
- package/src/utils/list_to_map.ts +0 -32
- package/src/utils/logger.ts +0 -100
- package/src/utils/noop.ts +0 -26
- package/src/utils/object_assign.ts +0 -60
- package/src/utils/object_values.ts +0 -31
- package/src/utils/ranges.ts +0 -499
- package/src/utils/reference.ts +0 -390
- package/src/utils/request/fetch.ts +0 -250
- package/src/utils/request/index.ts +0 -38
- package/src/utils/request/xhr.ts +0 -287
- package/src/utils/resolve_url.ts +0 -126
- package/src/utils/retry_promise_with_backoff.ts +0 -95
- package/src/utils/simple_set.ts +0 -67
- package/src/utils/sleep.ts +0 -14
- package/src/utils/slice_uint8array.ts +0 -53
- package/src/utils/sorted_list.ts +0 -240
- package/src/utils/starts_with.ts +0 -42
- package/src/utils/string_parsing.ts +0 -414
- package/src/utils/task_canceller.ts +0 -367
- package/src/utils/uniq.ts +0 -49
- package/src/utils/warn_once.ts +0 -34
- package/src/utils/weak_map_memory.ts +0 -89
- package/src/utils/wrapInPromise.ts +0 -24
- package/tsconfig.json +0 -28
- package/tsconfig.modules.json +0 -36
package/src/manifest/period.ts
DELETED
|
@@ -1,211 +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
|
-
import { MediaError } from "../errors";
|
|
17
|
-
import {
|
|
18
|
-
IManifestStreamEvent,
|
|
19
|
-
IParsedPeriod,
|
|
20
|
-
} from "../parsers/manifest";
|
|
21
|
-
import {
|
|
22
|
-
IPlayerError,
|
|
23
|
-
IRepresentationFilter,
|
|
24
|
-
} from "../public_types";
|
|
25
|
-
import arrayFind from "../utils/array_find";
|
|
26
|
-
import objectValues from "../utils/object_values";
|
|
27
|
-
import Adaptation from "./adaptation";
|
|
28
|
-
import { IAdaptationType } from "./types";
|
|
29
|
-
|
|
30
|
-
/** Structure listing every `Adaptation` in a Period. */
|
|
31
|
-
export type IManifestAdaptations = Partial<Record<IAdaptationType, Adaptation[]>>;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Class representing the tracks and qualities available from a given time
|
|
35
|
-
* period in the the Manifest.
|
|
36
|
-
* @class Period
|
|
37
|
-
*/
|
|
38
|
-
export default class Period {
|
|
39
|
-
/** ID uniquely identifying the Period in the Manifest. */
|
|
40
|
-
public readonly id : string;
|
|
41
|
-
|
|
42
|
-
/** Every 'Adaptation' in that Period, per type of Adaptation. */
|
|
43
|
-
public adaptations : IManifestAdaptations;
|
|
44
|
-
|
|
45
|
-
/** Absolute start time of the Period, in seconds. */
|
|
46
|
-
public start : number;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Duration of this Period, in seconds.
|
|
50
|
-
* `undefined` for still-running Periods.
|
|
51
|
-
*/
|
|
52
|
-
public duration : number | undefined;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Absolute end time of the Period, in seconds.
|
|
56
|
-
* `undefined` for still-running Periods.
|
|
57
|
-
*/
|
|
58
|
-
public end : number | undefined;
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Array containing every errors that happened when the Period has been
|
|
62
|
-
* created, in the order they have happened.
|
|
63
|
-
*/
|
|
64
|
-
public readonly contentWarnings : IPlayerError[];
|
|
65
|
-
|
|
66
|
-
/** Array containing every stream event happening on the period */
|
|
67
|
-
public streamEvents : IManifestStreamEvent[];
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @constructor
|
|
71
|
-
* @param {Object} args
|
|
72
|
-
* @param {function|undefined} [representationFilter]
|
|
73
|
-
*/
|
|
74
|
-
constructor(
|
|
75
|
-
args : IParsedPeriod,
|
|
76
|
-
representationFilter? : IRepresentationFilter | undefined
|
|
77
|
-
) {
|
|
78
|
-
this.contentWarnings = [];
|
|
79
|
-
this.id = args.id;
|
|
80
|
-
this.adaptations = (Object.keys(args.adaptations) as IAdaptationType[])
|
|
81
|
-
.reduce<IManifestAdaptations>((acc, type) => {
|
|
82
|
-
const adaptationsForType = args.adaptations[type];
|
|
83
|
-
if (adaptationsForType == null) {
|
|
84
|
-
return acc;
|
|
85
|
-
}
|
|
86
|
-
const filteredAdaptations = adaptationsForType
|
|
87
|
-
.map((adaptation) : Adaptation => {
|
|
88
|
-
const newAdaptation = new Adaptation(adaptation, { representationFilter });
|
|
89
|
-
if (newAdaptation.representations.length > 0 && !newAdaptation.isSupported) {
|
|
90
|
-
const error =
|
|
91
|
-
new MediaError("MANIFEST_INCOMPATIBLE_CODECS_ERROR",
|
|
92
|
-
"An Adaptation contains only incompatible codecs.",
|
|
93
|
-
{ adaptation: newAdaptation });
|
|
94
|
-
this.contentWarnings.push(error);
|
|
95
|
-
}
|
|
96
|
-
return newAdaptation;
|
|
97
|
-
})
|
|
98
|
-
.filter((adaptation) : adaptation is Adaptation =>
|
|
99
|
-
adaptation.representations.length > 0
|
|
100
|
-
);
|
|
101
|
-
if (filteredAdaptations.every(adaptation => !adaptation.isSupported) &&
|
|
102
|
-
adaptationsForType.length > 0 &&
|
|
103
|
-
(type === "video" || type === "audio")
|
|
104
|
-
) {
|
|
105
|
-
throw new MediaError("MANIFEST_PARSE_ERROR",
|
|
106
|
-
"No supported " + type + " adaptations");
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (filteredAdaptations.length > 0) {
|
|
110
|
-
acc[type] = filteredAdaptations;
|
|
111
|
-
}
|
|
112
|
-
return acc;
|
|
113
|
-
}, {});
|
|
114
|
-
|
|
115
|
-
if (!Array.isArray(this.adaptations.video) &&
|
|
116
|
-
!Array.isArray(this.adaptations.audio))
|
|
117
|
-
{
|
|
118
|
-
throw new MediaError("MANIFEST_PARSE_ERROR",
|
|
119
|
-
"No supported audio and video tracks.");
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
this.duration = args.duration;
|
|
123
|
-
this.start = args.start;
|
|
124
|
-
|
|
125
|
-
if (this.duration != null && this.start != null) {
|
|
126
|
-
this.end = this.start + this.duration;
|
|
127
|
-
}
|
|
128
|
-
this.streamEvents = args.streamEvents === undefined ?
|
|
129
|
-
[] :
|
|
130
|
-
args.streamEvents;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Returns every `Adaptations` (or `tracks`) linked to that Period, in an
|
|
135
|
-
* Array.
|
|
136
|
-
* @returns {Array.<Object>}
|
|
137
|
-
*/
|
|
138
|
-
getAdaptations() : Adaptation[] {
|
|
139
|
-
const adaptationsByType = this.adaptations;
|
|
140
|
-
return objectValues(adaptationsByType).reduce<Adaptation[]>(
|
|
141
|
-
// Note: the second case cannot happen. TS is just being dumb here
|
|
142
|
-
(acc, adaptations) => adaptations != null ? acc.concat(adaptations) :
|
|
143
|
-
acc,
|
|
144
|
-
[]);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Returns every `Adaptations` (or `tracks`) linked to that Period for a
|
|
149
|
-
* given type.
|
|
150
|
-
* @param {string} adaptationType
|
|
151
|
-
* @returns {Array.<Object>}
|
|
152
|
-
*/
|
|
153
|
-
getAdaptationsForType(adaptationType : IAdaptationType) : Adaptation[] {
|
|
154
|
-
const adaptationsForType = this.adaptations[adaptationType];
|
|
155
|
-
return adaptationsForType == null ? [] :
|
|
156
|
-
adaptationsForType;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Returns the Adaptation linked to the given ID.
|
|
161
|
-
* @param {number|string} wantedId
|
|
162
|
-
* @returns {Object|undefined}
|
|
163
|
-
*/
|
|
164
|
-
getAdaptation(wantedId : string) : Adaptation|undefined {
|
|
165
|
-
return arrayFind(this.getAdaptations(), ({ id }) => wantedId === id);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Returns Adaptations that contain Representations in supported codecs.
|
|
170
|
-
* @param {string|undefined} type - If set filter on a specific Adaptation's
|
|
171
|
-
* type. Will return for all types if `undefined`.
|
|
172
|
-
* @returns {Array.<Adaptation>}
|
|
173
|
-
*/
|
|
174
|
-
getSupportedAdaptations(type? : IAdaptationType) : Adaptation[] {
|
|
175
|
-
if (type === undefined) {
|
|
176
|
-
return this.getAdaptations().filter(ada => {
|
|
177
|
-
return ada.isSupported;
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
const adaptationsForType = this.adaptations[type];
|
|
181
|
-
if (adaptationsForType === undefined) {
|
|
182
|
-
return [];
|
|
183
|
-
}
|
|
184
|
-
return adaptationsForType.filter(ada => {
|
|
185
|
-
return ada.isSupported;
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Returns true if the give time is in the time boundaries of this `Period`.
|
|
191
|
-
* @param {number} time
|
|
192
|
-
* @param {object|null} nextPeriod - Period coming chronologically just
|
|
193
|
-
* after in the same Manifest. `null` if this instance is the last `Period`.
|
|
194
|
-
* @returns {boolean}
|
|
195
|
-
*/
|
|
196
|
-
containsTime(time : number, nextPeriod : Period | null) : boolean {
|
|
197
|
-
if (time >= this.start && (this.end === undefined || time < this.end)) {
|
|
198
|
-
return true;
|
|
199
|
-
} else if (time === this.end && (nextPeriod === null ||
|
|
200
|
-
nextPeriod.start > this.end))
|
|
201
|
-
{
|
|
202
|
-
// The last possible timed position of a Period is ambiguous as it is
|
|
203
|
-
// frequently in common with the start of the next one: is it part of
|
|
204
|
-
// the current or of the next Period?
|
|
205
|
-
// Here we only consider it part of the current Period if it is the
|
|
206
|
-
// only one with that position.
|
|
207
|
-
return true;
|
|
208
|
-
}
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
@@ -1,451 +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 { isCodecSupported } from "../compat";
|
|
18
|
-
import log from "../log";
|
|
19
|
-
import {
|
|
20
|
-
ICdnMetadata,
|
|
21
|
-
IContentProtections,
|
|
22
|
-
IParsedRepresentation,
|
|
23
|
-
} from "../parsers/manifest";
|
|
24
|
-
import {
|
|
25
|
-
IAudioRepresentation,
|
|
26
|
-
IHDRInformation,
|
|
27
|
-
IVideoRepresentation,
|
|
28
|
-
} from "../public_types";
|
|
29
|
-
import areArraysOfNumbersEqual from "../utils/are_arrays_of_numbers_equal";
|
|
30
|
-
import idGenerator from "../utils/id_generator";
|
|
31
|
-
import { IRepresentationIndex } from "./representation_index";
|
|
32
|
-
import {
|
|
33
|
-
IAdaptationType,
|
|
34
|
-
} from "./types";
|
|
35
|
-
|
|
36
|
-
const generateRepresentationUniqueId = idGenerator();
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Normalized Representation structure.
|
|
40
|
-
* @class Representation
|
|
41
|
-
*/
|
|
42
|
-
class Representation {
|
|
43
|
-
/**
|
|
44
|
-
* ID uniquely identifying the `Representation` in its parent `Adaptation`.
|
|
45
|
-
*
|
|
46
|
-
* This identifier might be linked to an identifier present in the original
|
|
47
|
-
* Manifest file, it is thus the identifier to use to determine if a
|
|
48
|
-
* `Representation` from a refreshed `Manifest` is actually the same one than
|
|
49
|
-
* one in the previously loaded Manifest (as long as the `Adaptation` and
|
|
50
|
-
* `Period` are also the same).
|
|
51
|
-
*
|
|
52
|
-
* For a globally unique identifier regardless of the `Adaptation`, `Period`
|
|
53
|
-
* or even `Manifest`, you can rely on `uniqueId` instead.
|
|
54
|
-
*/
|
|
55
|
-
public readonly id : string;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Globally unique identifier for this `Representation` object.
|
|
59
|
-
*
|
|
60
|
-
* This identifier is guaranteed to be unique for any `Representation`s of all
|
|
61
|
-
* `Manifest` objects created in the current JS Realm.
|
|
62
|
-
* As such, it can be used as an identifier for the JS object itself, whereas
|
|
63
|
-
* `id` is the identifier for the original Manifest's Representation in the
|
|
64
|
-
* scope of its parent `Adaptation`.
|
|
65
|
-
*/
|
|
66
|
-
public readonly uniqueId : string;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Interface allowing to get information about segments available for this
|
|
70
|
-
* Representation.
|
|
71
|
-
*/
|
|
72
|
-
public index : IRepresentationIndex;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Information on the CDN(s) on which requests should be done to request this
|
|
76
|
-
* Representation's initialization and media segments.
|
|
77
|
-
*
|
|
78
|
-
* `null` if there's no CDN involved here (e.g. resources are not requested
|
|
79
|
-
* through the network).
|
|
80
|
-
*
|
|
81
|
-
* An empty array means that no CDN are left to request the resource. As such,
|
|
82
|
-
* no resource can be loaded in that situation.
|
|
83
|
-
*/
|
|
84
|
-
public cdnMetadata : ICdnMetadata[] | null;
|
|
85
|
-
|
|
86
|
-
/** Bitrate this Representation is in, in bits per seconds. */
|
|
87
|
-
public bitrate : number;
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Frame-rate, when it can be applied, of this Representation, in any textual
|
|
91
|
-
* indication possible (often under a ratio form).
|
|
92
|
-
*/
|
|
93
|
-
public frameRate? : string;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* `true` if this `Representation` is linked to a spatial audio technology.
|
|
97
|
-
* For example, it may be set to `true` if the Representation relies on the
|
|
98
|
-
* "Dolby Atmos". technology.
|
|
99
|
-
*
|
|
100
|
-
* `false` if it is known that this `Representation` does not contain any
|
|
101
|
-
* spatial audio.
|
|
102
|
-
*
|
|
103
|
-
* `undefined` if we do not know whether this `Representation` contains
|
|
104
|
-
* spatial audio or not.
|
|
105
|
-
*/
|
|
106
|
-
public isSpatialAudio? : boolean | undefined;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* A string describing the codec used for this Representation.
|
|
110
|
-
* undefined if we do not know.
|
|
111
|
-
*/
|
|
112
|
-
public codec : string | undefined;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* A string describing the mime-type for this Representation.
|
|
116
|
-
* Examples: audio/mp4, video/webm, application/mp4, text/plain
|
|
117
|
-
* undefined if we do not know.
|
|
118
|
-
*/
|
|
119
|
-
public mimeType? : string;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* If this Representation is linked to video content, this value is the width
|
|
123
|
-
* in pixel of the corresponding video data.
|
|
124
|
-
*/
|
|
125
|
-
public width? : number;
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* If this Representation is linked to video content, this value is the height
|
|
129
|
-
* in pixel of the corresponding video data.
|
|
130
|
-
*/
|
|
131
|
-
public height? : number;
|
|
132
|
-
|
|
133
|
-
/** Encryption information for this Representation. */
|
|
134
|
-
public contentProtections? : IContentProtections;
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* If the track is HDR, give the characteristics of the content
|
|
138
|
-
*/
|
|
139
|
-
public hdrInfo?: IHDRInformation;
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Whether we are able to decrypt this Representation / unable to decrypt it or
|
|
143
|
-
* if we don't know yet:
|
|
144
|
-
* - if `true`, it means that we know we were able to decrypt this
|
|
145
|
-
* Representation in the current content.
|
|
146
|
-
* - if `false`, it means that we know we were unable to decrypt this
|
|
147
|
-
* Representation
|
|
148
|
-
* - if `undefined` there is no certainty on this matter
|
|
149
|
-
*/
|
|
150
|
-
public decipherable? : boolean | undefined;
|
|
151
|
-
|
|
152
|
-
/** `true` if the Representation is in a supported codec, false otherwise. */
|
|
153
|
-
public isSupported : boolean;
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* @param {Object} args
|
|
157
|
-
*/
|
|
158
|
-
constructor(args : IParsedRepresentation, opts : { type : IAdaptationType }) {
|
|
159
|
-
this.id = args.id;
|
|
160
|
-
this.uniqueId = generateRepresentationUniqueId();
|
|
161
|
-
this.bitrate = args.bitrate;
|
|
162
|
-
this.codec = args.codecs;
|
|
163
|
-
|
|
164
|
-
if (args.isSpatialAudio !== undefined) {
|
|
165
|
-
this.isSpatialAudio = args.isSpatialAudio;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (args.height !== undefined) {
|
|
169
|
-
this.height = args.height;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (args.width !== undefined) {
|
|
173
|
-
this.width = args.width;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (args.mimeType !== undefined) {
|
|
177
|
-
this.mimeType = args.mimeType;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (args.contentProtections !== undefined) {
|
|
181
|
-
this.contentProtections = args.contentProtections;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if (args.frameRate !== undefined) {
|
|
185
|
-
this.frameRate = args.frameRate;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
if (args.hdrInfo !== undefined) {
|
|
189
|
-
this.hdrInfo = args.hdrInfo;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
this.cdnMetadata = args.cdnMetadata;
|
|
193
|
-
this.index = args.index;
|
|
194
|
-
|
|
195
|
-
if (opts.type === "audio" || opts.type === "video") {
|
|
196
|
-
this.isSupported = false;
|
|
197
|
-
// Supplemental codecs are defined as backwards-compatible codecs enhancing
|
|
198
|
-
// the experience of a base layer codec
|
|
199
|
-
if (args.supplementalCodecs !== undefined) {
|
|
200
|
-
const supplementalCodecMimeTypeStr =
|
|
201
|
-
`${this.mimeType ?? ""};codecs="${args.supplementalCodecs}"`;
|
|
202
|
-
if (isCodecSupported(supplementalCodecMimeTypeStr)) {
|
|
203
|
-
this.codec = args.supplementalCodecs;
|
|
204
|
-
this.isSupported = true;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
if (!this.isSupported) {
|
|
208
|
-
const mimeTypeStr = this.getMimeTypeString();
|
|
209
|
-
const isSupported = isCodecSupported(mimeTypeStr);
|
|
210
|
-
if (!isSupported) {
|
|
211
|
-
log.info("Unsupported Representation", mimeTypeStr, this.id, this.bitrate);
|
|
212
|
-
}
|
|
213
|
-
this.isSupported = isSupported;
|
|
214
|
-
}
|
|
215
|
-
} else {
|
|
216
|
-
this.isSupported = true; // TODO for other types
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Returns "mime-type string" which includes both the mime-type and the codec,
|
|
222
|
-
* which is often needed when interacting with the browser's APIs.
|
|
223
|
-
* @returns {string}
|
|
224
|
-
*/
|
|
225
|
-
public getMimeTypeString() : string {
|
|
226
|
-
return `${this.mimeType ?? ""};codecs="${this.codec ?? ""}"`;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Returns encryption initialization data linked to the given DRM's system ID.
|
|
231
|
-
* This data may be useful to decrypt encrypted media segments.
|
|
232
|
-
*
|
|
233
|
-
* Returns an empty array if there is no data found for that system ID at the
|
|
234
|
-
* moment.
|
|
235
|
-
*
|
|
236
|
-
* When you know that all encryption data has been added to this
|
|
237
|
-
* Representation, you can also call the `getAllEncryptionData` method.
|
|
238
|
-
* This second function will return all encryption initialization data
|
|
239
|
-
* regardless of the DRM system, and might thus be used in all cases.
|
|
240
|
-
*
|
|
241
|
-
* /!\ Note that encryption initialization data may be progressively added to
|
|
242
|
-
* this Representation after `_addProtectionData` calls or Manifest updates.
|
|
243
|
-
* Because of this, the return value of this function might change after those
|
|
244
|
-
* events.
|
|
245
|
-
*
|
|
246
|
-
* @param {string} drmSystemId - The hexa-encoded DRM system ID
|
|
247
|
-
* @returns {Array.<Object>}
|
|
248
|
-
*/
|
|
249
|
-
public getEncryptionData(drmSystemId : string) : IRepresentationProtectionData[] {
|
|
250
|
-
const allInitData = this.getAllEncryptionData();
|
|
251
|
-
const filtered = [];
|
|
252
|
-
for (let i = 0; i < allInitData.length; i++) {
|
|
253
|
-
let createdObjForType = false;
|
|
254
|
-
const initData = allInitData[i];
|
|
255
|
-
for (let j = 0; j < initData.values.length; j++) {
|
|
256
|
-
if (initData.values[j].systemId.toLowerCase() === drmSystemId.toLowerCase()) {
|
|
257
|
-
if (!createdObjForType) {
|
|
258
|
-
const keyIds = this.contentProtections?.keyIds?.map(val => val.keyId);
|
|
259
|
-
filtered.push({ type: initData.type,
|
|
260
|
-
keyIds,
|
|
261
|
-
values: [initData.values[j]] });
|
|
262
|
-
createdObjForType = true;
|
|
263
|
-
} else {
|
|
264
|
-
filtered[filtered.length - 1].values.push(initData.values[j]);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
return filtered;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Returns all currently-known encryption initialization data linked to this
|
|
275
|
-
* Representation.
|
|
276
|
-
* Encryption initialization data is generally required to be able to decrypt
|
|
277
|
-
* those Representation's media segments.
|
|
278
|
-
*
|
|
279
|
-
* Unlike `getEncryptionData`, this method will return all available
|
|
280
|
-
* encryption data.
|
|
281
|
-
* It might as such might be used when either the current drm's system id is
|
|
282
|
-
* not known or when no encryption data specific to it was found. In that
|
|
283
|
-
* case, providing every encryption data linked to this Representation might
|
|
284
|
-
* still allow decryption.
|
|
285
|
-
*
|
|
286
|
-
* Returns an empty array in two cases:
|
|
287
|
-
* - the content is not encrypted.
|
|
288
|
-
* - We don't have any decryption data yet.
|
|
289
|
-
*
|
|
290
|
-
* /!\ Note that new encryption initialization data can be added progressively
|
|
291
|
-
* through the `_addProtectionData` method or through Manifest updates.
|
|
292
|
-
* It is thus highly advised to only rely on this method once every protection
|
|
293
|
-
* data related to this Representation has been known to be added.
|
|
294
|
-
*
|
|
295
|
-
* The main situation where new encryption initialization data is added is
|
|
296
|
-
* after parsing this Representation's initialization segment, if one exists.
|
|
297
|
-
* @returns {Array.<Object>}
|
|
298
|
-
*/
|
|
299
|
-
public getAllEncryptionData() : IRepresentationProtectionData[] {
|
|
300
|
-
if (this.contentProtections === undefined ||
|
|
301
|
-
this.contentProtections.initData.length === 0)
|
|
302
|
-
{
|
|
303
|
-
return [];
|
|
304
|
-
}
|
|
305
|
-
const keyIds = this.contentProtections?.keyIds?.map(val => val.keyId);
|
|
306
|
-
return this.contentProtections.initData.map((x) => {
|
|
307
|
-
return { type: x.type,
|
|
308
|
-
keyIds,
|
|
309
|
-
values: x.values };
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Add new encryption initialization data to this Representation if it was not
|
|
315
|
-
* already included.
|
|
316
|
-
*
|
|
317
|
-
* Returns `true` if new encryption initialization data has been added.
|
|
318
|
-
* Returns `false` if none has been added (e.g. because it was already known).
|
|
319
|
-
*
|
|
320
|
-
* /!\ Mutates the current Representation
|
|
321
|
-
*
|
|
322
|
-
* TODO better handle use cases like key rotation by not always grouping
|
|
323
|
-
* every protection data together? To check.
|
|
324
|
-
* @param {string} initDataType
|
|
325
|
-
* @param {Uint8Array|undefined} keyId
|
|
326
|
-
* @param {Uint8Array} data
|
|
327
|
-
* @returns {boolean}
|
|
328
|
-
*/
|
|
329
|
-
public _addProtectionData(
|
|
330
|
-
initDataType : string,
|
|
331
|
-
keyId: Uint8Array | undefined,
|
|
332
|
-
data : Array<{
|
|
333
|
-
systemId : string;
|
|
334
|
-
data : Uint8Array;
|
|
335
|
-
}>
|
|
336
|
-
) : boolean {
|
|
337
|
-
let hasUpdatedProtectionData = false;
|
|
338
|
-
if (this.contentProtections === undefined) {
|
|
339
|
-
this.contentProtections = { keyIds: keyId !== undefined ? [{ keyId }] : [],
|
|
340
|
-
initData: [ { type: initDataType,
|
|
341
|
-
values: data } ] };
|
|
342
|
-
return true;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
if (keyId !== undefined) {
|
|
346
|
-
const keyIds = this.contentProtections.keyIds;
|
|
347
|
-
if (keyIds === undefined) {
|
|
348
|
-
this.contentProtections.keyIds = [{ keyId }];
|
|
349
|
-
} else {
|
|
350
|
-
let foundKeyId = false;
|
|
351
|
-
for (const knownKeyId of keyIds) {
|
|
352
|
-
if (areArraysOfNumbersEqual(knownKeyId.keyId, keyId)) {
|
|
353
|
-
foundKeyId = true;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
if (!foundKeyId) {
|
|
357
|
-
log.warn("Manifest: found unanounced key id.");
|
|
358
|
-
keyIds.push({ keyId });
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
const cInitData = this.contentProtections.initData;
|
|
364
|
-
for (let i = 0; i < cInitData.length; i++) {
|
|
365
|
-
if (cInitData[i].type === initDataType) {
|
|
366
|
-
const cValues = cInitData[i].values;
|
|
367
|
-
|
|
368
|
-
// loop through data
|
|
369
|
-
for (let dataI = 0; dataI < data.length; dataI++) {
|
|
370
|
-
const dataToAdd = data[dataI];
|
|
371
|
-
let cValuesIdx;
|
|
372
|
-
for (cValuesIdx = 0; cValuesIdx < cValues.length; cValuesIdx++) {
|
|
373
|
-
if (dataToAdd.systemId === cValues[cValuesIdx].systemId) {
|
|
374
|
-
if (areArraysOfNumbersEqual(dataToAdd.data, cValues[cValuesIdx].data)) {
|
|
375
|
-
// go to next dataToAdd
|
|
376
|
-
break;
|
|
377
|
-
} else {
|
|
378
|
-
log.warn("Manifest: different init data for the same system ID");
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
if (cValuesIdx === cValues.length) {
|
|
383
|
-
// we didn't break the loop === we didn't already find that value
|
|
384
|
-
cValues.push(dataToAdd);
|
|
385
|
-
hasUpdatedProtectionData = true;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
return hasUpdatedProtectionData;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
// If we are here, this means that we didn't find the corresponding
|
|
392
|
-
// init data type in this.contentProtections.initData.
|
|
393
|
-
this.contentProtections.initData.push({ type: initDataType,
|
|
394
|
-
values: data });
|
|
395
|
-
return true;
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* Format Representation as an `IAudioRepresentation`.
|
|
400
|
-
* @returns {Object}
|
|
401
|
-
*/
|
|
402
|
-
public toAudioRepresentation(): IAudioRepresentation {
|
|
403
|
-
const { id, isSpatialAudio, bitrate, codec } = this;
|
|
404
|
-
return { id, isSpatialAudio, bitrate, codec };
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
* Format Representation as an `IVideoRepresentation`.
|
|
409
|
-
* @returns {Object}
|
|
410
|
-
*/
|
|
411
|
-
public toVideoRepresentation(): IVideoRepresentation {
|
|
412
|
-
const { id, bitrate, frameRate, width, height, codec, hdrInfo } = this;
|
|
413
|
-
return { id, bitrate, frameRate, width, height, codec, hdrInfo };
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
/** Protection data as returned by a Representation. */
|
|
418
|
-
export interface IRepresentationProtectionData {
|
|
419
|
-
/**
|
|
420
|
-
* Initialization data type.
|
|
421
|
-
* String describing the format of the initialization data sent through this
|
|
422
|
-
* event.
|
|
423
|
-
* https://www.w3.org/TR/eme-initdata-registry/
|
|
424
|
-
*/
|
|
425
|
-
type: string;
|
|
426
|
-
/**
|
|
427
|
-
* The key ids linked to those initialization data.
|
|
428
|
-
* This should be the key ids for the key concerned by the media which have
|
|
429
|
-
* the present initialization data.
|
|
430
|
-
*
|
|
431
|
-
* `undefined` when not known (different from an empty array - which would
|
|
432
|
-
* just mean that there's no key id involved).
|
|
433
|
-
*/
|
|
434
|
-
keyIds : Uint8Array[] | undefined;
|
|
435
|
-
/** Every initialization data for that type. */
|
|
436
|
-
values: Array<{
|
|
437
|
-
/**
|
|
438
|
-
* Hex encoded system id, which identifies the key system.
|
|
439
|
-
* https://dashif.org/identifiers/content_protection/
|
|
440
|
-
*/
|
|
441
|
-
systemId: string;
|
|
442
|
-
/**
|
|
443
|
-
* The initialization data itself for that type and systemId.
|
|
444
|
-
* For example, with "cenc" initialization data found in an ISOBMFF file,
|
|
445
|
-
* this will be the whole PSSH box.
|
|
446
|
-
*/
|
|
447
|
-
data: Uint8Array;
|
|
448
|
-
}>;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
export default Representation;
|