rx-player 4.0.0-alpha.2022110400 → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +118 -2
- package/FILES.md +0 -1
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_text_track.d.ts +1 -3
- package/dist/_esm5.processed/compat/add_text_track.js +4 -7
- package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +1 -8
- package/dist/_esm5.processed/compat/browser_detection.js +10 -5
- package/dist/_esm5.processed/compat/can_reuse_media_keys.d.ts +3 -2
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +5 -4
- package/dist/_esm5.processed/compat/eme/close_session.js +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +16 -7
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +1 -1
- package/dist/_esm5.processed/compat/eme/load_session.js +1 -1
- package/dist/_esm5.processed/compat/event_listeners.d.ts +52 -68
- package/dist/_esm5.processed/compat/event_listeners.js +132 -182
- package/dist/_esm5.processed/compat/index.d.ts +1 -6
- package/dist/_esm5.processed/compat/index.js +1 -6
- package/dist/_esm5.processed/compat/on_height_width_change.d.ts +1 -1
- package/dist/_esm5.processed/compat/on_height_width_change.js +2 -2
- package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.d.ts +2 -2
- package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +2 -2
- package/dist/_esm5.processed/config.d.ts +10 -21
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +9 -64
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +34 -49
- package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +1 -1
- package/dist/_esm5.processed/core/adaptive/utils/{filter_by_width.d.ts → filter_by_resolution.d.ts} +11 -5
- package/dist/_esm5.processed/core/adaptive/utils/{filter_by_width.js → filter_by_resolution.js} +14 -6
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.d.ts +2 -8
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +2 -11
- package/dist/_esm5.processed/core/api/option_utils.d.ts +15 -38
- package/dist/_esm5.processed/core/api/option_utils.js +43 -223
- package/dist/_esm5.processed/core/api/playback_observer.d.ts +9 -10
- package/dist/_esm5.processed/core/api/playback_observer.js +6 -7
- package/dist/_esm5.processed/core/api/public_api.d.ts +127 -302
- package/dist/_esm5.processed/core/api/public_api.js +742 -1113
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.d.ts +3 -2
- package/dist/_esm5.processed/core/{segment_buffers/implementations/image → api/track_management}/index.js +3 -2
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.d.ts → track_management/media_element_tracks_store.d.ts} +15 -75
- package/dist/_esm5.processed/core/api/{tracks_management/media_element_track_choice_manager.js → track_management/media_element_tracks_store.js} +74 -193
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.d.ts +84 -0
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +158 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.d.ts +406 -0
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +1058 -0
- package/dist/_esm5.processed/core/api/utils.d.ts +16 -10
- package/dist/_esm5.processed/core/api/utils.js +96 -20
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.d.ts +27 -10
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +97 -25
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.d.ts +3 -2
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +4 -3
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +1 -1
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +33 -38
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +1 -1
- package/dist/_esm5.processed/core/decrypt/create_session.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/create_session.js +2 -2
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -1
- package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +88 -68
- package/dist/_esm5.processed/{compat/play.d.ts → core/decrypt/get_key_system_configuration.d.ts} +4 -5
- package/dist/_esm5.processed/core/decrypt/{get_current_key_system.js → get_key_system_configuration.js} +11 -5
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +8 -7
- package/dist/_esm5.processed/core/decrypt/index.d.ts +2 -2
- package/dist/_esm5.processed/core/decrypt/index.js +2 -2
- package/dist/_esm5.processed/core/decrypt/init_media_keys.js +1 -1
- package/dist/_esm5.processed/core/decrypt/session_events_listener.d.ts +32 -31
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +227 -158
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +2 -2
- package/dist/_esm5.processed/core/decrypt/types.d.ts +1 -7
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +44 -9
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.d.ts +1 -1
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +2 -2
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +2 -2
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.d.ts +4 -4
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +6 -4
- package/dist/_esm5.processed/core/fetchers/index.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/manifest/index.d.ts +2 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.d.ts +151 -89
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +419 -163
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +2 -1
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +4 -10
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +17 -10
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.d.ts +1 -27
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +1 -25
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.d.ts +1 -6
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +5 -42
- package/dist/_esm5.processed/core/init/{initialize_directfile.d.ts → directfile_content_initializer.d.ts} +13 -16
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +196 -0
- package/dist/_esm5.processed/core/init/index.d.ts +2 -2
- package/dist/_esm5.processed/core/init/index.js +2 -2
- package/dist/_esm5.processed/core/init/media_source_content_initializer.d.ts +174 -0
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +573 -0
- package/dist/_esm5.processed/core/init/types.d.ts +197 -68
- package/dist/_esm5.processed/core/init/types.js +36 -1
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.d.ts +164 -0
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +484 -0
- package/dist/_esm5.processed/core/init/{create_media_source.d.ts → utils/create_media_source.d.ts} +8 -4
- package/dist/_esm5.processed/core/init/utils/create_media_source.js +118 -0
- package/dist/_esm5.processed/core/init/{create_stream_playback_observer.d.ts → utils/create_stream_playback_observer.d.ts} +4 -4
- package/dist/_esm5.processed/core/init/{create_stream_playback_observer.js → utils/create_stream_playback_observer.js} +2 -5
- package/dist/_esm5.processed/core/init/{end_of_stream.d.ts → utils/end_of_stream.d.ts} +5 -5
- package/dist/_esm5.processed/core/init/utils/end_of_stream.js +85 -0
- package/dist/_esm5.processed/core/init/{get_initial_time.d.ts → utils/get_initial_time.d.ts} +1 -1
- package/dist/_esm5.processed/core/init/{get_initial_time.js → utils/get_initial_time.js} +3 -3
- package/dist/_esm5.processed/core/init/{emit_loaded_event.d.ts → utils/get_loaded_reference.d.ts} +9 -9
- package/dist/_esm5.processed/core/init/{emit_loaded_event.js → utils/get_loaded_reference.js} +23 -17
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.d.ts +63 -0
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +124 -0
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.d.ts +80 -0
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +111 -0
- package/dist/_esm5.processed/core/init/{media_duration_updater.d.ts → utils/media_duration_updater.d.ts} +3 -3
- package/dist/_esm5.processed/core/init/{media_duration_updater.js → utils/media_duration_updater.js} +115 -41
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.d.ts +113 -0
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +483 -0
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/are_same_stream_events.d.ts +0 -0
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/are_same_stream_events.js +0 -0
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.d.ts +18 -0
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/index.js +0 -0
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/refresh_scheduled_events_list.d.ts +1 -1
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/refresh_scheduled_events_list.js +0 -0
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.d.ts +30 -0
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +155 -0
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/types.d.ts +1 -13
- package/dist/_esm5.processed/core/init/{stream_events_emitter → utils/stream_events_emitter}/types.js +0 -0
- package/dist/_esm5.processed/core/init/{throw_on_media_error.d.ts → utils/throw_on_media_error.d.ts} +5 -5
- package/dist/_esm5.processed/core/init/{throw_on_media_error.js → utils/throw_on_media_error.js} +19 -15
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.d.ts +0 -1
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.d.ts +0 -5
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +0 -5
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.d.ts +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +1 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.d.ts +1 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +2 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +3 -3
- package/dist/_esm5.processed/core/segment_buffers/index.d.ts +2 -2
- package/dist/_esm5.processed/core/segment_buffers/index.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.d.ts +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +1 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.d.ts +33 -0
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +49 -0
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +3 -4
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +2 -16
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.d.ts +25 -145
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +315 -153
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.d.ts +39 -0
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +133 -0
- package/dist/_esm5.processed/core/stream/adaptation/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/adaptation/index.js +1 -0
- package/dist/_esm5.processed/core/stream/adaptation/types.d.ts +194 -0
- package/dist/_esm5.processed/core/stream/adaptation/types.js +1 -0
- package/dist/_esm5.processed/core/stream/index.d.ts +4 -4
- package/dist/_esm5.processed/core/stream/index.js +0 -1
- package/dist/_esm5.processed/core/stream/orchestrator/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +144 -17
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +355 -230
- package/dist/_esm5.processed/core/stream/period/index.d.ts +2 -3
- package/dist/_esm5.processed/core/stream/period/index.js +1 -0
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +27 -62
- package/dist/_esm5.processed/core/stream/period/period_stream.js +276 -107
- package/dist/_esm5.processed/core/stream/period/types.d.ts +101 -0
- package/dist/_esm5.processed/core/stream/period/types.js +1 -0
- package/dist/_esm5.processed/core/stream/period/{get_adaptation_switch_strategy.d.ts → utils/get_adaptation_switch_strategy.d.ts} +5 -7
- package/dist/_esm5.processed/core/stream/period/{get_adaptation_switch_strategy.js → utils/get_adaptation_switch_strategy.js} +13 -49
- package/dist/_esm5.processed/core/stream/representation/index.d.ts +2 -2
- package/dist/_esm5.processed/core/stream/representation/index.js +1 -0
- package/dist/_esm5.processed/core/stream/representation/representation_stream.d.ts +32 -121
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +225 -142
- package/dist/_esm5.processed/core/stream/representation/types.d.ts +277 -0
- package/dist/_esm5.processed/core/stream/representation/types.js +1 -0
- package/dist/_esm5.processed/core/stream/representation/{append_segment_to_buffer.d.ts → utils/append_segment_to_buffer.d.ts} +5 -5
- package/dist/_esm5.processed/core/stream/representation/{append_segment_to_buffer.js → utils/append_segment_to_buffer.js} +9 -4
- package/dist/_esm5.processed/core/stream/representation/{check_for_discontinuity.d.ts → utils/check_for_discontinuity.d.ts} +2 -2
- package/dist/_esm5.processed/core/stream/representation/{check_for_discontinuity.js → utils/check_for_discontinuity.js} +1 -1
- package/dist/_esm5.processed/core/stream/representation/{downloading_queue.d.ts → utils/downloading_queue.d.ts} +85 -80
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +378 -0
- package/dist/_esm5.processed/core/stream/representation/{force_garbage_collection.d.ts → utils/force_garbage_collection.d.ts} +2 -2
- package/dist/_esm5.processed/core/stream/representation/{force_garbage_collection.js → utils/force_garbage_collection.js} +5 -8
- package/dist/_esm5.processed/core/stream/representation/{get_buffer_status.d.ts → utils/get_buffer_status.d.ts} +3 -3
- package/dist/_esm5.processed/core/stream/representation/{get_buffer_status.js → utils/get_buffer_status.js} +3 -3
- package/dist/_esm5.processed/core/stream/representation/{get_needed_segments.d.ts → utils/get_needed_segments.d.ts} +3 -3
- package/dist/_esm5.processed/core/stream/representation/{get_needed_segments.js → utils/get_needed_segments.js} +4 -5
- package/dist/_esm5.processed/core/stream/representation/{get_segment_priority.d.ts → utils/get_segment_priority.d.ts} +0 -0
- package/dist/_esm5.processed/core/stream/representation/{get_segment_priority.js → utils/get_segment_priority.js} +1 -1
- package/dist/_esm5.processed/core/stream/representation/{push_init_segment.d.ts → utils/push_init_segment.d.ts} +9 -12
- package/dist/_esm5.processed/{transports/dash/image_pipelines.js → core/stream/representation/utils/push_init_segment.js} +23 -67
- package/dist/_esm5.processed/core/stream/representation/{push_media_segment.d.ts → utils/push_media_segment.d.ts} +9 -12
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +109 -0
- package/dist/_esm5.processed/core/stream/utils/create_reload_request.d.ts +32 -0
- package/dist/_esm5.processed/core/stream/utils/create_reload_request.js +54 -0
- package/dist/_esm5.processed/default_config.d.ts +50 -102
- package/dist/_esm5.processed/default_config.js +52 -117
- package/dist/_esm5.processed/errors/custom_loader_error.d.ts +1 -3
- package/dist/_esm5.processed/errors/custom_loader_error.js +1 -3
- package/dist/_esm5.processed/errors/error_codes.d.ts +7 -7
- package/dist/_esm5.processed/errors/network_error.d.ts +0 -1
- package/dist/_esm5.processed/errors/network_error.js +0 -1
- package/dist/_esm5.processed/errors/request_error.d.ts +2 -3
- package/dist/_esm5.processed/errors/request_error.js +2 -5
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -6
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +2 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +4 -4
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.d.ts +2 -3
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +107 -59
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +6 -7
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +1 -1
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +1 -1
- package/dist/_esm5.processed/features/features_object.js +0 -2
- package/dist/_esm5.processed/features/initialize_features.d.ts +2 -4
- package/dist/_esm5.processed/features/initialize_features.js +5 -13
- package/dist/_esm5.processed/features/list/directfile.js +3 -3
- package/dist/_esm5.processed/features/list/index.d.ts +0 -2
- package/dist/_esm5.processed/features/list/index.js +0 -2
- package/dist/_esm5.processed/features/types.d.ts +11 -35
- package/dist/_esm5.processed/index.d.ts +1 -3
- package/dist/_esm5.processed/index.js +1 -4
- package/dist/_esm5.processed/manifest/adaptation.d.ts +10 -9
- package/dist/_esm5.processed/manifest/adaptation.js +29 -24
- package/dist/_esm5.processed/manifest/index.d.ts +3 -4
- package/dist/_esm5.processed/manifest/manifest.d.ts +8 -56
- package/dist/_esm5.processed/manifest/manifest.js +10 -114
- package/dist/_esm5.processed/manifest/period.d.ts +4 -5
- package/dist/_esm5.processed/manifest/period.js +1 -1
- package/dist/_esm5.processed/manifest/representation.d.ts +10 -5
- package/dist/_esm5.processed/manifest/representation.js +9 -1
- package/dist/_esm5.processed/manifest/representation_index/index.d.ts +2 -2
- package/dist/_esm5.processed/manifest/representation_index/static.d.ts +2 -0
- package/dist/_esm5.processed/manifest/representation_index/static.js +6 -0
- package/dist/_esm5.processed/manifest/representation_index/types.d.ts +42 -21
- package/dist/_esm5.processed/manifest/types.d.ts +0 -2
- package/dist/_esm5.processed/manifest/update_period_in_place.d.ts +26 -1
- package/dist/_esm5.processed/manifest/update_period_in_place.js +58 -7
- package/dist/_esm5.processed/manifest/update_periods.d.ts +19 -2
- package/dist/_esm5.processed/manifest/update_periods.js +62 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.d.ts +20 -31
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +27 -19
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.d.ts +1 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +7 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.d.ts +18 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +74 -33
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.d.ts +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +66 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +1 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +42 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +1 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.d.ts +0 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +7 -3
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.d.ts +10 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +18 -2
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +8 -5
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.d.ts +0 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +3 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +2 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +5 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.d.ts +2 -1
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.d.ts +2 -0
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +6 -0
- package/dist/_esm5.processed/parsers/manifest/local/types.d.ts +2 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +1 -1
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +6 -6
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.d.ts +12 -3
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +11 -2
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.d.ts +0 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +11 -17
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.d.ts +21 -83
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +53 -125
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.d.ts +119 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +159 -0
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.d.ts +3 -6
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +4 -4
- package/dist/_esm5.processed/parsers/manifest/types.d.ts +17 -6
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.d.ts +1 -1
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +7 -0
- package/dist/_esm5.processed/parsers/texttracks/types.d.ts +2 -2
- package/dist/_esm5.processed/public_types.d.ts +441 -346
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.d.ts +5 -4
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +5 -4
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +4 -4
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +4 -5
- package/dist/_esm5.processed/transports/dash/pipelines.js +1 -4
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/dash/segment_loader.js +27 -21
- package/dist/_esm5.processed/transports/dash/segment_parser.js +19 -24
- package/dist/_esm5.processed/transports/dash/text_loader.js +5 -5
- package/dist/_esm5.processed/transports/dash/text_parser.js +31 -36
- package/dist/_esm5.processed/transports/local/pipelines.js +1 -10
- package/dist/_esm5.processed/transports/local/segment_loader.js +3 -3
- package/dist/_esm5.processed/transports/local/segment_parser.d.ts +1 -1
- package/dist/_esm5.processed/transports/local/segment_parser.js +10 -10
- package/dist/_esm5.processed/transports/local/text_parser.d.ts +2 -2
- package/dist/_esm5.processed/transports/local/text_parser.js +23 -23
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +34 -52
- package/dist/_esm5.processed/{core/decrypt/get_current_key_system.d.ts → transports/smooth/is_mp4_embedded_track.d.ts} +5 -4
- package/dist/_esm5.processed/{features/list/bif_parser.js → transports/smooth/is_mp4_embedded_track.js} +6 -7
- package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/pipelines.js +33 -190
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +28 -22
- package/dist/_esm5.processed/transports/smooth/utils.d.ts +1 -26
- package/dist/_esm5.processed/transports/smooth/utils.js +1 -55
- package/dist/_esm5.processed/transports/types.d.ts +102 -97
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.d.ts +3 -3
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +5 -7
- package/dist/_esm5.processed/transports/utils/parse_text_track.d.ts +8 -12
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +19 -21
- package/dist/_esm5.processed/utils/assert.d.ts +1 -1
- package/dist/_esm5.processed/utils/deep_merge.d.ts +2 -2
- package/dist/_esm5.processed/utils/event_emitter.d.ts +3 -13
- package/dist/_esm5.processed/utils/event_emitter.js +0 -19
- package/dist/_esm5.processed/utils/logger.d.ts +2 -2
- package/dist/_esm5.processed/utils/reference.d.ts +46 -67
- package/dist/_esm5.processed/utils/reference.js +63 -93
- package/dist/_esm5.processed/utils/request/fetch.js +1 -1
- package/dist/_esm5.processed/utils/request/xhr.d.ts +3 -68
- package/dist/_esm5.processed/utils/request/xhr.js +5 -5
- package/dist/_esm5.processed/utils/{rx-retry_with_backoff.d.ts → retry_promise_with_backoff.d.ts} +19 -34
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +119 -0
- package/dist/_esm5.processed/utils/sleep.d.ts +10 -0
- package/dist/_esm5.processed/utils/sleep.js +14 -0
- package/dist/_esm5.processed/utils/sorted_list.d.ts +1 -0
- package/dist/_esm5.processed/utils/sorted_list.js +3 -0
- package/dist/_esm5.processed/utils/task_canceller.d.ts +1 -1
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +11862 -16629
- package/dist/rx-player.min.js +1 -1
- package/dist/rx-player.min.js.LICENSE.txt +0 -15
- package/locked_reps.js +46 -0
- package/manifest.mpd +149 -0
- package/package.json +32 -32
- package/scripts/build/generate_build.js +1 -8
- package/scripts/fast_demo_build.js +1 -1
- package/scripts/generate_full_demo.js +1 -1
- package/sonar-project.properties +1 -1
- package/src/README.md +8 -7
- package/src/compat/__tests__/add_text_track.test.ts +4 -49
- package/src/compat/__tests__/can_reuse_media_keys.test.ts +4 -27
- package/src/compat/__tests__/should_reload_media_source_on_decipherability_update.test.ts +1 -1
- package/src/compat/add_text_track.ts +3 -7
- package/src/compat/browser_compatibility_types.ts +0 -7
- package/src/compat/browser_detection.ts +15 -5
- package/src/compat/can_reuse_media_keys.ts +5 -7
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +14 -15
- package/src/compat/event_listeners.ts +184 -226
- package/src/compat/index.ts +0 -16
- package/src/compat/on_height_width_change.ts +2 -2
- package/src/compat/should_reload_media_source_on_decipherability_update.ts +3 -3
- package/src/config.ts +1 -0
- package/src/core/README.md +1 -1
- package/src/core/adaptive/adaptive_representation_selector.ts +47 -143
- package/src/core/adaptive/utils/__tests__/filter_by_resolution.test.ts +82 -0
- package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +7 -183
- package/src/core/adaptive/utils/{filter_by_width.ts → filter_by_resolution.ts} +21 -7
- package/src/core/adaptive/utils/select_optimal_representation.ts +2 -13
- package/src/core/api/README.md +5 -38
- package/src/core/api/__tests__/option_utils.test.ts +68 -740
- package/src/core/api/__tests__/public_api.test.ts +15 -402
- package/src/core/api/__tests__/utils.test.ts +3 -3
- package/src/core/api/option_utils.ts +73 -314
- package/src/core/api/playback_observer.ts +20 -11
- package/src/core/api/public_api.ts +1054 -1500
- package/src/core/api/track_management/README.md +15 -0
- package/src/core/api/{tracks_management/__tests__/media_element_track_choice_manager.test.ts → track_management/__tests__/media_element_tracks_store.test.ts} +8 -8
- package/src/core/{segment_buffers/implementations/image → api/track_management}/index.ts +4 -2
- package/src/core/api/{tracks_management/media_element_track_choice_manager.ts → track_management/media_element_tracks_store.ts} +66 -235
- package/src/core/api/track_management/track_dispatcher.ts +241 -0
- package/src/core/api/track_management/tracks_store.ts +1448 -0
- package/src/core/api/utils.ts +124 -44
- package/src/core/decrypt/__tests__/__global__/get_license.test.ts +44 -40
- package/src/core/decrypt/__tests__/__global__/init_data.test.ts +15 -20
- package/src/core/decrypt/__tests__/__global__/media_key_system_access.test.ts +169 -63
- package/src/core/decrypt/__tests__/__global__/utils.ts +116 -17
- package/src/core/decrypt/attach_media_keys.ts +3 -2
- package/src/core/decrypt/clear_on_stop.ts +1 -1
- package/src/core/decrypt/content_decryptor.ts +32 -42
- package/src/core/decrypt/create_session.ts +1 -1
- package/src/core/decrypt/find_key_system.ts +86 -69
- package/src/core/decrypt/{get_current_key_system.ts → get_key_system_configuration.ts} +12 -6
- package/src/core/decrypt/get_media_keys.ts +7 -6
- package/src/core/decrypt/index.ts +2 -2
- package/src/core/decrypt/session_events_listener.ts +217 -278
- package/src/core/decrypt/set_server_certificate.ts +1 -1
- package/src/core/decrypt/types.ts +0 -5
- package/src/core/decrypt/utils/check_key_statuses.ts +54 -18
- package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +1 -1
- package/src/core/decrypt/utils/loaded_sessions_store.ts +1 -1
- package/src/core/decrypt/utils/persistent_sessions_store.ts +10 -8
- package/src/core/fetchers/README.md +3 -0
- package/src/core/fetchers/index.ts +6 -6
- package/src/core/fetchers/manifest/index.ts +7 -7
- package/src/core/fetchers/manifest/manifest_fetcher.ts +626 -303
- package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +3 -1
- package/src/core/fetchers/segment/segment_fetcher.ts +19 -17
- package/src/core/fetchers/segment/segment_fetcher_creator.ts +2 -28
- package/src/core/fetchers/utils/schedule_request.ts +8 -60
- package/src/core/init/README.md +31 -45
- package/src/core/init/directfile_content_initializer.ts +229 -0
- package/src/core/init/index.ts +3 -3
- package/src/core/init/media_source_content_initializer.ts +809 -0
- package/src/core/init/types.ts +214 -131
- package/src/core/init/{__tests__ → utils/__tests__}/are_same_stream_events.test.ts +0 -0
- package/src/core/init/{__tests__ → utils/__tests__}/refresh_scheduled_events_list.test.ts +0 -0
- package/src/core/init/utils/content_time_boundaries_observer.ts +609 -0
- package/src/core/init/{create_media_source.ts → utils/create_media_source.ts} +60 -55
- package/src/core/init/{create_stream_playback_observer.ts → utils/create_stream_playback_observer.ts} +7 -11
- package/src/core/init/utils/end_of_stream.ts +104 -0
- package/src/core/init/{get_initial_time.ts → utils/get_initial_time.ts} +4 -4
- package/src/core/init/utils/get_loaded_reference.ts +76 -0
- package/src/core/init/utils/initial_seek_and_play.ts +179 -0
- package/src/core/init/utils/initialize_content_decryption.ts +178 -0
- package/src/core/init/{media_duration_updater.ts → utils/media_duration_updater.ts} +166 -84
- package/src/core/init/{rebuffering_controller.ts → utils/rebuffering_controller.ts} +247 -226
- package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/are_same_stream_events.ts +0 -0
- package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/index.ts +1 -13
- package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/refresh_scheduled_events_list.ts +1 -1
- package/src/core/init/utils/stream_events_emitter/stream_events_emitter.ts +210 -0
- package/src/core/init/{stream_events_emitter → utils/stream_events_emitter}/types.ts +1 -19
- package/src/core/init/utils/throw_on_media_error.ts +74 -0
- package/src/core/segment_buffers/README.md +23 -22
- package/src/core/segment_buffers/garbage_collector.ts +0 -1
- package/src/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.ts +2 -8
- package/src/core/segment_buffers/implementations/text/html/html_text_segment_buffer.ts +1 -1
- package/src/core/segment_buffers/implementations/text/native/native_text_segment_buffer.ts +2 -7
- package/src/core/segment_buffers/implementations/types.ts +2 -3
- package/src/core/segment_buffers/index.ts +5 -0
- package/src/core/segment_buffers/inventory/index.ts +4 -0
- package/src/core/segment_buffers/inventory/utils.ts +61 -0
- package/src/core/segment_buffers/segment_buffers_store.ts +4 -18
- package/src/core/stream/README.md +1 -1
- package/src/core/stream/adaptation/adaptation_stream.ts +332 -365
- package/src/core/stream/adaptation/get_representations_switch_strategy.ts +194 -0
- package/src/core/stream/adaptation/index.ts +2 -12
- package/src/core/stream/adaptation/types.ts +223 -0
- package/src/core/stream/index.ts +12 -2
- package/src/core/stream/orchestrator/README.md +2 -8
- package/src/core/stream/orchestrator/index.ts +2 -0
- package/src/core/stream/orchestrator/stream_orchestrator.ts +482 -325
- package/src/core/stream/period/index.ts +2 -12
- package/src/core/stream/period/period_stream.ts +296 -241
- package/src/core/stream/period/types.ts +124 -0
- package/src/core/stream/period/{get_adaptation_switch_strategy.ts → utils/get_adaptation_switch_strategy.ts} +18 -64
- package/src/core/stream/representation/README.md +2 -23
- package/src/core/stream/representation/index.ts +2 -12
- package/src/core/stream/representation/representation_stream.ts +336 -425
- package/src/core/stream/representation/types.ts +308 -0
- package/src/core/stream/representation/{append_segment_to_buffer.ts → utils/append_segment_to_buffer.ts} +11 -7
- package/src/core/stream/representation/{check_for_discontinuity.ts → utils/check_for_discontinuity.ts} +3 -3
- package/src/core/stream/representation/utils/downloading_queue.ts +592 -0
- package/src/core/stream/representation/{force_garbage_collection.ts → utils/force_garbage_collection.ts} +6 -10
- package/src/core/stream/representation/{get_buffer_status.ts → utils/get_buffer_status.ts} +5 -5
- package/src/core/stream/representation/{get_needed_segments.ts → utils/get_needed_segments.ts} +6 -7
- package/src/core/stream/representation/{get_segment_priority.ts → utils/get_segment_priority.ts} +1 -2
- package/src/core/stream/representation/utils/push_init_segment.ts +80 -0
- package/src/core/stream/representation/utils/push_media_segment.ts +113 -0
- package/src/core/stream/utils/create_reload_request.ts +69 -0
- package/src/default_config.ts +58 -127
- package/src/errors/__tests__/is_known_error.test.ts +2 -6
- package/src/errors/__tests__/network_error.test.ts +5 -17
- package/src/errors/__tests__/request_error.test.ts +0 -14
- package/src/errors/custom_loader_error.ts +0 -4
- package/src/errors/network_error.ts +0 -2
- package/src/errors/request_error.ts +2 -8
- package/src/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.ts +1 -1
- package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +7 -6
- package/src/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.ts +3 -3
- package/src/experimental/tools/createMetaplaylist/get_duration_from_manifest.ts +58 -66
- package/src/experimental/tools/createMetaplaylist/index.ts +29 -38
- package/src/features/__tests__/initialize_features.test.ts +3 -21
- package/src/features/features_object.ts +0 -2
- package/src/features/initialize_features.ts +7 -15
- package/src/features/list/__tests__/directfile.test.ts +7 -6
- package/src/features/list/directfile.ts +3 -3
- package/src/features/list/index.ts +0 -2
- package/src/features/types.ts +6 -36
- package/src/index.ts +1 -4
- package/src/manifest/__tests__/adaptation.test.ts +10 -47
- package/src/manifest/__tests__/manifest.test.ts +24 -375
- package/src/manifest/__tests__/period.test.ts +27 -24
- package/src/manifest/__tests__/update_period_in_place.test.ts +522 -57
- package/src/manifest/__tests__/update_periods.test.ts +254 -40
- package/src/manifest/adaptation.ts +47 -36
- package/src/manifest/index.ts +0 -8
- package/src/manifest/manifest.ts +16 -179
- package/src/manifest/period.ts +6 -6
- package/src/manifest/representation.ts +16 -7
- package/src/manifest/representation_index/index.ts +0 -2
- package/src/manifest/representation_index/static.ts +8 -0
- package/src/manifest/representation_index/types.ts +49 -24
- package/src/manifest/types.ts +0 -3
- package/src/manifest/update_period_in_place.ts +84 -14
- package/src/manifest/update_periods.ts +93 -33
- package/src/parsers/manifest/dash/common/indexes/base.ts +33 -38
- package/src/parsers/manifest/dash/common/indexes/get_segments_from_timeline.ts +8 -1
- package/src/parsers/manifest/dash/common/indexes/list.ts +9 -1
- package/src/parsers/manifest/dash/common/indexes/template.ts +89 -40
- package/src/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.ts +69 -3
- package/src/parsers/manifest/dash/common/infer_adaptation_type.ts +2 -8
- package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +52 -23
- package/src/parsers/manifest/dash/common/parse_mpd.ts +1 -4
- package/src/parsers/manifest/dash/common/parse_periods.ts +2 -3
- package/src/parsers/manifest/dash/common/parse_representation_index.ts +2 -6
- package/src/parsers/manifest/dash/common/parse_representations.ts +7 -3
- package/src/parsers/manifest/dash/js-parser/__tests__/parse_from_document.test.ts +0 -2
- package/src/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.ts +11 -5
- package/src/parsers/manifest/dash/js-parser/node_parsers/Representation.ts +4 -1
- package/src/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.ts +6 -0
- package/src/parsers/manifest/dash/js-parser/node_parsers/__tests__/AdaptationSet.test.ts +181 -15
- package/src/parsers/manifest/dash/js-parser/node_parsers/utils.ts +22 -2
- package/src/parsers/manifest/dash/node_parser_types.ts +7 -4
- package/src/parsers/manifest/dash/wasm-parser/rs/events.rs +14 -1
- package/src/parsers/manifest/dash/wasm-parser/rs/processor/attributes.rs +8 -4
- package/src/parsers/manifest/dash/wasm-parser/rs/utils.rs +49 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +1 -1
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.ts +3 -6
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +2 -4
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/Representation.ts +1 -2
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.ts +6 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.ts +7 -0
- package/src/parsers/manifest/dash/wasm-parser/ts/types.ts +3 -0
- package/src/parsers/manifest/local/representation_index.ts +8 -0
- package/src/parsers/manifest/metaplaylist/metaplaylist_parser.ts +8 -8
- package/src/parsers/manifest/metaplaylist/representation_index.ts +26 -5
- package/src/parsers/manifest/smooth/create_parser.ts +17 -27
- package/src/parsers/manifest/smooth/representation_index.ts +78 -220
- package/src/parsers/manifest/smooth/shared_smooth_segment_timeline.ts +241 -0
- package/src/parsers/manifest/smooth/utils/add_segment_infos.ts +7 -9
- package/src/parsers/manifest/types.ts +16 -6
- package/src/parsers/manifest/utils/__tests__/get_first_time_from_adaptations.test.ts +2 -0
- package/src/parsers/manifest/utils/__tests__/get_last_time_from_adaptation.test.ts +2 -0
- package/src/parsers/texttracks/ttml/html/create_element.ts +8 -0
- package/src/public_types.ts +525 -385
- package/src/tools/TextTrackRenderer/text_track_renderer.ts +5 -4
- package/src/transports/README.md +15 -54
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +4 -5
- package/src/transports/dash/manifest_parser.ts +4 -7
- package/src/transports/dash/pipelines.ts +1 -7
- package/src/transports/dash/segment_loader.ts +29 -24
- package/src/transports/dash/segment_parser.ts +21 -27
- package/src/transports/dash/text_loader.ts +5 -5
- package/src/transports/dash/text_parser.ts +31 -37
- package/src/transports/local/pipelines.ts +1 -11
- package/src/transports/local/segment_loader.ts +1 -3
- package/src/transports/local/segment_parser.ts +11 -10
- package/src/transports/local/text_parser.ts +23 -23
- package/src/transports/metaplaylist/pipelines.ts +43 -92
- package/{dist/_esm5.processed/utils/list_to_map.js → src/transports/smooth/is_mp4_embedded_track.ts} +7 -10
- package/src/transports/smooth/pipelines.ts +37 -196
- package/src/transports/smooth/segment_loader.ts +30 -27
- package/src/transports/smooth/utils.ts +0 -61
- package/src/transports/types.ts +97 -108
- package/src/transports/utils/__tests__/infer_segment_container.test.ts +25 -172
- package/src/transports/utils/call_custom_manifest_loader.ts +3 -5
- package/src/transports/utils/infer_segment_container.ts +7 -13
- package/src/transports/utils/parse_text_track.ts +25 -31
- package/src/typings/globals.d.ts +0 -2
- package/src/utils/__tests__/event_emitter.test.ts +1 -76
- package/src/utils/event_emitter.ts +6 -30
- package/src/utils/reference.ts +112 -169
- package/src/utils/request/xhr.ts +8 -73
- package/src/utils/retry_promise_with_backoff.ts +95 -0
- package/src/utils/sleep.ts +14 -0
- package/src/utils/sorted_list.ts +4 -0
- package/dist/_esm5.processed/compat/fullscreen.d.ts +0 -32
- package/dist/_esm5.processed/compat/fullscreen.js +0 -78
- package/dist/_esm5.processed/compat/is_offline.d.ts +0 -39
- package/dist/_esm5.processed/compat/is_offline.js +0 -43
- package/dist/_esm5.processed/compat/play.js +0 -32
- package/dist/_esm5.processed/compat/set_element_src.d.ts +0 -26
- package/dist/_esm5.processed/compat/set_element_src.js +0 -37
- package/dist/_esm5.processed/compat/when_loaded_metadata.d.ts +0 -23
- package/dist/_esm5.processed/compat/when_loaded_metadata.js +0 -33
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.d.ts +0 -263
- package/dist/_esm5.processed/core/api/tracks_management/track_choice_manager.js +0 -1056
- package/dist/_esm5.processed/core/init/content_time_boundaries_observer.d.ts +0 -45
- package/dist/_esm5.processed/core/init/content_time_boundaries_observer.js +0 -295
- package/dist/_esm5.processed/core/init/create_media_source.js +0 -107
- package/dist/_esm5.processed/core/init/end_of_stream.js +0 -74
- package/dist/_esm5.processed/core/init/events_generators.d.ts +0 -88
- package/dist/_esm5.processed/core/init/events_generators.js +0 -87
- package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +0 -81
- package/dist/_esm5.processed/core/init/initial_seek_and_play.js +0 -114
- package/dist/_esm5.processed/core/init/initialize_directfile.js +0 -120
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +0 -122
- package/dist/_esm5.processed/core/init/initialize_media_source.js +0 -201
- package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +0 -62
- package/dist/_esm5.processed/core/init/link_drm_and_content.js +0 -94
- package/dist/_esm5.processed/core/init/load_on_media_source.d.ts +0 -46
- package/dist/_esm5.processed/core/init/load_on_media_source.js +0 -124
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +0 -65
- package/dist/_esm5.processed/core/init/manifest_update_scheduler.js +0 -233
- package/dist/_esm5.processed/core/init/rebuffering_controller.d.ts +0 -81
- package/dist/_esm5.processed/core/init/rebuffering_controller.js +0 -439
- package/dist/_esm5.processed/core/init/stream_events_emitter/index.d.ts +0 -19
- package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.d.ts +0 -27
- package/dist/_esm5.processed/core/init/stream_events_emitter/stream_events_emitter.js +0 -126
- package/dist/_esm5.processed/core/init/update_playback_rate.d.ts +0 -0
- package/dist/_esm5.processed/core/init/update_playback_rate.js +0 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.d.ts +0 -67
- package/dist/_esm5.processed/core/segment_buffers/implementations/image/image_segment_buffer.js +0 -121
- package/dist/_esm5.processed/core/stream/adaptation/create_representation_estimator.d.ts +0 -47
- package/dist/_esm5.processed/core/stream/adaptation/create_representation_estimator.js +0 -71
- package/dist/_esm5.processed/core/stream/events_generators.d.ts +0 -67
- package/dist/_esm5.processed/core/stream/events_generators.js +0 -112
- package/dist/_esm5.processed/core/stream/orchestrator/active_period_emitter.d.ts +0 -53
- package/dist/_esm5.processed/core/stream/orchestrator/active_period_emitter.js +0 -124
- package/dist/_esm5.processed/core/stream/orchestrator/are_streams_complete.d.ts +0 -35
- package/dist/_esm5.processed/core/stream/orchestrator/are_streams_complete.js +0 -53
- package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.d.ts +0 -36
- package/dist/_esm5.processed/core/stream/period/create_empty_adaptation_stream.js +0 -46
- package/dist/_esm5.processed/core/stream/reload_after_switch.d.ts +0 -47
- package/dist/_esm5.processed/core/stream/reload_after_switch.js +0 -56
- package/dist/_esm5.processed/core/stream/representation/downloading_queue.js +0 -371
- package/dist/_esm5.processed/core/stream/representation/push_init_segment.js +0 -49
- package/dist/_esm5.processed/core/stream/representation/push_media_segment.js +0 -76
- package/dist/_esm5.processed/core/stream/types.d.ts +0 -437
- package/dist/_esm5.processed/core/stream/types.js +0 -16
- package/dist/_esm5.processed/features/list/bif_parser.d.ts +0 -23
- package/dist/_esm5.processed/features/list/image_buffer.d.ts +0 -23
- package/dist/_esm5.processed/features/list/image_buffer.js +0 -25
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +0 -38
- package/dist/_esm5.processed/utils/cast_to_observable.d.ts +0 -24
- package/dist/_esm5.processed/utils/cast_to_observable.js +0 -35
- package/dist/_esm5.processed/utils/concat_map_latest.d.ts +0 -23
- package/dist/_esm5.processed/utils/concat_map_latest.js +0 -48
- package/dist/_esm5.processed/utils/defer_subscriptions.d.ts +0 -79
- package/dist/_esm5.processed/utils/defer_subscriptions.js +0 -89
- package/dist/_esm5.processed/utils/filter_map.d.ts +0 -28
- package/dist/_esm5.processed/utils/filter_map.js +0 -32
- package/dist/_esm5.processed/utils/list_to_map.d.ts +0 -22
- package/dist/_esm5.processed/utils/rx-from_cancellable_promise.d.ts +0 -39
- package/dist/_esm5.processed/utils/rx-from_cancellable_promise.js +0 -63
- package/dist/_esm5.processed/utils/rx-next-tick.d.ts +0 -27
- package/dist/_esm5.processed/utils/rx-next-tick.js +0 -41
- package/dist/_esm5.processed/utils/rx-retry_with_backoff.js +0 -70
- package/dist/_esm5.processed/utils/rx-throttle.d.ts +0 -40
- package/dist/_esm5.processed/utils/rx-throttle.js +0 -47
- package/dist/_esm5.processed/utils/rx-try_catch.d.ts +0 -23
- package/dist/_esm5.processed/utils/rx-try_catch.js +0 -30
- package/dist/_esm5.processed/utils/simple_set.d.ts +0 -51
- package/dist/_esm5.processed/utils/simple_set.js +0 -57
- package/dist/_esm5.processed/utils/uniq.d.ts +0 -36
- package/dist/_esm5.processed/utils/uniq.js +0 -43
- package/scripts/report_build_sizes +0 -92
- package/src/compat/__tests__/fullscreen.test.ts +0 -286
- package/src/compat/__tests__/is_offline.test.ts +0 -65
- package/src/compat/__tests__/play.test.ts +0 -73
- package/src/compat/__tests__/set_element_src.test.ts +0 -71
- package/src/compat/__tests__/when_loaded_metadata.test.ts +0 -109
- package/src/compat/fullscreen.ts +0 -87
- package/src/compat/is_offline.ts +0 -44
- package/src/compat/play.ts +0 -37
- package/src/compat/set_element_src.ts +0 -47
- package/src/compat/when_loaded_metadata.ts +0 -40
- package/src/core/adaptive/utils/__tests__/filter_by_width.test.ts +0 -60
- package/src/core/api/tracks_management/track_choice_manager.ts +0 -1354
- package/src/core/init/content_time_boundaries_observer.ts +0 -382
- package/src/core/init/emit_loaded_event.ts +0 -71
- package/src/core/init/end_of_stream.ts +0 -104
- package/src/core/init/events_generators.ts +0 -140
- package/src/core/init/initial_seek_and_play.ts +0 -208
- package/src/core/init/initialize_directfile.ts +0 -191
- package/src/core/init/initialize_media_source.ts +0 -389
- package/src/core/init/link_drm_and_content.ts +0 -176
- package/src/core/init/load_on_media_source.ts +0 -239
- package/src/core/init/manifest_update_scheduler.ts +0 -362
- package/src/core/init/stream_events_emitter/stream_events_emitter.ts +0 -182
- package/src/core/init/throw_on_media_error.ts +0 -68
- package/src/core/init/update_playback_rate.ts +0 -0
- package/src/core/segment_buffers/implementations/image/image_segment_buffer.ts +0 -136
- package/src/core/stream/adaptation/create_representation_estimator.ts +0 -112
- package/src/core/stream/events_generators.ts +0 -217
- package/src/core/stream/orchestrator/active_period_emitter.ts +0 -146
- package/src/core/stream/orchestrator/are_streams_complete.ts +0 -70
- package/src/core/stream/period/create_empty_adaptation_stream.ts +0 -70
- package/src/core/stream/reload_after_switch.ts +0 -76
- package/src/core/stream/representation/downloading_queue.ts +0 -632
- package/src/core/stream/representation/push_init_segment.ts +0 -87
- package/src/core/stream/representation/push_media_segment.ts +0 -125
- package/src/core/stream/types.ts +0 -558
- package/src/features/list/__tests__/bif_parser.test.ts +0 -36
- package/src/features/list/__tests__/image_buffer.test.ts +0 -35
- package/src/features/list/bif_parser.ts +0 -29
- package/src/features/list/image_buffer.ts +0 -29
- package/src/transports/dash/image_pipelines.ts +0 -123
- package/src/utils/__tests__/cast_to_observable.test.ts +0 -93
- package/src/utils/__tests__/concat_map_latest.test.ts +0 -221
- package/src/utils/__tests__/defer_subscriptions.test.ts +0 -50
- package/src/utils/__tests__/filter_map.test.ts +0 -87
- package/src/utils/__tests__/list_to_map.test.ts +0 -46
- package/src/utils/__tests__/rx-throttle.test.ts +0 -252
- package/src/utils/__tests__/rx-try_catch.test.ts +0 -100
- package/src/utils/__tests__/simple_set.test.ts +0 -57
- package/src/utils/__tests__/uniq.test.ts +0 -134
- package/src/utils/cast_to_observable.ts +0 -48
- package/src/utils/concat_map_latest.ts +0 -61
- package/src/utils/defer_subscriptions.ts +0 -96
- package/src/utils/filter_map.ts +0 -43
- package/src/utils/list_to_map.ts +0 -32
- package/src/utils/rx-from_cancellable_promise.ts +0 -71
- package/src/utils/rx-next-tick.ts +0 -43
- package/src/utils/rx-retry_with_backoff.ts +0 -101
- package/src/utils/rx-throttle.ts +0 -84
- package/src/utils/rx-try_catch.ts +0 -37
- package/src/utils/simple_set.ts +0 -67
- package/src/utils/uniq.ts +0 -49
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,122 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## v4.0.0-beta.0 (2023-01-27)
|
|
4
|
+
|
|
5
|
+
### Changes
|
|
6
|
+
|
|
7
|
+
- Create `"FREEZING"` player state for cases where the playback position is currently not advancing due to an unknown reason, to separate it from regular `"BUFFERING"`. [#1146]
|
|
8
|
+
- The `RELOADING` player state (gettable through the `getPlayerState` and `playerStateChange` API) can now happen at any time to unlock playback.
|
|
9
|
+
- Remove bitrate API: `getAvailableVideoBitrates`, `getAvailableAudioBitrates`, `setAudioBitrate`, `setVideoBitrate`, `getAudioBitrate`, `getVideoBitrate` in profit of the Representations lock APIs [#1144]
|
|
10
|
+
- Remove max bitrate API: `setMaxVideoBitrate`, `setMaxAudioBitrate`, `getMaxVideoBitrate` and `getMaxAudioBitrate` methods as well as the `maxVideoBitrate` and `maxAudioBitrate` options in profit of the Representations lock APIs
|
|
11
|
+
- Remove min bitrate API: `setMinVideoBitrate`, `setMinAudioBitrate`, `getMinVideoBitrate` and `getMinAudioBitrate` methods as well as the `minVideoBitrate` and `minAudioBitrate` options in profit of the Representations lock APIs
|
|
12
|
+
- Remove track preferences API (methods: `getPreferredAudioTracks`, `getPreferredVideoTracks`, `setPreferredAudioTracks` and `setPreferredVideoTracks`, types: `IAudioTrackPreference`, `ITextTrackPreference` and `IVideoTrackPreference`) in profit of the new tracks API
|
|
13
|
+
- Remove `getManualVideoBitrate` and `getManualAudioBitrate` in profit of the new Representations lock APIs
|
|
14
|
+
- Replace `initialAudioBitrate` and `initialVideoBitrate` constructor options with a single `baseBandwidth` option, which better translates what this option is actually doing and allows for future optimizations on our side. [#1155]
|
|
15
|
+
- Rename `audioTrackSwitchingMode` loadVideo option into `defaultAudioTrackSwitchingMode` [#1030]
|
|
16
|
+
- Remove `manualBitrateSwitchingMode` loadVideo option to instead rely on the `switchingMode` property of each `lockVideoRepresentations` and `lockAudioRepresentations` calls. [#1030]
|
|
17
|
+
- Remove `audioBitrateChange` and `videoBitrateChange` events in profit of the new `audioRepresentationChange` and `videoRepresentationChange` events
|
|
18
|
+
- Remove `availableAudioBitratesChange` and `availableVideoBitratesChange` events. Those are less needed with the new Representations lock API and can be mostly replicated through the `audioTrackChange` and `videoTrackChange` events
|
|
19
|
+
- "Flatten" the `transportOptions` loadVideo options by putting all its inner properties directly at the top level of loadVideo options, to simplify its documentation and discoverability [#1149]
|
|
20
|
+
- Remove `limitVideoWidth` constructor option in profit of the more configurable `videoResolutionLimit` constructor option
|
|
21
|
+
- Rename `networkConfig` into `requestConfig` and re-organize its inner properties to pave the way for future request-related APIs.
|
|
22
|
+
- Remove `stopAtEnd` `loadVideo` option and don't automatically stop when reaching the end by default. This behavior can be counter-intuitive and can be very easily implemented by the application.
|
|
23
|
+
- Remove `decipherabilityUpdate` event as it appeared to be not easily exploitable and exposed internal logic too much [#1168]
|
|
24
|
+
- Remove `getUrl` method in profit of the more powerful `getContentUrls`
|
|
25
|
+
- Impossibility to play the content due to unsupported audio and/or video tracks now triggers an error with the `MANIFEST_INCOMPATIBLE_CODECS_ERROR` instead of `MANIFEST_PARSE_ERROR`
|
|
26
|
+
- Remove methods: `getManifest`, `getCurrentAdaptations` and `getCurrentRepresentations`, as they reveal the RxPlayer's internals too much
|
|
27
|
+
- The `"smooth"` transport now needs to be communicated the URL of the Manifest directly (previously, it was possible to redirect it to a XML or JSON file first due to Canal+ legacy reasons).
|
|
28
|
+
- Remove the `supplementaryTextTracks` loadVideo option. You can use the `TextTrackRenderer` tool if you wish to diplay external subtitles on top of your content.
|
|
29
|
+
- Rename `maximumBufferTime` in `positionUpdate` events to `maximumPosition`
|
|
30
|
+
- Remove `getVideoPlayedTime` and `getVideoLoadedTime` methods. Their names was very confusing and can be re-implemented relatively easily using the media element's buffered property.
|
|
31
|
+
- Rename `getVideoDuration` to `getMediaDuration`, to avoid confusion with the video track's duration.
|
|
32
|
+
- Rename `getVideoBufferGap` to `getCurrentBufferGap, to avoid confusion with the "buffer gap" specific to the video track.
|
|
33
|
+
- Remove image-related API: `supplementaryImageTracks` `loadVideo` option, `imageTrackUpdate` event, `getImageTrackData` method. Those are better handled by an application. The `parseBifThumbnails` tool is still available.
|
|
34
|
+
- Replace `keySystems[].licenseStorage` `keySystems` option (for a `loadVideo` call) by the better-named `persistentLicenseConfig`. The `persistentLicense` boolean (also a `keySystems` option) has also been removed because it was redundant with it) [#1147]
|
|
35
|
+
- Remove `persistentStateRequired` API, in profit of the more powerful `persistentState` API [#1148]
|
|
36
|
+
- Remove `distinctiveIdentifierRequired` API, in profit of the more powerful `distinctiveIdentifier` API [#1148]
|
|
37
|
+
- Remove `keySystems[].fallbackOn` `loadVideo` property as it's now replaced by the more powerful `keySystems[].onKeyOutputRestricted` and `keySystems[].onKeyInternalError` properties.
|
|
38
|
+
- Remove `keySystems[].onKeyStatusesChange` API as it seems to never be used [#1148]
|
|
39
|
+
- Remove `keySystems[].throwOnLicenseExpiration` API as it can now be fully replaced by the `keySystems[].onKeyExpiration` option
|
|
40
|
+
- Remove `aggressiveMode` from the `transportOptions` `loadVideo` option
|
|
41
|
+
- Remove deprecated `throttleWhenHidden` player option in profit of `throttleVideoBitrateWhenHidden`
|
|
42
|
+
- Change payload of `periodChange` events, so they emit only core properties related to a `Period`.
|
|
43
|
+
- Change arguments given to a `transportOptions.segmentLoader` function (the `loadVideo` option): it now doesn't give the full `Manifest`, `Period`, `Adaptation`, `Representation` and `ISegment` structures in arguments but only core properties from it [#995]
|
|
44
|
+
- Custom `manifestLoader` function added to what was previously the `loadVideo`'s `transportOptions` option now set an object as argument (with an `url`property), to let us bring improvements on it in the future [#995]
|
|
45
|
+
- A Representation's `frameRate` is now always a number - in terms of frame per seconds - instead of a string.
|
|
46
|
+
- Update the arguments of the `representationFilter` API
|
|
47
|
+
- `Representations` (in methods: `getAvailableVideoTracks`, `getVideoTrack`, `representationFilter`, `getAvailableAudioTracks`, `getAudioTrack` and events: `audioTrackChange` and `videoTrackChange`) can have an `undefined` bitrate
|
|
48
|
+
- Remove deprecated fullscreen related APIs (methods: `isFullscreen`, `setFullscreen`, `exitFullscreen`, event: `fullscreenChange`) as a a UI is much more adapted to that task and can also bring with it things like a progress bar or HTML text tracks
|
|
49
|
+
- Remove deprecated `getNativeTextTrack` method. If advanced features are wanted, it's better to just use the HTML text track API
|
|
50
|
+
- Remove deprecated `nativeTextTracksChange` event. Same reason than for `getNativeTextTrack`
|
|
51
|
+
- Remove deprecated `hideNativeSubtitles` from `loadVideo` options. Same reason than for `getNativeTextTrack`
|
|
52
|
+
- Remove `xhr` property from a `NetworkError`. Doing so stop us from using the fetch API
|
|
53
|
+
- Remove deprecated `defaultAudioTrack` and `defaultTextTrack`in profit of new track APIs
|
|
54
|
+
- Remove `bitrateEstimationChange` event as it is poorly understood (it's not always close to the expected bandwidth) and has a very complex relationship with the chosen quality.
|
|
55
|
+
- Remove the notion of environment variables linked to personalized builds (e.g. RXP_DASH) in profit of the minimal RxPlayer.
|
|
56
|
+
- Rename `IPersistentSessionStorage` type to `IPersistentLicenseConfig` [#1147]
|
|
57
|
+
- Remove undocumented `audioRobustnesses` and `videoRobustnesses` properties of the `keySystems` option of `loadVideo` calls, as more powerful solutions now exist: respectively `audioCapabilitiesConfig` and `videoCapabilitiesConfig` [#1148]
|
|
58
|
+
- Remove public types `ISupplementaryTextTrackOption` and `ISupplementaryImageTrackOption`. Those are the types respectively for `supplementaryTextTracks` and `supplementaryImageTracks` which have been removed
|
|
59
|
+
- Remove public types `IBitrateEstimate` as no API depend on it anymore.
|
|
60
|
+
- Remove public types `IManifest`, `IPeriod`, `IAdaptation`, `IRepresentation`, `IRepresentationInfos`, `IBifThumbnail`, `IBifObject` and `IExposedSegment` as no API depend on them anymore.
|
|
61
|
+
- Remove public types `IDefaultAudioTrackOption` and `IDefaultTextTrackOption`. Those are the types respectively for `defaultAudioTrack` and `defaultTextTrack` `loadVideo` options which have been removed
|
|
62
|
+
- Remove public types `IAudioTrackPreference`, `ITextTrackPreference` and `IVideoTrackPreference` as the corresponding API do not exist anymore.
|
|
63
|
+
- Stop officially supporting the Internet Explorer 11 browser
|
|
64
|
+
|
|
65
|
+
### Features
|
|
66
|
+
|
|
67
|
+
- `setAudioTrack`, `setVideoTrack` and `setTextTrack` now may take an object in argument, with the track's id set as a `trackId` property, to allow new features
|
|
68
|
+
- Add `switchingMode` optional property to `setVideoTrack` and `setAudioTrack`, to configure the way in which the RxPlayer switches between the previous and new track
|
|
69
|
+
- Add optional `periodId` property to `setAudioTrack`, `setVideoTrack` and `setTextTrack`, to allow setting the track of another, future or past, Period.
|
|
70
|
+
- `getAvailableAudioTracks`, `getAvailableTextTracks`, `getAvailableVideoTracks`, `getAudioTrack`, `getTextTrack` and `getVideoTrack` can now optionally take a `periodId` argument to retrieve track information on a specific Period, different than the current one.
|
|
71
|
+
- `disableTextTrack`, and`disableVideoTrack` can now optionally take a `periodId` argument to disable a track for a specific Period
|
|
72
|
+
- Add optional `lockedRepresentations` property to `setAudioTrack` and `setVideoTrack`, to only filter some allowed Representations (i.e. qualities) after switching to the wanted track.
|
|
73
|
+
- Add `getCurrentPeriod` method to retrieve information on the Period currently played
|
|
74
|
+
- Add `getAvailablePeriods` method to retrieve information on all Periods on which a track or Representation choice can be made
|
|
75
|
+
- Add `lockVideoRepresentations`, `lockAudioRepresentations`, `getLockedVideoRepresentations`, `getLockedAudioRepresentations`, `unlockVideoRepresentations` and `unlockAudioRepresentations` methods to allow a complex selection of Representations that are currently allowed to play.
|
|
76
|
+
- Add `getVideoRepresentation` and `getAudioRepresentation` method to retrieve information on the currently loaded representations [#1144]
|
|
77
|
+
- Add `audioRepresentationChange` and `videoRepresentationChange` events to be notified when the currently-loaded Representation for the current Period changes.
|
|
78
|
+
- Add `updateContentUrls` API, allowing to update the Manifest's URL during playback [#1182]
|
|
79
|
+
- DASH: implement forced-subtitles, adding the `forced` property to the audio tracks API and selecting by default a forced text track linked to the audio track's language if present [#1187]
|
|
80
|
+
- Add `getContentUrls` allowing to retrieve the one or several known URLs through which the current Manifest or content is reachable.
|
|
81
|
+
- Add `videoResolutionLimit` constructor option allowing to automatically limit a video Representation's resolution.
|
|
82
|
+
- Add `newAvailablePeriods` event to signal new Period on which a track and/or Representation choice can be made
|
|
83
|
+
- Add `brokenRepresentationsLock` event for when a Representations lock could not be respected anymore
|
|
84
|
+
- Add `trackUpdate` event for when a track has been updated for any type and Period
|
|
85
|
+
- Add `distinctiveIdentifier` property in the `keySystems` option (given to the `loadVideo` method) to have full control over the MediaKeySystemConfiguration of the same name in the chosen key system [#1148]
|
|
86
|
+
- Add `persistentState` property in the `keySystems` option (given to the `loadVideo` method) to have full control over the MediaKeySystemConfiguration of the same name in the chosen key system [#1148]
|
|
87
|
+
- Add `keySystems[].onKeyOutputRestricted` and `keySystems[].onKeyInternalError` properties to configure the RxPlayer's behavior when a key switches to the status respectively `"output-restricted"` and `"internal-error"`
|
|
88
|
+
- Add `audioCapabilitiesConfig` and `videoCapabilitiesConfig` properties in the `keySystems` option (given to the `loadVideo` method) to allow advanced configuration of respectively the "audioCapabilities" and "videoCapabilities" in the asked MediaKeySystemConfiguration [#1148]
|
|
89
|
+
- Add `ISegmentLoaderContext` public type for the first argument of the `segmentLoader` API
|
|
90
|
+
- Add `IRepresentationFilterRepresentation` public type for the first argument of the `representationFilter` API
|
|
91
|
+
- Add `IRepresentationContext` public type for the second argument of the `representationFilter` API
|
|
92
|
+
- Add `IManifestLoaderInfo` public type for the first argument of the `manifestLoader` API
|
|
93
|
+
- Add `IPeriodChangeEvent` public type to define the properties send through a `periodChange` event
|
|
94
|
+
- Add `IPeriod` public type to define a Period object returned by methods like `getAvailablePeriods` or `getCurrentPeriod`
|
|
95
|
+
- Add `IVideoTrackSwitchingMode` public type to define the type of the `switchingMode` property optionally given to `setAudioTrack`
|
|
96
|
+
- Add `IAudioRepresentationsSwitchingMode` public type to define the type of the `switchingMode` property optionally given to `lockAudioRepresentations`
|
|
97
|
+
- Add `IVideoRepresentationsSwitchingMode` public type to define the type of the `switchingMode` property optionally given to `lockAudioRepresentations`
|
|
98
|
+
- Add `IBrokenRepresentationsLockContext` public type to define the type sent as a payload of the `brokenRepresentationsLock` event
|
|
99
|
+
- Add `ITrackUpdateEventPayload` public type to define the type sent as a payload of the `trackUpdate` event
|
|
100
|
+
- Add `ILockedVideoRepresentationsSettings` public type to define the object that should be given to the new `lockVideoRepresentation` method
|
|
101
|
+
- Add `ILockedAudioRepresentationsSettings` public type to define the object that should be given to the new `lockAudioRepresentation` method
|
|
102
|
+
- Add `IAudioTrackSetting` public type to define the object that may be given to the `setAudioTrack` method
|
|
103
|
+
- Add `IVideoTrackSetting` public type to define the object that may be given to the `setVideoTrack` method
|
|
104
|
+
- Add `ITextTrackSetting` public type to define the object that may be given to the `setTextTrack` method
|
|
105
|
+
|
|
106
|
+
### Bug fixes
|
|
107
|
+
|
|
108
|
+
- Fix segment requesting error when playing a DASH content without an url and without BaseURL elements [#1192]
|
|
109
|
+
- API: Stop sending events if the content is stopped due to a side-effect of one of the event handler [#1197]
|
|
110
|
+
- text-tracks/ttml: fix inconsistent line spacing when resizing the `textTrackElement` [#1191]
|
|
111
|
+
- DRM: Fix race condition leading to a JS error instead of a `NO_PLAYABLE_REPRESENTATION` [#1201]
|
|
112
|
+
- DRM/Compat: Renew MediaKeys at each `loadVideo` on all WebOS (LG TV) platforms to work around issues [#1188]
|
|
113
|
+
|
|
114
|
+
### Other improvements
|
|
115
|
+
|
|
116
|
+
- Remove dependency to RxJS, improving the debugging experience and preventing some uncaught Error from being thrown
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
## v3.29.0 (2022-11-16)
|
|
4
120
|
|
|
5
121
|
### Features
|
|
6
122
|
|
|
@@ -12,7 +128,7 @@
|
|
|
12
128
|
|
|
13
129
|
### Deprecated
|
|
14
130
|
|
|
15
|
-
- DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this boolean can be replaced with more
|
|
131
|
+
- DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this boolean can be replaced with more customizability by the new `keySystems[].onKeyExpiration` `loadVideo` option [#1157]
|
|
16
132
|
|
|
17
133
|
### Bug fixes
|
|
18
134
|
|
package/FILES.md
CHANGED
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.0.0-
|
|
1
|
+
4.0.0-beta.0
|
|
@@ -23,11 +23,9 @@ import { ICompatTextTrack } from "./browser_compatibility_types";
|
|
|
23
23
|
* undefined if no trackElement was added.
|
|
24
24
|
*
|
|
25
25
|
* @param {HTMLMediaElement} mediaElement
|
|
26
|
-
* @param {Boolean} hidden - If `true`, the text track will be hidden by
|
|
27
|
-
* default. If `false`, the text track will be directly showing.
|
|
28
26
|
* @returns {Object}
|
|
29
27
|
*/
|
|
30
|
-
export default function addTextTrack(mediaElement: HTMLMediaElement
|
|
28
|
+
export default function addTextTrack(mediaElement: HTMLMediaElement): {
|
|
31
29
|
track: ICompatTextTrack;
|
|
32
30
|
trackElement: HTMLTrackElement | undefined;
|
|
33
31
|
};
|
|
@@ -23,12 +23,10 @@ import { isIEOrEdge } from "./browser_detection";
|
|
|
23
23
|
* undefined if no trackElement was added.
|
|
24
24
|
*
|
|
25
25
|
* @param {HTMLMediaElement} mediaElement
|
|
26
|
-
* @param {Boolean} hidden - If `true`, the text track will be hidden by
|
|
27
|
-
* default. If `false`, the text track will be directly showing.
|
|
28
26
|
* @returns {Object}
|
|
29
27
|
*/
|
|
30
|
-
export default function addTextTrack(mediaElement
|
|
31
|
-
var _a
|
|
28
|
+
export default function addTextTrack(mediaElement) {
|
|
29
|
+
var _a;
|
|
32
30
|
var track;
|
|
33
31
|
var trackElement;
|
|
34
32
|
var kind = "subtitles";
|
|
@@ -36,15 +34,14 @@ export default function addTextTrack(mediaElement, hidden) {
|
|
|
36
34
|
var tracksLength = mediaElement.textTracks.length;
|
|
37
35
|
track = (tracksLength > 0 ? mediaElement.textTracks[tracksLength - 1] :
|
|
38
36
|
mediaElement.addTextTrack(kind));
|
|
39
|
-
track.mode =
|
|
40
|
-
((_b = track.SHOWING) !== null && _b !== void 0 ? _b : "showing");
|
|
37
|
+
track.mode = (_a = track.SHOWING) !== null && _a !== void 0 ? _a : "showing";
|
|
41
38
|
}
|
|
42
39
|
else {
|
|
43
40
|
trackElement = document.createElement("track");
|
|
44
41
|
mediaElement.appendChild(trackElement);
|
|
45
42
|
track = trackElement.track;
|
|
46
43
|
trackElement.kind = kind;
|
|
47
|
-
track.mode =
|
|
44
|
+
track.mode = "showing";
|
|
48
45
|
}
|
|
49
46
|
return { track: track, trackElement: trackElement };
|
|
50
47
|
}
|
|
@@ -22,7 +22,7 @@ interface ICompatMediaKeysConstructor {
|
|
|
22
22
|
* Browser implementation of a VTTCue constructor.
|
|
23
23
|
* TODO open TypeScript issue about it?
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
type ICompatVTTCueConstructor = new (start: number, end: number, cueText: string) => ICompatVTTCue;
|
|
26
26
|
/** Browser implementation for a single VTTCue. */
|
|
27
27
|
interface ICompatVTTCue {
|
|
28
28
|
align: string;
|
|
@@ -52,15 +52,8 @@ interface ICompatTextTrack extends TextTrack {
|
|
|
52
52
|
* functions for some "old" browsers.
|
|
53
53
|
*/
|
|
54
54
|
interface ICompatDocument extends Document {
|
|
55
|
-
fullscreenElement: Element | null;
|
|
56
|
-
mozCancelFullScreen?: () => void;
|
|
57
|
-
mozFullScreenElement?: HTMLElement;
|
|
58
55
|
mozHidden?: boolean;
|
|
59
|
-
msExitFullscreen?: () => void;
|
|
60
|
-
msFullscreenElement?: Element | null;
|
|
61
56
|
msHidden?: boolean;
|
|
62
|
-
webkitExitFullscreen: () => void;
|
|
63
|
-
webkitFullscreenElement: Element | null;
|
|
64
57
|
webkitHidden?: boolean;
|
|
65
58
|
}
|
|
66
59
|
/**
|
|
@@ -35,11 +35,16 @@ var isSamsungBrowser = !isNode &&
|
|
|
35
35
|
var isTizen = !isNode &&
|
|
36
36
|
/Tizen/.test(navigator.userAgent);
|
|
37
37
|
var isWebOs = !isNode &&
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
navigator.userAgent.indexOf("Web0S") >= 0;
|
|
39
|
+
// Inspired form: http://webostv.developer.lge.com/discover/specifications/web-engine/
|
|
40
|
+
// Note: even that page doesn't correspond to what we've actually seen in the
|
|
41
|
+
// wild
|
|
42
|
+
var isWebOs2021 = isWebOs &&
|
|
43
|
+
(/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent) ||
|
|
44
|
+
/[Cc]hr[o0]me\/79/.test(navigator.userAgent));
|
|
45
|
+
var isWebOs2022 = isWebOs &&
|
|
46
|
+
(/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent) ||
|
|
47
|
+
/[Cc]hr[o0]me\/87/.test(navigator.userAgent));
|
|
43
48
|
/** `true` on Safari on a PC platform (i.e. not iPhone / iPad etc.) */
|
|
44
49
|
var isSafariDesktop = !isNode && (Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor") >= 0 ||
|
|
45
50
|
((_b = (_a = window.safari) === null || _a === void 0 ? void 0 : _a.pushNotification) === null || _b === void 0 ? void 0 : _b.toString()) ===
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* This should usually be the case but we found rare devices where this would
|
|
6
6
|
* cause problem:
|
|
7
|
-
* - (2022-
|
|
8
|
-
* when loading a content already-loaded on the
|
|
7
|
+
* - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
|
|
8
|
+
* rebuffered indefinitely when loading a content already-loaded on the
|
|
9
|
+
* HTMLMediaElement.
|
|
9
10
|
*
|
|
10
11
|
* @returns {boolean}
|
|
11
12
|
*/
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isWebOs } from "./browser_detection";
|
|
2
2
|
/**
|
|
3
3
|
* Returns `true` if a `MediaKeys` instance (the `Encrypted Media Extension`
|
|
4
4
|
* concept) can be reused between contents.
|
|
5
5
|
*
|
|
6
6
|
* This should usually be the case but we found rare devices where this would
|
|
7
7
|
* cause problem:
|
|
8
|
-
* - (2022-
|
|
9
|
-
* when loading a content already-loaded on the
|
|
8
|
+
* - (2022-11-21): WebOS (LG TVs), for some encrypted contents, just
|
|
9
|
+
* rebuffered indefinitely when loading a content already-loaded on the
|
|
10
|
+
* HTMLMediaElement.
|
|
10
11
|
*
|
|
11
12
|
* @returns {boolean}
|
|
12
13
|
*/
|
|
13
14
|
export default function canReuseMediaKeys() {
|
|
14
|
-
return !
|
|
15
|
+
return !isWebOs;
|
|
15
16
|
}
|
|
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
28
28
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
29
|
function step(op) {
|
|
30
30
|
if (f) throw new TypeError("Generator is already executing.");
|
|
31
|
-
while (_) try {
|
|
31
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
32
32
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
33
33
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
34
34
|
switch (op[0]) {
|
|
@@ -28,8 +28,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
28
28
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
29
29
|
};
|
|
30
30
|
})();
|
|
31
|
-
import { merge as observableMerge, Subject, takeUntil, } from "rxjs";
|
|
32
31
|
import EventEmitter from "../../../utils/event_emitter";
|
|
32
|
+
import TaskCanceller from "../../../utils/task_canceller";
|
|
33
33
|
import * as events from "../../event_listeners";
|
|
34
34
|
import { MSMediaKeysConstructor, } from "./ms_media_keys_constructor";
|
|
35
35
|
var IE11MediaKeySession = /** @class */ (function (_super) {
|
|
@@ -39,9 +39,9 @@ var IE11MediaKeySession = /** @class */ (function (_super) {
|
|
|
39
39
|
_this.expiration = NaN;
|
|
40
40
|
_this.keyStatuses = new Map();
|
|
41
41
|
_this._mk = mk;
|
|
42
|
-
_this.
|
|
42
|
+
_this._sessionClosingCanceller = new TaskCanceller();
|
|
43
43
|
_this.closed = new Promise(function (resolve) {
|
|
44
|
-
_this.
|
|
44
|
+
_this._sessionClosingCanceller.signal.register(function () { return resolve(); });
|
|
45
45
|
});
|
|
46
46
|
_this.update = function (license) {
|
|
47
47
|
return new Promise(function (resolve, reject) {
|
|
@@ -65,8 +65,18 @@ var IE11MediaKeySession = /** @class */ (function (_super) {
|
|
|
65
65
|
initData instanceof ArrayBuffer ? new Uint8Array(initData) :
|
|
66
66
|
new Uint8Array(initData.buffer);
|
|
67
67
|
_this._ss = _this._mk.createSession("video/mp4", initDataU8);
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
events.onKeyMessage(_this._ss, function (evt) {
|
|
69
|
+
var _a;
|
|
70
|
+
_this.trigger((_a = evt.type) !== null && _a !== void 0 ? _a : "message", evt);
|
|
71
|
+
}, _this._sessionClosingCanceller.signal);
|
|
72
|
+
events.onKeyAdded(_this._ss, function (evt) {
|
|
73
|
+
var _a;
|
|
74
|
+
_this.trigger((_a = evt.type) !== null && _a !== void 0 ? _a : "keyadded", evt);
|
|
75
|
+
}, _this._sessionClosingCanceller.signal);
|
|
76
|
+
events.onKeyError(_this._ss, function (evt) {
|
|
77
|
+
var _a;
|
|
78
|
+
_this.trigger((_a = evt.type) !== null && _a !== void 0 ? _a : "keyerror", evt);
|
|
79
|
+
}, _this._sessionClosingCanceller.signal);
|
|
70
80
|
resolve();
|
|
71
81
|
});
|
|
72
82
|
};
|
|
@@ -77,8 +87,7 @@ var IE11MediaKeySession = /** @class */ (function (_super) {
|
|
|
77
87
|
_this._ss.close();
|
|
78
88
|
_this._ss = undefined;
|
|
79
89
|
}
|
|
80
|
-
_this.
|
|
81
|
-
_this._closeSession$.complete();
|
|
90
|
+
_this._sessionClosingCanceller.cancel();
|
|
82
91
|
resolve();
|
|
83
92
|
});
|
|
84
93
|
};
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import CustomMediaKeySystemAccess from "./../custom_key_system_access";
|
|
17
17
|
import { ICustomMediaKeys, ICustomMediaKeySession } from "./types";
|
|
18
18
|
/** Generic implementation of the navigator.requestMediaKeySystemAccess API. */
|
|
19
|
-
|
|
19
|
+
type ICompatRequestMediaKeySystemAccessFn = (keyType: string, config: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess | CustomMediaKeySystemAccess>;
|
|
20
20
|
declare let requestMediaKeySystemAccess: ICompatRequestMediaKeySystemAccessFn | null;
|
|
21
21
|
/**
|
|
22
22
|
* Set the given MediaKeys on the given HTMLMediaElement.
|
package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
type IWebKitMediaKeys = unknown;
|
|
17
17
|
interface IWebKitMediaKeysConstructor {
|
|
18
18
|
new (keySystem: string): IWebKitMediaKeys;
|
|
19
19
|
isTypeSupported: (keyType: string) => boolean;
|
|
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
28
28
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
29
|
function step(op) {
|
|
30
30
|
if (f) throw new TypeError("Generator is already executing.");
|
|
31
|
-
while (_) try {
|
|
31
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
32
32
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
33
33
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
34
34
|
switch (op[0]) {
|
|
@@ -13,11 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
/**
|
|
17
|
-
* This file provides browser-agnostic event listeners under the form of
|
|
18
|
-
* RxJS Observables
|
|
19
|
-
*/
|
|
20
|
-
import { Observable } from "rxjs";
|
|
21
16
|
import { IEventEmitter } from "../utils/event_emitter";
|
|
22
17
|
import { IReadOnlySharedReference } from "../utils/reference";
|
|
23
18
|
import { CancellationSignal } from "../utils/task_canceller";
|
|
@@ -26,16 +21,13 @@ export interface IEventEmitterLike {
|
|
|
26
21
|
addEventListener: (eventName: string, handler: () => void) => void;
|
|
27
22
|
removeEventListener: (eventName: string, handler: () => void) => void;
|
|
28
23
|
}
|
|
29
|
-
export
|
|
24
|
+
export type IEventTargetLike = HTMLElement | IEventEmitterLike | IEventEmitter<unknown>;
|
|
30
25
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* @
|
|
35
|
-
* resources allocated to update this value.
|
|
36
|
-
* @returns {Object}
|
|
26
|
+
* Get video width from Picture-in-Picture window
|
|
27
|
+
* @param {HTMLMediaElement} mediaElement
|
|
28
|
+
* @param {Object} pipWindow
|
|
29
|
+
* @returns {number}
|
|
37
30
|
*/
|
|
38
|
-
declare function getPageActivityRef(stopListening: CancellationSignal): IReadOnlySharedReference<boolean>;
|
|
39
31
|
export interface IPictureInPictureEvent {
|
|
40
32
|
isEnabled: boolean;
|
|
41
33
|
pipWindow: ICompatPictureInPictureWindow | null;
|
|
@@ -44,7 +36,7 @@ export interface IPictureInPictureEvent {
|
|
|
44
36
|
* Emit when video enters and leaves Picture-In-Picture mode.
|
|
45
37
|
* @param {HTMLMediaElement} elt
|
|
46
38
|
* @param {Object} stopListening
|
|
47
|
-
* @returns {
|
|
39
|
+
* @returns {Object}
|
|
48
40
|
*/
|
|
49
41
|
declare function getPictureOnPictureStateRef(elt: HTMLMediaElement, stopListening: CancellationSignal): IReadOnlySharedReference<IPictureInPictureEvent>;
|
|
50
42
|
/**
|
|
@@ -55,116 +47,108 @@ declare function getPictureOnPictureStateRef(elt: HTMLMediaElement, stopListenin
|
|
|
55
47
|
* @param {Object} pipStatus
|
|
56
48
|
* @param {Object} stopListening - `CancellationSignal` allowing to free the
|
|
57
49
|
* resources reserved to listen to video visibility change.
|
|
58
|
-
* @returns {
|
|
50
|
+
* @returns {Object}
|
|
59
51
|
*/
|
|
60
52
|
declare function getVideoVisibilityRef(pipStatus: IReadOnlySharedReference<IPictureInPictureEvent>, stopListening: CancellationSignal): IReadOnlySharedReference<boolean>;
|
|
61
53
|
/**
|
|
62
|
-
* Get video width
|
|
63
|
-
* when Picture-in-Picture is activated.
|
|
64
|
-
* @param {HTMLMediaElement} mediaElement
|
|
65
|
-
* @param {Object} pipStatusRef
|
|
54
|
+
* Get video width and height from the screen dimensions.
|
|
66
55
|
* @param {Object} stopListening
|
|
67
56
|
* @returns {Object}
|
|
68
57
|
*/
|
|
69
|
-
declare function
|
|
58
|
+
declare function getScreenResolutionRef(stopListening: CancellationSignal): IReadOnlySharedReference<{
|
|
59
|
+
width: number | undefined;
|
|
60
|
+
height: number | undefined;
|
|
61
|
+
pixelRatio: number;
|
|
62
|
+
}>;
|
|
70
63
|
/**
|
|
64
|
+
* Get video width and height from HTML media element, or video estimated
|
|
65
|
+
* dimensions when Picture-in-Picture is activated.
|
|
71
66
|
* @param {HTMLMediaElement} mediaElement
|
|
72
|
-
* @
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* @param {HTMLMediaElement} mediaElement
|
|
77
|
-
* @returns {Observable}
|
|
78
|
-
*/
|
|
79
|
-
declare const onSeeking$: (element: IEventTargetLike) => Observable<Event>;
|
|
80
|
-
/**
|
|
81
|
-
* @param {HTMLMediaElement} mediaElement
|
|
82
|
-
* @returns {Observable}
|
|
67
|
+
* @param {Object} pipStatusRef
|
|
68
|
+
* @param {Object} stopListening
|
|
69
|
+
* @returns {Object}
|
|
83
70
|
*/
|
|
84
|
-
declare
|
|
71
|
+
declare function getElementResolutionRef(mediaElement: HTMLMediaElement, pipStatusRef: IReadOnlySharedReference<IPictureInPictureEvent>, stopListening: CancellationSignal): IReadOnlySharedReference<{
|
|
72
|
+
width: number | undefined;
|
|
73
|
+
height: number | undefined;
|
|
74
|
+
pixelRatio: number;
|
|
75
|
+
}>;
|
|
85
76
|
/**
|
|
86
77
|
* @param {HTMLMediaElement} mediaElement
|
|
87
|
-
* @returns {Observable}
|
|
88
78
|
*/
|
|
89
|
-
declare const
|
|
79
|
+
declare const onLoadedMetadata: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
90
80
|
/**
|
|
91
81
|
* @param {HTMLMediaElement} mediaElement
|
|
92
|
-
* @returns {Observable}
|
|
93
82
|
*/
|
|
94
|
-
declare const onTimeUpdate
|
|
83
|
+
declare const onTimeUpdate: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
95
84
|
/**
|
|
96
|
-
* @param {
|
|
97
|
-
* @returns {Observable}
|
|
85
|
+
* @param {TextTrackList} mediaElement
|
|
98
86
|
*/
|
|
99
|
-
declare const
|
|
87
|
+
declare const onTextTrackAdded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
100
88
|
/**
|
|
101
|
-
* @param {
|
|
102
|
-
* @returns {Observable}
|
|
89
|
+
* @param {TextTrackList} textTrackList
|
|
103
90
|
*/
|
|
104
|
-
declare const
|
|
91
|
+
declare const onTextTrackRemoved: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
105
92
|
/**
|
|
106
93
|
* @param {MediaSource} mediaSource
|
|
107
|
-
* @
|
|
94
|
+
* @param {Function} listener
|
|
95
|
+
* @param {Object} cancelSignal
|
|
108
96
|
*/
|
|
109
|
-
declare const onSourceOpen
|
|
97
|
+
declare const onSourceOpen: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
110
98
|
/**
|
|
111
99
|
* @param {MediaSource} mediaSource
|
|
112
|
-
* @
|
|
100
|
+
* @param {Function} listener
|
|
101
|
+
* @param {Object} cancelSignal
|
|
113
102
|
*/
|
|
114
|
-
declare const onSourceClose
|
|
103
|
+
declare const onSourceClose: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
115
104
|
/**
|
|
116
105
|
* @param {MediaSource} mediaSource
|
|
117
|
-
* @
|
|
106
|
+
* @param {Function} listener
|
|
107
|
+
* @param {Object} cancelSignal
|
|
118
108
|
*/
|
|
119
|
-
declare const onSourceEnded
|
|
109
|
+
declare const onSourceEnded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
120
110
|
/**
|
|
121
|
-
* @param {
|
|
122
|
-
* @
|
|
111
|
+
* @param {MediaSource} mediaSource
|
|
112
|
+
* @param {Function} listener
|
|
113
|
+
* @param {Object} cancelSignal
|
|
123
114
|
*/
|
|
124
|
-
declare const
|
|
115
|
+
declare const onSourceBufferUpdate: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
125
116
|
/**
|
|
126
|
-
* @param {
|
|
127
|
-
* @
|
|
117
|
+
* @param {SourceBufferList} sourceBuffers
|
|
118
|
+
* @param {Function} listener
|
|
119
|
+
* @param {Object} cancelSignal
|
|
128
120
|
*/
|
|
129
|
-
declare const onRemoveSourceBuffers
|
|
121
|
+
declare const onRemoveSourceBuffers: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
130
122
|
/**
|
|
131
123
|
* @param {HTMLMediaElement} mediaElement
|
|
132
|
-
* @returns {Observable}
|
|
133
124
|
*/
|
|
134
|
-
declare const onEncrypted
|
|
125
|
+
declare const onEncrypted: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
135
126
|
/**
|
|
136
127
|
* @param {MediaKeySession} mediaKeySession
|
|
137
|
-
* @returns {Observable}
|
|
138
128
|
*/
|
|
139
|
-
declare const onKeyMessage
|
|
129
|
+
declare const onKeyMessage: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
140
130
|
/**
|
|
141
131
|
* @param {MediaKeySession} mediaKeySession
|
|
142
|
-
* @returns {Observable}
|
|
143
132
|
*/
|
|
144
|
-
declare const onKeyAdded
|
|
133
|
+
declare const onKeyAdded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
145
134
|
/**
|
|
146
135
|
* @param {MediaKeySession} mediaKeySession
|
|
147
|
-
* @returns {Observable}
|
|
148
136
|
*/
|
|
149
|
-
declare const onKeyError
|
|
137
|
+
declare const onKeyError: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
150
138
|
/**
|
|
151
139
|
* @param {MediaKeySession} mediaKeySession
|
|
152
|
-
* @returns {Observable}
|
|
153
140
|
*/
|
|
154
|
-
declare const onKeyStatusesChange
|
|
141
|
+
declare const onKeyStatusesChange: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
155
142
|
/**
|
|
156
143
|
* @param {HTMLMediaElement} mediaElement
|
|
157
|
-
* @returns {Observable}
|
|
158
144
|
*/
|
|
159
145
|
declare const onSeeking: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
160
146
|
/**
|
|
161
147
|
* @param {HTMLMediaElement} mediaElement
|
|
162
|
-
* @returns {Observable}
|
|
163
148
|
*/
|
|
164
149
|
declare const onSeeked: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
165
150
|
/**
|
|
166
151
|
* @param {HTMLMediaElement} mediaElement
|
|
167
|
-
* @returns {Observable}
|
|
168
152
|
*/
|
|
169
153
|
declare const onEnded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
170
154
|
/**
|
|
@@ -178,4 +162,4 @@ declare const onEnded: (element: IEventTargetLike, listener: (event?: unknown) =
|
|
|
178
162
|
* emits
|
|
179
163
|
*/
|
|
180
164
|
declare function addEventListener(elt: IEventEmitterLike, evt: string, listener: (x?: unknown) => void, stopListening: CancellationSignal): void;
|
|
181
|
-
export { addEventListener,
|
|
165
|
+
export { addEventListener, getPictureOnPictureStateRef, getVideoVisibilityRef, getElementResolutionRef, getScreenResolutionRef, onEncrypted, onEnded, onKeyAdded, onKeyError, onKeyMessage, onKeyStatusesChange, onLoadedMetadata, onRemoveSourceBuffers, onSeeked, onSeeking, onSourceClose, onSourceEnded, onSourceOpen, onTimeUpdate, onSourceBufferUpdate, onTextTrackAdded, onTextTrackRemoved, };
|