rx-player 3.33.4-dev.2024083000 → 3.33.4
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/.prettierignore +1 -0
- package/.prettierrc +4 -0
- package/.vscode/settings.json +9 -0
- package/CHANGELOG.md +1662 -1076
- package/MAINTAINERS.md +9 -12
- package/README.md +111 -127
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_class_name.js +4 -3
- package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -1
- package/dist/_esm5.processed/compat/add_text_track.js +4 -4
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +2 -1
- package/dist/_esm5.processed/compat/browser_compatibility_types.js +15 -10
- package/dist/_esm5.processed/compat/browser_detection.d.ts +3 -1
- package/dist/_esm5.processed/compat/browser_detection.js +18 -10
- package/dist/_esm5.processed/compat/can_reuse_media_keys.d.ts +4 -0
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -2
- package/dist/_esm5.processed/compat/change_source_buffer_type.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/close_session.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/close_session.js +17 -13
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +8 -9
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +3 -2
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +1 -1
- 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/old_webkit_media_keys.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +7 -9
- package/dist/_esm5.processed/compat/eme/custom_media_keys/types.d.ts +4 -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 +6 -12
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +2 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +3 -3
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.d.ts +4 -4
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +26 -11
- package/dist/_esm5.processed/compat/eme/generate_key_request.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +17 -20
- package/dist/_esm5.processed/compat/eme/get_init_data.d.ts +3 -1
- package/dist/_esm5.processed/compat/eme/get_init_data.js +7 -9
- package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +2 -3
- package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +12 -13
- package/dist/_esm5.processed/compat/eme/index.d.ts +8 -5
- package/dist/_esm5.processed/compat/eme/index.js +1 -1
- package/dist/_esm5.processed/compat/eme/load_session.d.ts +1 -1
- package/dist/_esm5.processed/compat/enable_audio_track.d.ts +1 -1
- package/dist/_esm5.processed/compat/event_listeners.d.ts +26 -24
- package/dist/_esm5.processed/compat/event_listeners.js +14 -29
- package/dist/_esm5.processed/compat/fullscreen.d.ts +1 -1
- package/dist/_esm5.processed/compat/fullscreen.js +1 -1
- package/dist/_esm5.processed/compat/generate_init_data.js +3 -5
- package/dist/_esm5.processed/compat/index.d.ts +6 -3
- package/dist/_esm5.processed/compat/index.js +2 -2
- package/dist/_esm5.processed/compat/is_vtt_cue.d.ts +1 -1
- package/dist/_esm5.processed/compat/make_vtt_cue.d.ts +1 -1
- package/dist/_esm5.processed/compat/on_height_width_change.d.ts +2 -2
- package/dist/_esm5.processed/compat/on_height_width_change.js +3 -2
- package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +28 -29
- package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +2 -2
- package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +1 -2
- package/dist/_esm5.processed/config.d.ts +1 -1
- package/dist/_esm5.processed/config.js +0 -15
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +7 -6
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +45 -22
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +11 -10
- package/dist/_esm5.processed/core/adaptive/guess_based_chooser.d.ts +4 -4
- package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +7 -6
- package/dist/_esm5.processed/core/adaptive/index.d.ts +3 -2
- package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +4 -4
- package/dist/_esm5.processed/core/adaptive/network_analyzer.js +43 -38
- package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/ewma.js +1 -2
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_width.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_width.js +3 -6
- package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +7 -4
- package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.d.ts +2 -1
- package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +8 -5
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +5 -3
- package/dist/_esm5.processed/core/api/debug/buffer_graph.d.ts +1 -1
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +3 -8
- package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +1 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.d.ts +2 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +17 -13
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.d.ts +3 -3
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +4 -2
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.d.ts +2 -2
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +1 -1
- package/dist/_esm5.processed/core/api/debug/render.d.ts +2 -2
- package/dist/_esm5.processed/core/api/debug/utils.d.ts +5 -5
- package/dist/_esm5.processed/core/api/index.d.ts +1 -1
- package/dist/_esm5.processed/core/api/option_utils.d.ts +3 -3
- package/dist/_esm5.processed/core/api/option_utils.js +85 -48
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +16 -18
- package/dist/_esm5.processed/core/api/playback_observer.js +65 -42
- package/dist/_esm5.processed/core/api/public_api.d.ts +10 -9
- package/dist/_esm5.processed/core/api/public_api.js +103 -94
- package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.d.ts +1 -1
- package/dist/_esm5.processed/core/api/tracks_management/media_element_track_choice_manager.js +25 -14
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +3 -3
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +72 -80
- package/dist/_esm5.processed/core/api/utils.d.ts +5 -5
- package/dist/_esm5.processed/core/api/utils.js +5 -8
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +12 -54
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +55 -66
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +10 -5
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +16 -8
- package/dist/_esm5.processed/core/decrypt/content_decryptor.d.ts +11 -2
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +136 -65
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +5 -4
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +18 -7
- package/dist/_esm5.processed/core/decrypt/create_session.d.ts +5 -4
- package/dist/_esm5.processed/core/decrypt/create_session.js +6 -12
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -2
- package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +13 -3
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +45 -22
- package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +1 -2
- package/dist/_esm5.processed/core/decrypt/get_media_keys.d.ts +9 -4
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +17 -6
- package/dist/_esm5.processed/core/decrypt/init_media_keys.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +12 -16
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +6 -7
- package/dist/_esm5.processed/core/decrypt/types.d.ts +11 -5
- package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +20 -12
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +5 -4
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +16 -9
- 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 +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +11 -13
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +13 -13
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.d.ts +8 -3
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +3 -3
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +27 -16
- package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +1 -1
- 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 +19 -12
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +5 -6
- package/dist/_esm5.processed/core/fetchers/index.d.ts +6 -3
- package/dist/_esm5.processed/core/fetchers/index.js +1 -1
- package/dist/_esm5.processed/core/fetchers/manifest/index.d.ts +3 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +68 -61
- package/dist/_esm5.processed/core/fetchers/segment/index.d.ts +4 -3
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +4 -3
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +9 -8
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +41 -29
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +5 -5
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +2 -3
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +19 -18
- package/dist/_esm5.processed/core/fetchers/utils/error_selector.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +3 -3
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +25 -25
- package/dist/_esm5.processed/core/init/directfile_content_initializer.d.ts +4 -4
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +21 -17
- package/dist/_esm5.processed/core/init/index.d.ts +2 -1
- package/dist/_esm5.processed/core/init/index.js +1 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +9 -9
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +64 -32
- package/dist/_esm5.processed/core/init/types.d.ts +10 -12
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +6 -5
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +20 -19
- package/dist/_esm5.processed/core/init/utils/create_media_source.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/create_media_source.js +2 -3
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.d.ts +6 -6
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +5 -3
- package/dist/_esm5.processed/core/init/utils/end_of_stream.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/get_initial_time.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/get_initial_time.js +12 -15
- package/dist/_esm5.processed/core/init/utils/get_loaded_reference.d.ts +3 -3
- package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +1 -2
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.d.ts +9 -9
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +39 -3
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +9 -8
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +12 -9
- package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +10 -7
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +7 -6
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +24 -24
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +1 -3
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.d.ts +2 -2
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +14 -6
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +3 -3
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +12 -19
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/throw_on_media_error.d.ts +1 -1
- package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +11 -6
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +6 -6
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +12 -13
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +3 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +6 -9
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +3 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +7 -7
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +4 -4
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +2 -6
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +5 -7
- package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/index.d.ts +8 -4
- package/dist/_esm5.processed/core/segment_buffers/index.js +2 -2
- package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +6 -4
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.d.ts +4 -4
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +63 -54
- package/dist/_esm5.processed/core/segment_buffers/inventory/types.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +17 -23
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +49 -22
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +8 -7
- package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.d.ts +7 -6
- package/dist/_esm5.processed/core/stream/adaptation/utils/create_representation_estimator.js +2 -1
- package/dist/_esm5.processed/core/stream/index.d.ts +6 -5
- package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +2 -2
- package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +3 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +9 -7
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +47 -34
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/period/period_stream.js +49 -16
- package/dist/_esm5.processed/core/stream/period/types.d.ts +15 -12
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.d.ts +9 -9
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +26 -25
- package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +3 -3
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +47 -23
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +9 -8
- package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.d.ts +4 -4
- package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +10 -7
- package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.d.ts +4 -3
- package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +16 -18
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.d.ts +7 -6
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +11 -11
- package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +6 -8
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.d.ts +5 -4
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +40 -19
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.d.ts +4 -3
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +27 -28
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.d.ts +6 -5
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +7 -5
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.d.ts +8 -7
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +13 -10
- package/dist/_esm5.processed/default_config.js +20 -16
- package/dist/_esm5.processed/errors/encrypted_media_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/encrypted_media_error.js +1 -1
- package/dist/_esm5.processed/errors/error_codes.d.ts +1 -1
- package/dist/_esm5.processed/errors/error_codes.js +1 -1
- package/dist/_esm5.processed/errors/format_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/format_error.js +1 -2
- package/dist/_esm5.processed/errors/index.d.ts +6 -3
- package/dist/_esm5.processed/errors/index.js +2 -2
- package/dist/_esm5.processed/errors/is_known_error.d.ts +1 -1
- package/dist/_esm5.processed/errors/is_known_error.js +2 -2
- package/dist/_esm5.processed/errors/media_error.d.ts +3 -3
- package/dist/_esm5.processed/errors/media_error.js +4 -7
- package/dist/_esm5.processed/errors/network_error.d.ts +2 -2
- package/dist/_esm5.processed/errors/network_error.js +3 -3
- package/dist/_esm5.processed/errors/other_error.d.ts +1 -1
- package/dist/_esm5.processed/errors/other_error.js +1 -1
- package/dist/_esm5.processed/errors/request_error.d.ts +1 -1
- package/dist/_esm5.processed/experimental/features/dash_wasm.d.ts +2 -2
- package/dist/_esm5.processed/experimental/features/debug_element.d.ts +1 -1
- package/dist/_esm5.processed/experimental/features/local.d.ts +1 -1
- package/dist/_esm5.processed/experimental/features/metaplaylist.d.ts +1 -1
- package/dist/_esm5.processed/experimental/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/index.js +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.d.ts +3 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +7 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +3 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +12 -18
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +13 -23
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +8 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +9 -13
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +4 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +5 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +10 -47
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +8 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -13
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +22 -18
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +4 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +3 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +4 -10
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts +2 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +6 -6
- package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +5 -4
- package/dist/_esm5.processed/features/add_features.d.ts +1 -1
- package/dist/_esm5.processed/features/features_object.d.ts +1 -1
- package/dist/_esm5.processed/features/features_object.js +4 -3
- package/dist/_esm5.processed/features/index.d.ts +3 -2
- package/dist/_esm5.processed/features/index.js +1 -1
- package/dist/_esm5.processed/features/list/bif_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/dash.d.ts +1 -1
- package/dist/_esm5.processed/features/list/directfile.d.ts +1 -1
- package/dist/_esm5.processed/features/list/eme.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_sami_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_srt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_text_buffer.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_ttml_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/html_vtt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/image_buffer.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_sami_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_srt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_text_buffer.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_ttml_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/native_vtt_parser.d.ts +1 -1
- package/dist/_esm5.processed/features/list/smooth.d.ts +1 -1
- package/dist/_esm5.processed/features/types.d.ts +11 -11
- package/dist/_esm5.processed/manifest/adaptation.d.ts +3 -3
- package/dist/_esm5.processed/manifest/adaptation.js +24 -14
- package/dist/_esm5.processed/manifest/index.d.ts +9 -5
- package/dist/_esm5.processed/manifest/index.js +4 -8
- package/dist/_esm5.processed/manifest/manifest.d.ts +8 -7
- package/dist/_esm5.processed/manifest/manifest.js +37 -33
- package/dist/_esm5.processed/manifest/period.d.ts +4 -4
- package/dist/_esm5.processed/manifest/period.js +7 -14
- package/dist/_esm5.processed/manifest/representation.d.ts +4 -4
- package/dist/_esm5.processed/manifest/representation.js +5 -5
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +3 -2
- package/dist/_esm5.processed/manifest/representation_index/index.js +1 -1
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +1 -1
- package/dist/_esm5.processed/manifest/representation_index/static.js +6 -2
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +6 -5
- package/dist/_esm5.processed/manifest/update_period_in_place.d.ts +3 -3
- package/dist/_esm5.processed/manifest/update_period_in_place.js +9 -9
- package/dist/_esm5.processed/manifest/update_periods.d.ts +2 -2
- package/dist/_esm5.processed/manifest/update_periods.js +6 -3
- package/dist/_esm5.processed/manifest/utils.d.ts +4 -4
- package/dist/_esm5.processed/manifest/utils.js +6 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/create_box.d.ts +1 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +5 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +2 -3
- package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +3 -5
- package/dist/_esm5.processed/parsers/containers/isobmff/index.d.ts +5 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/index.js +4 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/read.d.ts +1 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/read.js +9 -9
- package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +3 -4
- package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +51 -41
- package/dist/_esm5.processed/parsers/containers/matroska/index.d.ts +2 -1
- package/dist/_esm5.processed/parsers/containers/matroska/index.js +1 -1
- package/dist/_esm5.processed/parsers/containers/matroska/utils.js +29 -16
- package/dist/_esm5.processed/parsers/images/bif.js +15 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +4 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +4 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +5 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +5 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +34 -28
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +15 -11
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.d.ts +10 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +30 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +56 -55
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +2 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +11 -15
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +29 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +6 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +73 -59
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +7 -8
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +52 -50
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +6 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +52 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +41 -30
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +4 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +63 -64
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +73 -37
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +13 -7
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +5 -3
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +44 -27
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +14 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +36 -18
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +36 -18
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +17 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +9 -5
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +8 -26
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +6 -12
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +9 -4
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +29 -16
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +22 -35
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +3 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Label.d.ts +3 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Label.js +9 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +5 -5
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +9 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +8 -16
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -10
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +11 -18
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +5 -5
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +5 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/local/index.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +25 -16
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +5 -10
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.d.ts +3 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +33 -29
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +9 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +3 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +136 -109
- package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +3 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/index.d.ts +4 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/index.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +12 -8
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +48 -53
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +2 -3
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +9 -6
- package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +5 -4
- package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +5 -4
- package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +10 -16
- package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +4 -10
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +4 -5
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +18 -18
- package/dist/_esm5.processed/parsers/texttracks/index.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/html.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/html.js +15 -15
- package/dist/_esm5.processed/parsers/texttracks/sami/native.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/native.js +7 -14
- package/dist/_esm5.processed/parsers/texttracks/srt/html.js +6 -6
- package/dist/_esm5.processed/parsers/texttracks/srt/native.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/srt/native.js +1 -7
- package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +4 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +4 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +6 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +3 -4
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +22 -21
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +5 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +34 -19
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.d.ts +2 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +9 -10
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.d.ts +3 -3
- package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +28 -16
- package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +2 -2
- package/dist/_esm5.processed/parsers/texttracks/types.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +2 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +6 -12
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +7 -8
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +4 -4
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +4 -10
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +2 -6
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +1 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +2 -4
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +1 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +6 -6
- package/dist/_esm5.processed/public_types.d.ts +13 -11
- package/dist/_esm5.processed/tools/TextTrackRenderer/index.d.ts +3 -2
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +2 -2
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +15 -10
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +2 -3
- package/dist/_esm5.processed/transports/dash/construct_segment_url.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/construct_segment_url.js +5 -3
- package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +2 -2
- package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +9 -10
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +3 -3
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +32 -19
- package/dist/_esm5.processed/transports/dash/init_segment_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +46 -22
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +13 -9
- package/dist/_esm5.processed/transports/dash/manifest_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +35 -22
- package/dist/_esm5.processed/transports/dash/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/pipelines.js +11 -15
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +4 -4
- package/dist/_esm5.processed/transports/dash/segment_loader.js +30 -21
- package/dist/_esm5.processed/transports/dash/segment_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_parser.js +47 -21
- package/dist/_esm5.processed/transports/dash/text_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/text_loader.js +19 -19
- package/dist/_esm5.processed/transports/dash/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/text_parser.js +45 -24
- package/dist/_esm5.processed/transports/local/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/pipelines.js +7 -8
- package/dist/_esm5.processed/transports/local/segment_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/local/segment_loader.js +14 -6
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +31 -13
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/text_parser.js +44 -19
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.d.ts +4 -4
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +9 -5
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +25 -18
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.d.ts +2 -2
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +16 -15
- package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +3 -3
- package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +14 -32
- package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +2 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +2 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +4 -16
- package/dist/_esm5.processed/transports/smooth/isobmff/index.d.ts +4 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +2 -2
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +1 -1
- package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +11 -10
- package/dist/_esm5.processed/transports/smooth/pipelines.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +121 -79
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +53 -27
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +2 -2
- package/dist/_esm5.processed/transports/smooth/utils.js +7 -5
- package/dist/_esm5.processed/transports/types.d.ts +11 -25
- package/dist/_esm5.processed/transports/utils/byte_range.js +1 -2
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +13 -7
- package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +3 -3
- package/dist/_esm5.processed/transports/utils/find_complete_box.js +3 -2
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +18 -6
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.d.ts +2 -2
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +12 -11
- package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +1 -1
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +1 -3
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +4 -4
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +9 -6
- package/dist/_esm5.processed/utils/are_codecs_compatible.js +5 -1
- package/dist/_esm5.processed/utils/array_includes.js +2 -6
- package/dist/_esm5.processed/utils/assert.js +3 -4
- package/dist/_esm5.processed/utils/base64.js +87 -29
- package/dist/_esm5.processed/utils/byte_parsing.js +60 -56
- package/dist/_esm5.processed/utils/cancellable_sleep.d.ts +1 -1
- package/dist/_esm5.processed/utils/create_cancellable_promise.d.ts +1 -1
- package/dist/_esm5.processed/utils/deep_merge.js +4 -4
- package/dist/_esm5.processed/utils/event_emitter.d.ts +1 -1
- package/dist/_esm5.processed/utils/get_fuzzed_delay.js +1 -1
- package/dist/_esm5.processed/utils/hash_buffer.js +1 -1
- package/dist/_esm5.processed/utils/initialization_segment_cache.d.ts +2 -2
- package/dist/_esm5.processed/utils/languages/index.d.ts +4 -2
- package/dist/_esm5.processed/utils/languages/index.js +2 -2
- package/dist/_esm5.processed/utils/languages/normalize.d.ts +2 -1
- package/dist/_esm5.processed/utils/languages/normalize.js +5 -3
- package/dist/_esm5.processed/utils/logger.js +7 -14
- package/dist/_esm5.processed/utils/object_assign.js +5 -5
- package/dist/_esm5.processed/utils/object_values.d.ts +1 -1
- package/dist/_esm5.processed/utils/object_values.js +2 -3
- package/dist/_esm5.processed/utils/ranges.d.ts +2 -1
- package/dist/_esm5.processed/utils/ranges.js +19 -23
- package/dist/_esm5.processed/utils/reference.d.ts +3 -3
- package/dist/_esm5.processed/utils/reference.js +1 -3
- package/dist/_esm5.processed/utils/request/fetch.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/fetch.js +34 -23
- package/dist/_esm5.processed/utils/request/index.d.ts +6 -3
- package/dist/_esm5.processed/utils/request/index.js +2 -2
- package/dist/_esm5.processed/utils/request/xhr.d.ts +1 -1
- package/dist/_esm5.processed/utils/request/xhr.js +28 -17
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.d.ts +2 -2
- package/dist/_esm5.processed/utils/slice_uint8array.js +3 -3
- package/dist/_esm5.processed/utils/starts_with.js +3 -3
- package/dist/_esm5.processed/utils/string_parsing.js +16 -18
- package/dist/_esm5.processed/utils/task_canceller.js +1 -2
- package/dist/_esm5.processed/utils/uniq.d.ts +1 -1
- package/dist/_esm5.processed/utils/uniq.js +4 -3
- package/dist/_esm5.processed/utils/weak_map_memory.js +0 -1
- package/dist/_esm5.processed/utils/wrapInPromise.d.ts +1 -1
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +345 -236
- package/dist/rx-player.min.js +1 -1
- package/experimental/features/index.d.ts-E +16 -0
- package/experimental/features/index.js-E +16 -0
- package/experimental/index.d.ts +1 -1
- package/experimental/index.d.ts-E +16 -0
- package/experimental/index.js +1 -1
- package/experimental/index.js-E +16 -0
- package/experimental/tools/VideoThumbnailLoader/index.d.ts-E +18 -0
- package/experimental/tools/VideoThumbnailLoader/index.js-E +18 -0
- package/experimental/tools/index.d.ts-E +16 -0
- package/experimental/tools/index.js-E +16 -0
- package/features/index.d.ts-E +16 -0
- package/features/index.js-E +16 -0
- package/logger/index.d.ts-E +17 -0
- package/logger/index.js-E +17 -0
- package/minimal/index.d.ts-E +17 -0
- package/minimal/index.js-E +17 -0
- package/package.json +29 -14
- package/tools/TextTrackRenderer.d.ts-E +18 -0
- package/tools/TextTrackRenderer.js-E +18 -0
- package/tools/index.d.ts-E +16 -0
- package/tools/index.js-E +16 -0
- package/tools/string-utils.d.ts-E +18 -0
- package/tools/string-utils.js-E +18 -0
- package/types/index.d.ts-E +16 -0
- package/types/index.js-E +15 -0
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ICustomMediaKeys, ICustomMediaKeySystemAccess, IEmeApiImplementation } from "../../compat/eme";
|
|
17
|
-
import { IKeySystemOption } from "../../public_types";
|
|
18
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
19
|
-
import LoadedSessionsStore from "./utils/loaded_sessions_store";
|
|
16
|
+
import type { ICustomMediaKeys, ICustomMediaKeySystemAccess, IEmeApiImplementation } from "../../compat/eme";
|
|
17
|
+
import type { IKeySystemOption } from "../../public_types";
|
|
18
|
+
import type { CancellationSignal } from "../../utils/task_canceller";
|
|
19
|
+
import type LoadedSessionsStore from "./utils/loaded_sessions_store";
|
|
20
20
|
/**
|
|
21
21
|
* Dispose of the MediaKeys instance attached to the given media element, if
|
|
22
22
|
* one.
|
|
@@ -33,7 +33,7 @@ export declare function disableMediaKeys(mediaElement: HTMLMediaElement): Promis
|
|
|
33
33
|
* @param {Object} cancelSignal
|
|
34
34
|
* @returns {Promise}
|
|
35
35
|
*/
|
|
36
|
-
export default function attachMediaKeys(mediaElement: HTMLMediaElement, { emeImplementation, keySystemOptions, loadedSessionsStore, mediaKeySystemAccess, mediaKeys }: IMediaKeysState, cancelSignal: CancellationSignal): Promise<void>;
|
|
36
|
+
export default function attachMediaKeys(mediaElement: HTMLMediaElement, { emeImplementation, keySystemOptions, askedConfiguration, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }: IMediaKeysState, cancelSignal: CancellationSignal): Promise<void>;
|
|
37
37
|
/** MediaKeys and associated state attached to a media element. */
|
|
38
38
|
export interface IMediaKeysState {
|
|
39
39
|
/** Options set when the MediaKeys has been attached. */
|
|
@@ -44,6 +44,11 @@ export interface IMediaKeysState {
|
|
|
44
44
|
mediaKeySystemAccess: MediaKeySystemAccess | ICustomMediaKeySystemAccess;
|
|
45
45
|
/** The MediaKeys instance to attach to the media element. */
|
|
46
46
|
mediaKeys: MediaKeys | ICustomMediaKeys;
|
|
47
|
+
/**
|
|
48
|
+
* The MediaKeySystemConfiguration that has been provided to the
|
|
49
|
+
* `requestMediaKeySystemAccess` API.
|
|
50
|
+
*/
|
|
51
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
47
52
|
/**
|
|
48
53
|
* The chosen EME implementation abstraction linked to `mediaKeys`.
|
|
49
54
|
* Different EME implementation might for example be used while debugging or
|
|
@@ -60,7 +60,8 @@ import MediaKeysInfosStore from "./utils/media_keys_infos_store";
|
|
|
60
60
|
*/
|
|
61
61
|
export function disableMediaKeys(mediaElement) {
|
|
62
62
|
MediaKeysInfosStore.setState(mediaElement, null);
|
|
63
|
-
return eme
|
|
63
|
+
return eme
|
|
64
|
+
.setMediaKeys(mediaElement, null)
|
|
64
65
|
.then(function () {
|
|
65
66
|
log.info("DRM: MediaKeys disabled with success");
|
|
66
67
|
})
|
|
@@ -80,15 +81,14 @@ export function disableMediaKeys(mediaElement) {
|
|
|
80
81
|
export default function attachMediaKeys(mediaElement_1, _a, cancelSignal_1) {
|
|
81
82
|
return __awaiter(this, arguments, void 0, function (mediaElement, _b, cancelSignal) {
|
|
82
83
|
var previousState, closeAllSessions;
|
|
83
|
-
var emeImplementation = _b.emeImplementation, keySystemOptions = _b.keySystemOptions, loadedSessionsStore = _b.loadedSessionsStore, mediaKeySystemAccess = _b.mediaKeySystemAccess, mediaKeys = _b.mediaKeys;
|
|
84
|
+
var emeImplementation = _b.emeImplementation, keySystemOptions = _b.keySystemOptions, askedConfiguration = _b.askedConfiguration, loadedSessionsStore = _b.loadedSessionsStore, mediaKeySystemAccess = _b.mediaKeySystemAccess, mediaKeys = _b.mediaKeys;
|
|
84
85
|
return __generator(this, function (_c) {
|
|
85
86
|
switch (_c.label) {
|
|
86
87
|
case 0:
|
|
87
88
|
previousState = MediaKeysInfosStore.getState(mediaElement);
|
|
88
|
-
closeAllSessions = previousState !== null &&
|
|
89
|
-
previousState.loadedSessionsStore
|
|
90
|
-
|
|
91
|
-
Promise.resolve();
|
|
89
|
+
closeAllSessions = previousState !== null && previousState.loadedSessionsStore !== loadedSessionsStore
|
|
90
|
+
? previousState.loadedSessionsStore.closeAllSessions()
|
|
91
|
+
: Promise.resolve();
|
|
92
92
|
return [4 /*yield*/, closeAllSessions];
|
|
93
93
|
case 1:
|
|
94
94
|
_c.sent();
|
|
@@ -97,12 +97,20 @@ export default function attachMediaKeys(mediaElement_1, _a, cancelSignal_1) {
|
|
|
97
97
|
if (cancelSignal.isCancelled()) {
|
|
98
98
|
throw cancelSignal.cancellationError;
|
|
99
99
|
}
|
|
100
|
-
MediaKeysInfosStore.setState(mediaElement, {
|
|
100
|
+
MediaKeysInfosStore.setState(mediaElement, {
|
|
101
|
+
emeImplementation: emeImplementation,
|
|
102
|
+
keySystemOptions: keySystemOptions,
|
|
103
|
+
mediaKeySystemAccess: mediaKeySystemAccess,
|
|
104
|
+
mediaKeys: mediaKeys,
|
|
105
|
+
loadedSessionsStore: loadedSessionsStore,
|
|
106
|
+
askedConfiguration: askedConfiguration,
|
|
107
|
+
});
|
|
101
108
|
if (mediaElement.mediaKeys === mediaKeys) {
|
|
102
109
|
return [2 /*return*/];
|
|
103
110
|
}
|
|
104
111
|
log.info("DRM: Attaching MediaKeys to the media element");
|
|
105
|
-
emeImplementation
|
|
112
|
+
emeImplementation
|
|
113
|
+
.setMediaKeys(mediaElement, mediaKeys)
|
|
106
114
|
.then(function () {
|
|
107
115
|
log.info("DRM: MediaKeys attached with success");
|
|
108
116
|
})
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { IKeySystemOption } from "../../public_types";
|
|
16
|
+
import type { IKeySystemOption } from "../../public_types";
|
|
17
17
|
import EventEmitter from "../../utils/event_emitter";
|
|
18
|
-
import { IProtectionData,
|
|
18
|
+
import type { IProtectionData, IContentDecryptorEvent } from "./types";
|
|
19
|
+
import { ContentDecryptorState } from "./types";
|
|
19
20
|
/**
|
|
20
21
|
* Module communicating with the Content Decryption Module (or CDM) to be able
|
|
21
22
|
* to decrypt contents.
|
|
@@ -145,6 +146,14 @@ export default class ContentDecryptor extends EventEmitter<IContentDecryptorEven
|
|
|
145
146
|
*/
|
|
146
147
|
private _processInitializationData;
|
|
147
148
|
private _tryToUseAlreadyCreatedSession;
|
|
149
|
+
/**
|
|
150
|
+
* Remove the session corresponding to the initData provided, and close it.
|
|
151
|
+
* It does nothing if no session was found for this initData.
|
|
152
|
+
* @param {Object} initData : The initialization data corresponding to the session
|
|
153
|
+
* that need to be removed
|
|
154
|
+
* @param {Object} mediaKeysData : The media keys data
|
|
155
|
+
*/
|
|
156
|
+
private removeSessionForInitData;
|
|
148
157
|
/**
|
|
149
158
|
* Callback that should be called if an error that made the current
|
|
150
159
|
* `ContentDecryptor` instance unusable arised.
|
|
@@ -84,9 +84,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
84
84
|
}
|
|
85
85
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
86
86
|
};
|
|
87
|
-
import eme, { getInitData
|
|
87
|
+
import eme, { getInitData } from "../../compat/eme";
|
|
88
88
|
import config from "../../config";
|
|
89
|
-
import { EncryptedMediaError, OtherError
|
|
89
|
+
import { EncryptedMediaError, OtherError } from "../../errors";
|
|
90
90
|
import log from "../../log";
|
|
91
91
|
import areArraysOfNumbersEqual from "../../utils/are_arrays_of_numbers_equal";
|
|
92
92
|
import arrayFind from "../../utils/array_find";
|
|
@@ -100,7 +100,7 @@ import createOrLoadSession from "./create_or_load_session";
|
|
|
100
100
|
import initMediaKeys from "./init_media_keys";
|
|
101
101
|
import SessionEventsListener, { BlacklistedSessionError, } from "./session_events_listener";
|
|
102
102
|
import setServerCertificate from "./set_server_certificate";
|
|
103
|
-
import { ContentDecryptorState
|
|
103
|
+
import { ContentDecryptorState } from "./types";
|
|
104
104
|
import { DecommissionedSessionError } from "./utils/check_key_statuses";
|
|
105
105
|
import cleanOldStoredPersistentInfo from "./utils/clean_old_stored_persistent_info";
|
|
106
106
|
import getDrmSystemId from "./utils/get_drm_system_id";
|
|
@@ -141,10 +141,12 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
141
141
|
_this._currentSessions = [];
|
|
142
142
|
_this._canceller = canceller;
|
|
143
143
|
_this._initDataQueue = [];
|
|
144
|
-
_this._stateData = {
|
|
144
|
+
_this._stateData = {
|
|
145
|
+
state: ContentDecryptorState.Initializing,
|
|
145
146
|
isMediaKeysAttached: 0 /* MediaKeyAttachmentStatus.NotAttached */,
|
|
146
147
|
isInitDataQueueLocked: true,
|
|
147
|
-
data: null
|
|
148
|
+
data: null,
|
|
149
|
+
};
|
|
148
150
|
_this.error = null;
|
|
149
151
|
eme.onEncrypted(mediaElement, function (evt) {
|
|
150
152
|
log.debug("DRM: Encrypted event received from media element.");
|
|
@@ -172,10 +174,12 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
172
174
|
}
|
|
173
175
|
_this.systemId = systemId;
|
|
174
176
|
if (_this._stateData.state === ContentDecryptorState.Initializing) {
|
|
175
|
-
_this._stateData = {
|
|
177
|
+
_this._stateData = {
|
|
178
|
+
state: ContentDecryptorState.WaitingForAttachment,
|
|
176
179
|
isInitDataQueueLocked: true,
|
|
177
180
|
isMediaKeysAttached: 0 /* MediaKeyAttachmentStatus.NotAttached */,
|
|
178
|
-
data: { mediaKeysInfo: mediaKeysInfo, mediaElement: mediaElement }
|
|
181
|
+
data: { mediaKeysInfo: mediaKeysInfo, mediaElement: mediaElement },
|
|
182
|
+
};
|
|
179
183
|
_this.trigger("stateChange", _this._stateData.state);
|
|
180
184
|
}
|
|
181
185
|
})
|
|
@@ -213,21 +217,22 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
213
217
|
ContentDecryptor.prototype.attach = function () {
|
|
214
218
|
var _this = this;
|
|
215
219
|
if (this._stateData.state !== ContentDecryptorState.WaitingForAttachment) {
|
|
216
|
-
throw new Error("`attach` should only be called when " +
|
|
217
|
-
"in the WaitingForAttachment state");
|
|
220
|
+
throw new Error("`attach` should only be called when " + "in the WaitingForAttachment state");
|
|
218
221
|
}
|
|
219
222
|
else if (this._stateData.isMediaKeysAttached !== 0 /* MediaKeyAttachmentStatus.NotAttached */) {
|
|
220
223
|
log.warn("DRM: ContentDecryptor's `attach` method called more than once.");
|
|
221
224
|
return;
|
|
222
225
|
}
|
|
223
226
|
var _a = this._stateData.data, mediaElement = _a.mediaElement, mediaKeysInfo = _a.mediaKeysInfo;
|
|
224
|
-
var options = mediaKeysInfo.options, mediaKeys = mediaKeysInfo.mediaKeys, mediaKeySystemAccess = mediaKeysInfo.mediaKeySystemAccess, stores = mediaKeysInfo.stores;
|
|
227
|
+
var options = mediaKeysInfo.options, mediaKeys = mediaKeysInfo.mediaKeys, mediaKeySystemAccess = mediaKeysInfo.mediaKeySystemAccess, stores = mediaKeysInfo.stores, askedConfiguration = mediaKeysInfo.askedConfiguration;
|
|
225
228
|
var shouldDisableLock = options.disableMediaKeysAttachmentLock === true;
|
|
226
229
|
if (shouldDisableLock) {
|
|
227
|
-
this._stateData = {
|
|
230
|
+
this._stateData = {
|
|
231
|
+
state: ContentDecryptorState.ReadyForContent,
|
|
228
232
|
isInitDataQueueLocked: true,
|
|
229
233
|
isMediaKeysAttached: 1 /* MediaKeyAttachmentStatus.Pending */,
|
|
230
|
-
data: { mediaKeysInfo: mediaKeysInfo, mediaElement: mediaElement }
|
|
234
|
+
data: { mediaKeysInfo: mediaKeysInfo, mediaElement: mediaElement },
|
|
235
|
+
};
|
|
231
236
|
this.trigger("stateChange", this._stateData.state);
|
|
232
237
|
// previous trigger might have lead to disposal
|
|
233
238
|
if (this._isStopped()) {
|
|
@@ -235,8 +240,14 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
235
240
|
}
|
|
236
241
|
}
|
|
237
242
|
this._stateData.isMediaKeysAttached = 1 /* MediaKeyAttachmentStatus.Pending */;
|
|
238
|
-
var stateToAttach = {
|
|
239
|
-
|
|
243
|
+
var stateToAttach = {
|
|
244
|
+
emeImplementation: eme,
|
|
245
|
+
loadedSessionsStore: stores.loadedSessionsStore,
|
|
246
|
+
mediaKeySystemAccess: mediaKeySystemAccess,
|
|
247
|
+
mediaKeys: mediaKeys,
|
|
248
|
+
askedConfiguration: askedConfiguration,
|
|
249
|
+
keySystemOptions: options,
|
|
250
|
+
};
|
|
240
251
|
log.debug("DRM: Attaching current MediaKeys");
|
|
241
252
|
attachMediaKeys(mediaElement, stateToAttach, this._canceller.signal)
|
|
242
253
|
.then(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -255,14 +266,17 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
255
266
|
}
|
|
256
267
|
_a.label = 2;
|
|
257
268
|
case 2:
|
|
258
|
-
if (this._isStopped()) {
|
|
269
|
+
if (this._isStopped()) {
|
|
270
|
+
// We might be stopped since then
|
|
259
271
|
return [2 /*return*/];
|
|
260
272
|
}
|
|
261
273
|
prevState = this._stateData.state;
|
|
262
|
-
this._stateData = {
|
|
274
|
+
this._stateData = {
|
|
275
|
+
state: ContentDecryptorState.ReadyForContent,
|
|
263
276
|
isMediaKeysAttached: 2 /* MediaKeyAttachmentStatus.Attached */,
|
|
264
277
|
isInitDataQueueLocked: false,
|
|
265
|
-
data: { mediaKeysData: mediaKeysInfo }
|
|
278
|
+
data: { mediaKeysData: mediaKeysInfo },
|
|
279
|
+
};
|
|
266
280
|
if (prevState !== ContentDecryptorState.ReadyForContent) {
|
|
267
281
|
this.trigger("stateChange", ContentDecryptorState.ReadyForContent);
|
|
268
282
|
}
|
|
@@ -286,10 +300,12 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
286
300
|
*/
|
|
287
301
|
ContentDecryptor.prototype.dispose = function () {
|
|
288
302
|
this.removeEventListener();
|
|
289
|
-
this._stateData = {
|
|
303
|
+
this._stateData = {
|
|
304
|
+
state: ContentDecryptorState.Disposed,
|
|
290
305
|
isMediaKeysAttached: undefined,
|
|
291
306
|
isInitDataQueueLocked: undefined,
|
|
292
|
-
data: null
|
|
307
|
+
data: null,
|
|
308
|
+
};
|
|
293
309
|
this._canceller.cancel();
|
|
294
310
|
this.trigger("stateChange", this._stateData.state);
|
|
295
311
|
};
|
|
@@ -313,8 +329,9 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
313
329
|
}
|
|
314
330
|
var mediaKeysData = this._stateData.data.mediaKeysData;
|
|
315
331
|
var processedInitializationData = __assign(__assign({}, initializationData), { values: new InitDataValuesContainer(initializationData.values) });
|
|
316
|
-
this._processInitializationData(processedInitializationData, mediaKeysData)
|
|
317
|
-
|
|
332
|
+
this._processInitializationData(processedInitializationData, mediaKeysData).catch(function (err) {
|
|
333
|
+
_this._onFatalError(err);
|
|
334
|
+
});
|
|
318
335
|
};
|
|
319
336
|
/**
|
|
320
337
|
* Async logic run each time new initialization data has to be processed.
|
|
@@ -334,14 +351,12 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
334
351
|
case 0:
|
|
335
352
|
mediaKeySystemAccess = mediaKeysData.mediaKeySystemAccess, stores = mediaKeysData.stores, options = mediaKeysData.options;
|
|
336
353
|
if (this._tryToUseAlreadyCreatedSession(initializationData, mediaKeysData) ||
|
|
337
|
-
this._isStopped())
|
|
338
|
-
|
|
354
|
+
this._isStopped()) {
|
|
355
|
+
// _isStopped is voluntarly checked after here
|
|
339
356
|
return [2 /*return*/];
|
|
340
357
|
}
|
|
341
358
|
if (options.singleLicensePer === "content") {
|
|
342
|
-
firstCreatedSession = arrayFind(this._currentSessions, function (x) {
|
|
343
|
-
return x.source === "created-session" /* MediaKeySessionLoadingType.Created */;
|
|
344
|
-
});
|
|
359
|
+
firstCreatedSession = arrayFind(this._currentSessions, function (x) { return x.source === "created-session" /* MediaKeySessionLoadingType.Created */; });
|
|
345
360
|
if (firstCreatedSession !== undefined) {
|
|
346
361
|
keyIds = initializationData.keyIds;
|
|
347
362
|
if (keyIds === undefined) {
|
|
@@ -356,8 +371,7 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
356
371
|
firstCreatedSession.record.associateKeyIds(keyIds);
|
|
357
372
|
if (initializationData.content !== undefined) {
|
|
358
373
|
if (log.hasLevel("DEBUG")) {
|
|
359
|
-
hexKids = keyIds
|
|
360
|
-
.reduce(function (acc, kid) { return "".concat(acc, ", ").concat(bytesToHex(kid)); }, "");
|
|
374
|
+
hexKids = keyIds.reduce(function (acc, kid) { return "".concat(acc, ", ").concat(bytesToHex(kid)); }, "");
|
|
361
375
|
log.debug("DRM: Blacklisting new key ids", hexKids);
|
|
362
376
|
}
|
|
363
377
|
updateDecipherability(initializationData.content.manifest, [], keyIds, []);
|
|
@@ -368,8 +382,7 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
368
382
|
else if (options.singleLicensePer === "periods" &&
|
|
369
383
|
initializationData.content !== undefined) {
|
|
370
384
|
period = initializationData.content.period;
|
|
371
|
-
createdSessions = this._currentSessions
|
|
372
|
-
.filter(function (x) { return x.source === "created-session" /* MediaKeySessionLoadingType.Created */; });
|
|
385
|
+
createdSessions = this._currentSessions.filter(function (x) { return x.source === "created-session" /* MediaKeySessionLoadingType.Created */; });
|
|
373
386
|
periodKeys = new Set();
|
|
374
387
|
addKeyIdsFromPeriod(periodKeys, period);
|
|
375
388
|
for (_i = 0, createdSessions_1 = createdSessions; _i < createdSessions_1.length; _i++) {
|
|
@@ -380,10 +393,12 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
380
393
|
if (createdSess.record.isAssociatedWithKeyId(kid)) {
|
|
381
394
|
createdSess.record.associateKeyIds(periodKeys.values());
|
|
382
395
|
_loop_1 = function (innerKid) {
|
|
383
|
-
if (!createdSess.keyStatuses.whitelisted
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
396
|
+
if (!createdSess.keyStatuses.whitelisted.some(function (k) {
|
|
397
|
+
return areArraysOfNumbersEqual(k, innerKid);
|
|
398
|
+
}) &&
|
|
399
|
+
!createdSess.keyStatuses.blacklisted.some(function (k) {
|
|
400
|
+
return areArraysOfNumbersEqual(k, innerKid);
|
|
401
|
+
})) {
|
|
387
402
|
createdSess.keyStatuses.blacklisted.push(innerKid);
|
|
388
403
|
}
|
|
389
404
|
};
|
|
@@ -409,16 +424,16 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
409
424
|
wantedSessionType = "temporary";
|
|
410
425
|
}
|
|
411
426
|
else if (!canCreatePersistentSession(mediaKeySystemAccess)) {
|
|
412
|
-
log.warn(
|
|
427
|
+
log.warn('DRM: Cannot create "persistent-license" session: not supported');
|
|
413
428
|
wantedSessionType = "temporary";
|
|
414
429
|
}
|
|
415
430
|
else {
|
|
416
431
|
wantedSessionType = "persistent-license";
|
|
417
432
|
}
|
|
418
433
|
_c = config.getCurrent(), EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS = _c.EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS, EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION = _c.EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION;
|
|
419
|
-
maxSessionCacheSize = typeof options.maxSessionCacheSize === "number"
|
|
420
|
-
options.maxSessionCacheSize
|
|
421
|
-
EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS;
|
|
434
|
+
maxSessionCacheSize = typeof options.maxSessionCacheSize === "number"
|
|
435
|
+
? options.maxSessionCacheSize
|
|
436
|
+
: EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS;
|
|
422
437
|
return [4 /*yield*/, createOrLoadSession(initializationData, stores, wantedSessionType, maxSessionCacheSize, this._canceller.signal)];
|
|
423
438
|
case 1:
|
|
424
439
|
sessionRes = _e.sent();
|
|
@@ -439,8 +454,10 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
439
454
|
var linkedKeys = getKeyIdsLinkedToSession(initializationData, sessionInfo.record, options.singleLicensePer, sessionInfo.source === "created-session" /* MediaKeySessionLoadingType.Created */, value.whitelistedKeyIds, value.blacklistedKeyIds);
|
|
440
455
|
sessionInfo.record.associateKeyIds(linkedKeys.whitelisted);
|
|
441
456
|
sessionInfo.record.associateKeyIds(linkedKeys.blacklisted);
|
|
442
|
-
sessionInfo.keyStatuses = {
|
|
443
|
-
|
|
457
|
+
sessionInfo.keyStatuses = {
|
|
458
|
+
whitelisted: linkedKeys.whitelisted,
|
|
459
|
+
blacklisted: linkedKeys.blacklisted,
|
|
460
|
+
};
|
|
444
461
|
if (sessionInfo.record.getAssociatedKeyIds().length !== 0 &&
|
|
445
462
|
sessionType === "persistent-license" &&
|
|
446
463
|
stores.persistentSessionsStore !== null &&
|
|
@@ -471,10 +488,10 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
471
488
|
updateDecipherability(initializationData.content.manifest, [], [], sessionInfo.record.getAssociatedKeyIds());
|
|
472
489
|
}
|
|
473
490
|
(_a = stores.persistentSessionsStore) === null || _a === void 0 ? void 0 : _a.delete(mediaKeySession.sessionId);
|
|
474
|
-
stores.loadedSessionsStore
|
|
491
|
+
stores.loadedSessionsStore
|
|
492
|
+
.closeSession(mediaKeySession)
|
|
475
493
|
.catch(function (e) {
|
|
476
|
-
var closeError = e instanceof Error ? e :
|
|
477
|
-
"unknown error";
|
|
494
|
+
var closeError = e instanceof Error ? e : "unknown error";
|
|
478
495
|
log.warn("DRM: failed to close expired session", closeError);
|
|
479
496
|
})
|
|
480
497
|
.then(function () { return _this._unlockInitDataQueue(); })
|
|
@@ -491,8 +508,7 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
491
508
|
sessionInfo.blacklistedSessionError = err;
|
|
492
509
|
if (initializationData.content !== undefined) {
|
|
493
510
|
var manifest = initializationData.content.manifest;
|
|
494
|
-
log.info("DRM: blacklisting Representations based on " +
|
|
495
|
-
"protection data.");
|
|
511
|
+
log.info("DRM: blacklisting Representations based on " + "protection data.");
|
|
496
512
|
blackListProtectionData(manifest, initializationData);
|
|
497
513
|
}
|
|
498
514
|
_this._unlockInitDataQueue();
|
|
@@ -522,8 +538,7 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
522
538
|
}
|
|
523
539
|
return [2 /*return*/, Promise.resolve()];
|
|
524
540
|
}
|
|
525
|
-
throw new EncryptedMediaError("KEY_GENERATE_REQUEST_ERROR", error_1 instanceof Error ? error_1.toString() :
|
|
526
|
-
"Unknown error");
|
|
541
|
+
throw new EncryptedMediaError("KEY_GENERATE_REQUEST_ERROR", error_1 instanceof Error ? error_1.toString() : "Unknown error");
|
|
527
542
|
case 5: return [2 /*return*/, Promise.resolve()];
|
|
528
543
|
}
|
|
529
544
|
});
|
|
@@ -535,10 +550,27 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
535
550
|
* If set, a currently-used key session is already compatible to this
|
|
536
551
|
* initialization data.
|
|
537
552
|
*/
|
|
538
|
-
var compatibleSessionInfo = arrayFind(this._currentSessions, function (x) {
|
|
553
|
+
var compatibleSessionInfo = arrayFind(this._currentSessions, function (x) {
|
|
554
|
+
return x.record.isCompatibleWith(initializationData);
|
|
555
|
+
});
|
|
539
556
|
if (compatibleSessionInfo === undefined) {
|
|
540
557
|
return false;
|
|
541
558
|
}
|
|
559
|
+
/**
|
|
560
|
+
* On Safari using Directfile, the old EME implementation triggers
|
|
561
|
+
* the "webkitneedkey" event instead of "encrypted". There's an issue in
|
|
562
|
+
* Safari where "webkitneedkey" fires too early before all tracks are added
|
|
563
|
+
* from an HLS playlist.
|
|
564
|
+
* Safari incorrectly assumes some keys are missing for these tracks,
|
|
565
|
+
* leading to repeated "webkitneedkey" events. Because RxPlayer recognizes
|
|
566
|
+
* it already has a session for these keys and ignores the events,
|
|
567
|
+
* the content remains frozen. To resolve this, the session is re-created.
|
|
568
|
+
*/
|
|
569
|
+
var forceSessionRecreation = initializationData.forceSessionRecreation;
|
|
570
|
+
if (forceSessionRecreation === true) {
|
|
571
|
+
this.removeSessionForInitData(initializationData, mediaKeysData);
|
|
572
|
+
return false;
|
|
573
|
+
}
|
|
542
574
|
// Check if the compatible session is blacklisted
|
|
543
575
|
var blacklistedSessionError = compatibleSessionInfo.blacklistedSessionError;
|
|
544
576
|
if (!isNullOrUndefined(blacklistedSessionError)) {
|
|
@@ -619,6 +651,42 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
619
651
|
}
|
|
620
652
|
return false;
|
|
621
653
|
};
|
|
654
|
+
/**
|
|
655
|
+
* Remove the session corresponding to the initData provided, and close it.
|
|
656
|
+
* It does nothing if no session was found for this initData.
|
|
657
|
+
* @param {Object} initData : The initialization data corresponding to the session
|
|
658
|
+
* that need to be removed
|
|
659
|
+
* @param {Object} mediaKeysData : The media keys data
|
|
660
|
+
*/
|
|
661
|
+
ContentDecryptor.prototype.removeSessionForInitData = function (initData, mediaKeysData) {
|
|
662
|
+
var stores = mediaKeysData.stores;
|
|
663
|
+
/** Remove the session and close it from the loadedSessionStore */
|
|
664
|
+
var entry = stores.loadedSessionsStore.reuse(initData);
|
|
665
|
+
if (entry !== null) {
|
|
666
|
+
stores.loadedSessionsStore
|
|
667
|
+
.closeSession(entry.mediaKeySession)
|
|
668
|
+
.catch(function () {
|
|
669
|
+
return log.error("DRM: Cannot close the session from the loaded session store");
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* If set, a currently-used key session is already compatible to this
|
|
674
|
+
* initialization data.
|
|
675
|
+
*/
|
|
676
|
+
var compatibleSessionInfo = arrayFind(this._currentSessions, function (x) {
|
|
677
|
+
return x.record.isCompatibleWith(initData);
|
|
678
|
+
});
|
|
679
|
+
if (compatibleSessionInfo === undefined) {
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
/** Remove the session from the currentSessions */
|
|
683
|
+
var indexOf = this._currentSessions.indexOf(compatibleSessionInfo);
|
|
684
|
+
if (indexOf !== -1) {
|
|
685
|
+
log.debug("DRM: A session from a processed init is removed " +
|
|
686
|
+
"due to forceSessionRecreation policy.");
|
|
687
|
+
this._currentSessions.splice(indexOf, 1);
|
|
688
|
+
}
|
|
689
|
+
};
|
|
622
690
|
/**
|
|
623
691
|
* Callback that should be called if an error that made the current
|
|
624
692
|
* `ContentDecryptor` instance unusable arised.
|
|
@@ -633,15 +701,15 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
633
701
|
if (this._canceller.isUsed()) {
|
|
634
702
|
return;
|
|
635
703
|
}
|
|
636
|
-
var formattedErr = err instanceof Error ?
|
|
637
|
-
err :
|
|
638
|
-
new OtherError("NONE", "Unknown decryption error");
|
|
704
|
+
var formattedErr = err instanceof Error ? err : new OtherError("NONE", "Unknown decryption error");
|
|
639
705
|
this.error = formattedErr;
|
|
640
706
|
this._initDataQueue.length = 0;
|
|
641
|
-
this._stateData = {
|
|
707
|
+
this._stateData = {
|
|
708
|
+
state: ContentDecryptorState.Error,
|
|
642
709
|
isMediaKeysAttached: undefined,
|
|
643
710
|
isInitDataQueueLocked: undefined,
|
|
644
|
-
data: null
|
|
711
|
+
data: null,
|
|
712
|
+
};
|
|
645
713
|
this._canceller.cancel();
|
|
646
714
|
this.trigger("error", formattedErr);
|
|
647
715
|
// The previous trigger might have lead to a disposal of the `ContentDecryptor`.
|
|
@@ -655,8 +723,8 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
655
723
|
* @returns {boolean}
|
|
656
724
|
*/
|
|
657
725
|
ContentDecryptor.prototype._isStopped = function () {
|
|
658
|
-
return this._stateData.state === ContentDecryptorState.Disposed ||
|
|
659
|
-
this._stateData.state === ContentDecryptorState.Error;
|
|
726
|
+
return (this._stateData.state === ContentDecryptorState.Disposed ||
|
|
727
|
+
this._stateData.state === ContentDecryptorState.Error);
|
|
660
728
|
};
|
|
661
729
|
/**
|
|
662
730
|
* Start processing the next initialization data of the `_initDataQueue` if it
|
|
@@ -707,8 +775,7 @@ export default ContentDecryptor;
|
|
|
707
775
|
*/
|
|
708
776
|
function canCreatePersistentSession(mediaKeySystemAccess) {
|
|
709
777
|
var sessionTypes = mediaKeySystemAccess.getConfiguration().sessionTypes;
|
|
710
|
-
return sessionTypes !== undefined &&
|
|
711
|
-
arrayIncludes(sessionTypes, "persistent-license");
|
|
778
|
+
return sessionTypes !== undefined && arrayIncludes(sessionTypes, "persistent-license");
|
|
712
779
|
}
|
|
713
780
|
/**
|
|
714
781
|
* Change the decipherability of Representations which have their key id in one
|
|
@@ -774,14 +841,14 @@ function blackListProtectionData(manifest, initData) {
|
|
|
774
841
|
}
|
|
775
842
|
var segmentProtections = (_b = (_a = representation.contentProtections) === null || _a === void 0 ? void 0 : _a.initData) !== null && _b !== void 0 ? _b : [];
|
|
776
843
|
var _loop_2 = function (protection) {
|
|
777
|
-
if (initData.type === undefined ||
|
|
778
|
-
|
|
779
|
-
|
|
844
|
+
if (initData.type === undefined || protection.type === initData.type) {
|
|
845
|
+
var containedInitData = initData.values
|
|
846
|
+
.getFormattedValues()
|
|
780
847
|
.every(function (undecipherableVal) {
|
|
781
848
|
return protection.values.some(function (currVal) {
|
|
782
|
-
return (undecipherableVal.systemId === undefined ||
|
|
849
|
+
return ((undecipherableVal.systemId === undefined ||
|
|
783
850
|
currVal.systemId === undecipherableVal.systemId) &&
|
|
784
|
-
areArraysOfNumbersEqual(currVal.data, undecipherableVal.data);
|
|
851
|
+
areArraysOfNumbersEqual(currVal.data, undecipherableVal.data));
|
|
785
852
|
});
|
|
786
853
|
});
|
|
787
854
|
if (containedInitData) {
|
|
@@ -905,7 +972,9 @@ function getKeyIdsLinkedToSession(initializationData, keySessionRecord, singleLi
|
|
|
905
972
|
else {
|
|
906
973
|
var periodKeysArr = Array.from(periodKeys);
|
|
907
974
|
var _loop_4 = function (kid) {
|
|
908
|
-
var isFound = associatedKeyIds.some(function (k) {
|
|
975
|
+
var isFound = associatedKeyIds.some(function (k) {
|
|
976
|
+
return areArraysOfNumbersEqual(k, kid);
|
|
977
|
+
});
|
|
909
978
|
if (isFound) {
|
|
910
979
|
mergeKeyIdSetIntoArray(periodKeys, associatedKeyIds);
|
|
911
980
|
return "break";
|
|
@@ -922,9 +991,11 @@ function getKeyIdsLinkedToSession(initializationData, keySessionRecord, singleLi
|
|
|
922
991
|
}
|
|
923
992
|
}
|
|
924
993
|
}
|
|
925
|
-
return {
|
|
994
|
+
return {
|
|
995
|
+
whitelisted: usableKeyIds,
|
|
926
996
|
/** associatedKeyIds starts with the whitelisted one. */
|
|
927
|
-
blacklisted: associatedKeyIds.slice(usableKeyIds.length)
|
|
997
|
+
blacklisted: associatedKeyIds.slice(usableKeyIds.length),
|
|
998
|
+
};
|
|
928
999
|
}
|
|
929
1000
|
/**
|
|
930
1001
|
* Push all kei ids in the given `set` and add it to the `arr` Array only if it
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ICustomMediaKeySession } from "../../compat/eme";
|
|
17
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
18
|
-
import { IProcessedProtectionData, IMediaKeySessionStores
|
|
19
|
-
import
|
|
16
|
+
import type { ICustomMediaKeySession } from "../../compat/eme";
|
|
17
|
+
import type { CancellationSignal } from "../../utils/task_canceller";
|
|
18
|
+
import type { IProcessedProtectionData, IMediaKeySessionStores } from "./types";
|
|
19
|
+
import { MediaKeySessionLoadingType } from "./types";
|
|
20
|
+
import type KeySessionRecord from "./utils/key_session_record";
|
|
20
21
|
/**
|
|
21
22
|
* Handle MediaEncryptedEvents sent by a HTMLMediaElement:
|
|
22
23
|
* Either create a MediaKeySession, recuperate a previous MediaKeySession or
|
|
@@ -83,10 +83,14 @@ export default function createOrLoadSession(initializationData, stores, wantedSe
|
|
|
83
83
|
previousLoadedSession = entry.mediaKeySession;
|
|
84
84
|
if (isSessionUsable(previousLoadedSession)) {
|
|
85
85
|
log.info("DRM: Reuse loaded session", previousLoadedSession.sessionId);
|
|
86
|
-
return [2 /*return*/, {
|
|
87
|
-
|
|
86
|
+
return [2 /*return*/, {
|
|
87
|
+
type: "loaded-open-session" /* MediaKeySessionLoadingType.LoadedOpenSession */,
|
|
88
|
+
value: {
|
|
89
|
+
mediaKeySession: previousLoadedSession,
|
|
88
90
|
sessionType: entry.sessionType,
|
|
89
|
-
keySessionRecord: entry.keySessionRecord
|
|
91
|
+
keySessionRecord: entry.keySessionRecord,
|
|
92
|
+
},
|
|
93
|
+
}];
|
|
90
94
|
}
|
|
91
95
|
else if (persistentSessionsStore !== null) {
|
|
92
96
|
// If the session is not usable anymore, we can also remove it from the
|
|
@@ -105,7 +109,10 @@ export default function createOrLoadSession(initializationData, stores, wantedSe
|
|
|
105
109
|
throw cancelSignal.cancellationError; // stop here if cancelled since
|
|
106
110
|
}
|
|
107
111
|
_a.label = 2;
|
|
108
|
-
case 2: return [4 /*yield*/, cleanOldLoadedSessions(loadedSessionsStore,
|
|
112
|
+
case 2: return [4 /*yield*/, cleanOldLoadedSessions(loadedSessionsStore,
|
|
113
|
+
// Account for the next session we will be creating
|
|
114
|
+
// Note that `maxSessionCacheSize < 0 has special semantic (no limit)`
|
|
115
|
+
maxSessionCacheSize <= 0 ? maxSessionCacheSize : maxSessionCacheSize - 1)];
|
|
109
116
|
case 3:
|
|
110
117
|
_a.sent();
|
|
111
118
|
if (cancelSignal.cancellationError !== null) {
|
|
@@ -114,10 +121,14 @@ export default function createOrLoadSession(initializationData, stores, wantedSe
|
|
|
114
121
|
return [4 /*yield*/, createSession(stores, initializationData, wantedSessionType, cancelSignal)];
|
|
115
122
|
case 4:
|
|
116
123
|
evt = _a.sent();
|
|
117
|
-
return [2 /*return*/, {
|
|
118
|
-
|
|
124
|
+
return [2 /*return*/, {
|
|
125
|
+
type: evt.type,
|
|
126
|
+
value: {
|
|
127
|
+
mediaKeySession: evt.value.mediaKeySession,
|
|
119
128
|
sessionType: evt.value.sessionType,
|
|
120
|
-
keySessionRecord: evt.value.keySessionRecord
|
|
129
|
+
keySessionRecord: evt.value.keySessionRecord,
|
|
130
|
+
},
|
|
131
|
+
}];
|
|
121
132
|
}
|
|
122
133
|
});
|
|
123
134
|
});
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ICustomMediaKeySession } from "../../compat/eme";
|
|
17
|
-
import { CancellationSignal } from "../../utils/task_canceller";
|
|
18
|
-
import { IProcessedProtectionData, IMediaKeySessionStores
|
|
19
|
-
import
|
|
16
|
+
import type { ICustomMediaKeySession } from "../../compat/eme";
|
|
17
|
+
import type { CancellationSignal } from "../../utils/task_canceller";
|
|
18
|
+
import type { IProcessedProtectionData, IMediaKeySessionStores } from "./types";
|
|
19
|
+
import { MediaKeySessionLoadingType } from "./types";
|
|
20
|
+
import type KeySessionRecord from "./utils/key_session_record";
|
|
20
21
|
/**
|
|
21
22
|
* Create a new Session or load a persistent one on the given MediaKeys,
|
|
22
23
|
* according to wanted settings and what is currently stored.
|