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,376 +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
|
-
shouldRenewMediaKeySystemAccess,
|
|
19
|
-
} from "../../compat";
|
|
20
|
-
import eme, {
|
|
21
|
-
ICustomMediaKeySystemAccess,
|
|
22
|
-
} from "../../compat/eme";
|
|
23
|
-
import config from "../../config";
|
|
24
|
-
import { EncryptedMediaError } from "../../errors";
|
|
25
|
-
import log from "../../log";
|
|
26
|
-
import { IKeySystemOption } from "../../public_types";
|
|
27
|
-
import arrayIncludes from "../../utils/array_includes";
|
|
28
|
-
import flatMap from "../../utils/flat_map";
|
|
29
|
-
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
30
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
31
|
-
import MediaKeysInfosStore from "./utils/media_keys_infos_store";
|
|
32
|
-
|
|
33
|
-
type MediaKeysRequirement = "optional" |
|
|
34
|
-
"required" |
|
|
35
|
-
"not-allowed";
|
|
36
|
-
|
|
37
|
-
export interface IMediaKeySystemAccessInfos {
|
|
38
|
-
mediaKeySystemAccess: MediaKeySystemAccess |
|
|
39
|
-
ICustomMediaKeySystemAccess;
|
|
40
|
-
options: IKeySystemOption;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface IReuseMediaKeySystemAccessEvent {
|
|
44
|
-
type: "reuse-media-key-system-access";
|
|
45
|
-
value: IMediaKeySystemAccessInfos;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export interface ICreateMediaKeySystemAccessEvent {
|
|
49
|
-
type: "create-media-key-system-access";
|
|
50
|
-
value: IMediaKeySystemAccessInfos;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export type IFoundMediaKeySystemAccessEvent = IReuseMediaKeySystemAccessEvent |
|
|
54
|
-
ICreateMediaKeySystemAccessEvent;
|
|
55
|
-
|
|
56
|
-
interface IMediaCapability { contentType?: string;
|
|
57
|
-
robustness?: string; }
|
|
58
|
-
|
|
59
|
-
interface IKeySystemType { keyName : string | undefined;
|
|
60
|
-
keyType : string;
|
|
61
|
-
keySystemOptions : IKeySystemOption; }
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @param {Array.<Object>} keySystems
|
|
66
|
-
* @param {MediaKeySystemAccess} currentKeySystemAccess
|
|
67
|
-
* @param {Object} currentKeySystemOptions
|
|
68
|
-
* @returns {null|Object}
|
|
69
|
-
*/
|
|
70
|
-
function checkCachedMediaKeySystemAccess(
|
|
71
|
-
keySystems: IKeySystemOption[],
|
|
72
|
-
currentKeySystemAccess: MediaKeySystemAccess|ICustomMediaKeySystemAccess,
|
|
73
|
-
currentKeySystemOptions: IKeySystemOption
|
|
74
|
-
) : null | {
|
|
75
|
-
keySystemOptions: IKeySystemOption;
|
|
76
|
-
keySystemAccess: MediaKeySystemAccess|ICustomMediaKeySystemAccess;
|
|
77
|
-
} {
|
|
78
|
-
const mksConfiguration = currentKeySystemAccess.getConfiguration();
|
|
79
|
-
if (shouldRenewMediaKeySystemAccess() || mksConfiguration == null) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const firstCompatibleOption = keySystems.filter((ks) => {
|
|
84
|
-
// TODO Do it with MediaKeySystemAccess.prototype.keySystem instead
|
|
85
|
-
if (ks.type !== currentKeySystemOptions.type) {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
if ((ks.persistentLicense === true || ks.persistentStateRequired === true) &&
|
|
90
|
-
mksConfiguration.persistentState !== "required")
|
|
91
|
-
{
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (ks.distinctiveIdentifierRequired === true &&
|
|
96
|
-
mksConfiguration.distinctiveIdentifier !== "required")
|
|
97
|
-
{
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return true;
|
|
102
|
-
})[0];
|
|
103
|
-
|
|
104
|
-
if (firstCompatibleOption != null) {
|
|
105
|
-
return { keySystemOptions: firstCompatibleOption,
|
|
106
|
-
keySystemAccess: currentKeySystemAccess };
|
|
107
|
-
}
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Find key system canonical name from key system type.
|
|
113
|
-
* @param {string} ksType - Obtained via inversion
|
|
114
|
-
* @returns {string|undefined} - Either the canonical name, or undefined.
|
|
115
|
-
*/
|
|
116
|
-
function findKeySystemCanonicalName(ksType: string) : string | undefined {
|
|
117
|
-
const { EME_KEY_SYSTEMS } = config.getCurrent();
|
|
118
|
-
for (const ksName of Object.keys(EME_KEY_SYSTEMS)) {
|
|
119
|
-
if (arrayIncludes(EME_KEY_SYSTEMS[ksName] as string[], ksType)) {
|
|
120
|
-
return ksName;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return undefined;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Build configuration for the requestMediaKeySystemAccess EME API, based
|
|
128
|
-
* on the current keySystem object.
|
|
129
|
-
* @param {string|undefined} ksName - Generic name for the key system. e.g.
|
|
130
|
-
* "clearkey", "widevine", "playready". Can be used to make exceptions depending
|
|
131
|
-
* on it.
|
|
132
|
-
* @param {string|undefined} ksType - KeySystem complete type (e.g.
|
|
133
|
-
* "com.widevine.alpha").
|
|
134
|
-
* @param {Object} keySystem
|
|
135
|
-
* @returns {Array.<Object>} - Configuration to give to the
|
|
136
|
-
* requestMediaKeySystemAccess API.
|
|
137
|
-
*/
|
|
138
|
-
function buildKeySystemConfigurations(
|
|
139
|
-
ksName : string | undefined,
|
|
140
|
-
ksType : string | undefined,
|
|
141
|
-
keySystem : IKeySystemOption
|
|
142
|
-
) : MediaKeySystemConfiguration[] {
|
|
143
|
-
const sessionTypes = ["temporary"];
|
|
144
|
-
let persistentState: MediaKeysRequirement = "optional";
|
|
145
|
-
let distinctiveIdentifier: MediaKeysRequirement = "optional";
|
|
146
|
-
|
|
147
|
-
if (keySystem.persistentLicense === true) {
|
|
148
|
-
persistentState = "required";
|
|
149
|
-
sessionTypes.push("persistent-license");
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (keySystem.persistentStateRequired === true) {
|
|
153
|
-
persistentState = "required";
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (keySystem.distinctiveIdentifierRequired === true) {
|
|
157
|
-
distinctiveIdentifier = "required";
|
|
158
|
-
}
|
|
159
|
-
const { EME_DEFAULT_AUDIO_CODECS,
|
|
160
|
-
EME_DEFAULT_VIDEO_CODECS,
|
|
161
|
-
EME_DEFAULT_WIDEVINE_ROBUSTNESSES,
|
|
162
|
-
EME_DEFAULT_PLAYREADY_ROBUSTNESSES } = config.getCurrent();
|
|
163
|
-
|
|
164
|
-
// Set robustness, in order of consideration:
|
|
165
|
-
// 1. the user specified its own robustnesses
|
|
166
|
-
// 2. a "widevine" key system is used, in that case set the default widevine
|
|
167
|
-
// robustnesses as defined in the config
|
|
168
|
-
// 3. set an undefined robustness
|
|
169
|
-
let videoRobustnesses : Array<string | undefined>;
|
|
170
|
-
if (!isNullOrUndefined(keySystem.videoRobustnesses)) {
|
|
171
|
-
videoRobustnesses = keySystem.videoRobustnesses;
|
|
172
|
-
} else if (ksName === "widevine") {
|
|
173
|
-
videoRobustnesses = EME_DEFAULT_WIDEVINE_ROBUSTNESSES;
|
|
174
|
-
} else if (ksType === "com.microsoft.playready.recommendation") {
|
|
175
|
-
videoRobustnesses = EME_DEFAULT_PLAYREADY_ROBUSTNESSES;
|
|
176
|
-
} else {
|
|
177
|
-
videoRobustnesses = [];
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
let audioRobustnesses : Array<string | undefined>;
|
|
181
|
-
if (!isNullOrUndefined(keySystem.audioRobustnesses)) {
|
|
182
|
-
audioRobustnesses = keySystem.audioRobustnesses;
|
|
183
|
-
} else if (ksName === "widevine") {
|
|
184
|
-
audioRobustnesses = EME_DEFAULT_WIDEVINE_ROBUSTNESSES;
|
|
185
|
-
} else if (ksType === "com.microsoft.playready.recommendation") {
|
|
186
|
-
audioRobustnesses = EME_DEFAULT_PLAYREADY_ROBUSTNESSES;
|
|
187
|
-
} else {
|
|
188
|
-
audioRobustnesses = [];
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
if (videoRobustnesses.length === 0) {
|
|
192
|
-
videoRobustnesses.push(undefined);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (audioRobustnesses.length === 0) {
|
|
196
|
-
audioRobustnesses.push(undefined);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// From the W3 EME spec, we have to provide videoCapabilities and
|
|
200
|
-
// audioCapabilities.
|
|
201
|
-
// These capabilities must specify a codec (even though you can use a
|
|
202
|
-
// completely different codec afterward).
|
|
203
|
-
// It is also strongly recommended to specify the required security
|
|
204
|
-
// robustness. As we do not want to forbide any security level, we specify
|
|
205
|
-
// every existing security level from highest to lowest so that the best
|
|
206
|
-
// security level is selected.
|
|
207
|
-
// More details here:
|
|
208
|
-
// https://storage.googleapis.com/wvdocs/Chrome_EME_Changes_and_Best_Practices.pdf
|
|
209
|
-
// https://www.w3.org/TR/encrypted-media/#get-supported-configuration-and-consent
|
|
210
|
-
|
|
211
|
-
const videoCapabilities: IMediaCapability[] =
|
|
212
|
-
flatMap(videoRobustnesses, (robustness) => {
|
|
213
|
-
return EME_DEFAULT_VIDEO_CODECS.map(contentType => {
|
|
214
|
-
return robustness === undefined ? { contentType } :
|
|
215
|
-
{ contentType, robustness };
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
const audioCapabilities: IMediaCapability[] =
|
|
220
|
-
flatMap(audioRobustnesses, (robustness) => {
|
|
221
|
-
return EME_DEFAULT_AUDIO_CODECS.map(contentType => {
|
|
222
|
-
return robustness === undefined ? { contentType } :
|
|
223
|
-
{ contentType, robustness };
|
|
224
|
-
});
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
const wantedMediaKeySystemConfiguration : MediaKeySystemConfiguration = {
|
|
228
|
-
initDataTypes: ["cenc"],
|
|
229
|
-
videoCapabilities,
|
|
230
|
-
audioCapabilities,
|
|
231
|
-
distinctiveIdentifier,
|
|
232
|
-
persistentState,
|
|
233
|
-
sessionTypes,
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
return [
|
|
237
|
-
wantedMediaKeySystemConfiguration,
|
|
238
|
-
|
|
239
|
-
// Some legacy implementations have issues with `audioCapabilities` and
|
|
240
|
-
// `videoCapabilities`, so we're including a supplementary
|
|
241
|
-
// `MediaKeySystemConfiguration` without those properties.
|
|
242
|
-
{ ...wantedMediaKeySystemConfiguration,
|
|
243
|
-
audioCapabilities: undefined ,
|
|
244
|
-
videoCapabilities: undefined,
|
|
245
|
-
} as unknown as MediaKeySystemConfiguration,
|
|
246
|
-
];
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Try to find a compatible key system from the keySystems array given.
|
|
251
|
-
*
|
|
252
|
-
* This function will request a MediaKeySystemAccess based on the various
|
|
253
|
-
* keySystems provided.
|
|
254
|
-
*
|
|
255
|
-
* This Promise might either:
|
|
256
|
-
* - resolves the MediaKeySystemAccess and the keySystems as an object, when
|
|
257
|
-
* found.
|
|
258
|
-
* - reject if no compatible key system has been found.
|
|
259
|
-
*
|
|
260
|
-
* @param {HTMLMediaElement} mediaElement
|
|
261
|
-
* @param {Array.<Object>} keySystemsConfigs - The keySystems you want to test.
|
|
262
|
-
* @param {Object} cancelSignal
|
|
263
|
-
* @returns {Promise.<Object>}
|
|
264
|
-
*/
|
|
265
|
-
export default function getMediaKeySystemAccess(
|
|
266
|
-
mediaElement : HTMLMediaElement,
|
|
267
|
-
keySystemsConfigs: IKeySystemOption[],
|
|
268
|
-
cancelSignal : CancellationSignal
|
|
269
|
-
) : Promise<IFoundMediaKeySystemAccessEvent> {
|
|
270
|
-
log.info("DRM: Searching for compatible MediaKeySystemAccess");
|
|
271
|
-
const currentState = MediaKeysInfosStore.getState(mediaElement);
|
|
272
|
-
if (currentState !== null) {
|
|
273
|
-
if (eme.implementation === currentState.emeImplementation.implementation) {
|
|
274
|
-
// Fast way to find a compatible keySystem if the currently loaded
|
|
275
|
-
// one as exactly the same compatibility options.
|
|
276
|
-
const cachedKeySystemAccess =
|
|
277
|
-
checkCachedMediaKeySystemAccess(keySystemsConfigs,
|
|
278
|
-
currentState.mediaKeySystemAccess,
|
|
279
|
-
currentState.keySystemOptions);
|
|
280
|
-
if (cachedKeySystemAccess !== null) {
|
|
281
|
-
log.info("DRM: Found cached compatible keySystem");
|
|
282
|
-
return Promise.resolve({
|
|
283
|
-
type: "reuse-media-key-system-access" as const,
|
|
284
|
-
value: { mediaKeySystemAccess: cachedKeySystemAccess.keySystemAccess,
|
|
285
|
-
options: cachedKeySystemAccess.keySystemOptions },
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
/**
|
|
292
|
-
* Array of set keySystems for this content.
|
|
293
|
-
* Each item of this array is an object containing the following keys:
|
|
294
|
-
* - keyName {string}: keySystem canonical name (e.g. "widevine")
|
|
295
|
-
* - keyType {string}: keySystem type (e.g. "com.widevine.alpha")
|
|
296
|
-
* - keySystem {Object}: the original keySystem object
|
|
297
|
-
* @type {Array.<Object>}
|
|
298
|
-
*/
|
|
299
|
-
const keySystemsType: IKeySystemType[] = keySystemsConfigs.reduce(
|
|
300
|
-
(arr: IKeySystemType[], keySystemOptions) => {
|
|
301
|
-
|
|
302
|
-
const { EME_KEY_SYSTEMS } = config.getCurrent();
|
|
303
|
-
const managedRDNs = EME_KEY_SYSTEMS[keySystemOptions.type];
|
|
304
|
-
let ksType;
|
|
305
|
-
|
|
306
|
-
if (managedRDNs != null) {
|
|
307
|
-
ksType = managedRDNs.map((keyType) => {
|
|
308
|
-
const keyName = keySystemOptions.type;
|
|
309
|
-
return { keyName, keyType, keySystemOptions };
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
const keyName = findKeySystemCanonicalName(keySystemOptions.type);
|
|
314
|
-
const keyType = keySystemOptions.type;
|
|
315
|
-
ksType = [{ keyName, keyType, keySystemOptions }];
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
return arr.concat(ksType);
|
|
319
|
-
}
|
|
320
|
-
, []);
|
|
321
|
-
|
|
322
|
-
return recursivelyTestKeySystems(0);
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Test all key system configuration stored in `keySystemsType` one by one
|
|
326
|
-
* recursively.
|
|
327
|
-
* Returns a Promise which will emit the MediaKeySystemAccess if one was
|
|
328
|
-
* found compatible with one of the configurations or just reject if none
|
|
329
|
-
* were found to be compatible.
|
|
330
|
-
* @param {Number} index - The index in `keySystemsType` to start from.
|
|
331
|
-
* Should be set to `0` when calling directly.
|
|
332
|
-
* @returns {Promise.<Object>}
|
|
333
|
-
*/
|
|
334
|
-
async function recursivelyTestKeySystems(
|
|
335
|
-
index : number
|
|
336
|
-
) : Promise<IFoundMediaKeySystemAccessEvent> {
|
|
337
|
-
// if we iterated over the whole keySystemsType Array, quit on error
|
|
338
|
-
if (index >= keySystemsType.length) {
|
|
339
|
-
throw new EncryptedMediaError("INCOMPATIBLE_KEYSYSTEMS",
|
|
340
|
-
"No key system compatible with your wanted " +
|
|
341
|
-
"configuration has been found in the current " +
|
|
342
|
-
"browser.");
|
|
343
|
-
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
if (eme.requestMediaKeySystemAccess == null) {
|
|
347
|
-
throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
const { keyName, keyType, keySystemOptions } = keySystemsType[index];
|
|
351
|
-
|
|
352
|
-
const keySystemConfigurations = buildKeySystemConfigurations(keyName,
|
|
353
|
-
keyType,
|
|
354
|
-
keySystemOptions);
|
|
355
|
-
|
|
356
|
-
log.debug(`DRM: Request keysystem access ${keyType},` +
|
|
357
|
-
`${index + 1} of ${keySystemsType.length}`);
|
|
358
|
-
|
|
359
|
-
try {
|
|
360
|
-
const keySystemAccess = await eme.requestMediaKeySystemAccess(
|
|
361
|
-
keyType,
|
|
362
|
-
keySystemConfigurations
|
|
363
|
-
);
|
|
364
|
-
log.info("DRM: Found compatible keysystem", keyType, index + 1);
|
|
365
|
-
return { type: "create-media-key-system-access" as const,
|
|
366
|
-
value: { options: keySystemOptions,
|
|
367
|
-
mediaKeySystemAccess: keySystemAccess } };
|
|
368
|
-
} catch (_) {
|
|
369
|
-
log.debug("DRM: Rejected access to keysystem", keyType, index + 1);
|
|
370
|
-
if (cancelSignal.cancellationError !== null) {
|
|
371
|
-
throw cancelSignal.cancellationError;
|
|
372
|
-
}
|
|
373
|
-
return recursivelyTestKeySystems(index + 1);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}
|
|
@@ -1,51 +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 MediaKeysInfosStore from "./utils/media_keys_infos_store";
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Returns the name of the current key system used as well as its configuration,
|
|
21
|
-
* as reported by the `MediaKeySystemAccess` itself.
|
|
22
|
-
* @param {HTMLMediaElement} mediaElement
|
|
23
|
-
* @returns {Array|null}
|
|
24
|
-
*/
|
|
25
|
-
export default function getKeySystemConfiguration(
|
|
26
|
-
mediaElement : HTMLMediaElement
|
|
27
|
-
) : [string, MediaKeySystemConfiguration] | null {
|
|
28
|
-
const currentState = MediaKeysInfosStore.getState(mediaElement);
|
|
29
|
-
if (currentState === null) {
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
return [
|
|
33
|
-
currentState.mediaKeySystemAccess.keySystem,
|
|
34
|
-
currentState.mediaKeySystemAccess.getConfiguration(),
|
|
35
|
-
];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Returns the name of the current key system used, as originally indicated by
|
|
40
|
-
* the user.
|
|
41
|
-
* @deprecated
|
|
42
|
-
* @param {HTMLMediaElement} mediaElement
|
|
43
|
-
* @returns {string|null}
|
|
44
|
-
*/
|
|
45
|
-
export function getCurrentKeySystem(
|
|
46
|
-
mediaElement : HTMLMediaElement
|
|
47
|
-
) : string | null {
|
|
48
|
-
const currentState = MediaKeysInfosStore.getState(mediaElement);
|
|
49
|
-
return currentState == null ? null :
|
|
50
|
-
currentState.keySystemOptions.type;
|
|
51
|
-
}
|
|
@@ -1,147 +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 { canReuseMediaKeys } from "../../compat";
|
|
18
|
-
import {
|
|
19
|
-
ICustomMediaKeys,
|
|
20
|
-
ICustomMediaKeySystemAccess,
|
|
21
|
-
} from "../../compat/eme";
|
|
22
|
-
import { EncryptedMediaError } from "../../errors";
|
|
23
|
-
import log from "../../log";
|
|
24
|
-
import { IKeySystemOption } from "../../public_types";
|
|
25
|
-
import isNullOrUndefined from "../../utils/is_null_or_undefined";
|
|
26
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
27
|
-
import getMediaKeySystemAccess from "./find_key_system";
|
|
28
|
-
import { IMediaKeySessionStores } from "./types";
|
|
29
|
-
import LoadedSessionsStore from "./utils/loaded_sessions_store";
|
|
30
|
-
import MediaKeysInfosStore from "./utils/media_keys_infos_store";
|
|
31
|
-
import PersistentSessionsStore from "./utils/persistent_sessions_store";
|
|
32
|
-
import ServerCertificateStore from "./utils/server_certificate_store";
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @throws {EncryptedMediaError}
|
|
36
|
-
* @param {Object} keySystemOptions
|
|
37
|
-
* @returns {Object|null}
|
|
38
|
-
*/
|
|
39
|
-
function createPersistentSessionsStorage(
|
|
40
|
-
keySystemOptions : IKeySystemOption
|
|
41
|
-
) : PersistentSessionsStore|null {
|
|
42
|
-
if (keySystemOptions.persistentLicense !== true) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const { licenseStorage } = keySystemOptions;
|
|
47
|
-
if (licenseStorage == null) {
|
|
48
|
-
throw new EncryptedMediaError("INVALID_KEY_SYSTEM",
|
|
49
|
-
"No license storage found for persistent license.");
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
log.debug("DRM: Set the given license storage");
|
|
53
|
-
return new PersistentSessionsStore(licenseStorage);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/** Object returned by `getMediaKeysInfos`. */
|
|
57
|
-
export interface IMediaKeysInfos {
|
|
58
|
-
/** The MediaKeySystemAccess which allowed to create the MediaKeys instance. */
|
|
59
|
-
mediaKeySystemAccess: MediaKeySystemAccess |
|
|
60
|
-
ICustomMediaKeySystemAccess;
|
|
61
|
-
/** The MediaKeys instance. */
|
|
62
|
-
mediaKeys : MediaKeys |
|
|
63
|
-
ICustomMediaKeys;
|
|
64
|
-
/** Stores allowing to create and retrieve MediaKeySessions. */
|
|
65
|
-
stores : IMediaKeySessionStores;
|
|
66
|
-
/** IKeySystemOption compatible to the created MediaKeys instance. */
|
|
67
|
-
options : IKeySystemOption;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Create a MediaKeys instance and associated structures (or just return the
|
|
72
|
-
* current ones if sufficient) based on a wanted configuration.
|
|
73
|
-
* @param {HTMLMediaElement} mediaElement - The HTMLMediaElement on which you
|
|
74
|
-
* will attach the MediaKeys instance.
|
|
75
|
-
* This Element is here only used to check if the current MediaKeys and
|
|
76
|
-
* MediaKeySystemAccess instances are sufficient
|
|
77
|
-
* @param {Array.<Object>} keySystemsConfigs - The key system configuration.
|
|
78
|
-
* Needed to ask the right MediaKeySystemAccess.
|
|
79
|
-
* @param {Object} cancelSignal - CancellationSignal allowing to cancel the
|
|
80
|
-
* creation of the MediaKeys instance while the task is still pending.
|
|
81
|
-
* @returns {Promise.<Object>}
|
|
82
|
-
*/
|
|
83
|
-
export default async function getMediaKeysInfos(
|
|
84
|
-
mediaElement : HTMLMediaElement,
|
|
85
|
-
keySystemsConfigs: IKeySystemOption[],
|
|
86
|
-
cancelSignal : CancellationSignal
|
|
87
|
-
) : Promise<IMediaKeysInfos> {
|
|
88
|
-
const evt = await getMediaKeySystemAccess(mediaElement,
|
|
89
|
-
keySystemsConfigs,
|
|
90
|
-
cancelSignal);
|
|
91
|
-
if (cancelSignal.cancellationError !== null) {
|
|
92
|
-
throw cancelSignal.cancellationError;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const { options, mediaKeySystemAccess } = evt.value;
|
|
96
|
-
const currentState = MediaKeysInfosStore.getState(mediaElement);
|
|
97
|
-
const persistentSessionsStore = createPersistentSessionsStorage(options);
|
|
98
|
-
|
|
99
|
-
if (canReuseMediaKeys() &&
|
|
100
|
-
currentState !== null &&
|
|
101
|
-
evt.type === "reuse-media-key-system-access")
|
|
102
|
-
{
|
|
103
|
-
const { mediaKeys, loadedSessionsStore } = currentState;
|
|
104
|
-
|
|
105
|
-
// We might just rely on the currently attached MediaKeys instance.
|
|
106
|
-
// First check if server certificate parameters are the same than in the
|
|
107
|
-
// current MediaKeys instance. If not, re-create MediaKeys from scratch.
|
|
108
|
-
if (ServerCertificateStore.hasOne(mediaKeys) === false ||
|
|
109
|
-
(!isNullOrUndefined(options.serverCertificate) &&
|
|
110
|
-
ServerCertificateStore.has(mediaKeys, options.serverCertificate)))
|
|
111
|
-
{
|
|
112
|
-
return { mediaKeys,
|
|
113
|
-
mediaKeySystemAccess,
|
|
114
|
-
stores: { loadedSessionsStore, persistentSessionsStore },
|
|
115
|
-
options };
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const mediaKeys = await createMediaKeys(mediaKeySystemAccess);
|
|
121
|
-
log.info("DRM: MediaKeys created with success");
|
|
122
|
-
const loadedSessionsStore = new LoadedSessionsStore(mediaKeys);
|
|
123
|
-
return { mediaKeys,
|
|
124
|
-
mediaKeySystemAccess,
|
|
125
|
-
stores: { loadedSessionsStore, persistentSessionsStore },
|
|
126
|
-
options };
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Create `MediaKeys` from the `MediaKeySystemAccess` given.
|
|
131
|
-
* Throws the right formatted error if it fails.
|
|
132
|
-
* @param {MediaKeySystemAccess} mediaKeySystemAccess
|
|
133
|
-
* @returns {Promise.<MediaKeys>}
|
|
134
|
-
*/
|
|
135
|
-
async function createMediaKeys(
|
|
136
|
-
mediaKeySystemAccess : MediaKeySystemAccess | ICustomMediaKeySystemAccess
|
|
137
|
-
) : Promise<MediaKeys | ICustomMediaKeys> {
|
|
138
|
-
log.info("DRM: Calling createMediaKeys on the MediaKeySystemAccess");
|
|
139
|
-
try {
|
|
140
|
-
const mediaKeys = await mediaKeySystemAccess.createMediaKeys();
|
|
141
|
-
return mediaKeys;
|
|
142
|
-
} catch (error) {
|
|
143
|
-
const message = error instanceof Error ? error.message :
|
|
144
|
-
"Unknown error when creating MediaKeys.";
|
|
145
|
-
throw new EncryptedMediaError("CREATE_MEDIA_KEYS_ERROR", message);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2015 CANAL+ Group
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* /!\ This file is feature-switchable.
|
|
19
|
-
* It always should be imported through the `features` object.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
import clearOnStop from "./clear_on_stop";
|
|
23
|
-
import ContentDecryptor from "./content_decryptor";
|
|
24
|
-
import disposeDecryptionResources from "./dispose_decryption_resources";
|
|
25
|
-
import getKeySystemConfiguration, {
|
|
26
|
-
getCurrentKeySystem,
|
|
27
|
-
} from "./get_key_system_configuration";
|
|
28
|
-
export * from "./types";
|
|
29
|
-
|
|
30
|
-
export default ContentDecryptor;
|
|
31
|
-
export {
|
|
32
|
-
clearOnStop,
|
|
33
|
-
disposeDecryptionResources,
|
|
34
|
-
getKeySystemConfiguration,
|
|
35
|
-
getCurrentKeySystem,
|
|
36
|
-
};
|
|
@@ -1,60 +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 { isWebOs } from "../../compat/browser_detection";
|
|
18
|
-
import log from "../../log";
|
|
19
|
-
import { IKeySystemOption } from "../../public_types";
|
|
20
|
-
import noop from "../../utils/noop";
|
|
21
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
22
|
-
import { disableMediaKeys } from "./attach_media_keys";
|
|
23
|
-
import getMediaKeysInfos, {
|
|
24
|
-
IMediaKeysInfos,
|
|
25
|
-
} from "./get_media_keys";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Get media keys infos from key system configs then attach media keys to media element.
|
|
29
|
-
* @param {HTMLMediaElement} mediaElement
|
|
30
|
-
* @param {Array.<Object>} keySystemsConfigs
|
|
31
|
-
* @param {Object} cancelSignal
|
|
32
|
-
* @returns {Promise.<Object>}
|
|
33
|
-
*/
|
|
34
|
-
export default async function initMediaKeys(
|
|
35
|
-
mediaElement: HTMLMediaElement,
|
|
36
|
-
keySystemsConfigs: IKeySystemOption[],
|
|
37
|
-
cancelSignal: CancellationSignal
|
|
38
|
-
): Promise<IMediaKeysInfos> {
|
|
39
|
-
const mediaKeysInfo =
|
|
40
|
-
await getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal);
|
|
41
|
-
|
|
42
|
-
const { mediaKeys } = mediaKeysInfo;
|
|
43
|
-
const shouldDisableOldMediaKeys =
|
|
44
|
-
mediaElement.mediaKeys !== null &&
|
|
45
|
-
mediaElement.mediaKeys !== undefined &&
|
|
46
|
-
mediaKeys !== mediaElement.mediaKeys;
|
|
47
|
-
|
|
48
|
-
if (shouldDisableOldMediaKeys) {
|
|
49
|
-
log.debug("DRM: Disabling old MediaKeys");
|
|
50
|
-
// TODO should we be awaiting always?
|
|
51
|
-
// Should be tested on all devices, we may want to wait for another
|
|
52
|
-
// version to make this important change.
|
|
53
|
-
if (isWebOs) {
|
|
54
|
-
await disableMediaKeys(mediaElement);
|
|
55
|
-
} else {
|
|
56
|
-
disableMediaKeys(mediaElement).catch(noop);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return mediaKeysInfo;
|
|
60
|
-
}
|