rx-player 4.0.0-dev.2023092900 → 4.0.0-dev.2023102700
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 +221 -12
- package/FILES.md +0 -4
- package/MAINTAINERS.md +1 -0
- package/README.md +0 -21
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/add_class_name.js +6 -3
- package/dist/_esm5.processed/compat/add_text_track.js +11 -8
- package/dist/_esm5.processed/compat/browser_compatibility_types.js +13 -9
- package/dist/_esm5.processed/compat/browser_detection.js +49 -34
- package/dist/_esm5.processed/compat/browser_version.js +11 -8
- package/dist/_esm5.processed/compat/can_patch_isobmff.js +6 -3
- package/dist/_esm5.processed/compat/can_rely_on_video_visibility_and_size.js +9 -6
- package/dist/_esm5.processed/compat/can_reuse_media_keys.js +6 -3
- package/dist/_esm5.processed/compat/change_source_buffer_type.js +6 -3
- package/dist/_esm5.processed/compat/clear_element_src.js +12 -9
- package/dist/_esm5.processed/compat/eme/close_session.js +45 -106
- package/dist/_esm5.processed/compat/eme/constants.js +6 -3
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +18 -22
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +78 -102
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +16 -6
- package/dist/_esm5.processed/compat/eme/custom_media_keys/moz_media_keys_constructor.js +18 -15
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ms_media_keys_constructor.js +7 -5
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +70 -88
- package/dist/_esm5.processed/compat/eme/custom_media_keys/types.js +2 -1
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +91 -117
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.js +7 -7
- package/dist/_esm5.processed/compat/eme/eme-api-implementation.js +82 -83
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +36 -31
- package/dist/_esm5.processed/compat/eme/get_init_data.js +28 -25
- package/dist/_esm5.processed/compat/eme/get_uuid_kid_from_keystatus_kid.js +8 -5
- package/dist/_esm5.processed/compat/eme/get_webkit_fairplay_initdata.js +17 -14
- package/dist/_esm5.processed/compat/eme/index.js +13 -7
- package/dist/_esm5.processed/compat/eme/load_session.js +26 -69
- package/dist/_esm5.processed/compat/enable_audio_track.js +7 -4
- package/dist/_esm5.processed/compat/event_listeners.js +130 -102
- package/dist/_esm5.processed/compat/get_start_date.js +7 -4
- package/dist/_esm5.processed/compat/global_scope.js +7 -5
- package/dist/_esm5.processed/compat/has_issues_with_high_media_source_duration.js +6 -3
- package/dist/_esm5.processed/compat/index.js +47 -24
- package/dist/_esm5.processed/compat/is_codec_supported.js +8 -5
- package/dist/_esm5.processed/compat/is_debug_mode_enabled.js +4 -1
- package/dist/_esm5.processed/compat/is_node.js +5 -3
- package/dist/_esm5.processed/compat/is_seeking_approximate.js +5 -3
- package/dist/_esm5.processed/compat/is_vtt_cue.js +6 -3
- package/dist/_esm5.processed/compat/is_worker.js +3 -1
- package/dist/_esm5.processed/compat/make_vtt_cue.js +10 -7
- package/dist/_esm5.processed/compat/on_height_width_change.js +25 -22
- package/dist/_esm5.processed/compat/patch_webkit_source_buffer.js +19 -17
- package/dist/_esm5.processed/compat/remove_cue.js +12 -9
- package/dist/_esm5.processed/compat/should_favour_custom_safari_EME.js +7 -4
- package/dist/_esm5.processed/compat/should_reload_media_source_on_decipherability_update.js +4 -1
- package/dist/_esm5.processed/compat/should_renew_media_key_system_access.js +6 -3
- package/dist/_esm5.processed/compat/should_unset_media_keys.js +6 -3
- package/dist/_esm5.processed/compat/should_validate_metadata.js +6 -3
- package/dist/_esm5.processed/compat/should_wait_for_data_before_loaded.js +6 -3
- package/dist/_esm5.processed/compat/should_wait_for_have_enough_data.js +6 -3
- package/dist/_esm5.processed/config.js +15 -14
- package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.js +123 -94
- package/dist/_esm5.processed/core/adaptive/buffer_based_chooser.js +43 -42
- package/dist/_esm5.processed/core/adaptive/guess_based_chooser.js +37 -44
- package/dist/_esm5.processed/core/adaptive/index.js +4 -2
- package/dist/_esm5.processed/core/adaptive/network_analyzer.js +75 -74
- package/dist/_esm5.processed/core/adaptive/utils/bandwidth_estimator.js +24 -23
- package/dist/_esm5.processed/core/adaptive/utils/ewma.js +13 -12
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_bitrate.js +9 -6
- package/dist/_esm5.processed/core/adaptive/utils/filter_by_resolution.js +18 -19
- package/dist/_esm5.processed/core/adaptive/utils/get_buffer_levels.js +10 -7
- package/dist/_esm5.processed/core/adaptive/utils/last_estimate_storage.js +8 -7
- package/dist/_esm5.processed/core/adaptive/utils/pending_requests_store.js +26 -23
- package/dist/_esm5.processed/core/adaptive/utils/representation_score_calculator.js +25 -23
- package/dist/_esm5.processed/core/adaptive/utils/select_optimal_representation.js +6 -3
- package/dist/_esm5.processed/core/api/debug/buffer_graph.js +41 -40
- package/dist/_esm5.processed/core/api/debug/buffer_size_graph.js +31 -30
- package/dist/_esm5.processed/core/api/debug/constants.js +4 -1
- package/dist/_esm5.processed/core/api/debug/index.js +4 -2
- package/dist/_esm5.processed/core/api/debug/modules/general_info.js +64 -72
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_content.js +49 -46
- package/dist/_esm5.processed/core/api/debug/modules/segment_buffer_size.js +15 -12
- package/dist/_esm5.processed/core/api/debug/render.js +16 -13
- package/dist/_esm5.processed/core/api/debug/utils.js +18 -13
- package/dist/_esm5.processed/core/api/index.js +7 -4
- package/dist/_esm5.processed/core/api/option_utils.js +85 -58
- package/dist/_esm5.processed/core/api/playback_observer.js +135 -124
- package/dist/_esm5.processed/core/api/public_api.js +610 -684
- package/dist/_esm5.processed/core/api/track_management/index.js +19 -3
- package/dist/_esm5.processed/core/api/track_management/media_element_tracks_store.js +233 -247
- package/dist/_esm5.processed/core/api/track_management/track_dispatcher.js +45 -58
- package/dist/_esm5.processed/core/api/track_management/tracks_store.js +300 -324
- package/dist/_esm5.processed/core/api/utils.js +32 -24
- package/dist/_esm5.processed/core/decrypt/__tests__/__global__/utils.js +155 -185
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +42 -81
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +15 -12
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +392 -510
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +44 -90
- package/dist/_esm5.processed/core/decrypt/create_session.js +90 -149
- package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +24 -67
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +94 -155
- package/dist/_esm5.processed/core/decrypt/get_key_system_configuration.js +6 -3
- package/dist/_esm5.processed/core/decrypt/get_media_keys.js +59 -109
- package/dist/_esm5.processed/core/decrypt/index.js +26 -7
- package/dist/_esm5.processed/core/decrypt/init_media_keys.js +17 -59
- package/dist/_esm5.processed/core/decrypt/session_events_listener.js +84 -155
- package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +50 -103
- package/dist/_esm5.processed/core/decrypt/types.js +5 -2
- package/dist/_esm5.processed/core/decrypt/utils/are_init_values_compatible.js +22 -19
- package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.js +40 -61
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +17 -61
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_stored_persistent_info.js +8 -5
- package/dist/_esm5.processed/core/decrypt/utils/get_drm_system_id.js +8 -5
- package/dist/_esm5.processed/core/decrypt/utils/init_data_values_container.js +23 -23
- package/dist/_esm5.processed/core/decrypt/utils/is_session_usable.js +15 -12
- package/dist/_esm5.processed/core/decrypt/utils/key_id_comparison.js +14 -21
- package/dist/_esm5.processed/core/decrypt/utils/key_session_record.js +26 -27
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +206 -310
- package/dist/_esm5.processed/core/decrypt/utils/media_keys_infos_store.js +8 -6
- package/dist/_esm5.processed/core/decrypt/utils/persistent_sessions_store.js +103 -102
- package/dist/_esm5.processed/core/decrypt/utils/serializable_bytes.js +13 -12
- package/dist/_esm5.processed/core/decrypt/utils/server_certificate_store.js +18 -16
- package/dist/_esm5.processed/core/fetchers/cdn_prioritizer.js +37 -56
- package/dist/_esm5.processed/core/fetchers/index.js +7 -3
- package/dist/_esm5.processed/core/fetchers/manifest/index.js +4 -2
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +233 -313
- package/dist/_esm5.processed/core/fetchers/segment/index.js +4 -2
- package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +12 -9
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +218 -234
- package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher_creator.js +20 -19
- package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.js +73 -74
- package/dist/_esm5.processed/core/fetchers/utils/error_selector.js +8 -5
- package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +210 -261
- package/dist/_esm5.processed/core/init/directfile_content_initializer.js +73 -99
- package/dist/_esm5.processed/core/init/index.js +5 -1
- package/dist/_esm5.processed/core/init/media_source_content_initializer.js +256 -320
- package/dist/_esm5.processed/core/init/types.js +7 -24
- package/dist/_esm5.processed/core/init/utils/content_time_boundaries_observer.js +109 -135
- package/dist/_esm5.processed/core/init/utils/create_media_source.js +35 -30
- package/dist/_esm5.processed/core/init/utils/create_stream_playback_observer.js +12 -10
- package/dist/_esm5.processed/core/init/utils/end_of_stream.js +30 -26
- package/dist/_esm5.processed/core/init/utils/get_initial_time.js +41 -38
- package/dist/_esm5.processed/core/init/utils/get_loaded_reference.js +13 -10
- package/dist/_esm5.processed/core/init/utils/initial_seek_and_play.js +29 -26
- package/dist/_esm5.processed/core/init/utils/initialize_content_decryption.js +30 -27
- package/dist/_esm5.processed/core/init/utils/media_source_duration_updater.js +58 -60
- package/dist/_esm5.processed/core/init/utils/rebuffering_controller.js +140 -161
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/are_same_stream_events.js +3 -1
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/index.js +4 -2
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/refresh_scheduled_events_list.js +28 -30
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/stream_events_emitter.js +71 -90
- package/dist/_esm5.processed/core/init/utils/stream_events_emitter/types.js +2 -1
- package/dist/_esm5.processed/core/init/utils/throw_on_media_error.js +16 -13
- package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +75 -126
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/audio_video_segment_buffer.js +130 -147
- package/dist/_esm5.processed/core/segment_buffers/implementations/audio_video/index.js +4 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/index.js +20 -3
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/html_text_segment_buffer.js +106 -125
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/index.js +4 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/parsers.js +11 -8
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/text_track_cues_store.js +48 -47
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/types.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/update_proportional_elements.js +18 -15
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/html/utils.js +22 -15
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/index.js +4 -2
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/native_text_segment_buffer.js +65 -82
- package/dist/_esm5.processed/core/segment_buffers/implementations/text/native/parsers.js +11 -8
- package/dist/_esm5.processed/core/segment_buffers/implementations/types.js +19 -17
- package/dist/_esm5.processed/core/segment_buffers/implementations/utils/manual_time_ranges.js +23 -22
- package/dist/_esm5.processed/core/segment_buffers/index.js +13 -6
- package/dist/_esm5.processed/core/segment_buffers/inventory/buffered_history.js +24 -22
- package/dist/_esm5.processed/core/segment_buffers/inventory/index.js +8 -3
- package/dist/_esm5.processed/core/segment_buffers/inventory/segment_inventory.js +151 -150
- package/dist/_esm5.processed/core/segment_buffers/inventory/types.js +2 -1
- package/dist/_esm5.processed/core/segment_buffers/inventory/utils.js +9 -4
- package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.js +82 -89
- package/dist/_esm5.processed/core/stream/adaptation/adaptation_stream.js +118 -166
- package/dist/_esm5.processed/core/stream/adaptation/get_representations_switch_strategy.js +31 -28
- package/dist/_esm5.processed/core/stream/adaptation/index.js +19 -3
- package/dist/_esm5.processed/core/stream/adaptation/types.js +2 -1
- package/dist/_esm5.processed/core/stream/index.js +4 -2
- package/dist/_esm5.processed/core/stream/orchestrator/get_time_ranges_for_content.js +14 -16
- package/dist/_esm5.processed/core/stream/orchestrator/index.js +4 -2
- package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.js +175 -222
- package/dist/_esm5.processed/core/stream/period/index.js +19 -3
- package/dist/_esm5.processed/core/stream/period/period_stream.js +172 -216
- package/dist/_esm5.processed/core/stream/period/types.js +2 -1
- package/dist/_esm5.processed/core/stream/period/utils/get_adaptation_switch_strategy.js +34 -33
- package/dist/_esm5.processed/core/stream/representation/index.js +19 -3
- package/dist/_esm5.processed/core/stream/representation/representation_stream.js +80 -68
- package/dist/_esm5.processed/core/stream/representation/types.js +2 -1
- package/dist/_esm5.processed/core/stream/representation/utils/append_segment_to_buffer.js +33 -84
- package/dist/_esm5.processed/core/stream/representation/utils/check_for_discontinuity.js +32 -29
- package/dist/_esm5.processed/core/stream/representation/utils/downloading_queue.js +126 -145
- package/dist/_esm5.processed/core/stream/representation/utils/force_garbage_collection.js +32 -88
- package/dist/_esm5.processed/core/stream/representation/utils/get_buffer_status.js +61 -48
- package/dist/_esm5.processed/core/stream/representation/utils/get_needed_segments.js +71 -69
- package/dist/_esm5.processed/core/stream/representation/utils/get_segment_priority.js +8 -5
- package/dist/_esm5.processed/core/stream/representation/utils/push_init_segment.js +22 -63
- package/dist/_esm5.processed/core/stream/representation/utils/push_media_segment.js +49 -86
- package/dist/_esm5.processed/default_config.js +4 -2
- package/dist/_esm5.processed/errors/assertion_error.js +10 -26
- package/dist/_esm5.processed/errors/custom_loader_error.js +12 -28
- package/dist/_esm5.processed/errors/encrypted_media_error.js +16 -32
- package/dist/_esm5.processed/errors/error_codes.js +9 -4
- package/dist/_esm5.processed/errors/error_message.js +5 -2
- package/dist/_esm5.processed/errors/format_error.js +9 -7
- package/dist/_esm5.processed/errors/index.js +25 -11
- package/dist/_esm5.processed/errors/is_known_error.js +14 -11
- package/dist/_esm5.processed/errors/media_error.js +17 -33
- package/dist/_esm5.processed/errors/network_error.js +21 -37
- package/dist/_esm5.processed/errors/other_error.js +15 -31
- package/dist/_esm5.processed/errors/request_error.js +17 -33
- package/dist/_esm5.processed/experimental/features/dash_wasm.js +14 -11
- package/dist/_esm5.processed/experimental/features/debug_element.js +7 -4
- package/dist/_esm5.processed/experimental/features/index.d.ts +1 -0
- package/dist/_esm5.processed/experimental/features/index.js +11 -3
- package/dist/_esm5.processed/experimental/features/local.js +9 -6
- package/dist/_esm5.processed/experimental/features/metaplaylist.js +9 -6
- package/dist/_esm5.processed/experimental/index.js +5 -2
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/dash.js +6 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/features/metaplaylist.js +6 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/index.js +7 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/load_and_push_segment.js +22 -16
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/prepare_source_buffer.js +22 -19
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +6 -3
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.js +2 -1
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +125 -186
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader_error.js +11 -27
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/get_duration_from_manifest.js +76 -119
- package/dist/_esm5.processed/experimental/tools/createMetaplaylist/index.js +24 -15
- package/dist/_esm5.processed/experimental/tools/index.js +11 -5
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +38 -43
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +31 -34
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.js +21 -18
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/index.js +4 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/log.js +5 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +20 -17
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +21 -18
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +13 -10
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/defaultCodecsFinder.js +16 -13
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.js +16 -14
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +14 -11
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/format.js +14 -11
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +19 -16
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +11 -8
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.js +5 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/utils.js +25 -22
- package/dist/_esm5.processed/experimental/tools/parseBIFThumbnails.js +7 -4
- package/dist/_esm5.processed/features/add_features.js +11 -8
- package/dist/_esm5.processed/features/features_object.js +4 -2
- package/dist/_esm5.processed/features/index.js +7 -4
- package/dist/_esm5.processed/features/list/dash.js +11 -8
- package/dist/_esm5.processed/features/list/directfile.js +9 -5
- package/dist/_esm5.processed/features/list/eme.js +7 -4
- package/dist/_esm5.processed/features/list/html_sami_parser.js +9 -6
- package/dist/_esm5.processed/features/list/html_srt_parser.js +9 -6
- package/dist/_esm5.processed/features/list/html_text_buffer.js +7 -4
- package/dist/_esm5.processed/features/list/html_ttml_parser.js +9 -6
- package/dist/_esm5.processed/features/list/html_vtt_parser.js +9 -6
- package/dist/_esm5.processed/features/list/index.js +31 -14
- package/dist/_esm5.processed/features/list/native_sami_parser.js +9 -6
- package/dist/_esm5.processed/features/list/native_srt_parser.js +9 -6
- package/dist/_esm5.processed/features/list/native_text_buffer.js +7 -4
- package/dist/_esm5.processed/features/list/native_ttml_parser.js +9 -6
- package/dist/_esm5.processed/features/list/native_vtt_parser.js +9 -6
- package/dist/_esm5.processed/features/list/smooth.js +9 -6
- package/dist/_esm5.processed/features/types.js +2 -1
- package/dist/_esm5.processed/index.js +24 -9
- package/dist/_esm5.processed/log.js +5 -3
- package/dist/_esm5.processed/manifest/adaptation.js +52 -55
- package/dist/_esm5.processed/manifest/index.js +32 -13
- package/dist/_esm5.processed/manifest/manifest.js +112 -134
- package/dist/_esm5.processed/manifest/period.js +38 -42
- package/dist/_esm5.processed/manifest/representation.js +78 -61
- package/dist/_esm5.processed/manifest/representation_index/index.js +5 -2
- package/dist/_esm5.processed/manifest/representation_index/static.js +43 -42
- package/dist/_esm5.processed/manifest/representation_index/types.js +2 -1
- package/dist/_esm5.processed/manifest/types.js +5 -2
- package/dist/_esm5.processed/manifest/update_period_in_place.js +38 -48
- package/dist/_esm5.processed/manifest/update_periods.js +59 -69
- package/dist/_esm5.processed/manifest/utils.js +14 -9
- package/dist/_esm5.processed/minimal.js +9 -7
- package/dist/_esm5.processed/parsers/containers/isobmff/constants.js +4 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/create_box.js +14 -10
- package/dist/_esm5.processed/parsers/containers/isobmff/drm/index.js +5 -1
- package/dist/_esm5.processed/parsers/containers/isobmff/drm/playready.js +15 -11
- package/dist/_esm5.processed/parsers/containers/isobmff/get_box.js +48 -40
- package/dist/_esm5.processed/parsers/containers/isobmff/index.js +27 -6
- package/dist/_esm5.processed/parsers/containers/isobmff/read.js +20 -14
- package/dist/_esm5.processed/parsers/containers/isobmff/take_pssh_out.js +25 -20
- package/dist/_esm5.processed/parsers/containers/isobmff/utils.js +130 -112
- package/dist/_esm5.processed/parsers/containers/matroska/index.js +6 -1
- package/dist/_esm5.processed/parsers/containers/matroska/utils.js +67 -63
- package/dist/_esm5.processed/parsers/images/bif.js +40 -29
- package/dist/_esm5.processed/parsers/manifest/dash/common/attach_trickmode_track.js +10 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/flatten_overlapping_periods.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_clock_offset.js +8 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_hdr_information.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_http_utc-timing_url.js +7 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_minimum_and_maximum_positions.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/common/get_periods_time_infos.js +14 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/index.js +10 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/base.js +73 -67
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_init_segment.js +9 -4
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/get_segments_from_timeline.js +32 -25
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/index.js +11 -5
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/list.js +81 -70
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/template.js +130 -123
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_elements.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/construct_timeline_from_previous_timeline.js +35 -32
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/convert_element_to_index_segment.js +14 -9
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/find_first_common_start_time.js +30 -22
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/parse_s_element.js +14 -11
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/timeline/timeline_representation_index.js +131 -129
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/tokens.js +16 -10
- package/dist/_esm5.processed/parsers/manifest/dash/common/indexes/utils.js +7 -3
- package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.js +19 -18
- package/dist/_esm5.processed/parsers/manifest/dash/common/manifest_bounds_calculator.js +18 -17
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.js +111 -111
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_availability_start_time.js +4 -1
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.js +86 -85
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.js +97 -82
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representation_index.js +39 -37
- package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.js +61 -69
- package/dist/_esm5.processed/parsers/manifest/dash/common/resolve_base_urls.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/index.js +8 -1
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/AdaptationSet.js +66 -62
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/BaseURL.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentComponent.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/ContentProtection.js +22 -19
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/EventStream.js +22 -19
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Initialization.js +11 -8
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/MPD.js +38 -34
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Period.js +34 -30
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/Representation.js +44 -40
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentBase.js +24 -21
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentList.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTemplate.js +21 -18
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentTimeline.js +6 -3
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/SegmentURL.js +12 -9
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/node_parsers/utils.js +60 -64
- package/dist/_esm5.processed/parsers/manifest/dash/js-parser/parse_from_document.js +33 -27
- package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +192 -238
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/AdaptationSet.js +67 -62
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +8 -4
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentComponent.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/ContentProtection.js +17 -13
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/EventStream.js +29 -24
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/MPD.js +38 -33
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Period.js +37 -32
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Representation.js +43 -38
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/Scheme.js +9 -5
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentBase.js +16 -12
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentList.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentTemplate.js +20 -16
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/SegmentUrl.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/XLink.js +11 -7
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/index.js +5 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/root.js +10 -6
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.js +22 -20
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/utils.js +6 -2
- package/dist/_esm5.processed/parsers/manifest/index.js +17 -1
- package/dist/_esm5.processed/parsers/manifest/local/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/local/parse_local_manifest.js +30 -27
- package/dist/_esm5.processed/parsers/manifest/local/representation_index.js +71 -84
- package/dist/_esm5.processed/parsers/manifest/local/types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/index.js +4 -2
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.js +75 -72
- package/dist/_esm5.processed/parsers/manifest/metaplaylist/representation_index.js +52 -52
- package/dist/_esm5.processed/parsers/manifest/smooth/create_parser.js +200 -176
- package/dist/_esm5.processed/parsers/manifest/smooth/get_codecs.js +13 -8
- package/dist/_esm5.processed/parsers/manifest/smooth/index.js +7 -4
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_C_nodes.js +17 -14
- package/dist/_esm5.processed/parsers/manifest/smooth/parse_protection_node.js +17 -15
- package/dist/_esm5.processed/parsers/manifest/smooth/representation_index.js +102 -98
- package/dist/_esm5.processed/parsers/manifest/smooth/shared_smooth_segment_timeline.js +49 -48
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/add_segment_infos.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/parseBoolean.js +4 -1
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/reduceChildren.js +6 -3
- package/dist/_esm5.processed/parsers/manifest/smooth/utils/tokens.js +5 -1
- package/dist/_esm5.processed/parsers/manifest/types.js +2 -1
- package/dist/_esm5.processed/parsers/manifest/utils/check_manifest_ids.js +27 -24
- package/dist/_esm5.processed/parsers/manifest/utils/clear_timeline_from_position.js +10 -7
- package/dist/_esm5.processed/parsers/manifest/utils/get_first_time_from_adaptation.js +8 -5
- package/dist/_esm5.processed/parsers/manifest/utils/get_last_time_from_adaptation.js +8 -5
- package/dist/_esm5.processed/parsers/manifest/utils/get_maximum_positions.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/utils/get_minimum_position.js +15 -12
- package/dist/_esm5.processed/parsers/manifest/utils/index_helpers.js +31 -22
- package/dist/_esm5.processed/parsers/manifest/utils/is_segment_still_available.js +9 -6
- package/dist/_esm5.processed/parsers/manifest/utils/update_segment_timeline.js +38 -45
- package/dist/_esm5.processed/parsers/texttracks/index.js +2 -1
- package/dist/_esm5.processed/parsers/texttracks/sami/html.js +45 -43
- package/dist/_esm5.processed/parsers/texttracks/sami/native.js +41 -39
- package/dist/_esm5.processed/parsers/texttracks/srt/find_end_of_cue_block.js +7 -4
- package/dist/_esm5.processed/parsers/texttracks/srt/get_cue_blocks.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/srt/html.js +32 -29
- package/dist/_esm5.processed/parsers/texttracks/srt/native.js +16 -13
- package/dist/_esm5.processed/parsers/texttracks/srt/parse_cue.js +21 -18
- package/dist/_esm5.processed/parsers/texttracks/srt/parse_timestamp.js +10 -7
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_parameters.js +37 -30
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.js +48 -48
- package/dist/_esm5.processed/parsers/texttracks/ttml/get_time_delimiters.js +14 -11
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_default_ttml_paragraph_style.js +7 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_extent.js +15 -12
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_font_size.js +15 -12
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_line_height.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_origin.js +15 -12
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/apply_padding.js +25 -22
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/create_element.js +117 -124
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/generate_css_test_outline.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_cue.js +12 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/parse_ttml_to_div.js +14 -11
- package/dist/_esm5.processed/parsers/texttracks/ttml/html/ttml_color_to_css_color.js +10 -7
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_cue.js +38 -35
- package/dist/_esm5.processed/parsers/texttracks/ttml/native/parse_ttml_to_vtt.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/ttml/parse_ttml.js +58 -58
- package/dist/_esm5.processed/parsers/texttracks/ttml/regexps.js +27 -13
- package/dist/_esm5.processed/parsers/texttracks/ttml/resolve_styles_inheritance.js +18 -18
- package/dist/_esm5.processed/parsers/texttracks/ttml/time_parsing.js +28 -26
- package/dist/_esm5.processed/parsers/texttracks/ttml/xml_utils.js +37 -25
- package/dist/_esm5.processed/parsers/texttracks/types.js +2 -1
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_cue_blocks.js +12 -9
- package/dist/_esm5.processed/parsers/texttracks/webvtt/get_style_blocks.js +14 -11
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/convert_payload_to_html.js +11 -8
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_default_style_elements.js +8 -5
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_style_attribute.js +60 -60
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/create_styled_element.js +30 -27
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_style_block.js +23 -26
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/parse_webvtt_to_div.js +20 -17
- package/dist/_esm5.processed/parsers/texttracks/webvtt/html/to_html.js +23 -18
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/index.js +4 -2
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/parse_vtt_to_cues.js +19 -16
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/set_settings_on_cue.js +20 -17
- package/dist/_esm5.processed/parsers/texttracks/webvtt/native/to_native_cue.js +8 -5
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_cue_block.js +26 -18
- package/dist/_esm5.processed/parsers/texttracks/webvtt/parse_timestamp.js +10 -7
- package/dist/_esm5.processed/parsers/texttracks/webvtt/utils.js +15 -7
- package/dist/_esm5.processed/public_types.js +2 -1
- package/dist/_esm5.processed/tools/TextTrackRenderer/index.js +13 -6
- package/dist/_esm5.processed/tools/TextTrackRenderer/text_track_renderer.js +26 -24
- package/dist/_esm5.processed/tools/index.js +6 -4
- package/dist/_esm5.processed/tools/string_utils.js +10 -1
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +16 -24
- package/dist/_esm5.processed/transports/dash/construct_segment_url.js +6 -3
- package/dist/_esm5.processed/transports/dash/extract_complete_chunks.js +17 -14
- package/dist/_esm5.processed/transports/dash/get_events_out_of_emsgs.js +19 -16
- package/dist/_esm5.processed/transports/dash/index.js +4 -2
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +47 -27
- package/dist/_esm5.processed/transports/dash/low_latency_segment_loader.js +23 -16
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +68 -60
- package/dist/_esm5.processed/transports/dash/pipelines.js +20 -17
- package/dist/_esm5.processed/transports/dash/segment_loader.js +49 -39
- package/dist/_esm5.processed/transports/dash/segment_parser.js +58 -39
- package/dist/_esm5.processed/transports/dash/text_loader.js +36 -30
- package/dist/_esm5.processed/transports/dash/text_parser.js +39 -29
- package/dist/_esm5.processed/transports/index.js +17 -1
- package/dist/_esm5.processed/transports/local/index.js +4 -2
- package/dist/_esm5.processed/transports/local/pipelines.js +26 -23
- package/dist/_esm5.processed/transports/local/segment_loader.js +26 -23
- package/dist/_esm5.processed/transports/local/segment_parser.js +36 -25
- package/dist/_esm5.processed/transports/local/text_parser.js +42 -27
- package/dist/_esm5.processed/transports/metaplaylist/index.js +4 -2
- package/dist/_esm5.processed/transports/metaplaylist/manifest_loader.js +11 -7
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +91 -96
- package/dist/_esm5.processed/transports/smooth/extract_timings_infos.js +26 -20
- package/dist/_esm5.processed/transports/smooth/index.js +4 -2
- package/dist/_esm5.processed/transports/smooth/is_mp4_embedded_track.js +4 -1
- package/dist/_esm5.processed/transports/smooth/isobmff/create_audio_init_segment.js +22 -19
- package/dist/_esm5.processed/transports/smooth/isobmff/create_boxes.js +92 -67
- package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.js +29 -26
- package/dist/_esm5.processed/transports/smooth/isobmff/create_traf_box.js +9 -6
- package/dist/_esm5.processed/transports/smooth/isobmff/create_video_init_segment.js +23 -20
- package/dist/_esm5.processed/transports/smooth/isobmff/get_aaces_header.js +10 -7
- package/dist/_esm5.processed/transports/smooth/isobmff/index.js +13 -6
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfrf.js +19 -16
- package/dist/_esm5.processed/transports/smooth/isobmff/parse_tfxd.js +9 -6
- package/dist/_esm5.processed/transports/smooth/isobmff/patch_segment.js +41 -38
- package/dist/_esm5.processed/transports/smooth/pipelines.js +106 -96
- package/dist/_esm5.processed/transports/smooth/segment_loader.d.ts +2 -2
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +149 -153
- package/dist/_esm5.processed/transports/smooth/utils.js +7 -3
- package/dist/_esm5.processed/transports/types.js +2 -1
- package/dist/_esm5.processed/transports/utils/byte_range.js +6 -4
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +23 -18
- package/dist/_esm5.processed/transports/utils/check_isobmff_integrity.js +14 -11
- package/dist/_esm5.processed/transports/utils/find_complete_box.js +11 -8
- package/dist/_esm5.processed/transports/utils/generate_manifest_loader.js +22 -14
- package/dist/_esm5.processed/transports/utils/get_isobmff_timing_infos.js +13 -10
- package/dist/_esm5.processed/transports/utils/infer_segment_container.js +4 -1
- package/dist/_esm5.processed/transports/utils/parse_text_track.js +40 -26
- package/dist/_esm5.processed/utils/are_arrays_of_numbers_equal.js +5 -2
- package/dist/_esm5.processed/utils/are_codecs_compatible.js +11 -9
- package/dist/_esm5.processed/utils/array_find.js +7 -4
- package/dist/_esm5.processed/utils/array_find_index.js +6 -3
- package/dist/_esm5.processed/utils/array_includes.js +12 -11
- package/dist/_esm5.processed/utils/assert.js +13 -9
- package/dist/_esm5.processed/utils/assert_unreachable.js +6 -3
- package/dist/_esm5.processed/utils/base64.js +23 -18
- package/dist/_esm5.processed/utils/byte_parsing.js +30 -17
- package/dist/_esm5.processed/utils/cancellable_sleep.js +8 -5
- package/dist/_esm5.processed/utils/create_cancellable_promise.js +7 -4
- package/dist/_esm5.processed/utils/deep_merge.js +10 -21
- package/dist/_esm5.processed/utils/event_emitter.js +24 -24
- package/dist/_esm5.processed/utils/flat_map.js +7 -4
- package/dist/_esm5.processed/utils/get_fuzzed_delay.js +6 -3
- package/dist/_esm5.processed/utils/hash_buffer.js +7 -4
- package/dist/_esm5.processed/utils/id_generator.js +6 -3
- package/dist/_esm5.processed/utils/initialization_segment_cache.js +11 -12
- package/dist/_esm5.processed/utils/is_non_empty_string.js +4 -1
- package/dist/_esm5.processed/utils/is_null_or_undefined.js +4 -1
- package/dist/_esm5.processed/utils/languages/ISO_639-1_to_ISO_639-3.js +4 -2
- package/dist/_esm5.processed/utils/languages/ISO_639-2_to_ISO_639-3.js +4 -2
- package/dist/_esm5.processed/utils/languages/index.js +7 -3
- package/dist/_esm5.processed/utils/languages/normalize.js +26 -20
- package/dist/_esm5.processed/utils/logger.js +24 -23
- package/dist/_esm5.processed/utils/monotonic_timestamp.js +4 -1
- package/dist/_esm5.processed/utils/noop.js +4 -1
- package/dist/_esm5.processed/utils/object_assign.js +8 -10
- package/dist/_esm5.processed/utils/object_values.js +6 -3
- package/dist/_esm5.processed/utils/ranges.js +94 -71
- package/dist/_esm5.processed/utils/reference.js +48 -52
- package/dist/_esm5.processed/utils/request/fetch.js +79 -109
- package/dist/_esm5.processed/utils/request/index.js +9 -4
- package/dist/_esm5.processed/utils/request/xhr.js +49 -37
- package/dist/_esm5.processed/utils/resolve_url.js +18 -18
- package/dist/_esm5.processed/utils/retry_promise_with_backoff.js +34 -81
- package/dist/_esm5.processed/utils/sleep.js +5 -2
- package/dist/_esm5.processed/utils/slice_uint8array.js +3 -1
- package/dist/_esm5.processed/utils/sorted_list.js +37 -40
- package/dist/_esm5.processed/utils/starts_with.js +5 -2
- package/dist/_esm5.processed/utils/string_parsing.js +84 -73
- package/dist/_esm5.processed/utils/take_first_set.js +9 -10
- package/dist/_esm5.processed/utils/task_canceller.js +51 -71
- package/dist/_esm5.processed/utils/warn_once.js +7 -4
- package/dist/_esm5.processed/utils/weak_map_memory.js +12 -11
- package/dist/_esm5.processed/utils/wrapInPromise.js +5 -2
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +43758 -45493
- package/dist/rx-player.min.js +1 -1
- package/jest.config.js +1 -22
- package/package.json +22 -23
- package/scripts/build/constants.d.ts +1 -23
- package/scripts/build/generate_build.js +1 -1
- package/scripts/check_nodejs_import_compatibility.js +1 -1
- package/scripts/update-version +1 -4
- package/sonar-project.properties +1 -1
- package/src/compat/event_listeners.ts +8 -8
- package/src/compat/global_scope.ts +2 -0
- package/src/core/adaptive/__tests__/buffer_based_chooser.test.ts +3 -3
- package/src/core/adaptive/adaptive_representation_selector.ts +27 -9
- package/src/core/adaptive/buffer_based_chooser.ts +1 -1
- package/src/core/adaptive/network_analyzer.ts +5 -4
- package/src/core/api/public_api.ts +2 -2
- package/src/core/api/track_management/track_dispatcher.ts +2 -1
- package/src/core/decrypt/__tests__/__global__/server_certificate.test.ts +1 -1
- package/src/core/fetchers/cdn_prioritizer.ts +1 -1
- package/src/experimental/features/__tests__/index.test.ts +19 -0
- package/src/experimental/features/index.ts +1 -0
- package/src/features/list/__tests__/index.test.ts +49 -0
- package/src/index.ts +28 -3
- package/src/transports/smooth/segment_loader.ts +4 -4
- package/src/typings/globals.d.ts +0 -42
- package/src/utils/request/fetch.ts +1 -1
- package/src/utils/request/xhr.ts +1 -1
- package/tsconfig.json +1 -1
- package/tsconfig.modules.json +3 -3
- package/dist/_esm5.processed/features/initialize_features.d.ts +0 -19
- package/dist/_esm5.processed/features/initialize_features.js +0 -108
- package/src/features/__tests__/initialize_features.test.ts +0 -657
- package/src/features/initialize_features.ts +0 -129
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Copyright 2015 CANAL+ Group
|
|
3
4
|
*
|
|
@@ -13,22 +14,9 @@
|
|
|
13
14
|
* See the License for the specific language governing permissions and
|
|
14
15
|
* limitations under the License.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
20
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
21
|
-
return extendStatics(d, b);
|
|
22
|
-
};
|
|
23
|
-
return function (d, b) {
|
|
24
|
-
if (typeof b !== "function" && b !== null)
|
|
25
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
26
|
-
extendStatics(d, b);
|
|
27
|
-
function __() { this.constructor = d; }
|
|
28
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
29
|
-
};
|
|
30
|
-
})();
|
|
31
|
-
import EventEmitter from "../../utils/event_emitter";
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ContentInitializer = void 0;
|
|
19
|
+
const event_emitter_1 = require("../../utils/event_emitter");
|
|
32
20
|
/**
|
|
33
21
|
* Class allowing to start playing a content on an `HTMLMediaElement`.
|
|
34
22
|
*
|
|
@@ -40,12 +28,7 @@ import EventEmitter from "../../utils/event_emitter";
|
|
|
40
28
|
* should be emitted before `prepare` or `start` is called and no event should
|
|
41
29
|
* be emitted after `dispose` is called.
|
|
42
30
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
47
|
-
}
|
|
48
|
-
return ContentInitializer;
|
|
49
|
-
}(EventEmitter));
|
|
50
|
-
export { ContentInitializer };
|
|
31
|
+
class ContentInitializer extends event_emitter_1.default {
|
|
32
|
+
}
|
|
33
|
+
exports.ContentInitializer = ContentInitializer;
|
|
51
34
|
// a decryption key)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Copyright 2015 CANAL+ Group
|
|
3
4
|
*
|
|
@@ -13,26 +14,12 @@
|
|
|
13
14
|
* See the License for the specific language governing permissions and
|
|
14
15
|
* limitations under the License.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
return function (d, b) {
|
|
24
|
-
if (typeof b !== "function" && b !== null)
|
|
25
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
26
|
-
extendStatics(d, b);
|
|
27
|
-
function __() { this.constructor = d; }
|
|
28
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
29
|
-
};
|
|
30
|
-
})();
|
|
31
|
-
import { MediaError } from "../../../errors";
|
|
32
|
-
import EventEmitter from "../../../utils/event_emitter";
|
|
33
|
-
import isNullOrUndefined from "../../../utils/is_null_or_undefined";
|
|
34
|
-
import SortedList from "../../../utils/sorted_list";
|
|
35
|
-
import TaskCanceller from "../../../utils/task_canceller";
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const errors_1 = require("../../../errors");
|
|
19
|
+
const event_emitter_1 = require("../../../utils/event_emitter");
|
|
20
|
+
const is_null_or_undefined_1 = require("../../../utils/is_null_or_undefined");
|
|
21
|
+
const sorted_list_1 = require("../../../utils/sorted_list");
|
|
22
|
+
const task_canceller_1 = require("../../../utils/task_canceller");
|
|
36
23
|
/**
|
|
37
24
|
* Observes what's being played and take care of media events relating to time
|
|
38
25
|
* boundaries:
|
|
@@ -46,57 +33,54 @@ import TaskCanceller from "../../../utils/task_canceller";
|
|
|
46
33
|
* Manifest range.
|
|
47
34
|
* @class ContentTimeBoundariesObserver
|
|
48
35
|
*/
|
|
49
|
-
|
|
50
|
-
__extends(ContentTimeBoundariesObserver, _super);
|
|
36
|
+
class ContentTimeBoundariesObserver extends event_emitter_1.default {
|
|
51
37
|
/**
|
|
52
38
|
* @param {Object} manifest
|
|
53
39
|
* @param {Object} playbackObserver
|
|
54
40
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
41
|
+
constructor(manifest, playbackObserver, bufferTypes) {
|
|
42
|
+
super();
|
|
43
|
+
this._canceller = new task_canceller_1.default();
|
|
44
|
+
this._manifest = manifest;
|
|
45
|
+
this._activeStreams = new Map();
|
|
46
|
+
this._allBufferTypes = bufferTypes;
|
|
47
|
+
this._lastCurrentPeriodId = null;
|
|
62
48
|
/**
|
|
63
49
|
* Allows to calculate the minimum and maximum playable position on the
|
|
64
50
|
* whole content.
|
|
65
51
|
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
playbackObserver.listen(
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
var wantedPosition = (_b = position.pending) !== null && _b !== void 0 ? _b : position.last;
|
|
52
|
+
const maximumPositionCalculator = new MaximumPositionCalculator(manifest);
|
|
53
|
+
this._maximumPositionCalculator = maximumPositionCalculator;
|
|
54
|
+
const cancelSignal = this._canceller.signal;
|
|
55
|
+
playbackObserver.listen(({ position }) => {
|
|
56
|
+
var _a;
|
|
57
|
+
const wantedPosition = (_a = position.pending) !== null && _a !== void 0 ? _a : position.last;
|
|
73
58
|
if (wantedPosition < manifest.getMinimumSafePosition()) {
|
|
74
|
-
|
|
59
|
+
const warning = new errors_1.MediaError("MEDIA_TIME_BEFORE_MANIFEST", "The current position is behind the " +
|
|
75
60
|
"earliest time announced in the Manifest.");
|
|
76
|
-
|
|
61
|
+
this.trigger("warning", warning);
|
|
77
62
|
}
|
|
78
63
|
else if (wantedPosition > maximumPositionCalculator.getMaximumAvailablePosition()) {
|
|
79
|
-
|
|
64
|
+
const warning = new errors_1.MediaError("MEDIA_TIME_AFTER_MANIFEST", "The current position is after the latest " +
|
|
80
65
|
"time announced in the Manifest.");
|
|
81
|
-
|
|
66
|
+
this.trigger("warning", warning);
|
|
82
67
|
}
|
|
83
68
|
}, { includeLastObservation: true, clearSignal: cancelSignal });
|
|
84
|
-
manifest.addEventListener("manifestUpdate",
|
|
85
|
-
|
|
69
|
+
manifest.addEventListener("manifestUpdate", () => {
|
|
70
|
+
this.trigger("durationUpdate", this._getManifestDuration());
|
|
86
71
|
if (cancelSignal.isCancelled()) {
|
|
87
72
|
return;
|
|
88
73
|
}
|
|
89
|
-
|
|
74
|
+
this._checkEndOfStream();
|
|
90
75
|
}, cancelSignal);
|
|
91
|
-
return _this;
|
|
92
76
|
}
|
|
93
77
|
/**
|
|
94
78
|
* Returns an estimate of the current duration of the content.
|
|
95
79
|
* @returns {Object}
|
|
96
80
|
*/
|
|
97
|
-
|
|
81
|
+
getCurrentDuration() {
|
|
98
82
|
return this._getManifestDuration();
|
|
99
|
-
}
|
|
83
|
+
}
|
|
100
84
|
/**
|
|
101
85
|
* Method to call any time an Adaptation has been selected.
|
|
102
86
|
*
|
|
@@ -110,9 +94,9 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
110
94
|
* absence of `Adaptation` has been explicitely selected for this Period and
|
|
111
95
|
* buffer type (e.g. no video).
|
|
112
96
|
*/
|
|
113
|
-
|
|
97
|
+
onAdaptationChange(bufferType, period, adaptation) {
|
|
114
98
|
if (this._manifest.isLastPeriodKnown) {
|
|
115
|
-
|
|
99
|
+
const lastPeriod = this._manifest.periods[this._manifest.periods.length - 1];
|
|
116
100
|
if (period.id === (lastPeriod === null || lastPeriod === void 0 ? void 0 : lastPeriod.id)) {
|
|
117
101
|
if (bufferType === "audio" || bufferType === "video") {
|
|
118
102
|
if (bufferType === "audio") {
|
|
@@ -123,8 +107,8 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
123
107
|
this._maximumPositionCalculator
|
|
124
108
|
.updateLastVideoAdaptation(adaptation);
|
|
125
109
|
}
|
|
126
|
-
|
|
127
|
-
|
|
110
|
+
const endingPosition = this._maximumPositionCalculator.getEndingPosition();
|
|
111
|
+
const newDuration = endingPosition !== undefined ?
|
|
128
112
|
{ isEnd: true,
|
|
129
113
|
duration: endingPosition } :
|
|
130
114
|
{ isEnd: false,
|
|
@@ -139,7 +123,7 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
139
123
|
if (adaptation === null) {
|
|
140
124
|
this._addActivelyLoadedPeriod(period, bufferType);
|
|
141
125
|
}
|
|
142
|
-
}
|
|
126
|
+
}
|
|
143
127
|
/**
|
|
144
128
|
* Method to call any time a Representation has been selected.
|
|
145
129
|
*
|
|
@@ -150,9 +134,9 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
150
134
|
* Representation switch
|
|
151
135
|
* @param {Object} period - The Period concerned by the Representation switch
|
|
152
136
|
*/
|
|
153
|
-
|
|
137
|
+
onRepresentationChange(bufferType, period) {
|
|
154
138
|
this._addActivelyLoadedPeriod(period, bufferType);
|
|
155
|
-
}
|
|
139
|
+
}
|
|
156
140
|
/**
|
|
157
141
|
* Method to call any time a Period and type combination is not considered
|
|
158
142
|
* anymore.
|
|
@@ -163,9 +147,9 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
163
147
|
* @param {string} bufferType - The type of buffer concerned
|
|
164
148
|
* @param {Object} period - The Period concerned
|
|
165
149
|
*/
|
|
166
|
-
|
|
150
|
+
onPeriodCleared(bufferType, period) {
|
|
167
151
|
this._removeActivelyLoadedPeriod(period, bufferType);
|
|
168
|
-
}
|
|
152
|
+
}
|
|
169
153
|
/**
|
|
170
154
|
* Method to call when the last chronological segment for a given buffer type
|
|
171
155
|
* is known to have been loaded and is either pushed or in the process of
|
|
@@ -175,13 +159,13 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
175
159
|
* aforementioned condition is true, if it simplify your code's management.
|
|
176
160
|
* @param {string} bufferType
|
|
177
161
|
*/
|
|
178
|
-
|
|
179
|
-
|
|
162
|
+
onLastSegmentFinishedLoading(bufferType) {
|
|
163
|
+
const streamInfo = this._lazilyCreateActiveStreamInfo(bufferType);
|
|
180
164
|
if (!streamInfo.hasFinishedLoadingLastPeriod) {
|
|
181
165
|
streamInfo.hasFinishedLoadingLastPeriod = true;
|
|
182
166
|
this._checkEndOfStream();
|
|
183
167
|
}
|
|
184
|
-
}
|
|
168
|
+
}
|
|
185
169
|
/**
|
|
186
170
|
* Method to call to "cancel" a previous call to
|
|
187
171
|
* `onLastSegmentFinishedLoading`.
|
|
@@ -193,30 +177,30 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
193
177
|
* aforementioned condition is true, if it simplify your code's management.
|
|
194
178
|
* @param {string} bufferType
|
|
195
179
|
*/
|
|
196
|
-
|
|
197
|
-
|
|
180
|
+
onLastSegmentLoadingResume(bufferType) {
|
|
181
|
+
const streamInfo = this._lazilyCreateActiveStreamInfo(bufferType);
|
|
198
182
|
if (streamInfo.hasFinishedLoadingLastPeriod) {
|
|
199
183
|
streamInfo.hasFinishedLoadingLastPeriod = false;
|
|
200
184
|
this._checkEndOfStream();
|
|
201
185
|
}
|
|
202
|
-
}
|
|
186
|
+
}
|
|
203
187
|
/**
|
|
204
188
|
* Free all resources used by the `ContentTimeBoundariesObserver` and cancels
|
|
205
189
|
* all recurring processes it performs.
|
|
206
190
|
*/
|
|
207
|
-
|
|
191
|
+
dispose() {
|
|
208
192
|
this.removeEventListener();
|
|
209
193
|
this._canceller.cancel();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
194
|
+
}
|
|
195
|
+
_addActivelyLoadedPeriod(period, bufferType) {
|
|
196
|
+
const streamInfo = this._lazilyCreateActiveStreamInfo(bufferType);
|
|
213
197
|
if (!streamInfo.activePeriods.has(period)) {
|
|
214
198
|
streamInfo.activePeriods.add(period);
|
|
215
199
|
this._checkCurrentPeriod();
|
|
216
200
|
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
|
|
201
|
+
}
|
|
202
|
+
_removeActivelyLoadedPeriod(period, bufferType) {
|
|
203
|
+
const streamInfo = this._activeStreams.get(bufferType);
|
|
220
204
|
if (streamInfo === undefined) {
|
|
221
205
|
return;
|
|
222
206
|
}
|
|
@@ -224,71 +208,63 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
224
208
|
streamInfo.activePeriods.removeElement(period);
|
|
225
209
|
this._checkCurrentPeriod();
|
|
226
210
|
}
|
|
227
|
-
}
|
|
228
|
-
|
|
211
|
+
}
|
|
212
|
+
_checkCurrentPeriod() {
|
|
229
213
|
if (this._allBufferTypes.length === 0) {
|
|
230
214
|
return;
|
|
231
215
|
}
|
|
232
|
-
|
|
216
|
+
const streamInfo = this._activeStreams.get(this._allBufferTypes[0]);
|
|
233
217
|
if (streamInfo === undefined) {
|
|
234
218
|
return;
|
|
235
219
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
for (
|
|
239
|
-
|
|
220
|
+
for (const period of streamInfo.activePeriods.toArray()) {
|
|
221
|
+
let wasFoundInAllTypes = true;
|
|
222
|
+
for (let i = 1; i < this._allBufferTypes.length; i++) {
|
|
223
|
+
const streamInfo2 = this._activeStreams.get(this._allBufferTypes[i]);
|
|
240
224
|
if (streamInfo2 === undefined) {
|
|
241
|
-
return
|
|
225
|
+
return;
|
|
242
226
|
}
|
|
243
|
-
|
|
244
|
-
|
|
227
|
+
const activePeriods = streamInfo2.activePeriods.toArray();
|
|
228
|
+
const hasPeriod = activePeriods.some((p) => p.id === period.id);
|
|
245
229
|
if (!hasPeriod) {
|
|
246
230
|
wasFoundInAllTypes = false;
|
|
247
231
|
break;
|
|
248
232
|
}
|
|
249
233
|
}
|
|
250
234
|
if (wasFoundInAllTypes) {
|
|
251
|
-
if (
|
|
252
|
-
|
|
253
|
-
|
|
235
|
+
if (this._lastCurrentPeriodId !== period.id) {
|
|
236
|
+
this._lastCurrentPeriodId = period.id;
|
|
237
|
+
this.trigger("periodChange", period);
|
|
254
238
|
}
|
|
255
|
-
return
|
|
239
|
+
return;
|
|
256
240
|
}
|
|
257
|
-
};
|
|
258
|
-
var this_1 = this;
|
|
259
|
-
for (var _i = 0, _a = streamInfo.activePeriods.toArray(); _i < _a.length; _i++) {
|
|
260
|
-
var period = _a[_i];
|
|
261
|
-
var state_1 = _loop_1(period);
|
|
262
|
-
if (typeof state_1 === "object")
|
|
263
|
-
return state_1.value;
|
|
264
241
|
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
|
|
242
|
+
}
|
|
243
|
+
_getManifestDuration() {
|
|
244
|
+
const endingPosition = this._maximumPositionCalculator.getEndingPosition();
|
|
268
245
|
return endingPosition !== undefined ?
|
|
269
246
|
{ isEnd: true,
|
|
270
247
|
duration: endingPosition } :
|
|
271
248
|
{ isEnd: false,
|
|
272
249
|
duration: this._maximumPositionCalculator.getMaximumAvailablePosition() };
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
250
|
+
}
|
|
251
|
+
_lazilyCreateActiveStreamInfo(bufferType) {
|
|
252
|
+
let streamInfo = this._activeStreams.get(bufferType);
|
|
276
253
|
if (streamInfo === undefined) {
|
|
277
254
|
streamInfo = {
|
|
278
|
-
activePeriods: new
|
|
255
|
+
activePeriods: new sorted_list_1.default((a, b) => a.start - b.start),
|
|
279
256
|
hasFinishedLoadingLastPeriod: false,
|
|
280
257
|
};
|
|
281
258
|
this._activeStreams.set(bufferType, streamInfo);
|
|
282
259
|
}
|
|
283
260
|
return streamInfo;
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
var _this = this;
|
|
261
|
+
}
|
|
262
|
+
_checkEndOfStream() {
|
|
287
263
|
if (!this._manifest.isLastPeriodKnown) {
|
|
288
264
|
return;
|
|
289
265
|
}
|
|
290
|
-
|
|
291
|
-
|
|
266
|
+
const everyBufferTypeLoaded = this._allBufferTypes.every((bt) => {
|
|
267
|
+
const streamInfo = this._activeStreams.get(bt);
|
|
292
268
|
return streamInfo !== undefined && streamInfo.hasFinishedLoadingLastPeriod;
|
|
293
269
|
});
|
|
294
270
|
if (everyBufferTypeLoaded) {
|
|
@@ -297,20 +273,19 @@ var ContentTimeBoundariesObserver = /** @class */ (function (_super) {
|
|
|
297
273
|
else {
|
|
298
274
|
this.trigger("resumeStream", null);
|
|
299
275
|
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
export default ContentTimeBoundariesObserver;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
exports.default = ContentTimeBoundariesObserver;
|
|
304
279
|
/**
|
|
305
280
|
* Calculate the last position from the last chosen audio and video Adaptations
|
|
306
281
|
* for the last Period (or a default one, if no Adaptations has been chosen).
|
|
307
282
|
* @class MaximumPositionCalculator
|
|
308
283
|
*/
|
|
309
|
-
|
|
284
|
+
class MaximumPositionCalculator {
|
|
310
285
|
/**
|
|
311
286
|
* @param {Object} manifest
|
|
312
287
|
*/
|
|
313
|
-
|
|
288
|
+
constructor(manifest) {
|
|
314
289
|
this._manifest = manifest;
|
|
315
290
|
this._lastAudioAdaptation = undefined;
|
|
316
291
|
this._lastVideoAdaptation = undefined;
|
|
@@ -323,9 +298,9 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
323
298
|
* `getMaximumAvailablePosition` and `getEndingPosition`.
|
|
324
299
|
* @param {Object|null} adaptation
|
|
325
300
|
*/
|
|
326
|
-
|
|
301
|
+
updateLastAudioAdaptation(adaptation) {
|
|
327
302
|
this._lastAudioAdaptation = adaptation;
|
|
328
|
-
}
|
|
303
|
+
}
|
|
329
304
|
/**
|
|
330
305
|
* Update the last known video Adaptation for the last Period.
|
|
331
306
|
* If no Adaptation has been set, it should be set to `null`.
|
|
@@ -334,15 +309,15 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
334
309
|
* `getMaximumAvailablePosition` and `getEndingPosition`.
|
|
335
310
|
* @param {Object|null} adaptation
|
|
336
311
|
*/
|
|
337
|
-
|
|
312
|
+
updateLastVideoAdaptation(adaptation) {
|
|
338
313
|
this._lastVideoAdaptation = adaptation;
|
|
339
|
-
}
|
|
314
|
+
}
|
|
340
315
|
/**
|
|
341
316
|
* Returns an estimate of the maximum position currently reachable (i.e.
|
|
342
317
|
* segments are available) under the current circumstances.
|
|
343
318
|
* @returns {number}
|
|
344
319
|
*/
|
|
345
|
-
|
|
320
|
+
getMaximumAvailablePosition() {
|
|
346
321
|
var _a;
|
|
347
322
|
if (this._manifest.isDynamic) {
|
|
348
323
|
return (_a = this._manifest.getLivePosition()) !== null && _a !== void 0 ? _a : this._manifest.getMaximumSafePosition();
|
|
@@ -356,7 +331,7 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
356
331
|
return this._manifest.getMaximumSafePosition();
|
|
357
332
|
}
|
|
358
333
|
else {
|
|
359
|
-
|
|
334
|
+
const lastVideoPosition = getLastAvailablePositionFromAdaptation(this._lastVideoAdaptation);
|
|
360
335
|
if (typeof lastVideoPosition !== "number") {
|
|
361
336
|
return this._manifest.getMaximumSafePosition();
|
|
362
337
|
}
|
|
@@ -364,15 +339,15 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
364
339
|
}
|
|
365
340
|
}
|
|
366
341
|
else if (this._lastVideoAdaptation === null) {
|
|
367
|
-
|
|
342
|
+
const lastAudioPosition = getLastAvailablePositionFromAdaptation(this._lastAudioAdaptation);
|
|
368
343
|
if (typeof lastAudioPosition !== "number") {
|
|
369
344
|
return this._manifest.getMaximumSafePosition();
|
|
370
345
|
}
|
|
371
346
|
return lastAudioPosition;
|
|
372
347
|
}
|
|
373
348
|
else {
|
|
374
|
-
|
|
375
|
-
|
|
349
|
+
const lastAudioPosition = getLastAvailablePositionFromAdaptation(this._lastAudioAdaptation);
|
|
350
|
+
const lastVideoPosition = getLastAvailablePositionFromAdaptation(this._lastVideoAdaptation);
|
|
376
351
|
if (typeof lastAudioPosition !== "number" ||
|
|
377
352
|
typeof lastVideoPosition !== "number") {
|
|
378
353
|
return this._manifest.getMaximumSafePosition();
|
|
@@ -381,14 +356,14 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
381
356
|
return Math.min(lastAudioPosition, lastVideoPosition);
|
|
382
357
|
}
|
|
383
358
|
}
|
|
384
|
-
}
|
|
359
|
+
}
|
|
385
360
|
/**
|
|
386
361
|
* Returns an estimate of the actual ending position once
|
|
387
362
|
* the full content is available.
|
|
388
363
|
* Returns `undefined` if that could not be determined, for various reasons.
|
|
389
364
|
* @returns {number|undefined}
|
|
390
365
|
*/
|
|
391
|
-
|
|
366
|
+
getEndingPosition() {
|
|
392
367
|
var _a, _b;
|
|
393
368
|
if (!this._manifest.isDynamic) {
|
|
394
369
|
return this.getMaximumAvailablePosition();
|
|
@@ -409,8 +384,8 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
409
384
|
return (_b = getEndingPositionFromAdaptation(this._lastAudioAdaptation)) !== null && _b !== void 0 ? _b : undefined;
|
|
410
385
|
}
|
|
411
386
|
else {
|
|
412
|
-
|
|
413
|
-
|
|
387
|
+
const lastAudioPosition = getEndingPositionFromAdaptation(this._lastAudioAdaptation);
|
|
388
|
+
const lastVideoPosition = getEndingPositionFromAdaptation(this._lastVideoAdaptation);
|
|
414
389
|
if (typeof lastAudioPosition !== "number" ||
|
|
415
390
|
typeof lastVideoPosition !== "number") {
|
|
416
391
|
return undefined;
|
|
@@ -419,9 +394,8 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
419
394
|
return Math.min(lastAudioPosition, lastVideoPosition);
|
|
420
395
|
}
|
|
421
396
|
}
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
}());
|
|
397
|
+
}
|
|
398
|
+
}
|
|
425
399
|
/**
|
|
426
400
|
* Returns last currently available position from the Adaptation given.
|
|
427
401
|
* `undefined` if a time could not be found.
|
|
@@ -434,24 +408,24 @@ var MaximumPositionCalculator = /** @class */ (function () {
|
|
|
434
408
|
* @returns {Number|undefined|null}
|
|
435
409
|
*/
|
|
436
410
|
function getLastAvailablePositionFromAdaptation(adaptation) {
|
|
437
|
-
|
|
438
|
-
|
|
411
|
+
const { representations } = adaptation;
|
|
412
|
+
let min = null;
|
|
439
413
|
/**
|
|
440
414
|
* Some Manifest parsers use the exact same `IRepresentationIndex` reference
|
|
441
415
|
* for each Representation of a given Adaptation, because in the actual source
|
|
442
416
|
* Manifest file, indexing data is often defined at Adaptation-level.
|
|
443
417
|
* This variable allows to optimize the logic here when this is the case.
|
|
444
418
|
*/
|
|
445
|
-
|
|
446
|
-
for (
|
|
419
|
+
let lastIndex;
|
|
420
|
+
for (let i = 0; i < representations.length; i++) {
|
|
447
421
|
if (representations[i].index !== lastIndex) {
|
|
448
422
|
lastIndex = representations[i].index;
|
|
449
|
-
|
|
423
|
+
const lastPosition = representations[i].index.getLastAvailablePosition();
|
|
450
424
|
if (lastPosition === undefined) { // we cannot tell
|
|
451
425
|
return undefined;
|
|
452
426
|
}
|
|
453
427
|
if (lastPosition !== null) {
|
|
454
|
-
min =
|
|
428
|
+
min = (0, is_null_or_undefined_1.default)(min) ? lastPosition :
|
|
455
429
|
Math.min(min, lastPosition);
|
|
456
430
|
}
|
|
457
431
|
}
|
|
@@ -471,24 +445,24 @@ function getLastAvailablePositionFromAdaptation(adaptation) {
|
|
|
471
445
|
* @returns {Number|undefined|null}
|
|
472
446
|
*/
|
|
473
447
|
function getEndingPositionFromAdaptation(adaptation) {
|
|
474
|
-
|
|
475
|
-
|
|
448
|
+
const { representations } = adaptation;
|
|
449
|
+
let min = null;
|
|
476
450
|
/**
|
|
477
451
|
* Some Manifest parsers use the exact same `IRepresentationIndex` reference
|
|
478
452
|
* for each Representation of a given Adaptation, because in the actual source
|
|
479
453
|
* Manifest file, indexing data is often defined at Adaptation-level.
|
|
480
454
|
* This variable allows to optimize the logic here when this is the case.
|
|
481
455
|
*/
|
|
482
|
-
|
|
483
|
-
for (
|
|
456
|
+
let lastIndex;
|
|
457
|
+
for (let i = 0; i < representations.length; i++) {
|
|
484
458
|
if (representations[i].index !== lastIndex) {
|
|
485
459
|
lastIndex = representations[i].index;
|
|
486
|
-
|
|
460
|
+
const lastPosition = representations[i].index.getEnd();
|
|
487
461
|
if (lastPosition === undefined) { // we cannot tell
|
|
488
462
|
return undefined;
|
|
489
463
|
}
|
|
490
464
|
if (lastPosition !== null) {
|
|
491
|
-
min =
|
|
465
|
+
min = (0, is_null_or_undefined_1.default)(min) ? lastPosition :
|
|
492
466
|
Math.min(min, lastPosition);
|
|
493
467
|
}
|
|
494
468
|
}
|