rx-player 4.0.0-beta.2 → 4.0.0-beta.3
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/.eslintrc.js +9 -0
- package/CHANGELOG.md +173 -63
- package/CONTRIBUTING.md +27 -13
- package/FILES.md +0 -4
- package/README.md +0 -25
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_class_name.js +6 -3
- package/dist/_esm5.processed/compat/add_text_track.js +11 -8
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +0 -1
- package/dist/_esm5.processed/compat/browser_compatibility_types.js +16 -11
- package/dist/_esm5.processed/compat/browser_detection.js +49 -33
- package/dist/_esm5.processed/compat/browser_version.js +11 -8
- package/dist/_esm5.processed/compat/can_patch_isobmff.js +6 -3
- package/dist/_esm5.processed/compat/can_rely_on_video_visibility_and_size.js +9 -6
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -3
- package/dist/_esm5.processed/compat/change_source_buffer_type.js +6 -3
- package/dist/_esm5.processed/compat/clear_element_src.js +12 -9
- package/dist/_esm5.processed/compat/eme/close_session.js +45 -106
- package/dist/_esm5.processed/compat/eme/constants.js +6 -3
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +18 -22
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.d.ts +2 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +81 -101
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +6 -27
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +16 -159
- package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.js +31 -26
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ms_media_keys_constructor.js +14 -14
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.d.ts +2 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +75 -89
- package/dist/_esm5.processed/compat/eme/custom_media_keys/types.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/types.js +2 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.d.ts +2 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +97 -119
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +14 -16
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.d.ts +78 -0
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +198 -0
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +36 -31
- package/dist/_esm5.processed/compat/eme/get_init_data.js +28 -25
- package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +8 -5
- package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +17 -14
- package/dist/_esm5.processed/compat/eme/index.d.ts +5 -3
- package/dist/_esm5.processed/compat/eme/index.js +13 -7
- package/dist/_esm5.processed/compat/eme/load_session.js +26 -69
- package/dist/_esm5.processed/compat/enable_audio_track.js +7 -4
- package/dist/_esm5.processed/compat/event_listeners.d.ts +13 -5
- package/dist/_esm5.processed/compat/event_listeners.js +132 -108
- package/dist/_esm5.processed/compat/get_start_date.js +7 -4
- package/dist/_esm5.processed/compat/global_scope.d.ts +9 -0
- package/dist/_esm5.processed/compat/global_scope.js +15 -0
- package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +6 -3
- package/dist/_esm5.processed/compat/index.d.ts +2 -3
- package/dist/_esm5.processed/compat/index.js +47 -25
- package/dist/_esm5.processed/compat/is_codec_supported.js +8 -5
- package/dist/_esm5.processed/compat/is_debug_mode_enabled.d.ts +7 -0
- package/dist/_esm5.processed/compat/is_debug_mode_enabled.js +12 -0
- package/dist/_esm5.processed/compat/is_node.d.ts +1 -0
- package/dist/_esm5.processed/compat/is_node.js +6 -2
- package/dist/_esm5.processed/compat/is_seeking_approximate.js +5 -3
- package/dist/_esm5.processed/compat/is_vtt_cue.js +6 -2
- package/dist/_esm5.processed/compat/is_worker.d.ts +5 -0
- package/dist/_esm5.processed/compat/is_worker.js +7 -0
- package/dist/_esm5.processed/compat/make_vtt_cue.js +10 -6
- package/dist/_esm5.processed/compat/on_height_width_change.js +25 -27
- package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +19 -16
- package/dist/_esm5.processed/compat/remove_cue.js +12 -9
- package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +7 -4
- package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +4 -1
- package/dist/_esm5.processed/compat/should_renew_media_key_system_access.js +6 -3
- package/dist/_esm5.processed/compat/should_unset_media_keys.js +6 -3
- package/dist/_esm5.processed/compat/should_validate_metadata.js +6 -3
- package/dist/_esm5.processed/compat/should_wait_for_data_before_loaded.js +6 -3
- package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.d.ts +13 -0
- package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.js +19 -0
- package/dist/_esm5.processed/config.js +15 -14
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +136 -104
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +19 -3
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +66 -46
- package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +37 -43
- package/dist/_esm5.processed/core/adaptive/index.js +4 -2
- package/dist/_esm5.processed/core/adaptive/network_analyzer.js +75 -73
- package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +24 -23
- package/dist/_esm5.processed/core/adaptive/utils/ewma.js +13 -12
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.js +9 -6
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_resolution.js +18 -19
- package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +10 -7
- package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.js +8 -7
- package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.d.ts +13 -3
- package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.js +26 -23
- package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +25 -23
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +6 -3
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +41 -40
- package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +31 -29
- package/dist/_esm5.processed/core/api/debug/constants.js +4 -1
- package/dist/_esm5.processed/core/api/debug/index.js +4 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +64 -72
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +49 -46
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +15 -12
- package/dist/_esm5.processed/core/api/debug/render.js +16 -13
- package/dist/_esm5.processed/core/api/debug/utils.js +18 -13
- package/dist/_esm5.processed/core/api/index.js +7 -4
- package/dist/_esm5.processed/core/api/option_utils.d.ts +1 -1
- package/dist/_esm5.processed/core/api/option_utils.js +86 -59
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +8 -2
- package/dist/_esm5.processed/core/api/playback_observer.js +135 -123
- package/dist/_esm5.processed/core/api/public_api.d.ts +6 -0
- package/dist/_esm5.processed/core/api/public_api.js +614 -676
- package/dist/_esm5.processed/core/api/track_management/index.js +19 -3
- package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +233 -248
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +2 -2
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +47 -58
- package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +50 -29
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +325 -351
- package/dist/_esm5.processed/core/api/utils.js +32 -24
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +167 -190
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +8 -2
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +44 -72
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +15 -12
- package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +9 -67
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +400 -542
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +44 -90
- package/dist/_esm5.processed/core/decrypt/create_session.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/create_session.js +90 -149
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +24 -60
- package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +104 -162
- package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +6 -3
- package/dist/_esm5.processed/core/decrypt/get_media_keys.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +59 -109
- package/dist/_esm5.processed/core/decrypt/index.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/index.js +26 -7
- package/dist/_esm5.processed/core/decrypt/init_media_keys.js +17 -59
- package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +84 -155
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +50 -103
- package/dist/_esm5.processed/core/decrypt/types.d.ts +61 -0
- package/dist/_esm5.processed/core/decrypt/types.js +43 -1
- package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +22 -19
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +40 -61
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +17 -61
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.js +8 -5
- package/dist/_esm5.processed/core/decrypt/utils/get_drm_system_id.js +8 -5
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +23 -23
- package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +15 -12
- package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.d.ts +0 -13
- package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +14 -38
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +26 -26
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +206 -310
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.d.ts +2 -1
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +8 -6
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +103 -103
- package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +13 -12
- package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +18 -16
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +37 -56
- package/dist/_esm5.processed/core/fetchers/index.js +7 -3
- package/dist/_esm5.processed/core/fetchers/manifest/index.js +4 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +233 -312
- package/dist/_esm5.processed/core/fetchers/segment/index.js +4 -2
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +12 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +218 -233
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +20 -19
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +73 -74
- package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +8 -5
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +210 -260
- package/dist/_esm5.processed/core/init/directfile_content_initializer.d.ts +60 -1
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +122 -105
- package/dist/_esm5.processed/core/init/index.d.ts +1 -4
- package/dist/_esm5.processed/core/init/index.js +5 -3
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +269 -307
- package/dist/_esm5.processed/core/init/types.d.ts +3 -17
- package/dist/_esm5.processed/core/init/types.js +7 -24
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +109 -135
- package/dist/_esm5.processed/core/init/utils/create_media_source.js +35 -27
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.d.ts +9 -4
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +22 -14
- package/dist/_esm5.processed/core/init/utils/end_of_stream.js +30 -25
- package/dist/_esm5.processed/core/init/utils/get_initial_time.js +41 -37
- package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +15 -10
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +31 -28
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +3 -3
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +48 -53
- package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +61 -58
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +3 -3
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +141 -160
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +3 -1
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.js +4 -2
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +28 -14
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +31 -9
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +103 -79
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.js +2 -1
- package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +16 -13
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +75 -126
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +131 -140
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/index.js +4 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/index.js +20 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +109 -128
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/index.js +4 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/parsers.js +11 -8
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +48 -47
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/types.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +18 -15
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +22 -15
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/index.js +4 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +65 -82
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.js +11 -8
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.js +19 -17
- package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +23 -22
- package/dist/_esm5.processed/core/segment_buffers/index.js +13 -6
- package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +25 -22
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +8 -3
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +152 -150
- package/dist/_esm5.processed/core/segment_buffers/inventory/types.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +9 -4
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +82 -89
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +1 -1
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +130 -171
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +31 -28
- package/dist/_esm5.processed/core/stream/adaptation/index.js +19 -3
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +14 -8
- package/dist/_esm5.processed/core/stream/adaptation/types.js +2 -1
- package/dist/_esm5.processed/core/stream/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/index.js +4 -2
- package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +14 -21
- package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/orchestrator/index.js +4 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +15 -29
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +193 -235
- package/dist/_esm5.processed/core/stream/period/index.js +19 -3
- package/dist/_esm5.processed/core/stream/period/period_stream.js +204 -228
- package/dist/_esm5.processed/core/stream/period/types.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/period/types.js +2 -1
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +18 -4
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -33
- package/dist/_esm5.processed/core/stream/representation/index.js +19 -3
- package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +1 -1
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +81 -68
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +3 -4
- package/dist/_esm5.processed/core/stream/representation/types.js +2 -1
- package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +33 -84
- package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +32 -29
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.d.ts +1 -1
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +126 -145
- package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +32 -88
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +61 -47
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +71 -69
- package/dist/_esm5.processed/core/stream/representation/utils/get_segment_priority.js +8 -5
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +22 -63
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +1 -1
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +49 -86
- package/dist/_esm5.processed/default_config.js +4 -2
- package/dist/_esm5.processed/errors/assertion_error.js +10 -26
- package/dist/_esm5.processed/errors/custom_loader_error.js +12 -28
- package/dist/_esm5.processed/errors/encrypted_media_error.js +16 -32
- package/dist/_esm5.processed/errors/error_codes.js +9 -4
- package/dist/_esm5.processed/errors/error_message.d.ts +1 -2
- package/dist/_esm5.processed/errors/error_message.js +5 -3
- package/dist/_esm5.processed/errors/format_error.js +9 -7
- package/dist/_esm5.processed/errors/index.js +25 -11
- package/dist/_esm5.processed/errors/is_known_error.js +14 -11
- package/dist/_esm5.processed/errors/media_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/media_error.js +34 -47
- package/dist/_esm5.processed/errors/network_error.js +21 -37
- package/dist/_esm5.processed/errors/other_error.js +15 -31
- package/dist/_esm5.processed/errors/request_error.js +27 -29
- package/dist/_esm5.processed/experimental/features/dash_wasm.js +15 -9
- package/dist/_esm5.processed/experimental/features/debug_element.js +7 -4
- package/dist/_esm5.processed/experimental/features/index.d.ts +0 -1
- package/dist/_esm5.processed/experimental/features/index.js +9 -4
- package/dist/_esm5.processed/experimental/features/local.js +10 -4
- package/dist/_esm5.processed/experimental/features/metaplaylist.js +10 -4
- package/dist/_esm5.processed/experimental/index.js +5 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.js +6 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +6 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +7 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +22 -16
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +22 -19
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.js +2 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +125 -186
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.js +11 -27
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +76 -119
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +24 -15
- package/dist/_esm5.processed/experimental/tools/index.js +11 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +39 -44
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +34 -36
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +21 -18
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +4 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/log.js +5 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +21 -17
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -17
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +13 -10
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +16 -13
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.js +16 -14
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +14 -11
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +14 -11
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +19 -15
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +11 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.js +5 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +25 -22
- package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +7 -4
- package/dist/_esm5.processed/features/add_features.js +11 -8
- package/dist/_esm5.processed/features/features_object.js +6 -3
- package/dist/_esm5.processed/features/index.js +7 -4
- package/dist/_esm5.processed/features/list/dash.js +12 -6
- package/dist/_esm5.processed/features/list/directfile.js +9 -5
- package/dist/_esm5.processed/features/list/eme.js +7 -4
- package/dist/_esm5.processed/features/list/html_sami_parser.js +9 -4
- package/dist/_esm5.processed/features/list/html_srt_parser.js +9 -4
- package/dist/_esm5.processed/features/list/html_text_buffer.js +7 -4
- package/dist/_esm5.processed/features/list/html_ttml_parser.js +9 -4
- package/dist/_esm5.processed/features/list/html_vtt_parser.js +9 -4
- package/dist/_esm5.processed/features/list/index.js +31 -14
- package/dist/_esm5.processed/features/list/native_sami_parser.js +10 -4
- package/dist/_esm5.processed/features/list/native_srt_parser.js +10 -4
- package/dist/_esm5.processed/features/list/native_text_buffer.js +8 -4
- package/dist/_esm5.processed/features/list/native_ttml_parser.js +10 -4
- package/dist/_esm5.processed/features/list/native_vtt_parser.js +10 -4
- package/dist/_esm5.processed/features/list/smooth.js +10 -4
- package/dist/_esm5.processed/features/types.d.ts +84 -7
- package/dist/_esm5.processed/features/types.js +2 -1
- package/dist/_esm5.processed/index.d.ts +0 -4
- package/dist/_esm5.processed/index.js +24 -8
- package/dist/_esm5.processed/log.js +5 -3
- package/dist/_esm5.processed/manifest/adaptation.js +52 -55
- package/dist/_esm5.processed/manifest/index.js +32 -13
- package/dist/_esm5.processed/manifest/manifest.d.ts +4 -7
- package/dist/_esm5.processed/manifest/manifest.js +117 -135
- package/dist/_esm5.processed/manifest/period.d.ts +2 -7
- package/dist/_esm5.processed/manifest/period.js +39 -46
- package/dist/_esm5.processed/manifest/representation.d.ts +12 -0
- package/dist/_esm5.processed/manifest/representation.js +81 -63
- package/dist/_esm5.processed/manifest/representation_index/index.js +5 -2
- package/dist/_esm5.processed/manifest/representation_index/static.js +43 -42
- package/dist/_esm5.processed/manifest/representation_index/types.js +2 -1
- package/dist/_esm5.processed/manifest/types.js +5 -2
- package/dist/_esm5.processed/manifest/update_period_in_place.js +38 -48
- package/dist/_esm5.processed/manifest/update_periods.js +59 -69
- package/dist/_esm5.processed/manifest/utils.js +14 -9
- package/dist/_esm5.processed/minimal.d.ts +1 -17
- package/dist/_esm5.processed/minimal.js +9 -39
- package/dist/_esm5.processed/parsers/containers/isobmff/constants.js +4 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +14 -10
- package/dist/_esm5.processed/parsers/containers/isobmff/drm/index.js +5 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +15 -11
- package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +48 -40
- package/dist/_esm5.processed/parsers/containers/isobmff/index.js +27 -6
- package/dist/_esm5.processed/parsers/containers/isobmff/read.js +20 -14
- package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +25 -20
- package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +130 -112
- package/dist/_esm5.processed/parsers/containers/matroska/index.js +6 -1
- package/dist/_esm5.processed/parsers/containers/matroska/utils.js +67 -63
- package/dist/_esm5.processed/parsers/images/bif.js +40 -29
- package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.js +10 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +7 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +14 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/index.js +10 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +73 -67
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +9 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +32 -25
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.js +11 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +81 -70
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +130 -123
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +35 -32
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +14 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +30 -22
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +14 -11
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +5 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +131 -128
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +16 -10
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/utils.js +7 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +19 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.d.ts +8 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +22 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +111 -108
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.js +4 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +6 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +86 -84
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +4 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +101 -84
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +39 -37
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +64 -65
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/index.js +8 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +66 -62
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.js +22 -19
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +22 -19
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +11 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +38 -34
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +34 -30
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +50 -38
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +24 -21
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +21 -18
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.js +6 -3
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +60 -64
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +33 -27
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +1 -0
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +192 -237
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +67 -62
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +8 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +17 -13
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +29 -24
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +38 -33
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +37 -32
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +50 -35
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +9 -5
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +16 -12
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +20 -16
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/index.js +5 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +22 -20
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +6 -2
- package/dist/_esm5.processed/parsers/manifest/index.js +17 -1
- package/dist/_esm5.processed/parsers/manifest/local/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +31 -26
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +71 -84
- package/dist/_esm5.processed/parsers/manifest/local/types.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/local/types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +76 -71
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +52 -52
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +200 -175
- package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +13 -8
- package/dist/_esm5.processed/parsers/manifest/smooth/index.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +17 -14
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +17 -15
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +102 -97
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +49 -47
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/parseBoolean.js +4 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/reduceChildren.js +6 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +5 -1
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +6 -4
- package/dist/_esm5.processed/parsers/manifest/types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +27 -24
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +8 -5
- package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +8 -5
- package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +31 -22
- package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +9 -6
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +38 -45
- package/dist/_esm5.processed/parsers/texttracks/index.js +2 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/html.js +45 -43
- package/dist/_esm5.processed/parsers/texttracks/sami/native.js +41 -39
- package/dist/_esm5.processed/parsers/texttracks/srt/find_end_of_cue_block.js +7 -4
- package/dist/_esm5.processed/parsers/texttracks/srt/get_cue_blocks.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/srt/html.js +32 -29
- package/dist/_esm5.processed/parsers/texttracks/srt/native.js +16 -13
- package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +21 -18
- package/dist/_esm5.processed/parsers/texttracks/srt/parse_timestamp.js +10 -7
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +37 -30
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.js +48 -48
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +14 -11
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +7 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +15 -12
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +15 -12
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +15 -12
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +25 -22
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +117 -124
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +12 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.js +14 -11
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +10 -7
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +38 -35
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +58 -58
- package/dist/_esm5.processed/parsers/texttracks/ttml/regexps.js +27 -13
- package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.js +18 -18
- package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +28 -26
- package/dist/_esm5.processed/parsers/texttracks/ttml/xml_utils.js +37 -25
- package/dist/_esm5.processed/parsers/texttracks/types.js +2 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +12 -9
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +14 -11
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +8 -5
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +60 -60
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +30 -27
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +23 -26
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +20 -17
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +23 -18
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +19 -16
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.js +20 -17
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +8 -5
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +26 -18
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +10 -7
- package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +15 -7
- package/dist/_esm5.processed/public_types.d.ts +6 -8
- package/dist/_esm5.processed/public_types.js +2 -1
- package/dist/_esm5.processed/tools/TextTrackRenderer/index.js +13 -6
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +26 -24
- package/dist/_esm5.processed/tools/index.js +6 -4
- package/dist/_esm5.processed/tools/string_utils.js +10 -1
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +16 -24
- package/dist/_esm5.processed/transports/dash/construct_segment_url.js +6 -3
- package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +17 -14
- package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +19 -16
- package/dist/_esm5.processed/transports/dash/index.js +4 -2
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +47 -27
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +23 -16
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +68 -59
- package/dist/_esm5.processed/transports/dash/pipelines.js +20 -17
- package/dist/_esm5.processed/transports/dash/segment_loader.js +49 -39
- package/dist/_esm5.processed/transports/dash/segment_parser.js +58 -39
- package/dist/_esm5.processed/transports/dash/text_loader.js +36 -30
- package/dist/_esm5.processed/transports/dash/text_parser.js +39 -29
- package/dist/_esm5.processed/transports/index.js +17 -1
- package/dist/_esm5.processed/transports/local/index.js +4 -2
- package/dist/_esm5.processed/transports/local/pipelines.js +26 -22
- package/dist/_esm5.processed/transports/local/segment_loader.js +26 -23
- package/dist/_esm5.processed/transports/local/segment_parser.js +36 -25
- package/dist/_esm5.processed/transports/local/text_parser.js +42 -27
- package/dist/_esm5.processed/transports/metaplaylist/index.js +4 -2
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +11 -7
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +92 -96
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +26 -20
- package/dist/_esm5.processed/transports/smooth/index.js +4 -2
- package/dist/_esm5.processed/transports/smooth/is_mp4_embedded_track.js +4 -1
- package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +22 -19
- package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +92 -67
- package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +29 -26
- package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +9 -6
- package/dist/_esm5.processed/transports/smooth/isobmff/create_video_init_segment.js +23 -20
- package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +10 -7
- package/dist/_esm5.processed/transports/smooth/isobmff/index.js +13 -6
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +19 -16
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +9 -6
- package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +41 -38
- package/dist/_esm5.processed/transports/smooth/pipelines.js +107 -96
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +149 -153
- package/dist/_esm5.processed/transports/smooth/utils.js +7 -3
- package/dist/_esm5.processed/transports/types.d.ts +17 -8
- package/dist/_esm5.processed/transports/types.js +2 -1
- package/dist/_esm5.processed/transports/utils/byte_range.js +6 -4
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +23 -17
- package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +14 -11
- package/dist/_esm5.processed/transports/utils/find_complete_box.js +11 -8
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +22 -14
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.d.ts +0 -3
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +13 -13
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +4 -1
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +40 -26
- package/dist/_esm5.processed/utils/are_arrays_of_numbers_equal.js +8 -2
- package/dist/_esm5.processed/utils/are_codecs_compatible.js +11 -9
- package/dist/_esm5.processed/utils/array_find.js +7 -4
- package/dist/_esm5.processed/utils/array_find_index.js +6 -3
- package/dist/_esm5.processed/utils/array_includes.js +12 -11
- package/dist/_esm5.processed/utils/assert.js +15 -10
- package/dist/_esm5.processed/utils/assert_unreachable.js +6 -3
- package/dist/_esm5.processed/utils/base64.js +23 -18
- package/dist/_esm5.processed/utils/byte_parsing.js +30 -17
- package/dist/_esm5.processed/utils/cancellable_sleep.js +8 -5
- package/dist/_esm5.processed/utils/create_cancellable_promise.js +7 -4
- package/dist/_esm5.processed/utils/deep_merge.d.ts +2 -5
- package/dist/_esm5.processed/utils/deep_merge.js +10 -21
- package/dist/_esm5.processed/utils/event_emitter.js +24 -24
- package/dist/_esm5.processed/utils/flat_map.js +7 -4
- package/dist/_esm5.processed/utils/get_fuzzed_delay.js +6 -3
- package/dist/_esm5.processed/utils/hash_buffer.js +7 -4
- package/dist/_esm5.processed/utils/id_generator.js +6 -3
- package/dist/_esm5.processed/utils/initialization_segment_cache.js +11 -12
- package/dist/_esm5.processed/utils/is_non_empty_string.js +4 -1
- package/dist/_esm5.processed/utils/is_null_or_undefined.js +4 -1
- package/dist/_esm5.processed/utils/languages/ISO_639-1_to_ISO_639-3.js +4 -2
- package/dist/_esm5.processed/utils/languages/ISO_639-2_to_ISO_639-3.js +4 -2
- package/dist/_esm5.processed/utils/languages/index.js +7 -3
- package/dist/_esm5.processed/utils/languages/normalize.js +26 -20
- package/dist/_esm5.processed/utils/logger.js +24 -23
- package/dist/_esm5.processed/utils/monotonic_timestamp.d.ts +9 -0
- package/dist/_esm5.processed/utils/monotonic_timestamp.js +15 -0
- package/dist/_esm5.processed/utils/noop.js +4 -1
- package/dist/_esm5.processed/utils/object_assign.js +8 -10
- package/dist/_esm5.processed/utils/object_values.js +6 -3
- package/dist/_esm5.processed/utils/ranges.d.ts +50 -8
- package/dist/_esm5.processed/utils/ranges.js +163 -64
- package/dist/_esm5.processed/utils/reference.d.ts +78 -37
- package/dist/_esm5.processed/utils/reference.js +235 -155
- package/dist/_esm5.processed/utils/request/fetch.d.ts +4 -4
- package/dist/_esm5.processed/utils/request/fetch.js +79 -107
- package/dist/_esm5.processed/utils/request/index.js +9 -4
- package/dist/_esm5.processed/utils/request/xhr.js +49 -36
- package/dist/_esm5.processed/utils/resolve_url.js +18 -18
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +34 -81
- package/dist/_esm5.processed/utils/sleep.js +5 -2
- package/dist/_esm5.processed/utils/slice_uint8array.js +3 -1
- package/dist/_esm5.processed/utils/sorted_list.js +37 -40
- package/dist/_esm5.processed/utils/starts_with.js +5 -2
- package/dist/_esm5.processed/utils/string_parsing.js +84 -72
- package/dist/_esm5.processed/utils/take_first_set.js +9 -10
- package/dist/_esm5.processed/utils/task_canceller.js +51 -71
- package/dist/_esm5.processed/utils/warn_once.js +7 -4
- package/dist/_esm5.processed/utils/weak_map_memory.js +12 -11
- package/dist/_esm5.processed/utils/wrapInPromise.d.ts +7 -0
- package/dist/_esm5.processed/utils/wrapInPromise.js +25 -0
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +42885 -44008
- package/dist/rx-player.min.js +1 -1
- package/jest.config.js +1 -22
- package/package.json +56 -57
- package/scripts/build/constants.d.ts +1 -23
- package/scripts/build/generate_build.js +1 -1
- package/scripts/check_nodejs_import_compatibility.js +1 -1
- package/scripts/list-npm-scripts.js +146 -38
- package/scripts/update-version +1 -4
- package/sonar-project.properties +1 -1
- package/src/compat/__tests__/browser_compatibility_types.test.ts +51 -72
- package/src/compat/__tests__/is_vtt_cue.test.ts +20 -16
- package/src/compat/__tests__/make_vtt_cue.test.ts +11 -9
- package/src/compat/__tests__/patch_webkit_source_buffer.test.ts +26 -25
- package/src/compat/__tests__/should_favour_custom_safari_EME.test.ts +11 -9
- package/src/compat/__tests__/should_wait_for_have_enough_data.test.ts +36 -0
- package/src/compat/browser_compatibility_types.ts +9 -16
- package/src/compat/browser_detection.ts +11 -8
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +11 -8
- package/src/compat/eme/custom_media_keys/index.ts +8 -184
- package/src/compat/eme/custom_media_keys/moz_media_keys_constructor.ts +26 -22
- package/src/compat/eme/custom_media_keys/ms_media_keys_constructor.ts +13 -15
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +11 -8
- package/src/compat/eme/custom_media_keys/types.ts +1 -1
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +15 -11
- package/src/compat/eme/custom_media_keys/webkit_media_keys_constructor.ts +14 -16
- package/src/compat/eme/eme-api-implementation.ts +319 -0
- package/src/compat/eme/index.ts +8 -6
- package/src/compat/event_listeners.ts +32 -39
- package/src/compat/global_scope.ts +18 -0
- package/src/compat/index.ts +2 -24
- package/src/compat/is_debug_mode_enabled.ts +12 -0
- package/src/compat/is_node.ts +4 -1
- package/src/compat/is_vtt_cue.ts +2 -1
- package/src/compat/is_worker.ts +9 -0
- package/src/compat/make_vtt_cue.ts +3 -2
- package/src/compat/on_height_width_change.ts +4 -9
- package/src/compat/patch_webkit_source_buffer.ts +4 -3
- package/src/compat/should_wait_for_have_enough_data.ts +17 -0
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +245 -102
- package/src/core/adaptive/adaptive_representation_selector.ts +52 -35
- package/src/core/adaptive/buffer_based_chooser.ts +41 -13
- package/src/core/adaptive/guess_based_chooser.ts +4 -3
- package/src/core/adaptive/network_analyzer.ts +8 -6
- package/src/core/adaptive/utils/pending_requests_store.ts +15 -5
- package/src/core/api/debug/buffer_size_graph.ts +3 -1
- package/src/core/api/option_utils.ts +2 -2
- package/src/core/api/playback_observer.ts +16 -9
- package/src/core/api/public_api.ts +47 -31
- package/src/core/api/track_management/track_dispatcher.ts +9 -6
- package/src/core/api/track_management/tracks_store.ts +112 -90
- package/src/core/api/utils.ts +3 -3
- package/src/core/decrypt/__tests__/__global__/get_license.test.ts +3 -3
- package/src/core/decrypt/__tests__/__global__/init_data.test.ts +24 -14
- package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +74 -48
- package/src/core/decrypt/__tests__/__global__/media_keys.test.ts +21 -15
- package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +16 -13
- package/src/core/decrypt/__tests__/__global__/utils.ts +39 -24
- package/src/core/decrypt/attach_media_keys.ts +33 -8
- package/src/core/decrypt/clear_on_stop.ts +1 -1
- package/src/core/decrypt/content_decryptor.ts +213 -262
- package/src/core/decrypt/create_or_load_session.ts +1 -1
- package/src/core/decrypt/create_session.ts +1 -1
- package/src/core/decrypt/dispose_decryption_resources.ts +19 -4
- package/src/core/decrypt/find_key_system.ts +24 -19
- package/src/core/decrypt/get_media_keys.ts +2 -2
- package/src/core/decrypt/index.ts +1 -6
- package/src/core/decrypt/session_events_listener.ts +3 -4
- package/src/core/decrypt/set_server_certificate.ts +1 -1
- package/src/core/decrypt/types.ts +69 -0
- package/src/core/decrypt/utils/check_key_statuses.ts +1 -1
- package/src/core/decrypt/utils/is_session_usable.ts +1 -1
- package/src/core/decrypt/utils/key_id_comparison.ts +2 -27
- package/src/core/decrypt/utils/key_session_record.ts +3 -5
- package/src/core/decrypt/utils/loaded_sessions_store.ts +2 -2
- package/src/core/decrypt/utils/media_keys_infos_store.ts +4 -1
- package/src/core/decrypt/utils/persistent_sessions_store.ts +2 -5
- package/src/core/decrypt/utils/server_certificate_store.ts +1 -1
- package/src/core/fetchers/cdn_prioritizer.ts +1 -1
- package/src/core/fetchers/manifest/manifest_fetcher.ts +22 -18
- package/src/core/fetchers/segment/segment_fetcher.ts +3 -2
- package/src/core/fetchers/utils/schedule_request.ts +6 -5
- package/src/core/init/directfile_content_initializer.ts +85 -21
- package/src/core/init/index.ts +6 -7
- package/src/core/init/media_source_content_initializer.ts +56 -26
- package/src/core/init/types.ts +2 -16
- package/src/core/init/utils/__tests__/refresh_scheduled_events_list.test.ts +22 -8
- package/src/core/init/utils/create_media_source.ts +4 -1
- package/src/core/init/utils/create_stream_playback_observer.ts +24 -14
- package/src/core/init/utils/end_of_stream.ts +1 -0
- package/src/core/init/utils/get_initial_time.ts +3 -1
- package/src/core/init/utils/get_loaded_reference.ts +6 -3
- package/src/core/init/utils/initial_seek_and_play.ts +7 -7
- package/src/core/init/utils/initialize_content_decryption.ts +32 -39
- package/src/core/init/utils/media_source_duration_updater.ts +13 -9
- package/src/core/init/utils/rebuffering_controller.ts +13 -10
- package/src/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.ts +7 -4
- package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +113 -73
- package/src/core/segment_buffers/garbage_collector.ts +3 -3
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +10 -2
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +17 -17
- package/src/core/segment_buffers/implementations/text/html/text_track_cues_store.ts +1 -1
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +2 -2
- package/src/core/segment_buffers/implementations/utils/manual_time_ranges.ts +2 -2
- package/src/core/segment_buffers/inventory/buffered_history.ts +4 -3
- package/src/core/segment_buffers/inventory/segment_inventory.ts +1 -0
- package/src/core/stream/adaptation/adaptation_stream.ts +43 -28
- package/src/core/stream/adaptation/types.ts +15 -9
- package/src/core/stream/index.ts +2 -0
- package/src/core/stream/orchestrator/get_time_ranges_for_content.ts +1 -6
- package/src/core/stream/orchestrator/index.ts +2 -0
- package/src/core/stream/orchestrator/stream_orchestrator.ts +38 -42
- package/src/core/stream/period/period_stream.ts +62 -23
- package/src/core/stream/period/types.ts +5 -3
- package/src/core/stream/period/utils/get_adaptation_switch_strategy.ts +10 -0
- package/src/core/stream/representation/representation_stream.ts +6 -3
- package/src/core/stream/representation/types.ts +5 -5
- package/src/core/stream/representation/utils/append_segment_to_buffer.ts +2 -2
- package/src/core/stream/representation/utils/downloading_queue.ts +4 -5
- package/src/core/stream/representation/utils/force_garbage_collection.ts +3 -3
- package/src/core/stream/representation/utils/get_buffer_status.ts +2 -1
- package/src/core/stream/representation/utils/push_init_segment.ts +2 -3
- package/src/core/stream/representation/utils/push_media_segment.ts +2 -2
- package/src/errors/__tests__/encrypted_media_error.test.ts +2 -2
- package/src/errors/__tests__/error_message.test.ts +1 -1
- package/src/errors/__tests__/format_error.test.ts +2 -2
- package/src/errors/__tests__/media_error.test.ts +3 -3
- package/src/errors/__tests__/network_error.test.ts +10 -9
- package/src/errors/__tests__/other_error.test.ts +3 -3
- package/src/errors/__tests__/request_error.test.ts +4 -4
- package/src/errors/custom_loader_error.ts +0 -1
- package/src/errors/encrypted_media_error.ts +4 -2
- package/src/errors/error_message.ts +2 -7
- package/src/errors/media_error.ts +26 -20
- package/src/errors/network_error.ts +1 -1
- package/src/errors/other_error.ts +1 -1
- package/src/errors/request_error.ts +16 -1
- package/src/experimental/features/__tests__/dash_wasm.test.ts +4 -12
- package/src/experimental/features/__tests__/debug_element.test.ts +7 -21
- package/src/experimental/features/__tests__/local.test.ts +14 -23
- package/src/experimental/features/__tests__/metaplaylist.test.ts +14 -21
- package/src/experimental/features/dash_wasm.ts +3 -0
- package/src/experimental/features/index.ts +0 -1
- package/src/experimental/features/local.ts +3 -0
- package/src/experimental/features/metaplaylist.ts +3 -0
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +10 -9
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +26 -18
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +24 -23
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +2 -4
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +7 -4
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +5 -4
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +4 -3
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +4 -3
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +3 -2
- package/src/features/features_object.ts +2 -1
- package/src/features/list/__tests__/dash.test.ts +15 -15
- package/src/features/list/__tests__/directfile.test.ts +4 -13
- package/src/features/list/__tests__/eme.test.ts +4 -12
- package/src/features/list/__tests__/html_sami_parser.test.ts +9 -14
- package/src/features/list/__tests__/html_srt_parser.test.ts +5 -10
- package/src/features/list/__tests__/html_text_buffer.test.ts +10 -19
- package/src/features/list/__tests__/html_ttml_parser.test.ts +5 -10
- package/src/features/list/__tests__/html_vtt_parser.test.ts +5 -10
- package/src/features/list/__tests__/native_sami_parser.test.ts +9 -14
- package/src/features/list/__tests__/native_srt_parser.test.ts +5 -10
- package/src/features/list/__tests__/native_text_buffer.test.ts +5 -13
- package/src/features/list/__tests__/native_ttml_parser.test.ts +5 -10
- package/src/features/list/__tests__/native_vtt_parser.test.ts +5 -10
- package/src/features/list/__tests__/smooth.test.ts +10 -10
- package/src/features/list/dash.ts +3 -0
- package/src/features/list/eme.ts +1 -1
- package/src/features/list/html_sami_parser.ts +2 -0
- package/src/features/list/html_srt_parser.ts +2 -0
- package/src/features/list/html_text_buffer.ts +2 -2
- package/src/features/list/html_ttml_parser.ts +2 -0
- package/src/features/list/html_vtt_parser.ts +2 -0
- package/src/features/list/native_sami_parser.ts +3 -0
- package/src/features/list/native_srt_parser.ts +3 -0
- package/src/features/list/native_text_buffer.ts +3 -2
- package/src/features/list/native_ttml_parser.ts +3 -0
- package/src/features/list/native_vtt_parser.ts +3 -0
- package/src/features/list/smooth.ts +3 -0
- package/src/features/types.ts +89 -18
- package/src/index.ts +31 -5
- package/src/manifest/__tests__/manifest.test.ts +134 -75
- package/src/manifest/__tests__/period.test.ts +82 -55
- package/src/manifest/__tests__/update_periods.test.ts +4 -4
- package/src/manifest/manifest.ts +30 -20
- package/src/manifest/period.ts +3 -14
- package/src/manifest/representation.ts +21 -3
- package/src/minimal.ts +4 -18
- package/src/parsers/manifest/dash/common/__tests__/get_clock_offset.test.ts +2 -1
- package/src/parsers/manifest/dash/common/get_clock_offset.ts +5 -4
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +7 -4
- package/src/parsers/manifest/dash/common/manifest_bounds_calculator.ts +11 -5
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +1 -0
- package/src/parsers/manifest/dash/common/parse_mpd.ts +9 -5
- package/src/parsers/manifest/dash/common/parse_periods.ts +12 -6
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +2 -2
- package/src/parsers/manifest/dash/common/parse_representations.ts +10 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +7 -0
- package/src/parsers/manifest/dash/node_parser_types.ts +1 -0
- package/src/parsers/manifest/dash/parsers_types.ts +4 -4
- package/src/parsers/manifest/dash/wasm-parser/Cargo.lock +2 -2
- package/src/parsers/manifest/dash/wasm-parser/Cargo.toml +1 -1
- package/src/parsers/manifest/dash/wasm-parser/rs/errors.rs +3 -3
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +37 -67
- package/src/parsers/manifest/dash/wasm-parser/rs/lib.rs +7 -7
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +94 -105
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/mod.rs +119 -109
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/s_element.rs +24 -26
- package/src/parsers/manifest/dash/wasm-parser/rs/reader.rs +2 -2
- package/src/parsers/manifest/dash/wasm-parser/rs/reportable.rs +42 -18
- package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +29 -29
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +2 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +1 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +12 -0
- package/src/parsers/manifest/local/parse_local_manifest.ts +3 -1
- package/src/parsers/manifest/local/types.ts +2 -0
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +3 -1
- package/src/parsers/manifest/smooth/create_parser.ts +4 -3
- package/src/parsers/manifest/smooth/representation_index.ts +6 -5
- package/src/parsers/manifest/smooth/shared_smooth_segment_timeline.ts +6 -5
- package/src/parsers/manifest/types.ts +6 -4
- package/src/parsers/manifest/utils/__tests__/update_segment_timeline.test.ts +1 -2
- package/src/parsers/texttracks/ttml/html/__tests__/__global__/html_ttml_parser.test.test.ts +2 -1
- package/src/parsers/texttracks/webvtt/html/__tests__/convert_payload_to_html.test.ts +9 -7
- package/src/public_types.ts +11 -9
- package/src/transports/dash/manifest_parser.ts +8 -5
- package/src/transports/local/pipelines.ts +4 -3
- package/src/transports/metaplaylist/pipelines.ts +5 -3
- package/src/transports/smooth/pipelines.ts +4 -2
- package/src/transports/smooth/segment_loader.ts +1 -1
- package/src/transports/types.ts +17 -7
- package/src/transports/utils/__tests__/check_isobmff_integrity.test.ts +8 -8
- package/src/transports/utils/call_custom_manifest_loader.ts +2 -1
- package/src/transports/utils/get_isobmff_timing_infos.ts +0 -3
- package/src/typings/globals.d.ts +0 -44
- package/src/utils/__tests__/base64.test.ts +4 -2
- package/src/utils/__tests__/id_generator.test.ts +7 -4
- package/src/utils/__tests__/ranges.test.ts +354 -47
- package/src/utils/are_arrays_of_numbers_equal.ts +5 -1
- package/src/utils/assert.ts +4 -1
- package/src/utils/deep_merge.ts +2 -2
- package/src/utils/monotonic_timestamp.ts +12 -0
- package/src/utils/ranges.ts +110 -14
- package/src/utils/reference.ts +235 -237
- package/src/utils/request/fetch.ts +11 -9
- package/src/utils/request/xhr.ts +6 -5
- package/src/utils/string_parsing.ts +5 -4
- package/src/utils/wrapInPromise.ts +24 -0
- package/tsconfig.json +1 -1
- package/tsconfig.modules.json +3 -3
- package/appveyor.yml +0 -24
- package/dist/_esm5.processed/compat/has_eme_apis.d.ts +0 -21
- package/dist/_esm5.processed/compat/has_eme_apis.js +0 -24
- package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +0 -47
- package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +0 -70
- package/dist/_esm5.processed/core/stream/utils/create_reload_request.d.ts +0 -32
- package/dist/_esm5.processed/core/stream/utils/create_reload_request.js +0 -54
- package/dist/_esm5.processed/features/initialize_features.d.ts +0 -19
- package/dist/_esm5.processed/features/initialize_features.js +0 -100
- package/dist/rx-player.d.ts +0 -3
- package/dist/rx-player.min.d.ts +0 -3
- package/src/compat/__tests__/has_eme_apis.test.ts +0 -56
- package/src/compat/has_eme_apis.ts +0 -26
- package/src/core/stream/adaptation/utils/create_representation_estimator.ts +0 -114
- package/src/core/stream/utils/create_reload_request.ts +0 -69
- package/src/features/__tests__/initialize_features.test.ts +0 -477
- package/src/features/initialize_features.ts +0 -120
|
@@ -63,7 +63,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
63
63
|
const initData = new Uint8Array([54, 55, 75]);
|
|
64
64
|
|
|
65
65
|
// == test ==
|
|
66
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
66
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
67
67
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
68
68
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
69
69
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -109,7 +109,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
109
109
|
const initData = new Uint8Array([54, 55, 75]);
|
|
110
110
|
|
|
111
111
|
// == test ==
|
|
112
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
112
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
113
113
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
114
114
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
115
115
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -173,7 +173,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
173
173
|
new Uint8Array([87, 77]) ];
|
|
174
174
|
|
|
175
175
|
// == test ==
|
|
176
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
176
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
177
177
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
178
178
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
179
179
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -260,7 +260,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
260
260
|
const initData = new Uint8Array([54, 55, 75]);
|
|
261
261
|
|
|
262
262
|
// == test ==
|
|
263
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
263
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
264
264
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
265
265
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
266
266
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -312,7 +312,9 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
312
312
|
/* eslint-enable max-len */
|
|
313
313
|
return new Promise<void>((res, rej) => {
|
|
314
314
|
// == mocks ==
|
|
315
|
-
const { mockGenerateKeyRequest,
|
|
315
|
+
const { mockGenerateKeyRequest,
|
|
316
|
+
eventTriggers,
|
|
317
|
+
mockGetInitData } = mockCompat();
|
|
316
318
|
const mediaKeySession = new MediaKeySessionImpl();
|
|
317
319
|
const mockCreateSession = jest.spyOn(MediaKeysImpl.prototype, "createSession")
|
|
318
320
|
.mockReturnValue(mediaKeySession);
|
|
@@ -321,7 +323,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
321
323
|
const initData = new Uint8Array([54, 55, 75]);
|
|
322
324
|
|
|
323
325
|
// == test ==
|
|
324
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
326
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
325
327
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
326
328
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
327
329
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -361,7 +363,9 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
361
363
|
it("should ignore init data already received through the browser", () => {
|
|
362
364
|
return new Promise<void>((res, rej) => {
|
|
363
365
|
// == mocks ==
|
|
364
|
-
const { mockGenerateKeyRequest,
|
|
366
|
+
const { mockGenerateKeyRequest,
|
|
367
|
+
eventTriggers,
|
|
368
|
+
mockGetInitData } = mockCompat();
|
|
365
369
|
const mediaKeySession = new MediaKeySessionImpl();
|
|
366
370
|
const mockCreateSession = jest.spyOn(MediaKeysImpl.prototype, "createSession")
|
|
367
371
|
.mockReturnValue(mediaKeySession);
|
|
@@ -370,7 +374,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
370
374
|
const initData = new Uint8Array([54, 55, 75]);
|
|
371
375
|
|
|
372
376
|
// == test ==
|
|
373
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
377
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
374
378
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
375
379
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
376
380
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -421,7 +425,9 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
421
425
|
/* eslint-enable max-len */
|
|
422
426
|
return new Promise<void>((res, rej) => {
|
|
423
427
|
// == mocks ==
|
|
424
|
-
const { mockGenerateKeyRequest,
|
|
428
|
+
const { mockGenerateKeyRequest,
|
|
429
|
+
eventTriggers,
|
|
430
|
+
mockGetInitData } = mockCompat();
|
|
425
431
|
const mediaKeySessions = [ new MediaKeySessionImpl(),
|
|
426
432
|
new MediaKeySessionImpl(),
|
|
427
433
|
new MediaKeySessionImpl() ];
|
|
@@ -443,7 +449,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
443
449
|
values: [ { systemId: "15", data: initDatas[2] } ] } ];
|
|
444
450
|
|
|
445
451
|
// == test ==
|
|
446
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
452
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
447
453
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
448
454
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
449
455
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -515,7 +521,9 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
515
521
|
/* eslint-enable max-len */
|
|
516
522
|
return new Promise<void>((res, rej) => {
|
|
517
523
|
// == mocks ==
|
|
518
|
-
const { mockGenerateKeyRequest,
|
|
524
|
+
const { mockGenerateKeyRequest,
|
|
525
|
+
eventTriggers,
|
|
526
|
+
mockGetInitData } = mockCompat();
|
|
519
527
|
const mediaKeySessions = [ new MediaKeySessionImpl(),
|
|
520
528
|
new MediaKeySessionImpl() ];
|
|
521
529
|
let createSessionCallIdx = 0;
|
|
@@ -531,7 +539,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
531
539
|
values: [ { systemId: "15", data: initData } ] } ];
|
|
532
540
|
|
|
533
541
|
// == test ==
|
|
534
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
542
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
535
543
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
536
544
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
537
545
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -579,7 +587,9 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
579
587
|
it("should consider sent event through arguments and received events through the browser the same way", () => {
|
|
580
588
|
return new Promise<void>((res, rej) => {
|
|
581
589
|
// == mocks ==
|
|
582
|
-
const { mockGenerateKeyRequest,
|
|
590
|
+
const { mockGenerateKeyRequest,
|
|
591
|
+
eventTriggers,
|
|
592
|
+
mockGetInitData } = mockCompat();
|
|
583
593
|
const mediaKeySessions = [ new MediaKeySessionImpl(),
|
|
584
594
|
new MediaKeySessionImpl(),
|
|
585
595
|
new MediaKeySessionImpl() ];
|
|
@@ -601,7 +611,7 @@ describe("core - decrypt - global tests - init data", () => {
|
|
|
601
611
|
values: [ { systemId: "15", data: initDatas[2] } ] } ];
|
|
602
612
|
|
|
603
613
|
// == test ==
|
|
604
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
614
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
605
615
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
606
616
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
607
617
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
25
25
|
/* eslint-disable no-restricted-properties */
|
|
26
26
|
|
|
27
|
-
import { ICustomMediaKeySystemAccess } from "../../../../compat";
|
|
27
|
+
import { ICustomMediaKeySystemAccess } from "../../../../compat/eme";
|
|
28
28
|
import {
|
|
29
29
|
defaultKSConfig,
|
|
30
30
|
defaultPRRecommendationKSConfig,
|
|
@@ -48,7 +48,7 @@ export function requestMediaKeySystemAccessNoMediaKeys(
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
const incompatibleMKSAErrorMessage =
|
|
51
|
-
"
|
|
51
|
+
"INCOMPATIBLE_KEYSYSTEMS: No key system compatible " +
|
|
52
52
|
"with your wanted configuration has been found in the current browser.";
|
|
53
53
|
|
|
54
54
|
/**
|
|
@@ -94,7 +94,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
94
94
|
|
|
95
95
|
it("should throw if given a single incompatible keySystemsConfigs", async () => {
|
|
96
96
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
97
|
-
mockCompat({
|
|
97
|
+
mockCompat({
|
|
98
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
99
|
+
});
|
|
98
100
|
const getLicenseFn = neverCalledFn;
|
|
99
101
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "foo",
|
|
100
102
|
getLicense: getLicenseFn }]);
|
|
@@ -104,7 +106,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
104
106
|
|
|
105
107
|
it("should throw if given multiple incompatible keySystemsConfigs", async () => {
|
|
106
108
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
107
|
-
mockCompat({
|
|
109
|
+
mockCompat({
|
|
110
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
111
|
+
});
|
|
108
112
|
const config = [ { type: "foo", getLicense: neverCalledFn },
|
|
109
113
|
{ type: "bar", getLicense: neverCalledFn },
|
|
110
114
|
{ type: "baz", getLicense: neverCalledFn } ];
|
|
@@ -118,25 +122,11 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
118
122
|
.toHaveBeenNthCalledWith(3, "baz", defaultKSConfig);
|
|
119
123
|
});
|
|
120
124
|
|
|
121
|
-
/* eslint-disable max-len */
|
|
122
|
-
it("should throw an error if no implementation of requestMediaKeySystemAccess is set", async () => {
|
|
123
|
-
/* eslint-enable max-len */
|
|
124
|
-
mockCompat({ requestMediaKeySystemAccess: undefined });
|
|
125
|
-
const mediaElement = document.createElement("video");
|
|
126
|
-
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
127
|
-
|
|
128
|
-
const config = [{ type: "foo", getLicense: neverCalledFn }];
|
|
129
|
-
const error : any = await testContentDecryptorError(ContentDecryptor,
|
|
130
|
-
mediaElement,
|
|
131
|
-
config);
|
|
132
|
-
expect(error).not.toBe(null);
|
|
133
|
-
expect(error.message)
|
|
134
|
-
.toEqual("requestMediaKeySystemAccess is not implemented in your browser.");
|
|
135
|
-
});
|
|
136
|
-
|
|
137
125
|
it("should throw if given a single incompatible keySystemsConfigs", async () => {
|
|
138
126
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
139
|
-
mockCompat({
|
|
127
|
+
mockCompat({
|
|
128
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
129
|
+
});
|
|
140
130
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "foo",
|
|
141
131
|
getLicense: neverCalledFn }]);
|
|
142
132
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(1);
|
|
@@ -147,7 +137,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
147
137
|
it("should set persistentState value if persistentState is set to \"required\"", async () => {
|
|
148
138
|
/* eslint-enable max-len */
|
|
149
139
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
150
|
-
mockCompat({
|
|
140
|
+
mockCompat({
|
|
141
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
142
|
+
});
|
|
151
143
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "foo",
|
|
152
144
|
getLicense: neverCalledFn,
|
|
153
145
|
persistentState: "required" }]);
|
|
@@ -163,7 +155,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
163
155
|
it("should set persistentState value if persistentState is set to \"not-allowed\"", async () => {
|
|
164
156
|
/* eslint-enable max-len */
|
|
165
157
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
166
|
-
mockCompat({
|
|
158
|
+
mockCompat({
|
|
159
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
160
|
+
});
|
|
167
161
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "foo",
|
|
168
162
|
getLicense: neverCalledFn,
|
|
169
163
|
persistentState: "not-allowed" }]);
|
|
@@ -195,12 +189,15 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
195
189
|
it("should set distinctiveIdentifier value if distinctiveIdentifier is set to \"required\"", async () => {
|
|
196
190
|
/* eslint-enable max-len */
|
|
197
191
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
198
|
-
mockCompat({
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
192
|
+
mockCompat({
|
|
193
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
194
|
+
});
|
|
195
|
+
await checkIncompatibleKeySystemsErrorMessage(
|
|
196
|
+
[{
|
|
197
|
+
type: "foo",
|
|
198
|
+
getLicense: neverCalledFn,
|
|
199
|
+
distinctiveIdentifier: "required",
|
|
200
|
+
}]);
|
|
204
201
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(1);
|
|
205
202
|
|
|
206
203
|
const expectedConfig = defaultKSConfig.map(conf => {
|
|
@@ -213,12 +210,15 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
213
210
|
it("should set distinctiveIdentifier value if distinctiveIdentifier is set to \"not-allowed\"", async () => {
|
|
214
211
|
/* eslint-enable max-len */
|
|
215
212
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
216
|
-
mockCompat({
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
213
|
+
mockCompat({
|
|
214
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
215
|
+
});
|
|
216
|
+
await checkIncompatibleKeySystemsErrorMessage(
|
|
217
|
+
[{
|
|
218
|
+
type: "foo",
|
|
219
|
+
getLicense: neverCalledFn,
|
|
220
|
+
distinctiveIdentifier: "not-allowed",
|
|
221
|
+
}]);
|
|
222
222
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(1);
|
|
223
223
|
|
|
224
224
|
const expectedConfig = defaultKSConfig.map(conf => {
|
|
@@ -249,7 +249,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
249
249
|
it("should want persistent sessions if persistentLicenseConfig is set", async () => {
|
|
250
250
|
/* eslint-enable max-len */
|
|
251
251
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
252
|
-
mockCompat({
|
|
252
|
+
mockCompat({
|
|
253
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
254
|
+
});
|
|
253
255
|
const persistentLicenseConfig = { save() { throw new Error("Should not save."); },
|
|
254
256
|
load() { throw new Error("Should not load."); } };
|
|
255
257
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "foo",
|
|
@@ -268,7 +270,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
268
270
|
|
|
269
271
|
it("should do nothing if persistentLicenseConfig is set to null", async () => {
|
|
270
272
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
271
|
-
mockCompat({
|
|
273
|
+
mockCompat({
|
|
274
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
275
|
+
});
|
|
272
276
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "foo",
|
|
273
277
|
getLicense: neverCalledFn,
|
|
274
278
|
persistentLicenseConfig: null }]);
|
|
@@ -278,7 +282,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
278
282
|
|
|
279
283
|
it("should do nothing if persistentLicenseConfig is set to undefined", async () => {
|
|
280
284
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
281
|
-
mockCompat({
|
|
285
|
+
mockCompat({
|
|
286
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
287
|
+
});
|
|
282
288
|
await checkIncompatibleKeySystemsErrorMessage([{
|
|
283
289
|
type: "foo",
|
|
284
290
|
getLicense: neverCalledFn,
|
|
@@ -290,7 +296,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
290
296
|
|
|
291
297
|
it("should translate a `clearkey` keySystem", async () => {
|
|
292
298
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
293
|
-
mockCompat({
|
|
299
|
+
mockCompat({
|
|
300
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
301
|
+
});
|
|
294
302
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "clearkey",
|
|
295
303
|
getLicense: neverCalledFn }]);
|
|
296
304
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(2);
|
|
@@ -302,7 +310,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
302
310
|
|
|
303
311
|
it("should translate a `widevine` keySystem", async () => {
|
|
304
312
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
305
|
-
mockCompat({
|
|
313
|
+
mockCompat({
|
|
314
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
315
|
+
});
|
|
306
316
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "widevine",
|
|
307
317
|
getLicense: neverCalledFn }]);
|
|
308
318
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(1);
|
|
@@ -312,7 +322,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
312
322
|
|
|
313
323
|
it("should translate a `playready` keySystem", async () => {
|
|
314
324
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
315
|
-
mockCompat({
|
|
325
|
+
mockCompat({
|
|
326
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
327
|
+
});
|
|
316
328
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "playready",
|
|
317
329
|
getLicense: neverCalledFn }]);
|
|
318
330
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(4);
|
|
@@ -330,7 +342,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
330
342
|
|
|
331
343
|
it("should translate a `fairplay` keySystem", async () => {
|
|
332
344
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
333
|
-
mockCompat({
|
|
345
|
+
mockCompat({
|
|
346
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
347
|
+
});
|
|
334
348
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "fairplay",
|
|
335
349
|
getLicense: neverCalledFn }]);
|
|
336
350
|
expect(mockRequestMediaKeySystemAccess).toHaveBeenCalledTimes(1);
|
|
@@ -340,7 +354,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
340
354
|
|
|
341
355
|
it("should translate a multiple keySystems at the same time", async () => {
|
|
342
356
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
343
|
-
mockCompat({
|
|
357
|
+
mockCompat({
|
|
358
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
359
|
+
});
|
|
344
360
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "playready",
|
|
345
361
|
getLicense: neverCalledFn },
|
|
346
362
|
{ type: "clearkey",
|
|
@@ -366,7 +382,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
366
382
|
it("should translate a multiple keySystems at the same time with different configs", async () => {
|
|
367
383
|
/* eslint-enable max-len */
|
|
368
384
|
const mockRequestMediaKeySystemAccess = jest.fn(() => Promise.reject("nope"));
|
|
369
|
-
mockCompat({
|
|
385
|
+
mockCompat({
|
|
386
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
387
|
+
});
|
|
370
388
|
await checkIncompatibleKeySystemsErrorMessage([{ type: "playready",
|
|
371
389
|
persistentLicenseConfig: {
|
|
372
390
|
load() { return []; },
|
|
@@ -508,7 +526,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
508
526
|
const mockRequestMediaKeySystemAccess = jest.fn((keyType, conf) => {
|
|
509
527
|
return requestMediaKeySystemAccessNoMediaKeys(keyType, conf);
|
|
510
528
|
});
|
|
511
|
-
mockCompat({
|
|
529
|
+
mockCompat({
|
|
530
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
531
|
+
});
|
|
512
532
|
const config = [{ type: "com.widevine.alpha",
|
|
513
533
|
getLicense: neverCalledFn }];
|
|
514
534
|
|
|
@@ -538,7 +558,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
538
558
|
}
|
|
539
559
|
return Promise.reject("nope");
|
|
540
560
|
});
|
|
541
|
-
mockCompat({
|
|
561
|
+
mockCompat({
|
|
562
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
563
|
+
});
|
|
542
564
|
const config = [{ type: "com.widevine.alpha",
|
|
543
565
|
getLicense: neverCalledFn },
|
|
544
566
|
{ type: "some-other-working-key-system",
|
|
@@ -572,7 +594,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
572
594
|
return Promise.reject("nope");
|
|
573
595
|
});
|
|
574
596
|
});
|
|
575
|
-
mockCompat({
|
|
597
|
+
mockCompat({
|
|
598
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
599
|
+
});
|
|
576
600
|
const mediaElement = document.createElement("video");
|
|
577
601
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
578
602
|
|
|
@@ -600,7 +624,9 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
600
624
|
rmksHasBeenCalled = true;
|
|
601
625
|
throw new Error("nope");
|
|
602
626
|
});
|
|
603
|
-
mockCompat({
|
|
627
|
+
mockCompat({
|
|
628
|
+
requestMediaKeySystemAccess: mockRequestMediaKeySystemAccess,
|
|
629
|
+
});
|
|
604
630
|
const mediaElement = document.createElement("video");
|
|
605
631
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
606
632
|
|
|
@@ -60,15 +60,18 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
60
60
|
getConfiguration() { return conf; },
|
|
61
61
|
createMediaKeys() { throw new Error("No non no"); } });
|
|
62
62
|
}
|
|
63
|
-
mockCompat({
|
|
63
|
+
mockCompat({
|
|
64
|
+
requestMediaKeySystemAccess: jest.fn(requestMediaKeySystemAccessBadMediaKeys),
|
|
65
|
+
});
|
|
64
66
|
|
|
65
67
|
// == test ==
|
|
66
68
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
67
|
-
const error : any =
|
|
68
|
-
|
|
69
|
+
const error : any = await testContentDecryptorError(ContentDecryptor,
|
|
70
|
+
videoElt,
|
|
71
|
+
ksConfig);
|
|
69
72
|
expect(error).toBeInstanceOf(Error);
|
|
70
73
|
expect(error.message).toEqual(
|
|
71
|
-
"
|
|
74
|
+
"CREATE_MEDIA_KEYS_ERROR: No non no"
|
|
72
75
|
);
|
|
73
76
|
expect(error.name).toEqual("EncryptedMediaError");
|
|
74
77
|
expect(error.code).toEqual("CREATE_MEDIA_KEYS_ERROR");
|
|
@@ -86,15 +89,18 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
86
89
|
createMediaKeys: () => Promise.reject(new Error("No non no")),
|
|
87
90
|
});
|
|
88
91
|
}
|
|
89
|
-
mockCompat({
|
|
92
|
+
mockCompat({
|
|
93
|
+
requestMediaKeySystemAccess: jest.fn(requestMediaKeySystemAccessRejMediaKeys),
|
|
94
|
+
});
|
|
90
95
|
|
|
91
96
|
// == test ==
|
|
92
97
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
93
|
-
const error : any =
|
|
94
|
-
|
|
98
|
+
const error : any = await testContentDecryptorError(ContentDecryptor,
|
|
99
|
+
videoElt,
|
|
100
|
+
ksConfig);
|
|
95
101
|
expect(error).toBeInstanceOf(Error);
|
|
96
102
|
expect(error.message).toEqual(
|
|
97
|
-
"
|
|
103
|
+
"CREATE_MEDIA_KEYS_ERROR: No non no"
|
|
98
104
|
);
|
|
99
105
|
expect(error.name).toEqual("EncryptedMediaError");
|
|
100
106
|
expect(error.code).toEqual("CREATE_MEDIA_KEYS_ERROR");
|
|
@@ -104,10 +110,10 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
104
110
|
it("should go into the WaitingForAttachment state if createMediaKeys resolves", () => {
|
|
105
111
|
/* eslint-enable max-len */
|
|
106
112
|
return new Promise<void>((res, rej) => {
|
|
107
|
-
mockCompat(
|
|
113
|
+
mockCompat();
|
|
108
114
|
const mockCreateMediaKeys = jest.spyOn(MediaKeySystemAccessImpl.prototype,
|
|
109
115
|
"createMediaKeys");
|
|
110
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
116
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
111
117
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
112
118
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
113
119
|
let receivedStateChange = 0;
|
|
@@ -134,10 +140,10 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
134
140
|
it("should not call createMediaKeys again if previous one is compatible", () => {
|
|
135
141
|
/* eslint-enable max-len */
|
|
136
142
|
return new Promise<void>((res, rej) => {
|
|
137
|
-
mockCompat(
|
|
143
|
+
mockCompat();
|
|
138
144
|
const mockCreateMediaKeys = jest.spyOn(MediaKeySystemAccessImpl.prototype,
|
|
139
145
|
"createMediaKeys");
|
|
140
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
146
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
141
147
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
142
148
|
|
|
143
149
|
const contentDecryptor1 = new ContentDecryptor(videoElt, ksConfig);
|
|
@@ -197,7 +203,7 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
197
203
|
});
|
|
198
204
|
const mockCreateMediaKeys = jest.spyOn(MediaKeySystemAccessImpl.prototype,
|
|
199
205
|
"createMediaKeys");
|
|
200
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
206
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
201
207
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
202
208
|
|
|
203
209
|
const contentDecryptor1 = new ContentDecryptor(videoElt, ksConfig);
|
|
@@ -257,7 +263,7 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
257
263
|
});
|
|
258
264
|
const mockCreateMediaKeys = jest.spyOn(MediaKeySystemAccessImpl.prototype,
|
|
259
265
|
"createMediaKeys");
|
|
260
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
266
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
261
267
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
262
268
|
|
|
263
269
|
const contentDecryptor1 = new ContentDecryptor(videoElt, ksConfig);
|
|
@@ -318,7 +324,7 @@ describe("core - decrypt - global tests - media key system access", () => {
|
|
|
318
324
|
const mockCreateSession = jest.spyOn(MediaKeysImpl.prototype, "createSession");
|
|
319
325
|
|
|
320
326
|
// == test ==
|
|
321
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
327
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
322
328
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
323
329
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfig);
|
|
324
330
|
contentDecryptor.addEventListener("stateChange", (newState: any) => {
|
|
@@ -55,6 +55,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
55
55
|
mockSetMediaKeys.mockImplementation(() => {
|
|
56
56
|
expect(mockCreateSession).not.toHaveBeenCalled();
|
|
57
57
|
expect(mockSetServerCertificate).not.toHaveBeenCalled();
|
|
58
|
+
return Promise.resolve();
|
|
58
59
|
});
|
|
59
60
|
const mockCreateSession = jest.spyOn(MediaKeysImpl.prototype, "createSession");
|
|
60
61
|
const mockSetServerCertificate =
|
|
@@ -65,7 +66,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
65
66
|
return Promise.resolve(true);
|
|
66
67
|
});
|
|
67
68
|
|
|
68
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
69
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
69
70
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
70
71
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfigCert);
|
|
71
72
|
|
|
@@ -78,15 +79,15 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
78
79
|
expect(mockSetServerCertificate).not.toHaveBeenCalled();
|
|
79
80
|
contentDecryptor.attach();
|
|
80
81
|
}, 5);
|
|
82
|
+
setTimeout(() => {
|
|
83
|
+
contentDecryptor.dispose();
|
|
84
|
+
expect(mockSetMediaKeys).toHaveBeenCalledTimes(1);
|
|
85
|
+
expect(mockSetServerCertificate).toHaveBeenCalledTimes(1);
|
|
86
|
+
expect(mockCreateSession).not.toHaveBeenCalled();
|
|
87
|
+
done();
|
|
88
|
+
}, 10);
|
|
81
89
|
}
|
|
82
90
|
});
|
|
83
|
-
setTimeout(() => {
|
|
84
|
-
contentDecryptor.dispose();
|
|
85
|
-
expect(mockSetMediaKeys).toHaveBeenCalledTimes(1);
|
|
86
|
-
expect(mockSetServerCertificate).toHaveBeenCalledTimes(1);
|
|
87
|
-
expect(mockCreateSession).not.toHaveBeenCalled();
|
|
88
|
-
done();
|
|
89
|
-
}, 10);
|
|
90
91
|
});
|
|
91
92
|
|
|
92
93
|
it("should not call serverCertificate multiple times on init data", (done) => {
|
|
@@ -94,6 +95,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
94
95
|
mockSetMediaKeys.mockImplementation(() => {
|
|
95
96
|
expect(mockCreateSession).not.toHaveBeenCalled();
|
|
96
97
|
expect(mockSetServerCertificate).not.toHaveBeenCalled();
|
|
98
|
+
return Promise.resolve();
|
|
97
99
|
});
|
|
98
100
|
const mockCreateSession = jest.spyOn(MediaKeysImpl.prototype, "createSession");
|
|
99
101
|
const mockSetServerCertificate =
|
|
@@ -104,7 +106,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
104
106
|
return Promise.resolve(true);
|
|
105
107
|
});
|
|
106
108
|
|
|
107
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
109
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
108
110
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
109
111
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfigCert);
|
|
110
112
|
|
|
@@ -130,7 +132,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
130
132
|
expect(mockSetServerCertificate).toHaveBeenCalledTimes(1);
|
|
131
133
|
expect(mockCreateSession).toHaveBeenCalledTimes(1);
|
|
132
134
|
done();
|
|
133
|
-
},
|
|
135
|
+
}, 100);
|
|
134
136
|
});
|
|
135
137
|
|
|
136
138
|
/* eslint-disable max-len */
|
|
@@ -145,7 +147,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
145
147
|
throw new Error("some error");
|
|
146
148
|
});
|
|
147
149
|
|
|
148
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
150
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
149
151
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
150
152
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfigCert);
|
|
151
153
|
|
|
@@ -184,7 +186,7 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
184
186
|
return Promise.reject(new Error("some error"));
|
|
185
187
|
});
|
|
186
188
|
|
|
187
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
189
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
188
190
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
189
191
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfigCert);
|
|
190
192
|
|
|
@@ -225,11 +227,12 @@ describe("core - decrypt - global tests - server certificate", () => {
|
|
|
225
227
|
mockSetMediaKeys.mockImplementation(() => {
|
|
226
228
|
expect(mockCreateSession).not.toHaveBeenCalled();
|
|
227
229
|
expect(mockSetServerCertificate).not.toHaveBeenCalled();
|
|
230
|
+
return Promise.resolve();
|
|
228
231
|
});
|
|
229
232
|
const mockCreateSession = jest.spyOn(MediaKeysImpl.prototype, "createSession");
|
|
230
233
|
const mockSetServerCertificate = jest.spyOn(MediaKeysImpl.prototype,
|
|
231
234
|
"setServerCertificate");
|
|
232
|
-
const { ContentDecryptorState } = jest.requireActual("../../
|
|
235
|
+
const { ContentDecryptorState } = jest.requireActual("../../types");
|
|
233
236
|
const ContentDecryptor = jest.requireActual("../../content_decryptor").default;
|
|
234
237
|
const contentDecryptor = new ContentDecryptor(videoElt, ksConfigCert);
|
|
235
238
|
|